cyc
This commit is contained in:
parent
f261aa0693
commit
3a8cab3777
269
package-lock.json
generated
269
package-lock.json
generated
@ -8,10 +8,15 @@
|
||||
"name": "book",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"axios": "^1.7.2",
|
||||
"core-js": "^3.6.5",
|
||||
"crypto-js": "^4.2.0",
|
||||
"element-ui": "^2.15.14",
|
||||
"jquery": "^3.7.1",
|
||||
"vue": "^2.6.11",
|
||||
"vue-router": "^3.2.0",
|
||||
"vuex": "^3.4.0"
|
||||
"vuex": "^3.4.0",
|
||||
"xe-utils": "^3.5.26"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "~4.5.19",
|
||||
@ -3485,11 +3490,18 @@
|
||||
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/async-validator": {
|
||||
"version": "1.8.5",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/async-validator/-/async-validator-1.8.5.tgz",
|
||||
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
|
||||
"dependencies": {
|
||||
"babel-runtime": "6.x"
|
||||
}
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"node_modules/atob": {
|
||||
"version": "2.1.2",
|
||||
@ -3561,6 +3573,29 @@
|
||||
"integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/axios/-/axios-1.7.2.tgz",
|
||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/axios/node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-eslint": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-eslint/-/babel-eslint-10.1.0.tgz",
|
||||
@ -3582,6 +3617,11 @@
|
||||
"eslint": ">= 4.12.1"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-helper-vue-jsx-merge-props": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
|
||||
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
|
||||
},
|
||||
"node_modules/babel-loader": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-loader/-/babel-loader-8.3.0.tgz",
|
||||
@ -3649,6 +3689,27 @@
|
||||
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
|
||||
"dependencies": {
|
||||
"core-js": "^2.4.0",
|
||||
"regenerator-runtime": "^0.11.0"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-runtime/node_modules/core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/core-js/-/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
|
||||
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
|
||||
"hasInstallScript": true
|
||||
},
|
||||
"node_modules/babel-runtime/node_modules/regenerator-runtime": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
|
||||
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
@ -4741,7 +4802,6 @@
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
},
|
||||
@ -5303,6 +5363,11 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/crypto-js": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/crypto-js/-/crypto-js-4.2.0.tgz",
|
||||
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
|
||||
},
|
||||
"node_modules/css-color-names": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/css-color-names/-/css-color-names-0.0.4.tgz",
|
||||
@ -5721,7 +5786,6 @@
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/deepmerge/-/deepmerge-1.5.2.tgz",
|
||||
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@ -5972,7 +6036,6 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
@ -6247,6 +6310,22 @@
|
||||
"integrity": "sha512-by9J2CiM9KPGj9qfp5U4FcPSbXJG7FNzqnYaY4WLzX+v2PHieVGmnsA4dxfpGE3QEC7JofpPZmn7Vn1B9NR2+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/element-ui": {
|
||||
"version": "2.15.14",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/element-ui/-/element-ui-2.15.14.tgz",
|
||||
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
|
||||
"dependencies": {
|
||||
"async-validator": "~1.8.1",
|
||||
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
||||
"deepmerge": "^1.2.0",
|
||||
"normalize-wheel": "^1.0.1",
|
||||
"resize-observer-polyfill": "^1.5.0",
|
||||
"throttle-debounce": "^1.0.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^2.5.17"
|
||||
}
|
||||
},
|
||||
"node_modules/elliptic": {
|
||||
"version": "6.5.5",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/elliptic/-/elliptic-6.5.5.tgz",
|
||||
@ -7489,7 +7568,6 @@
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
@ -9338,6 +9416,11 @@
|
||||
"integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/jquery": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/jquery/-/jquery-3.7.1.tgz",
|
||||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
|
||||
},
|
||||
"node_modules/js-message": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/js-message/-/js-message-1.0.7.tgz",
|
||||
@ -9872,7 +9955,6 @@
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@ -9881,7 +9963,6 @@
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
@ -10297,6 +10378,11 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/normalize-wheel": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
|
||||
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
|
||||
},
|
||||
"node_modules/npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
@ -11918,6 +12004,11 @@
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
|
||||
},
|
||||
"node_modules/prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/prr/-/prr-1.0.1.tgz",
|
||||
@ -12387,6 +12478,11 @@
|
||||
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/resize-observer-polyfill": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
|
||||
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
|
||||
},
|
||||
"node_modules/resolve": {
|
||||
"version": "1.22.8",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.8.tgz",
|
||||
@ -14080,6 +14176,14 @@
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/throttle-debounce": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
|
||||
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/through/-/through-2.3.8.tgz",
|
||||
@ -16135,6 +16239,11 @@
|
||||
"async-limiter": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/xe-utils": {
|
||||
"version": "3.5.26",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/xe-utils/-/xe-utils-3.5.26.tgz",
|
||||
"integrity": "sha512-u9R7RqWDumamToEelrCv2nVA2PBJSPPUubvmiMcuHeFxwbYeBsouoi/opejmr7AdPlSj92FifF7IKFzFrczU7w=="
|
||||
},
|
||||
"node_modules/xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/xtend/-/xtend-4.0.2.tgz",
|
||||
@ -16728,7 +16837,8 @@
|
||||
"version": "7.21.0-placeholder-for-preset-env.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
|
||||
"integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"@babel/plugin-syntax-async-generators": {
|
||||
"version": "7.8.4",
|
||||
@ -18228,7 +18338,8 @@
|
||||
"version": "4.5.19",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz",
|
||||
"integrity": "sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"@vue/cli-service": {
|
||||
"version": "4.5.19",
|
||||
@ -18422,7 +18533,8 @@
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz",
|
||||
"integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"@vue/shared": {
|
||||
"version": "3.4.27",
|
||||
@ -18643,7 +18755,8 @@
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
|
||||
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"acorn-walk": {
|
||||
"version": "7.2.0",
|
||||
@ -18673,13 +18786,15 @@
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/ajv-errors/-/ajv-errors-1.0.1.tgz",
|
||||
"integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"ajv-keywords": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"alphanum-sort": {
|
||||
"version": "1.0.2",
|
||||
@ -18940,11 +19055,18 @@
|
||||
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"async-validator": {
|
||||
"version": "1.8.5",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/async-validator/-/async-validator-1.8.5.tgz",
|
||||
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
|
||||
"requires": {
|
||||
"babel-runtime": "6.x"
|
||||
}
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"atob": {
|
||||
"version": "2.1.2",
|
||||
@ -18996,6 +19118,28 @@
|
||||
"integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/axios/-/axios-1.7.2.tgz",
|
||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-eslint": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-eslint/-/babel-eslint-10.1.0.tgz",
|
||||
@ -19010,6 +19154,11 @@
|
||||
"resolve": "^1.12.0"
|
||||
}
|
||||
},
|
||||
"babel-helper-vue-jsx-merge-props": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
|
||||
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
|
||||
},
|
||||
"babel-loader": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-loader/-/babel-loader-8.3.0.tgz",
|
||||
@ -19061,6 +19210,27 @@
|
||||
"@babel/helper-define-polyfill-provider": "^0.6.2"
|
||||
}
|
||||
},
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
|
||||
"requires": {
|
||||
"core-js": "^2.4.0",
|
||||
"regenerator-runtime": "^0.11.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/core-js/-/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
|
||||
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
@ -19936,7 +20106,6 @@
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
@ -20386,6 +20555,11 @@
|
||||
"randomfill": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"crypto-js": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/crypto-js/-/crypto-js-4.2.0.tgz",
|
||||
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
|
||||
},
|
||||
"css-color-names": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/css-color-names/-/css-color-names-0.0.4.tgz",
|
||||
@ -20699,8 +20873,7 @@
|
||||
"deepmerge": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/deepmerge/-/deepmerge-1.5.2.tgz",
|
||||
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
|
||||
},
|
||||
"default-gateway": {
|
||||
"version": "5.0.5",
|
||||
@ -20884,8 +21057,7 @@
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||
},
|
||||
"depd": {
|
||||
"version": "2.0.0",
|
||||
@ -21110,6 +21282,19 @@
|
||||
"integrity": "sha512-by9J2CiM9KPGj9qfp5U4FcPSbXJG7FNzqnYaY4WLzX+v2PHieVGmnsA4dxfpGE3QEC7JofpPZmn7Vn1B9NR2+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"element-ui": {
|
||||
"version": "2.15.14",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/element-ui/-/element-ui-2.15.14.tgz",
|
||||
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
|
||||
"requires": {
|
||||
"async-validator": "~1.8.1",
|
||||
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
||||
"deepmerge": "^1.2.0",
|
||||
"normalize-wheel": "^1.0.1",
|
||||
"resize-observer-polyfill": "^1.5.0",
|
||||
"throttle-debounce": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"elliptic": {
|
||||
"version": "6.5.5",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/elliptic/-/elliptic-6.5.5.tgz",
|
||||
@ -22100,8 +22285,7 @@
|
||||
"follow-redirects": {
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
|
||||
},
|
||||
"for-each": {
|
||||
"version": "0.3.3",
|
||||
@ -23470,6 +23654,11 @@
|
||||
"integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==",
|
||||
"dev": true
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/jquery/-/jquery-3.7.1.tgz",
|
||||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
|
||||
},
|
||||
"js-message": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/js-message/-/js-message-1.0.7.tgz",
|
||||
@ -23916,14 +24105,12 @@
|
||||
"mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "1.52.0"
|
||||
}
|
||||
@ -24272,6 +24459,11 @@
|
||||
"sort-keys": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"normalize-wheel": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
|
||||
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
@ -25586,6 +25778,11 @@
|
||||
"ipaddr.js": "1.9.1"
|
||||
}
|
||||
},
|
||||
"proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
|
||||
},
|
||||
"prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/prr/-/prr-1.0.1.tgz",
|
||||
@ -25982,6 +26179,11 @@
|
||||
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
|
||||
"dev": true
|
||||
},
|
||||
"resize-observer-polyfill": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
|
||||
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.22.8",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.8.tgz",
|
||||
@ -27369,6 +27571,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"throttle-debounce": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
|
||||
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
|
||||
},
|
||||
"through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/through/-/through-2.3.8.tgz",
|
||||
@ -28239,7 +28446,8 @@
|
||||
"vuex": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vuex/-/vuex-3.6.2.tgz",
|
||||
"integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw=="
|
||||
"integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==",
|
||||
"requires": {}
|
||||
},
|
||||
"watchpack": {
|
||||
"version": "1.7.5",
|
||||
@ -28990,6 +29198,11 @@
|
||||
"async-limiter": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"xe-utils": {
|
||||
"version": "3.5.26",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/xe-utils/-/xe-utils-3.5.26.tgz",
|
||||
"integrity": "sha512-u9R7RqWDumamToEelrCv2nVA2PBJSPPUubvmiMcuHeFxwbYeBsouoi/opejmr7AdPlSj92FifF7IKFzFrczU7w=="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/xtend/-/xtend-4.0.2.tgz",
|
||||
|
||||
@ -8,10 +8,15 @@
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^1.7.2",
|
||||
"core-js": "^3.6.5",
|
||||
"crypto-js": "^4.2.0",
|
||||
"element-ui": "^2.15.14",
|
||||
"jquery": "^3.7.1",
|
||||
"vue": "^2.6.11",
|
||||
"vue-router": "^3.2.0",
|
||||
"vuex": "^3.4.0"
|
||||
"vuex": "^3.4.0",
|
||||
"xe-utils": "^3.5.26"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "~4.5.19",
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div id="app">
|
||||
<div id="nav">
|
||||
<router-link to="/">Home</router-link> |
|
||||
<!-- <router-link to="/">Home</router-link> | -->
|
||||
<router-link to="/book">书籍</router-link> |
|
||||
<router-link to="/about">About</router-link>
|
||||
</div>
|
||||
<router-view/>
|
||||
|
||||
29
src/main.js
29
src/main.js
@ -2,11 +2,40 @@ import Vue from 'vue'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
import store from './store'
|
||||
import {setStore} from './utils/mUtils'
|
||||
import XML from "./plugin/xml-digital-teaching/lib/index"
|
||||
import './plugin/xml-digital-teaching/lib/theme/index.css'
|
||||
|
||||
|
||||
import ElementUI from 'element-ui';
|
||||
import 'element-ui/lib/theme-chalk/index.css';
|
||||
|
||||
Vue.use(ElementUI);
|
||||
|
||||
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
|
||||
Vue.use(XML)
|
||||
|
||||
router.beforeEach((to,from,next)=>{
|
||||
var apikey = to.query.apikey
|
||||
|
||||
|
||||
if (apikey){
|
||||
setStore('apikey',apikey)
|
||||
console.log(apikey)
|
||||
}
|
||||
console.log(to)
|
||||
console.log(from)
|
||||
next()
|
||||
|
||||
})
|
||||
new Vue({
|
||||
router,
|
||||
store,
|
||||
render: h => h(App)
|
||||
}).$mount('#app')
|
||||
|
||||
|
||||
|
||||
BIN
src/plugin/xml-digital-teaching/lib/2539d578aeabf7c9.png
Normal file
BIN
src/plugin/xml-digital-teaching/lib/2539d578aeabf7c9.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
src/plugin/xml-digital-teaching/lib/5d9cf0a5d487a818.png
Normal file
BIN
src/plugin/xml-digital-teaching/lib/5d9cf0a5d487a818.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
src/plugin/xml-digital-teaching/lib/a6071719aecd4e53.png
Normal file
BIN
src/plugin/xml-digital-teaching/lib/a6071719aecd4e53.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
21
src/plugin/xml-digital-teaching/lib/catalog.css
Normal file
21
src/plugin/xml-digital-teaching/lib/catalog.css
Normal file
@ -0,0 +1,21 @@
|
||||
.catalog-node-label[data-v-61c986fa] {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.catalog-node-label img[data-v-61c986fa] {
|
||||
margin-right: 4px;
|
||||
}
|
||||
.xml-show-catalog[data-v-61c986fa] .el-tree-node__content {
|
||||
height: auto;
|
||||
}
|
||||
.xml-show-catalog[data-v-61c986fa] .el-tree-node__content .catalog-node-label {
|
||||
max-width: calc(100% - 24px);
|
||||
word-break: break-all;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlCatalog.vue.map */
|
||||
|
||||
.xml-show-catalog .el-tree-node__content {
|
||||
display: flex !important;
|
||||
}
|
||||
367
src/plugin/xml-digital-teaching/lib/catalog.js
Normal file
367
src/plugin/xml-digital-teaching/lib/catalog.js
Normal file
@ -0,0 +1,367 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
// import '../block.scss'
|
||||
var script = {
|
||||
name: 'XmlCatalogRender',
|
||||
components: {},
|
||||
inject: ['getCatalogList'],
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'preview';
|
||||
}
|
||||
},
|
||||
//属性中传递过来的块儿数据
|
||||
pBlockData: {},
|
||||
//块儿数据名
|
||||
blockDataName: String,
|
||||
//页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
blockId: `blockId${Math.random()}`,
|
||||
//当前块儿数据,一般用不到,因为一般的块儿中不会在块儿内更改数据
|
||||
blockData: {},
|
||||
//属性组件名
|
||||
propertyComponentsName: 'xml-catalog-property',
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
},
|
||||
filteredTree: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
catalogList() {
|
||||
return this.getCatalogList().data;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pBlockData: {
|
||||
handler(newValue) {
|
||||
this.$nextTick(() => {
|
||||
this.blockData = Object.assign({}, this.blockData, newValue);
|
||||
this.$forceUpdate();
|
||||
// this.ebookSetList=Object.assign({},this.blockData.ebookSetList);
|
||||
});
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
},
|
||||
catalogList: {
|
||||
handler(newValue) {
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.tree.filter('unexpected')
|
||||
// })
|
||||
let origin = newValue || [];
|
||||
const filterMenu = menuList => {
|
||||
return menuList.filter(item => {
|
||||
return item.hiddenFlag !== '1';
|
||||
}).map(item => {
|
||||
item = Object.assign({}, item);
|
||||
if (item.children) {
|
||||
item.children = filterMenu(item.children);
|
||||
}
|
||||
return item;
|
||||
});
|
||||
};
|
||||
this.filteredTree = filterMenu(origin);
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.blockData = Object.assign( this.blockData,this.pBlockData)
|
||||
},
|
||||
methods: {
|
||||
// 此方法必须要,用户注册块儿点击事件
|
||||
blockClick() {
|
||||
this.$emit('blockclick', {
|
||||
blockData: this.blockData,
|
||||
dataName: this.blockDataName,
|
||||
propertyComponentsName: this.propertyComponentsName,
|
||||
blockId: this.blockId,
|
||||
ruleIndex: this.ruleIndex
|
||||
});
|
||||
},
|
||||
nodeClick(data, node) {
|
||||
this.$EventBus.$emit('treeNodeClick', {
|
||||
data,
|
||||
node
|
||||
});
|
||||
},
|
||||
filterNode(value, data) {
|
||||
// if (!value) return true;
|
||||
return data.hiddenFlag !== '1';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "xml-show-catalog xml-group-item",
|
||||
class: "xml-catalog-container-" + _vm.pageType,
|
||||
attrs: { id: _vm.blockId },
|
||||
on: { click: _vm.blockClick },
|
||||
},
|
||||
[
|
||||
_c("el-tree", {
|
||||
ref: "tree",
|
||||
class: "preview-tree-box-" + _vm.pageType,
|
||||
staticStyle: { "margin-top": "0px" },
|
||||
attrs: {
|
||||
id: "built-in-tree",
|
||||
draggable: _vm.blockData.draggable,
|
||||
"default-expand-all": true,
|
||||
"highlight-current": "",
|
||||
data: _vm.filteredTree,
|
||||
"node-key": "id",
|
||||
props: _vm.defaultProps,
|
||||
"filter-node-method": _vm.filterNode,
|
||||
"expand-on-click-node": false,
|
||||
},
|
||||
on: { "node-click": _vm.nodeClick },
|
||||
scopedSlots: _vm._u([
|
||||
{
|
||||
key: "default",
|
||||
fn: function (ref) {
|
||||
var node = ref.node;
|
||||
var data = ref.data;
|
||||
return _c("div", { staticClass: "catalog-node-label" }, [
|
||||
data.uploadFileUrl
|
||||
? _c("img", {
|
||||
staticStyle: { width: "15px", height: "15px" },
|
||||
attrs: { src: data.uploadFileUrl, alt: "" },
|
||||
})
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
class: ["node-label", node.expanded ? "expanded-node" : ""],
|
||||
},
|
||||
[_vm._v(_vm._s(node.label))]
|
||||
),
|
||||
])
|
||||
},
|
||||
},
|
||||
]),
|
||||
}),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-61c986fa";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
// 提交
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('catalog-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
1
src/plugin/xml-digital-teaching/lib/catalog.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/catalog.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.catalog-node-label[data-v-61c986fa]{display:flex;align-items:center}.catalog-node-label img[data-v-61c986fa]{margin-right:4px}.xml-show-catalog[data-v-61c986fa] .el-tree-node__content{height:auto}.xml-show-catalog[data-v-61c986fa] .el-tree-node__content .catalog-node-label{max-width:calc(100% - 24px);word-break:break-all;white-space:normal}.xml-show-catalog .el-tree-node__content{display:flex!important}
|
||||
BIN
src/plugin/xml-digital-teaching/lib/dc9e230fbf283a84.png
Normal file
BIN
src/plugin/xml-digital-teaching/lib/dc9e230fbf283a84.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 223 KiB |
BIN
src/plugin/xml-digital-teaching/lib/df8498de9c8120c3.png
Normal file
BIN
src/plugin/xml-digital-teaching/lib/df8498de9c8120c3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
72
src/plugin/xml-digital-teaching/lib/ebook.css
Normal file
72
src/plugin/xml-digital-teaching/lib/ebook.css
Normal file
@ -0,0 +1,72 @@
|
||||
|
||||
.xml-ebook-container-h5[data-v-7ea50222] {
|
||||
}
|
||||
.xml-ebook-container-pc[data-v-7ea50222] {
|
||||
}
|
||||
.xml-ebook-container-pad[data-v-7ea50222] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
718
src/plugin/xml-digital-teaching/lib/ebook.js
Normal file
718
src/plugin/xml-digital-teaching/lib/ebook.js
Normal file
@ -0,0 +1,718 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
var script$1 = {
|
||||
name: 'PdfView',
|
||||
props: {
|
||||
show: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
baseUrl: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
textInfo: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
src: encodeURI('http://ouchn-textbook-public.oss-cn-qingdao.aliyuncs.com/ouchn-test-paper-web/stem-files/faf5276a-e523-4df1-8d11-ac858c954cf3.pdf'),
|
||||
loading: false,
|
||||
width: 300,
|
||||
height: 900
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onBackClick() {
|
||||
this.$emit('handleClose', false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var __$_require_static_images_leaflet_icons_back_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAABACAYAAAB2kAXpAAAAAXNSR0IArs4c6QAABABJREFUaEPVmluopmMUx39/UUy44cJMg+FikEMuGMnIOJcwlHIYpKkZmchxuJDT5MIpIzXIpMkhh5QwlPPx0uHKhbiYKCJXSMTor7U9W4/t29/3rP3t55usm137+z/v+r3Pca31vGIHme19gVXAEuBXYKukd6ZxtCO4bJ8HPAHsNsP/RknXxf8mDmZ7NfDYkA65UtKmiYLZvhp4YMQofSVpycTAbN8M3NkwdbZL2mUiYLbvBW5ogArJ15L27w5m+yHgikaokK2WtKUrmO2ngQsTUBsk3dZ1Vdp+EViZgFov6b5u+5jtnYE3gBMTUOskPVzr53UobS8A3gWWJaBWSYoh/5fNG5jtfYA4Ug5JQJ0j6aVB+nkBs70f8CEQf1tsO3CqpPdmE48NZvswIBzs1UJUDuwTJH00TD8WmO2jgbeBPRqhfgBOkvTZKP2cwWyvKFA7jXJSfv8GOF7Sthb9nMBsx/4U+1SrfQ6skPR9a4M0mO1LgcdbHQAxl2Ki/5hok4vHbK8DNiUcxPZxmqQ/E22mpM09Zvsm4K6EgwiVz07o8xus7TuAWxNOnpF0UUL/H+nIHrP9IHBVwslmSWsT+oHSoWC2twCXJZzcL+n6hH5W6axgtl8Azk04uV1SDPm82EAw26/Hakp4uFbSqCQj8bgZq7KELW8BxyaeslbS5oS+SfpPj9neE3gfOLKp5d+iCyQ9l9A3S6fASroeEcKBzS3hLEmvJPQpqWwvLWHLwsaWv5cj5oNG/ZxkAfZTImz5uRzGn87JW6JRgLlR/20kGJK+aNSPJWsF+wRYLum3sbwlGv/vweJdYyhPlhRBX3eLHvsDiCS1xX4pk//jFvE4mgA7puSDkay2WLxIBH+zpl4tDxmlmd5gDy9we49qUP2+UtLLCX1KWh9JB5SNtjVpDUd9j6TpVylpfhzihyZer+8hXsHtXgojRyXg+oY9FVys0jdjBSbg+geKFeBW4MwEXP/QuoJ7Fjg/Adc/GangHgEuT8D1T98quHuA9Qm4/glvBXcLsCEBFyWC0yVFoS5lIxPemU+zfQ2wMeElztVTuhZVqp5bAzyagOtfhqrgYqXGim21/oW7Cu4MIDKl1inRv9RZwR0HxPm6a2PXxW1u3+JwBRdJciTLkTS3WP9yegV3UInpFrWQFU3fC4gKbjEQiXDEdq3W98qmgouLiNhYj2glA/peclVw8XVA3MAtT8D1vRasQWy/FkdSAq7/RWrVe88D8Z1Fq10i6anWjbH1oQN1yVrul5KWTgQsaBPV78l93lANa3x3Ed9fDLPvJC2cWI9VcDcCdw8hm1qdEwcrwxphelzOz/T/pKS4RGuOCsaa/IMa2z4YuLicElHVfLWu6f4FuhpYUNovLf0AAAAASUVORK5CYII=";
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__$1 = script$1;
|
||||
var __vue_render__$1 = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "show",
|
||||
rawName: "v-show",
|
||||
value: _vm.show,
|
||||
expression: "show",
|
||||
},
|
||||
],
|
||||
staticClass: "xml-epub-pdf-view",
|
||||
},
|
||||
[
|
||||
_c("div", { staticClass: "xmlPreviewSearch-title" }, [
|
||||
_c("img", {
|
||||
staticClass: "img",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_back_png__,
|
||||
},
|
||||
on: { click: _vm.onBackClick },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "xmlPreviewSearch-sou" }, [
|
||||
_vm._v(_vm._s(_vm.textInfo)),
|
||||
]),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "loading",
|
||||
rawName: "v-loading",
|
||||
value: _vm.loading,
|
||||
expression: "loading",
|
||||
},
|
||||
],
|
||||
staticClass: "mod-config",
|
||||
staticStyle: { height: "calc(100vh - 60px)", width: "100%" },
|
||||
attrs: {
|
||||
"element-loading-text": "拼命加载中",
|
||||
"element-loading-spinner": "el-icon-loading",
|
||||
"element-loading-background": "rgba(0, 0, 0, 0.8)",
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("iframe", {
|
||||
staticClass: "xml-iframe-web-view",
|
||||
attrs: { frameborder: "0", src: _vm.baseUrl },
|
||||
}),
|
||||
]
|
||||
),
|
||||
]
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__$1 = [];
|
||||
__vue_render__$1._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__$1 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$1 = undefined;
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$1 = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__$1 = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__$1 = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
||||
__vue_inject_styles__$1,
|
||||
__vue_script__$1,
|
||||
__vue_scope_id__$1,
|
||||
__vue_is_functional_template__$1,
|
||||
__vue_module_identifier__$1,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
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==";
|
||||
|
||||
var resource = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAMAAAChHKjRAAAAAXNSR0IArs4c6QAAAqNQTFRFAAAAiXb/kG/0inD6inX6jW72jXL2eGLpe2fuinL2i3H3iHf6i3L5dmTvjHH3inP4inH2i3L2d2TuhW7vjHH5d2TqjnH5fWnyd2bskHb5jXX1jHH2i3H3i3H4i3H4d2Xsd2Xqi3H4cmLoi3L4inH3i3L3inL3i3L3jHL3hG3zi3L3jHL4jnT5i3L3i3L3jHH2bl/nb2DncFfwcF/ncWHncWHocWHpcljxclnxcmLpc1f0c2Lpc2Lqc2Ppc2PqdGPpdGPqdVX3dVrydl7xd1n2d1r1d1r2d1z0d2TreFr2eFv2eFz2eGDweGDxeGbseVz2eV32el32e171e172e2H1e2PyfWD3fWH2fWL1fmH2fmL2fmP2f2P3f2T2gGrygWX2gWb2gWf2gWzxgWzzgmj2gmzyg2j3g2v1g23zg27xhGn3hGr2hG3zhHDxhW7zhW70hmv4hnHxh233h273h3D0h3LyiG73iW34iXD3iXH2inD3inH3inH4inP2i3D4i3H3i3L3i3P3i3P4jHL3jHL4jHL5jHP3jHP4jHT3jXP4jXP5jXT3jXT4jXT5jXf1jXryjnT5jnX4jnf3j3T5j3T6kX31kYDxkoLxk3v4k4PxlX74lYbxl4L2mInymYP4moT4m4n1n5HzoIz4oY35ppP5ppb2p5rzqZb5rp/4saH5s6P5s6T4tKX5tav1tqn4t6j5uan7urH1vKz8vrH5wbn2x7v7yL37yMH2yb77yb/6ycT2zMH7zMH8zML7zcj2zsT6zsT8z8X70Mb70Mv30sf80sn808741dL31dL41s3819D719P42M/929L93NX84N746OL+6Of67uj/8fH79PD/9fb8+Pn9+vf/+vn//fv//f3//f79/v3//v7////9///+////+rYR5QAAADB0Uk5TAA0XMjI6OkZNVVpefX+HjJCRkpSeoausra2vs7W2t7i5v8TN1tbd3t/o6+7v8PH8u0jmrQAAAe5JREFUOMtjYGBgYBZQ1sMAOpoKHAwIwN+ADUzIMXTgJaAGqMjM2l4IqoatGqciB1sHUYgiyUrcihwcrCXAilQacCjKAClysJEHKVLHpSjf1A6kylIJj6Lmdg8DkCIHE3EGBjUcihp6K/1MwcCYHbeihgmdeakgkCyMqai+HsZqnzB5AhBMkUJT1FYd6+Ud39CGIiiHoqitIth/3rats9zC65GVSSMp6ijyDl985M6DBzf2zA8IrmrDpqg7K2H5uQdQcHRRVHEbFkUpMy48QAJns4uxKIqZcw9Z0enEMiyKJkaUrr0GU3J4dmhWNxZF4RvOLshdexuk5Ni0zM2XlkRjUeSy/8GDM1MLt1w+MTNp9c0HD9Z7YlHkvwNkyIESZ6MV10GslYHYFO0Gu+aK4yaIs7ArOgSRnHQKQq/CpsjtJFjubvdBiKI1XlgUhS0Fy91q3Aumr/alYVHUHLLwPEhRw04geX9Xf3QPFkVtna4+yy4+eFBx6MH9fdPNIydiTQUNPeVWcRu3x647PtcisKsNe1IBRU2Bu1NVum9Qa3dDA05FDQ0tLW01dagJE1MRNkCkInXCimQYNAgrkmVQJaxIhEGslpCaem4GVoIG6TMyMAgSUNPEBSqh+PCq0eaElIgsgsq6eliBliIPE1ABAEFwqt5aEHsEAAAAAElFTkSuQmCC";
|
||||
|
||||
var image = {
|
||||
leaflet: {
|
||||
epub,
|
||||
resource
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlEbookRender',
|
||||
components: {
|
||||
PdfView: __vue_component__$1
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'preview';
|
||||
}
|
||||
},
|
||||
//属性中传递过来的块儿数据
|
||||
pBlockData: {},
|
||||
//块儿数据名
|
||||
blockDataName: String,
|
||||
//页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pBlockData: {
|
||||
handler(newValue) {
|
||||
console.log('XmlEbook组件(ruleIndex:' + this.ruleIndex + '),watch触发,变量pBlockData:', newValue);
|
||||
this.$nextTick(() => {
|
||||
this.blockData = Object.assign({}, this.blockData, newValue);
|
||||
// this.ebookSetList=Object.assign({},this.blockData.ebookSetList);
|
||||
});
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
image,
|
||||
blockId: 'blockId' + Math.random(),
|
||||
//当前块儿数据,一般用不到,因为一般的块儿中不会在块儿内更改数据
|
||||
blockData: {},
|
||||
//属性组件名
|
||||
propertyComponentsName: 'xml-ebook-property',
|
||||
showPdf: false,
|
||||
baseUrl: '',
|
||||
textInfo: ''
|
||||
// ebookSetList:[]
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
handleClose() {
|
||||
this.showPdf = false;
|
||||
},
|
||||
// 此方法必须要,用户注册块儿点击事件
|
||||
blockClick() {
|
||||
this.$emit('blockclick', {
|
||||
blockData: this.blockData,
|
||||
dataName: this.blockDataName,
|
||||
propertyComponentsName: this.propertyComponentsName,
|
||||
blockId: this.blockId,
|
||||
ruleIndex: this.ruleIndex
|
||||
});
|
||||
},
|
||||
goRead(info) {
|
||||
console.log('🚀 ~ goRead ~ info:', info);
|
||||
if (this.mode === 'preview') {
|
||||
if (info.source != 'netlink') {
|
||||
const baseUrl = info.uploadFileUrl.indexOf('./') !== -1 ? this.resourceBasisPath + info.uploadFileUrl.split('./')[1] : info.uploadFileUrl;
|
||||
this.$emit('showFileReader', {
|
||||
fileFormat: info.fileFormat,
|
||||
fileUrl: baseUrl,
|
||||
title: info.name || info.title
|
||||
});
|
||||
// if (info.uploadFileUrl) {
|
||||
// if (info.uploadFileUrl.indexOf('.epub') > 0) {
|
||||
// this.baseUrl = 'epubjs/index.html#/epub-read?flow=scrolled&bookPath=' + baseUrl
|
||||
// this.showPdf = true
|
||||
// this.textInfo = info.name||info.title
|
||||
// } else {
|
||||
// // const baseUrl = this.resourceBasisPath + info.uploadFileUrl.split('./')[1]
|
||||
// this.baseUrl = `/pdfjs/web/viewer.html?file=${baseUrl}`
|
||||
// this.showPdf = true
|
||||
// this.textInfo = info.name||info.title
|
||||
// }
|
||||
// }
|
||||
} else {
|
||||
if (info.link) {
|
||||
window.open(info.link, '_blank');
|
||||
// this.$emit('showPdfRead', { type: 'link', url: info.link, pageType: this.pageType })
|
||||
} else {
|
||||
this.$message.warning('获取资源链接失败,请检查链接地址');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.blockData = Object.assign( this.blockData,this.pBlockData)
|
||||
}
|
||||
};
|
||||
|
||||
var __$_require_static_images_default_over_ebook_png__ = "2539d578aeabf7c9.png";
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
class: ["xml-ebook-container", "xml-ebook-container-" + _vm.pageType],
|
||||
attrs: { id: _vm.blockId },
|
||||
on: { click: _vm.blockClick },
|
||||
},
|
||||
[
|
||||
_vm.blockData.styleMode === "A"
|
||||
? _c(
|
||||
"div",
|
||||
{ staticClass: "resource-box xml-group-item" },
|
||||
_vm._l(_vm.blockData.ebookSetList, function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
key: index + Math.random(),
|
||||
staticClass: "workbench-shop-item",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.goRead(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("el-image", {
|
||||
staticClass: "shop-item-img-resource-first xml-round-6",
|
||||
attrs: {
|
||||
src: item.coverFileUrl
|
||||
? item.coverFileUrl.indexOf("./") !== -1
|
||||
? _vm.resourceBasisPath +
|
||||
item.coverFileUrl.split("./")[1]
|
||||
: item.coverFileUrl
|
||||
: __$_require_static_images_default_over_ebook_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "shop-item-desc" }, [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "show",
|
||||
rawName: "v-show",
|
||||
value: item.name,
|
||||
expression: "item.name",
|
||||
},
|
||||
],
|
||||
staticClass: "xml-ebook-title shop-item-desc-title",
|
||||
},
|
||||
[_vm._v(_vm._s(item.name))]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "show",
|
||||
rawName: "v-show",
|
||||
value: item.author,
|
||||
expression: "item.author",
|
||||
},
|
||||
],
|
||||
staticClass: "shop-item-desc-detail",
|
||||
},
|
||||
[_vm._v("作者:" + _vm._s(item.author))]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "show",
|
||||
rawName: "v-show",
|
||||
value: item.publisher,
|
||||
expression: "item.publisher",
|
||||
},
|
||||
],
|
||||
staticClass: "shop-item-desc-detail",
|
||||
},
|
||||
[_vm._v("出版社:" + _vm._s(item.publisher))]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "show",
|
||||
rawName: "v-show",
|
||||
value: item.isbn,
|
||||
expression: "item.isbn",
|
||||
},
|
||||
],
|
||||
staticClass: "shop-item-desc-detail",
|
||||
},
|
||||
[_vm._v("ISBN:" + _vm._s(item.isbn))]
|
||||
),
|
||||
]),
|
||||
],
|
||||
1
|
||||
)
|
||||
}),
|
||||
0
|
||||
)
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.styleMode === "B"
|
||||
? _c(
|
||||
"div",
|
||||
{ staticClass: "resource-box xml-group-item" },
|
||||
_vm._l(_vm.blockData.ebookSetList, function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
key: index + Math.random(),
|
||||
staticClass: "workbench-shop-item styleB",
|
||||
},
|
||||
[
|
||||
_c("iframe", {
|
||||
attrs: {
|
||||
width: "100%",
|
||||
height: "600",
|
||||
src:
|
||||
item.uploadFileUrl.indexOf(".epub") !== -1
|
||||
? "epubjs/index.html#/epub-read?flow=scrolled&bookPath=" +
|
||||
item.uploadFileUrl
|
||||
: item.uploadFileUrl.indexOf(".pdf") !== -1
|
||||
? "/pdfjs/web/viewer.html?file=" + item.uploadFileUrl
|
||||
: item.uploadFileUrl,
|
||||
frameborder: "0",
|
||||
},
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "xml-ebook-title title" }, [
|
||||
_vm._v(_vm._s(item.name)),
|
||||
]),
|
||||
]
|
||||
)
|
||||
}),
|
||||
0
|
||||
)
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.styleMode === "C"
|
||||
? _c(
|
||||
"div",
|
||||
{ staticClass: "resource-box resource-box-sytleC xml-group-item" },
|
||||
_vm._l(_vm.blockData.ebookSetList, function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
key: index + Math.random(),
|
||||
staticClass: "workbench-shop-item",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.goRead(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("el-image", {
|
||||
staticClass: "shop-item-img-resource xml-round-6",
|
||||
attrs: {
|
||||
src: item.coverFileUrl
|
||||
? item.coverFileUrl.indexOf("./") !== -1
|
||||
? _vm.resourceBasisPath +
|
||||
item.coverFileUrl.split("./")[1]
|
||||
: item.coverFileUrl
|
||||
: __$_require_static_images_default_over_ebook_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c("span", { staticClass: "xml-ebook-title" }, [
|
||||
_vm._v(_vm._s(item.name)),
|
||||
]),
|
||||
],
|
||||
1
|
||||
)
|
||||
}),
|
||||
0
|
||||
)
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.styleMode === "D"
|
||||
? _c(
|
||||
"div",
|
||||
{ staticClass: "resource-box resource-box-sytleD xml-group-item" },
|
||||
_vm._l(_vm.blockData.ebookSetList, function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
key: index + Math.random(),
|
||||
staticClass: "ebook_style_4 workbench-shop-item",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.goRead(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "left" },
|
||||
[
|
||||
_c("el-image", {
|
||||
attrs: {
|
||||
src: item.coverFileUrl
|
||||
? item.coverFileUrl.indexOf("./") !== -1
|
||||
? _vm.resourceBasisPath +
|
||||
item.coverFileUrl.split("./")[1]
|
||||
: item.coverFileUrl
|
||||
: __$_require_static_images_default_over_ebook_png__,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "right" },
|
||||
[
|
||||
_c(
|
||||
"el-tooltip",
|
||||
{
|
||||
staticClass: "item",
|
||||
attrs: { effect: "dark", placement: "top-start" },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "title-popper",
|
||||
attrs: { slot: "content" },
|
||||
slot: "content",
|
||||
},
|
||||
[_vm._v(_vm._s(item.name))]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "xml-ebook-title title-box" },
|
||||
[_vm._v(_vm._s(item.name))]
|
||||
),
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "book_info" }, [
|
||||
_vm._v(
|
||||
"文件大小:" +
|
||||
_vm._s(_vm._f("bytesToSizeNew")(item.fileSize))
|
||||
),
|
||||
]),
|
||||
],
|
||||
1
|
||||
),
|
||||
]
|
||||
)
|
||||
}),
|
||||
0
|
||||
)
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_c("PdfView", {
|
||||
attrs: {
|
||||
show: _vm.showPdf,
|
||||
baseUrl: _vm.baseUrl,
|
||||
textInfo: _vm.textInfo,
|
||||
},
|
||||
on: { handleClose: _vm.handleClose },
|
||||
}),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-7ea50222";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('ebook-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/ebook.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/ebook.min.css
vendored
Normal file
BIN
src/plugin/xml-digital-teaching/lib/f25e95524c42aff3.png
Normal file
BIN
src/plugin/xml-digital-teaching/lib/f25e95524c42aff3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
3
src/plugin/xml-digital-teaching/lib/group.css
Normal file
3
src/plugin/xml-digital-teaching/lib/group.css
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlGroup.vue.map */
|
||||
266
src/plugin/xml-digital-teaching/lib/group.js
Normal file
266
src/plugin/xml-digital-teaching/lib/group.js
Normal file
@ -0,0 +1,266 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
var script = {
|
||||
name: 'XmlGroupRender',
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
field: String,
|
||||
typeText: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
showLine: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
pBlockData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
BookName: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
//块儿数据名
|
||||
blockDataName: String
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isShowUp: false,
|
||||
isShowDown: false,
|
||||
//当前所处组的规则
|
||||
currentRule: {},
|
||||
mouseHover: false,
|
||||
showBtn: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const _this = this;
|
||||
this.$EventBus.$on('blockClick', function ({
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
if (_this.ruleIndex === ruleIndex) {
|
||||
_this.showBtn = true;
|
||||
} else {
|
||||
_this.showBtn = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
this.blockData = this.pBlockData;
|
||||
},
|
||||
methods: {
|
||||
hover() {
|
||||
this.mouseHover = true;
|
||||
},
|
||||
leave() {
|
||||
this.mouseHover = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
class: _vm.showLine ? "xml-group-box" : "",
|
||||
on: { mousemove: _vm.hover, mouseleave: _vm.leave },
|
||||
},
|
||||
[
|
||||
_vm.mode === "editor"
|
||||
? _c("span", { staticClass: "xml-group-type-text" }, [
|
||||
_vm._v(_vm._s(_vm.typeText)),
|
||||
])
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.showBtn && _vm.mode === "editor"
|
||||
? _vm._t("action-buttons")
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
class: [
|
||||
"xml-group-" + _vm.pageType,
|
||||
_vm.mode === "editor" ? "xml-group--editor" : "",
|
||||
_vm.mouseHover && _vm.mode === "editor" ? "hovered" : "",
|
||||
],
|
||||
},
|
||||
[_vm._t("default")],
|
||||
2
|
||||
),
|
||||
],
|
||||
2
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-35e9204b";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/group.min.css
vendored
Normal file
626
src/plugin/xml-digital-teaching/lib/html.js
Normal file
626
src/plugin/xml-digital-teaching/lib/html.js
Normal file
File diff suppressed because one or more lines are too long
19
src/plugin/xml-digital-teaching/lib/image.css
Normal file
19
src/plugin/xml-digital-teaching/lib/image.css
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
.xml-image-lun-bo .el-carousel__item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.el-image__inner[data-v-15928cc6] {
|
||||
width: 100% !important;
|
||||
}
|
||||
.xml-image-ping-pu-h5[data-v-15928cc6] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.xml-image-hua-lang[data-v-15928cc6] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
2218
src/plugin/xml-digital-teaching/lib/image.js
Normal file
2218
src/plugin/xml-digital-teaching/lib/image.js
Normal file
File diff suppressed because it is too large
Load Diff
1
src/plugin/xml-digital-teaching/lib/image.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/image.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.xml-image-lun-bo .el-carousel__item{text-align:center}.el-image__inner[data-v-15928cc6]{width:100%!important}.xml-image-ping-pu-h5[data-v-15928cc6]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-15928cc6]{display:flex;flex-direction:column;align-items:center}
|
||||
707
src/plugin/xml-digital-teaching/lib/imageText.css
Normal file
707
src/plugin/xml-digital-teaching/lib/imageText.css
Normal file
@ -0,0 +1,707 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixth.vue.map */
|
||||
|
||||
.xml-image-lun-bo .el-carousel__item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-pc[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
|
||||
.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 0.2s;
|
||||
}
|
||||
.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third {
|
||||
animation: fadeInOut 1s infinite 0.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;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTextDialog.vue.map */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.el-image__inner[data-v-15928cc6] {
|
||||
width: 100% !important;
|
||||
}
|
||||
.xml-image-ping-pu-h5[data-v-15928cc6] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.xml-image-hua-lang[data-v-15928cc6] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
54070
src/plugin/xml-digital-teaching/lib/imageText.js
Normal file
54070
src/plugin/xml-digital-teaching/lib/imageText.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/imageText.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/imageText.min.css
vendored
Normal file
@ -0,0 +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-15928cc6]{width:100%!important}.xml-image-ping-pu-h5[data-v-15928cc6]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-15928cc6]{display:flex;flex-direction:column;align-items:center}
|
||||
3185
src/plugin/xml-digital-teaching/lib/index.css
Normal file
3185
src/plugin/xml-digital-teaching/lib/index.css
Normal file
File diff suppressed because it is too large
Load Diff
175513
src/plugin/xml-digital-teaching/lib/index.js
Normal file
175513
src/plugin/xml-digital-teaching/lib/index.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/index.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/index.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1195
src/plugin/xml-digital-teaching/lib/layout.js
Normal file
1195
src/plugin/xml-digital-teaching/lib/layout.js
Normal file
File diff suppressed because it is too large
Load Diff
6844
src/plugin/xml-digital-teaching/lib/music.js
Normal file
6844
src/plugin/xml-digital-teaching/lib/music.js
Normal file
File diff suppressed because one or more lines are too long
765
src/plugin/xml-digital-teaching/lib/paragraph.css
Normal file
765
src/plugin/xml-digital-teaching/lib/paragraph.css
Normal file
@ -0,0 +1,765 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=ninth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=isosceles.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=tenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=quadrangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eleven.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=twelve.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=thirteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=wave.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme5.vue.map */
|
||||
.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 0.2s;
|
||||
}
|
||||
.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third {
|
||||
animation: fadeInOut 1s infinite 0.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;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-pc[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTextDialog.vue.map */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
58767
src/plugin/xml-digital-teaching/lib/paragraph.js
Normal file
58767
src/plugin/xml-digital-teaching/lib/paragraph.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/paragraph.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/paragraph.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.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}
|
||||
251
src/plugin/xml-digital-teaching/lib/question.css
Normal file
251
src/plugin/xml-digital-teaching/lib/question.css
Normal file
@ -0,0 +1,251 @@
|
||||
|
||||
.xml-question-container-h5[data-v-630ba314] {
|
||||
}
|
||||
.xml-question-container-pc[data-v-630ba314] {
|
||||
}
|
||||
.xml-question-container-pad[data-v-630ba314] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*# sourceMappingURL=QuestionItem.vue.map */
|
||||
.option-item + .option-item[data-v-2aeaa1c8] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8] {
|
||||
display: flex;
|
||||
background: #fbfbfb;
|
||||
border-radius: 6px;
|
||||
padding-left: 16px;
|
||||
cursor: pointer;
|
||||
transition: all ease 0.3s;
|
||||
border: 1px solid #fbfbfb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-2aeaa1c8] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isActive[data-v-2aeaa1c8] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item.isTrue[data-v-2aeaa1c8] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-2aeaa1c8] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=radio.vue.map */
|
||||
.content[data-v-091089da] {
|
||||
width: 100%;
|
||||
}
|
||||
.content .stem-content[data-v-091089da] {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 14px;
|
||||
height: auto;
|
||||
border: 1px solid #e7e7e7;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.content .stem-content.no-border[data-v-091089da] {
|
||||
padding: 0;
|
||||
border: none;
|
||||
cursor: default;
|
||||
}
|
||||
.content .stem-content .placeholder[data-v-091089da] {
|
||||
color: #c0c4cc;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=common.vue.map */
|
||||
.option-item + .option-item[data-v-2dab3356] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.option-item[data-v-2dab3356] {
|
||||
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-2dab3356] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-2dab3356] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isTrue[data-v-2dab3356] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-2dab3356] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-2dab3356]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-2dab3356] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.option-item[data-v-2dab3356] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=checkbox.vue.map */
|
||||
.image-file[data-v-506f1aca] {
|
||||
width: 218px;
|
||||
object-fit: scale-down;
|
||||
}
|
||||
.video-file[data-v-506f1aca] {
|
||||
width: 408px;
|
||||
}
|
||||
.file-render[data-v-506f1aca] {
|
||||
width: 100%;
|
||||
}
|
||||
.file-info[data-v-506f1aca] {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
.file-info.videoHandler[data-v-506f1aca] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.file-info.videoHandler .fileName[data-v-506f1aca] {
|
||||
font-size: 18px;
|
||||
color: #333333;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
.file-info.videoHandler .fileInfo[data-v-506f1aca] {
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=index.vue.map */
|
||||
[data-v-7628e470] .el-dialog__header {
|
||||
padding: 10px;
|
||||
}
|
||||
.video-content[data-v-7628e470] {
|
||||
width: 180px;
|
||||
height: 135px;
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.video-content .play[data-v-7628e470] {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
cursor: pointer;
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
}
|
||||
.video-mask[data-v-7628e470] {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.video-mask img[data-v-7628e470] {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50% -50%);
|
||||
display: block;
|
||||
}
|
||||
.video-player[data-v-7628e470] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=video-play.vue.map */
|
||||
.audio .audio-icon[data-v-25355b9e] {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.audio .audio-icon img[data-v-25355b9e] {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.audio .audio-controls[data-v-25355b9e] {
|
||||
width: 100%;
|
||||
max-width: 200px;
|
||||
flex: 1;
|
||||
height: 36px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--progress[data-v-25355b9e], .audio .audio-controls .audio-controls--handler[data-v-25355b9e] {
|
||||
width: 100%;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler[data-v-25355b9e] {
|
||||
line-height: 1;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play[data-v-25355b9e] {
|
||||
font-size: 24px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-25355b9e] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .current-time[data-v-25355b9e], .audio .audio-controls .audio-controls--handler .total-time[data-v-25355b9e] {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
.play-handler.mobile[data-v-25355b9e] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
.audio-component[data-v-25355b9e] {
|
||||
display: none;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__runway {
|
||||
margin: 0 0 4px 0;
|
||||
background: #e3e3e3;
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__bar {
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__button {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__button-wrapper {
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=audio-play-new.vue.map */
|
||||
20394
src/plugin/xml-digital-teaching/lib/question.js
Normal file
20394
src/plugin/xml-digital-teaching/lib/question.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/question.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/question.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.option-item+.option-item[data-v-2aeaa1c8]{margin-top:16px}.option-item[data-v-2aeaa1c8]{display:flex;background:#fbfbfb;border-radius:6px;padding-left:16px;cursor:pointer;transition:all ease .3s;border:1px solid #fbfbfb}.option-item .questionSeq[data-v-2aeaa1c8]{padding:8px 0}.option-item.isActive[data-v-2aeaa1c8]{border-color:#2e9adb}.option-item.isTrue[data-v-2aeaa1c8]{border:1px solid #70b603}.option-item.isTrue[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner{border-color:#70b603;background:#70b603}.option-item.isFalse[data-v-2aeaa1c8]{border:1px solid #d9001b}.option-item.isFalse[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner{border-color:#d9001b;background:#d9001b}.option-item[data-v-2aeaa1c8]:hover{background:#ddd}.option-item[data-v-2aeaa1c8] .content{cursor:pointer}.option-item[data-v-2aeaa1c8] .stem-content.no-border{padding:8px 14px!important;cursor:pointer}.content[data-v-091089da]{width:100%}.content .stem-content[data-v-091089da]{width:100%;box-sizing:border-box;padding:5px 14px;height:auto;border:1px solid #e7e7e7;border-radius:6px;cursor:pointer}.content .stem-content.no-border[data-v-091089da]{padding:0;border:none;cursor:default}.content .stem-content .placeholder[data-v-091089da]{color:#c0c4cc;font-size:14px;cursor:pointer;user-select:none}.option-item+.option-item[data-v-2dab3356]{margin-top:16px}.option-item[data-v-2dab3356]{display:flex;background:#fbfbfb;border-radius:6px;padding-left:16px;cursor:pointer;transition:all ease .3s;border:1px solid #fbfbfb}.option-item.isActive[data-v-2dab3356]{border-color:#2e9adb}.option-item .questionSeq[data-v-2dab3356]{padding:8px 0}.option-item.isTrue[data-v-2dab3356]{border:1px solid #70b603}.option-item.isTrue[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner{border-color:#70b603;background:#70b603}.option-item.isFalse[data-v-2dab3356]{border:1px solid #d9001b}.option-item.isFalse[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner{border-color:#d9001b;background:#d9001b}.option-item[data-v-2dab3356]:hover{background:#ddd}.option-item[data-v-2dab3356] .content{cursor:pointer}.option-item[data-v-2dab3356] .stem-content.no-border{padding:8px 14px!important;cursor:pointer}.image-file[data-v-506f1aca]{width:218px;object-fit:scale-down}.video-file[data-v-506f1aca]{width:408px}.file-render[data-v-506f1aca]{width:100%}.file-info[data-v-506f1aca]{flex:1;min-width:0}.file-info.videoHandler[data-v-506f1aca]{display:flex;flex-direction:column;justify-content:center}.file-info.videoHandler .fileName[data-v-506f1aca]{font-size:18px;color:#333;margin-bottom:19px}.file-info.videoHandler .fileInfo[data-v-506f1aca]{font-size:14px;color:#666;margin-bottom:19px}[data-v-7628e470] .el-dialog__header{padding:10px}.video-content[data-v-7628e470]{width:180px;height:135px;border-radius:6px;overflow:hidden;position:relative}.video-content .play[data-v-7628e470]{position:absolute;left:50%;top:50%;cursor:pointer;transform:translateX(-50%) translateY(-50%)}.video-mask[data-v-7628e470]{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-mask img[data-v-7628e470]{position:absolute;left:50%;top:50%;transform:translate(-50% -50%);display:block}.video-player[data-v-7628e470]{width:100%}.audio .audio-icon[data-v-25355b9e]{width:36px;height:36px;margin-right:20px}.audio .audio-icon img[data-v-25355b9e]{width:100%;height:100%;display:block}.audio .audio-controls[data-v-25355b9e]{width:100%;max-width:200px;flex:1;height:36px}.audio .audio-controls .audio-controls--handler[data-v-25355b9e],.audio .audio-controls .audio-controls--progress[data-v-25355b9e]{width:100%}.audio .audio-controls .audio-controls--handler[data-v-25355b9e]{line-height:1}.audio .audio-controls .audio-controls--handler .play[data-v-25355b9e]{font-size:24px}.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-25355b9e]{width:22px;height:22px;display:block;cursor:pointer}.audio .audio-controls .audio-controls--handler .current-time[data-v-25355b9e],.audio .audio-controls .audio-controls--handler .total-time[data-v-25355b9e]{font-size:12px;color:#333}.play-handler.mobile[data-v-25355b9e]{width:20px;height:20px}.audio-component[data-v-25355b9e]{display:none}[data-v-25355b9e] .el-slider__runway{margin:0 0 4px 0;background:#e3e3e3;height:4px}[data-v-25355b9e] .el-slider__bar{height:4px}[data-v-25355b9e] .el-slider__button{width:10px;height:10px}[data-v-25355b9e] .el-slider__button-wrapper{top:-15px}
|
||||
111
src/plugin/xml-digital-teaching/lib/render.css
Normal file
111
src/plugin/xml-digital-teaching/lib/render.css
Normal file
@ -0,0 +1,111 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=render.vue.map */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.preview-container-h5[data-v-25742cb8] {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.preview-container-pc[data-v-25742cb8] {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.preview-container-pad[data-v-25742cb8] {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.preview-container[data-v-25742cb8] .el-dialog__wrapper.preview-box-dialog {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.preview-container[data-v-25742cb8] .el-dialog__wrapper.preview-box-dialog .el-dialog:not(.is-fullscreen) {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.preview-container[data-v-25742cb8] .el-dialog__wrapper.preview-box-dialog .el-dialog__header {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=PreviewLooseLeaf.vue.map */
|
||||
10158
src/plugin/xml-digital-teaching/lib/render.js
Normal file
10158
src/plugin/xml-digital-teaching/lib/render.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/render.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/render.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.preview-container-h5[data-v-25742cb8]{padding-top:15px}.preview-container-pc[data-v-25742cb8]{padding-top:15px}.preview-container-pad[data-v-25742cb8]{padding-top:15px}.preview-container[data-v-25742cb8] .el-dialog__wrapper.preview-box-dialog{display:flex;align-items:center}.preview-container[data-v-25742cb8] .el-dialog__wrapper.preview-box-dialog .el-dialog:not(.is-fullscreen){margin-top:0!important}.preview-container[data-v-25742cb8] .el-dialog__wrapper.preview-box-dialog .el-dialog__header{padding:0}
|
||||
6
src/plugin/xml-digital-teaching/lib/resource.css
Normal file
6
src/plugin/xml-digital-teaching/lib/resource.css
Normal file
@ -0,0 +1,6 @@
|
||||
.preview-item-file[data-v-2be4d8c2]:hover,
|
||||
.slip-over-cover[data-v-2be4d8c2]:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlResource.vue.map */
|
||||
976
src/plugin/xml-digital-teaching/lib/resource.js
Normal file
976
src/plugin/xml-digital-teaching/lib/resource.js
Normal file
@ -0,0 +1,976 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 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==";
|
||||
|
||||
var resource = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAMAAAChHKjRAAAAAXNSR0IArs4c6QAAAqNQTFRFAAAAiXb/kG/0inD6inX6jW72jXL2eGLpe2fuinL2i3H3iHf6i3L5dmTvjHH3inP4inH2i3L2d2TuhW7vjHH5d2TqjnH5fWnyd2bskHb5jXX1jHH2i3H3i3H4i3H4d2Xsd2Xqi3H4cmLoi3L4inH3i3L3inL3i3L3jHL3hG3zi3L3jHL4jnT5i3L3i3L3jHH2bl/nb2DncFfwcF/ncWHncWHocWHpcljxclnxcmLpc1f0c2Lpc2Lqc2Ppc2PqdGPpdGPqdVX3dVrydl7xd1n2d1r1d1r2d1z0d2TreFr2eFv2eFz2eGDweGDxeGbseVz2eV32el32e171e172e2H1e2PyfWD3fWH2fWL1fmH2fmL2fmP2f2P3f2T2gGrygWX2gWb2gWf2gWzxgWzzgmj2gmzyg2j3g2v1g23zg27xhGn3hGr2hG3zhHDxhW7zhW70hmv4hnHxh233h273h3D0h3LyiG73iW34iXD3iXH2inD3inH3inH4inP2i3D4i3H3i3L3i3P3i3P4jHL3jHL4jHL5jHP3jHP4jHT3jXP4jXP5jXT3jXT4jXT5jXf1jXryjnT5jnX4jnf3j3T5j3T6kX31kYDxkoLxk3v4k4PxlX74lYbxl4L2mInymYP4moT4m4n1n5HzoIz4oY35ppP5ppb2p5rzqZb5rp/4saH5s6P5s6T4tKX5tav1tqn4t6j5uan7urH1vKz8vrH5wbn2x7v7yL37yMH2yb77yb/6ycT2zMH7zMH8zML7zcj2zsT6zsT8z8X70Mb70Mv30sf80sn808741dL31dL41s3819D719P42M/929L93NX84N746OL+6Of67uj/8fH79PD/9fb8+Pn9+vf/+vn//fv//f3//f79/v3//v7////9///+////+rYR5QAAADB0Uk5TAA0XMjI6OkZNVVpefX+HjJCRkpSeoausra2vs7W2t7i5v8TN1tbd3t/o6+7v8PH8u0jmrQAAAe5JREFUOMtjYGBgYBZQ1sMAOpoKHAwIwN+ADUzIMXTgJaAGqMjM2l4IqoatGqciB1sHUYgiyUrcihwcrCXAilQacCjKAClysJEHKVLHpSjf1A6kylIJj6Lmdg8DkCIHE3EGBjUcihp6K/1MwcCYHbeihgmdeakgkCyMqai+HsZqnzB5AhBMkUJT1FYd6+Ud39CGIiiHoqitIth/3rats9zC65GVSSMp6ijyDl985M6DBzf2zA8IrmrDpqg7K2H5uQdQcHRRVHEbFkUpMy48QAJns4uxKIqZcw9Z0enEMiyKJkaUrr0GU3J4dmhWNxZF4RvOLshdexuk5Ni0zM2XlkRjUeSy/8GDM1MLt1w+MTNp9c0HD9Z7YlHkvwNkyIESZ6MV10GslYHYFO0Gu+aK4yaIs7ArOgSRnHQKQq/CpsjtJFjubvdBiKI1XlgUhS0Fy91q3Aumr/alYVHUHLLwPEhRw04geX9Xf3QPFkVtna4+yy4+eFBx6MH9fdPNIydiTQUNPeVWcRu3x647PtcisKsNe1IBRU2Bu1NVum9Qa3dDA05FDQ0tLW01dagJE1MRNkCkInXCimQYNAgrkmVQJaxIhEGslpCaem4GVoIG6TMyMAgSUNPEBSqh+PCq0eaElIgsgsq6eliBliIPE1ABAEFwqt5aEHsEAAAAAElFTkSuQmCC";
|
||||
|
||||
var image = {
|
||||
leaflet: {
|
||||
epub,
|
||||
resource
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// import { OuchnOss } from '@/api/business/file/OuchnOss'
|
||||
// import { defaultCover } from '@/assets/remote'
|
||||
|
||||
var script = {
|
||||
name: 'XmlResourceRender',
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//属性中传递过来的块儿数据
|
||||
pBlockData: {},
|
||||
//块儿数据名
|
||||
blockDataName: String,
|
||||
//页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
officePreviewPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pBlockData: {
|
||||
handler(newValue) {
|
||||
this.$nextTick(() => {
|
||||
this.blockData = Object.assign({}, this.blockData, newValue);
|
||||
});
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
ouchnOss: null,
|
||||
image,
|
||||
blockId: 'blockId' + Math.random(),
|
||||
//当前块儿数据,一般用不到,因为一般的块儿中不会在块儿内更改数据
|
||||
blockData: {},
|
||||
//属性组件名
|
||||
propertyComponentsName: 'xml-resource-property'
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// isNotLocalView() {
|
||||
// return !(process.env.VUE_APP_ENV === 'localview')
|
||||
// }
|
||||
},
|
||||
methods: {
|
||||
// 此方法必须要,用户注册块儿点击事件
|
||||
blockClick() {
|
||||
this.$emit('blockclick', {
|
||||
blockData: this.blockData,
|
||||
dataName: this.blockDataName,
|
||||
propertyComponentsName: this.propertyComponentsName,
|
||||
blockId: this.blockId,
|
||||
ruleIndex: this.ruleIndex
|
||||
});
|
||||
},
|
||||
countFileSize(fileSize) {
|
||||
if (!fileSize) return;
|
||||
if (fileSize < 1024) {
|
||||
return fileSize + 'B';
|
||||
} else if (fileSize < 1024 * 1024) {
|
||||
var temp = fileSize / 1024;
|
||||
temp = temp.toFixed(2);
|
||||
return temp + 'KB';
|
||||
} else if (fileSize < 1024 * 1024 * 1024) {
|
||||
var temp = fileSize / (1024 * 1024);
|
||||
temp = temp.toFixed(2);
|
||||
return temp + 'MB';
|
||||
} else {
|
||||
var temp = fileSize / (1024 * 1024 * 1024);
|
||||
temp = temp.toFixed(2);
|
||||
return temp + 'GB';
|
||||
}
|
||||
},
|
||||
downloadFile(item) {
|
||||
let data = {
|
||||
...item
|
||||
};
|
||||
data.coverFileUrl = this.resourceBasisPath + data.coverFileUrl.split('./')[1];
|
||||
data.uploadFileUrl = this.resourceBasisPath + data.uploadFileUrl.split('./')[1];
|
||||
this.$emit('downloadFile', data);
|
||||
},
|
||||
// 无数据时
|
||||
noFileUrlClick() {
|
||||
this.$message.warning('没有目标文件');
|
||||
},
|
||||
downloadFileUrl(item, fileName) {
|
||||
let data = {
|
||||
...item
|
||||
};
|
||||
if (item.uploadFileUrl.indexOf('http') === -1) {
|
||||
data.coverFileUrl = this.resourceBasisPath + data.coverFileUrl.split('./')[1];
|
||||
data.uploadFileUrl = this.resourceBasisPath + data.uploadFileUrl.split('./')[1];
|
||||
}
|
||||
if (this.mode == 'preview') {
|
||||
this.$emit('downloadFileUrl', {
|
||||
item,
|
||||
fileName,
|
||||
resourceType: this.blockData.resourceType
|
||||
});
|
||||
} else {
|
||||
this.$message.warning('资源仅支持在预览时下载');
|
||||
}
|
||||
},
|
||||
// 跳转office在线预览
|
||||
previewToPathClick(item) {
|
||||
console.log(item);
|
||||
if (this.mode == 'preview') {
|
||||
// if (item.fileFormat == 'pdf') {
|
||||
// // const pdfUrl = '/pdfjs/web/viewer.html?file=' + encodeURIComponent(item.uploadFileUrl)
|
||||
// this.$router.push({
|
||||
// path: '/webView',
|
||||
// query: {
|
||||
// baseUrl: encodeURIComponent('/pdfjs/web/viewer.html?file=' + item.uploadFileUrl),
|
||||
// title: item.title
|
||||
// }
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
if (item.fileFormat == 'zip' || item.fileFormat == 'rar' || item.fileFormat == '7z') return;
|
||||
if (item.fileFormat == '无') {
|
||||
this.$message.warning('没有目标文件');
|
||||
return;
|
||||
}
|
||||
if (item.fileFormat == '外部链接' && !item.link) {
|
||||
this.$message.warning('获取资源链接失败,请检查链接地址');
|
||||
return;
|
||||
}
|
||||
if (item.fileFormat == '外部链接') {
|
||||
window.open(item.link);
|
||||
return;
|
||||
}
|
||||
let url = this.resourceBasisPath + item.uploadFileUrl.split('./')[1];
|
||||
this.$emit('showFileReader', {
|
||||
fileFormat: item.fileFormat,
|
||||
fileUrl: url,
|
||||
title: item.title
|
||||
});
|
||||
// if (item.uploadFileUrl.indexOf('http') === -1) {
|
||||
// window.open(
|
||||
// (this.officePreviewPath ? this.officePreviewPath : 'https://view.officeapps.live.com/op/view.aspx?src=') +
|
||||
// this.resourceBasisPath +
|
||||
// item.uploadFileUrl.split('./')[1]
|
||||
// )
|
||||
// } else {
|
||||
// window.open(
|
||||
// (this.officePreviewPath ? this.officePreviewPath : 'https://view.officeapps.live.com/op/view.aspx?src=') +
|
||||
// item.uploadFileUrl
|
||||
// )
|
||||
// }
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// if (this.isNotLocalView) {
|
||||
// this.ouchnOss = new OuchnOss(true)
|
||||
// }
|
||||
}
|
||||
};
|
||||
|
||||
var __$_require_static_images_default_over_resource_png__ = "f25e95524c42aff3.png";
|
||||
|
||||
var __$_require_static_images_leaflet_icons_download_bule_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAAAXNSR0IArs4c6QAAAkVJREFUSEvtlEtoE1EUhv9zJ6lpCkYzBl3oSouioosiWII2kwas4gMXdeFSt0ViR0lXmu6UNpN0IejGunGhIPjowlczWdiN6ELFhYgbG8RHJglYsWSSe2QC1dqal5CF4F0Nc8//f3P/O+cQ2ryozf5oCRBOWpPMiCiCgo+j/vfNfFxLAM2wXgPYCpZHTD1wtw2AXAagPjBHTH3N9H/AsgQ041+IqOcKu/3FXOBRLPBh6RHqnSByIe8TSmnFw7PrPi/WLftNtVThHKQcJaKL6dP+kcXFtQB9qdwuIWkGwDdzWF1dH5DMB8E8BWAVBCbNqHpiQfATIDBgRtUHznstVTgMKe84z8QYTetqvC7A2ew1Zjs98DqNFAHwrGTL8Ews8FUzrCcAgkLQzumo/2UoacWJcd7RMLA/M6zeXxpr3U7WjNx1gI4D4pNS4s2VDk4AOMlwdTPKhwRgAPgOLvea+toXf2q8hqMibFjjDOgALAAfAWwD8TswbSTglbRxIBNTs7W6uiGgmrNhHQNw47dsmW6ndf/RRuOiKYBj0p/4okkSzvwhMF0ydf9QI/PBm6zQ3on8lMuW2+c8HT1Ph1Y6MdRc/WP5HVJwt6mrtxqZa+PWVSjYR7uvFdiXraDk5i1mLPCmkbDZfc2wZgGsp+DlXNFbgM/uog2ZU7Uvq1njhbpQMv9WsNxEexLFMY8snZnvVJ6zVEbcJRQAu1W/X/Xc4bK9GFDsctxVRrl6yaGJ/D3FrhxkEsyEub93ryoVkuwlwdl5T9fgD6jm9+bSxCy2AAAAAElFTkSuQmCC";
|
||||
|
||||
var __$_require_static_images_leaflet_icons_resource_icon_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAqdJREFUSEvFls9LVFEUx7/fOzZTiWPjFKhgUG5Mg0QNQQpRgpCC/ol+ULSwtlFQQctcucj8I2oRVAszDENwrMBRCWpTGdX8yNFsZsx74j5nnjqN43tPpbN73HPO59x7frxDFEg0Lo2EPi9gDwSHrGPiIyFPBWqwKcypQhs338wrR0X8TOr7IrwMQG3gRAPyMLiortXV8bcbUF7XAhoYEvIEwCmHToZQxZ4mMutQ31azgJOx5X6SV9wYk9LfWOW76sbGyk40Lk2AvAPgc2csqPfNLAWYjgGYAvEc8D1isPl9KT+cjC/3Eex1B1vRrlLfUa2+FJqOQPEmK1peFvPJaFxPA2jwAgwwjXqfMf9HBMQAKlK9ZFd67akBZgD4vQAJwZGyt6VMXwOZs6zsSNhVuhWggkZDmUl/SRnDL+lmbdtirmh25EnXRyAc5L6WCxZwa0XzA9Xq82Y3NOcCxS5TSJxKyFERMYnw0hYwheNQXrGy9aTnxg+pGGrUJ4esnJpmsz3a/Mn0dFYCh514KOc8Dvo+wFSpO+Ede3jrn2+Gv0ltZ0IfKOnD3Mw0O6HdsayK4bANlLnILICajOxGUvZjQYJYEr91i13MwtwqxJibnBUL6OtaoOcB4OKq2f8KtJ7URbReVNc8aSoyBEGXFy+ObdYXzcRtQG45NvakyLurOUxOHIOyJs7OSb7x8wSZi4wAOLFDxNXRZgPnJzqh5YW1GG6vCLTuZuj4auPb0FTkAQQXt5VHDDDYeskaNoWOZXZ8L8o5BKB9m6Drf8DFnEpqLAwpM3vqVqFj4J8zDLbH85wNcyUyugfzgb7c87rN6coStSDX86vFpsCCQroHoMPhE49C6xumQIrpO45cUuMN0OoclJw2yxqAcM5hHMQ0NJ9B6ccMts2UCuwvOp8JMVRGUysAAAAASUVORK5CYII=";
|
||||
|
||||
var __$_require_static_images_leaflet_icons_resource_elliptic_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAAaCAYAAAB2KPSUAAAAAXNSR0IArs4c6QAAB3VJREFUaEPtmttuJLcRhr+q7jlpd+WDhDgGBGOBXMW+i19gkQcP9gWcOztXARaGAMeBNra1kmamp8kKimzOQZqRRtqRIBsjgOKxe9isn1Wsvyjs//YrsLQCsl+N/Qosr8AeEHs8rKzAswaEmd1nfvcZ+xgwsG1fKiJbj932nbsa96SLuEHAy3OQtyCvQEYgfZD6HVLXyM8V0lPS2FqRSpCqq6vk9nNv68peL+XSXxZNyePv+ouwIrhouR66vJQPu/q8P2I+po15/CxiXwSsbbH2NdaAjcE+gL3Jv7H8OzfA8pQA2mph7lo4718j7PLuJOQ/gR68Q98PUBfsoEJ7FepC7CtaCzq5Sm1VUOpeRR2aXK6EKgqVempRL4t0OagKGlrU2zwFEClJUEC8zeeZ2mNqS+V132adgEyJpVx1gjPLbZ68LdWNWNXEmPuiGsHbvK41IRrB24IRqkhb9QmzQOvlWSAMD4itEZtIdHDNAnEaiA6koynx6jXxvxCvgWcFOLsCzYMAsSR8fz4J/ASq4Sl6PqDqV+i4ouop2o6pY01PKvr9GT2r6BPoo/RN6XnZc4PaIr1K6RPpI12y1NfD6CH0hFibUGPU4s9Ies4BUllSCimpORBiBoiRQZExkv7l/lv+pBNu3r0uf9x+JeH7m0u/QRBXGkYQJYjRGrQIbS5rizFDmAk5x2hSUpoQaURTXyuRGRVNyiNNKgeapsfMAo22zOoR7SwSR4HQBOLhlDA5IZ5CWAJMAstDQLIVIDoApMX8DvSLU2oXfNOjflnTu2oY1IGh1oxCZCjKUCKDoAzVGCIMzThQGJkwwuIIOPB2zOs+RjIIXPBQuWVIQjbqIugVgecxLtSKLHw3Fl4vyQ110hQZDEvJ0tjbv93NgMzVeVHrSTPIQs1HwA2Dg8Sf8HpIbTmFOWA64IjQOnhw0PjYOUCsQZggjDEmwBWiYzHGEcYiXHl7FCZVZGLK1CKTSpnElnFbMTnoM71omfVntA6Un09ov83zyIDe4uyycVEKCN6Cvn5H3R7Sp89g1nJgkRcYL4GXKa94JXAY4VCIrzBeeZ/BgYi4wAdAv0u+27Pwc1vSAL7bMfxU4IK+KcTVNv/CLGwXW9b/cxPVbfyVs8k1ZbDVRrhm25NlXHpPKee8nCskm5MONOWZOaCKcOa5g0OSqWmTBskpaxChmde9TZia2VgcLHCB8MHQDwrnBucEPiBcdH0Xolz2aq5omNbnNO9e077pALIJHOttqJn+AHV1xiDCyyB8ivAZwucSORLhGIlHGJ8Dn/o5UIQD890Owy45CAau2jshX9+9KhkAPodOpd/YtdsKrjsSbHPaebQx9/Ecro8tgHFt475VdPPUgaZoG+9z8LhmmXbJNclEhLGZg8TPqfyK8D9M35txZsp7zOv8Uhm/KlyEY6ZfOwD9NHXXTjEzPT1lcDnkM4MvTfgK4SsjnmD8GZEjgU+MpAVeQAKB7/R6rsKLKs+7etlWrxPwfYT+aNJ8Ri9eB6zltgKUYppK7kBxjTIGLgXXHvyG2XuE/wh6ivGjeIKfXkz45eSE6XVQrAjDzcQP0KvOOI7KN1H4mxC/IYqD4hg4TLbfD3kZAAUERei3qelntOZ/iKmsM19Fmzg4PLn5cfNyjnGG2o+Gfq/GPzXyfTjm7GuYLZuPG4D47idGL4b8xYy/m9gbjL9CAoNrAgdCUf3PQU3/IST7CB9RwFIA4sBwzXGG8C8xeSvCPy4n/PvbL/3AuiDK9oB4BGk8g1fuDhB7k/EMxLndFB7fZHSM48ccKgs3kPmB/aFyO9GujrrvobJwH7s/VJZ5uaexye3U6C4nx1g8cjcU+GSD2+nuZ+IZls4dy6TR3u1cAGE7tzO7opmnIJFX69zO35KbKeru5llUzj7K7VwCRaGl1xFTTki5y7mOmDqck1bulmZiqpBQOc809E1iasE+PiYxdV83d1PgaTfE1ILRXEdMFeE7ADJRZR4X47KQT4aebyCmLkW52AkxdV3PPYi6NoZBGDh1LcYoCqNEXZuzl3FkMBJJdaevV6jrFKNwcCxILXdvPVahHqvozFHRNpm6dpJrYaJSuWMzS3v2ihZk2N3qPNPXxe/PFpVEGi12dCGQfNxm6nqh1jtyKcU/csyji21k6lqEiRnORo7NNFHWTl2rMTZhnKhrY2o+7imp69tW66HBLVr6vS6gtS645ZpEhV6MDDzvYhtOc/c88IV4QOvu4JZ5NDRHNCWV57S3OKDuDGyVb18EuCyBIlHSOQ5hHgn18pbBrdYDWF2QK9HS0ZipMvXcd/6m4NbMA101zbMKbt29lW4Pf3tAzO837CL8HdsUBk9RzBQGXxP+jlmTpABWAcM8JO7k76J946elsLfTyNUi1F1AkdrBtIt+PkX42+9PLAWqSoxkPv9tAlfbyPG+9nSbd25e5PU3oFbYzYdekPF7Ff7D5VLM8kWZ5Qsy216OKR+xfEmmXIDxvnJJpuR+j2F/Qeaj4HH3w/srdHev0a5HPKmG2PXk9+/b/QrsAbH7Nf1dv3EPiN+1+HY/+f8DdDLzV5L1opoAAAAASUVORK5CYII=";
|
||||
|
||||
var __$_require_static_images_leaflet_icons_download_white_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAjlJREFUSEvtlcurjWEUh59fSpFLJOUUcquDciuXRExkrkxMMDkGkpPEgAEDipJIIuU2MPAnKJLEQK4hhDoZSCEhcv1p7dbJbnf23t+3nW201+Sr911rPd+6vqJFsT0NeJ7mOyUdLONKZZSrdW1PBV7kWa+kI2V8/Qt4CvAyYVskHeuAG2Wgk+rC/WG701yDN062J0p6NVD+i6ba9gTgvaRv1X7qdrXtS8AqYI+kvbXwImDb64DzuVpnSnK/n0bgR8CsVNwnaXfNymzYXLY3AqfT5hcwVNLvIuAxwA2gO5X3S9rVb9goYtvrgbOpGyleKulOoVSHku3hwGNgchodkrQ972YAz/J8q6Sjed4DnMzz78AiSfdrS9V0c9keD1wHAhRSidz2WOBdnvVIOlWT3oh0uaRbAzVnU3BGMQ64CUxPJ5slHbf9BRgGrAA+A7fz/gewWNLdehupEDjhAYi/n53OLgArgS7gakQHDAG+AkskPWi0BguDEz4y0z6njtOALpD0pBE07kqBqxruIRDjVC0/gfmS4q6plAYnfFTWs7/mUdOItBC0ErHtgG8D3ko61/RXU8H26KxtfNdIulfCdlmA1wIX06hL0uuiDlrRsx1N+jHAO4AD6aRb0tNWHBa1yb3wJsC9wOH/GPGISlltbwDOJHhus/krGlk9Pdsxkh8CPAnoS8XLwGpJ8Zq0RWyfADZVxsl2PF/xjIV8Aq4B7YDPAyLQvwvE9hVgIRA1aKfEdutraYEMxl/9AUsz/weMzneQAAAAAElFTkSuQmCC";
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
class: "xml-resource-container-" + _vm.pageType,
|
||||
attrs: { id: _vm.blockId },
|
||||
on: { click: _vm.blockClick },
|
||||
},
|
||||
[
|
||||
_c("div", { staticClass: "resource-box" }, [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
class: [
|
||||
"preview-container-resource",
|
||||
"preview-container-resource-" + _vm.mode,
|
||||
],
|
||||
},
|
||||
[
|
||||
_vm.blockData.styleMode == "A" || !_vm.blockData.styleMode
|
||||
? _c(
|
||||
"div",
|
||||
[
|
||||
_vm.blockData.resourceSetList &&
|
||||
_vm.blockData.resourceSetList.length
|
||||
? _vm._l(
|
||||
_vm.blockData.resourceSetList,
|
||||
function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
key: index,
|
||||
staticClass:
|
||||
"workbench-shop-item resource-style1 xml-group-item",
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"shop-item-img slip-over-cover",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.previewToPathClick(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("el-image", {
|
||||
staticClass:
|
||||
"shop-item-img-resource xml-round-6",
|
||||
attrs: {
|
||||
src: item.coverFileUrl
|
||||
? item.coverFileUrl.indexOf("./") !==
|
||||
-1
|
||||
? _vm.resourceBasisPath +
|
||||
item.coverFileUrl.split("./")[1]
|
||||
: item.coverFileUrl
|
||||
: __$_require_static_images_default_over_resource_png__,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "shop-item-desc" }, [
|
||||
_c("div", { staticClass: "filecont" }, [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"xml-resource-title shop-item-desc-title preview-item-file",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.previewToPathClick(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_vm._v(
|
||||
"\n " +
|
||||
_vm._s(
|
||||
item.title
|
||||
? item.title
|
||||
: "资源样例"
|
||||
) +
|
||||
"\n "
|
||||
),
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "shop-item-desc-detail" },
|
||||
[
|
||||
_vm._v(
|
||||
"\n 文件格式:" +
|
||||
_vm._s(
|
||||
item.fileFormat
|
||||
? item.fileFormat
|
||||
: "无"
|
||||
) +
|
||||
"\n\n "
|
||||
),
|
||||
_vm.blockData.resourceType == "0" &&
|
||||
item.source != ""
|
||||
? _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "pointer",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.downloadFileUrl(
|
||||
item,
|
||||
item.title +
|
||||
"." +
|
||||
item.fileFormat
|
||||
)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("img", {
|
||||
staticClass:
|
||||
"shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_download_bule_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(
|
||||
"立即下载\n "
|
||||
),
|
||||
]
|
||||
)
|
||||
: _vm._e(),
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "shop-item-desc-detail" },
|
||||
[
|
||||
_vm._v(
|
||||
"\n 文件大小:" +
|
||||
_vm._s(
|
||||
_vm.countFileSize(item.fileSize)
|
||||
? _vm.countFileSize(
|
||||
item.fileSize
|
||||
)
|
||||
: "无"
|
||||
) +
|
||||
"\n "
|
||||
),
|
||||
]
|
||||
),
|
||||
]),
|
||||
]),
|
||||
]
|
||||
)
|
||||
}
|
||||
)
|
||||
: [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"workbench-shop-item resource-style1 xml-group-item",
|
||||
},
|
||||
[
|
||||
_c("div", { staticClass: "shop-item-img" }, [
|
||||
_c("img", {
|
||||
staticClass: "shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_default_over_resource_png__,
|
||||
},
|
||||
}),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "shop-item-desc" }, [
|
||||
_vm._m(0),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.resourceType == "0"
|
||||
? _c(
|
||||
"div",
|
||||
{ staticClass: "shop-item-desc-detail" },
|
||||
[
|
||||
_c("div", [
|
||||
_c("img", {
|
||||
staticClass:
|
||||
"shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_download_bule_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v("立即下载\n "),
|
||||
]),
|
||||
]
|
||||
)
|
||||
: _vm._e(),
|
||||
]),
|
||||
]
|
||||
),
|
||||
],
|
||||
],
|
||||
2
|
||||
)
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.styleMode == "B"
|
||||
? _c(
|
||||
"div",
|
||||
[
|
||||
_vm.blockData.resourceSetList &&
|
||||
_vm.blockData.resourceSetList.length
|
||||
? _vm._l(
|
||||
_vm.blockData.resourceSetList,
|
||||
function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
key: index,
|
||||
staticClass:
|
||||
"style-mode__item--body xml-group-item",
|
||||
},
|
||||
[
|
||||
_c("div", { staticClass: "right" }, [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "title",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.previewToPathClick(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("img", {
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_resource_icon_png__,
|
||||
alt: "",
|
||||
},
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"span",
|
||||
{ staticClass: "xml-resource-title" },
|
||||
[
|
||||
_vm._v(
|
||||
_vm._s(
|
||||
item.title
|
||||
? item.title
|
||||
: "资源样例"
|
||||
)
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "downloadbtn" }, [
|
||||
_vm.blockData.resourceType == "0" &&
|
||||
item.source != ""
|
||||
? _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "pointer",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.downloadFileUrl(
|
||||
item,
|
||||
item.title +
|
||||
"." +
|
||||
item.fileFormat
|
||||
)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("img", {
|
||||
staticClass:
|
||||
"shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_download_bule_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(
|
||||
"立即下载\n "
|
||||
),
|
||||
]
|
||||
)
|
||||
: _vm._e(),
|
||||
]),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "left" }, [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "default-cover",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.previewToPathClick(item)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("el-image", {
|
||||
staticClass:
|
||||
"shop-item-img-resource xml-round-6",
|
||||
attrs: {
|
||||
src: item.coverFileUrl
|
||||
? item.coverFileUrl.indexOf(
|
||||
"./"
|
||||
) !== -1
|
||||
? _vm.resourceBasisPath +
|
||||
item.coverFileUrl.split("./")[1]
|
||||
: item.coverFileUrl
|
||||
: __$_require_static_images_default_over_resource_png__,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "cover-bot-elliptic" },
|
||||
[
|
||||
_c("img", {
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_resource_elliptic_png__,
|
||||
alt: "",
|
||||
},
|
||||
}),
|
||||
]
|
||||
),
|
||||
]),
|
||||
]
|
||||
)
|
||||
}
|
||||
)
|
||||
: [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"style-mode__item--body xml-group-item",
|
||||
},
|
||||
[
|
||||
_c("div", { staticClass: "right" }, [
|
||||
_c("div", { staticClass: "title" }, [
|
||||
_c("img", {
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_resource_icon_png__,
|
||||
alt: "",
|
||||
},
|
||||
}),
|
||||
_vm._v("资源名称\n "),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "downloadbtn" }, [
|
||||
_vm.blockData.resourceType == "0"
|
||||
? _c("div", [
|
||||
_c("img", {
|
||||
staticClass: "shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_download_bule_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v("立即下载\n "),
|
||||
])
|
||||
: _vm._e(),
|
||||
]),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "left" }, [
|
||||
_c("div", { staticClass: "default-cover" }, [
|
||||
_c("img", {
|
||||
staticClass: "shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_default_over_resource_png__,
|
||||
},
|
||||
}),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "cover-bot-elliptic" },
|
||||
[
|
||||
_c("img", {
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_resource_elliptic_png__,
|
||||
alt: "",
|
||||
},
|
||||
}),
|
||||
]
|
||||
),
|
||||
]),
|
||||
]
|
||||
),
|
||||
],
|
||||
],
|
||||
2
|
||||
)
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.styleMode == "C"
|
||||
? _c(
|
||||
"div",
|
||||
[
|
||||
_vm.blockData.resourceSetList &&
|
||||
_vm.blockData.resourceSetList.length
|
||||
? [
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "style-mode__item--body" },
|
||||
[
|
||||
_c(
|
||||
"el-row",
|
||||
_vm._l(
|
||||
_vm.blockData.resourceSetList,
|
||||
function (item, index) {
|
||||
return _c(
|
||||
"el-col",
|
||||
{ key: index, attrs: { span: 6 } },
|
||||
[
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"filecard xml-group-item",
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "default-cover" },
|
||||
[
|
||||
_c("el-image", {
|
||||
staticClass:
|
||||
"shop-item-img-resource xml-round-6",
|
||||
attrs: {
|
||||
src: item.coverFileUrl
|
||||
? item.coverFileUrl.indexOf(
|
||||
"./"
|
||||
) !== -1
|
||||
? _vm.resourceBasisPath +
|
||||
item.coverFileUrl.split(
|
||||
"./"
|
||||
)[1]
|
||||
: item.coverFileUrl
|
||||
: __$_require_static_images_default_over_resource_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.resourceType ==
|
||||
"0" && item.source != ""
|
||||
? _c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"downloadmask pointer",
|
||||
on: {
|
||||
click: function (
|
||||
$event
|
||||
) {
|
||||
return _vm.downloadFileUrl(
|
||||
item,
|
||||
item.title +
|
||||
"." +
|
||||
item.fileFormat
|
||||
)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_c("img", {
|
||||
staticClass:
|
||||
"shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_download_white_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(
|
||||
"\n 立即下载\n "
|
||||
),
|
||||
]
|
||||
)
|
||||
: _vm._e(),
|
||||
],
|
||||
1
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass:
|
||||
"xml-resource-title filename",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.previewToPathClick(
|
||||
item
|
||||
)
|
||||
},
|
||||
},
|
||||
},
|
||||
[
|
||||
_vm._v(
|
||||
"\n " +
|
||||
_vm._s(
|
||||
item.title
|
||||
? item.title
|
||||
: "资源样例"
|
||||
) +
|
||||
"\n "
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
)
|
||||
}
|
||||
),
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
),
|
||||
]
|
||||
: [
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "style-mode__item--body" },
|
||||
[
|
||||
_c(
|
||||
"el-row",
|
||||
[
|
||||
_c("el-col", { attrs: { span: 8 } }, [
|
||||
_c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "filecard xml-group-item",
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "default-cover" },
|
||||
[
|
||||
_c("img", {
|
||||
staticClass:
|
||||
"shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_default_over_resource_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm.blockData.resourceType == "0"
|
||||
? _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "downloadmask",
|
||||
},
|
||||
[
|
||||
_c("img", {
|
||||
staticClass:
|
||||
"shop-item-img-resource",
|
||||
attrs: {
|
||||
src: __$_require_static_images_leaflet_icons_download_white_png__,
|
||||
},
|
||||
}),
|
||||
_vm._v(
|
||||
"\n 立即下载\n "
|
||||
),
|
||||
]
|
||||
)
|
||||
: _vm._e(),
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "filename" }, [
|
||||
_vm._v(
|
||||
"资源名称资源名称资源名称资源名称资源名称"
|
||||
),
|
||||
]),
|
||||
]
|
||||
),
|
||||
]),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
],
|
||||
2
|
||||
)
|
||||
: _vm._e(),
|
||||
]
|
||||
),
|
||||
]),
|
||||
]
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [
|
||||
function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c("div", [
|
||||
_c("div", { staticClass: "shop-item-desc-title" }, [_vm._v("资源样例")]),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "shop-item-desc-detail" }, [
|
||||
_vm._v("文件格式:无"),
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("div", { staticClass: "shop-item-desc-detail" }, [
|
||||
_vm._v("文件大小:0"),
|
||||
]),
|
||||
])
|
||||
},
|
||||
];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-2be4d8c2";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('resource-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
1
src/plugin/xml-digital-teaching/lib/resource.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/resource.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.preview-item-file[data-v-2be4d8c2]:hover,.slip-over-cover[data-v-2be4d8c2]:hover{cursor:pointer}
|
||||
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-ebook-group-h5[data-v-55908341] {
|
||||
}
|
||||
.xml-single-ebook-group-pc[data-v-55908341] {
|
||||
}
|
||||
.xml-single-ebook-group-pad[data-v-55908341] {
|
||||
}
|
||||
354
src/plugin/xml-digital-teaching/lib/single-ctalog-group.js
Normal file
354
src/plugin/xml-digital-teaching/lib/single-ctalog-group.js
Normal file
@ -0,0 +1,354 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleCatalogGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '目录',
|
||||
dataName: 'catalogData',
|
||||
groupData: {},
|
||||
blockId: 'blockId' + Math.random()
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex: this.ruleIndex
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-ebook-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"xml-catalog-render",
|
||||
{
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.dataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.dataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
pageType: _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
},
|
||||
on: { blockclick: _vm.handleBlockClick },
|
||||
},
|
||||
[_vm._v("\n >\n ")]
|
||||
),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-55908341";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-ctalog-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-ctalog-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-ctalog-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-ebook-group-h5[data-v-6f767b18] {
|
||||
}
|
||||
.xml-single-ebook-group-pc[data-v-6f767b18] {
|
||||
}
|
||||
.xml-single-ebook-group-pad[data-v-6f767b18] {
|
||||
}
|
||||
362
src/plugin/xml-digital-teaching/lib/single-ebook-group.js
Normal file
362
src/plugin/xml-digital-teaching/lib/single-ebook-group.js
Normal file
@ -0,0 +1,362 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleBookGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '电子书',
|
||||
ebookDataName: 'ebookData',
|
||||
groupData: {},
|
||||
blockId: 'blockId' + Math.random()
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex: this.ruleIndex
|
||||
});
|
||||
},
|
||||
showFileReader(e) {
|
||||
this.$emit('showFileReader', e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-ebook-group",
|
||||
"xml-single-ebook-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-ebook-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.ebookDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.ebookDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
mode: _vm.mode,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
},
|
||||
on: {
|
||||
blockclick: _vm.handleBlockClick,
|
||||
showFileReader: _vm.showFileReader,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-6f767b18";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-ebook-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-ebook-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-ebook-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-ebook-group-h5[data-v-9937d650] {
|
||||
}
|
||||
.xml-single-ebook-group-pc[data-v-9937d650] {
|
||||
}
|
||||
.xml-single-ebook-group-pad[data-v-9937d650] {
|
||||
}
|
||||
371
src/plugin/xml-digital-teaching/lib/single-html-group.js
Normal file
371
src/plugin/xml-digital-teaching/lib/single-html-group.js
Normal file
@ -0,0 +1,371 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleHtmlGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: 'html',
|
||||
ebookDataName: 'htmlData',
|
||||
groupData: {},
|
||||
blockId: 'blockId' + Math.random()
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
isCopyUrl: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex: this.ruleIndex
|
||||
});
|
||||
},
|
||||
openHtml(data) {
|
||||
this.$emit('openHtml', data);
|
||||
},
|
||||
copyHtmlUrl(data) {
|
||||
this.$emit('copyHtmlUrl', data);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-ebook-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-html-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.ebookDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.ebookDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
isCopyUrl: _vm.isCopyUrl,
|
||||
},
|
||||
on: {
|
||||
blockclick: _vm.handleBlockClick,
|
||||
copyHtmlUrl: _vm.copyHtmlUrl,
|
||||
openHtml: _vm.openHtml,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-9937d650";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-html-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-html-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-html-group.min.css
vendored
Normal file
367
src/plugin/xml-digital-teaching/lib/single-image-group.js
Normal file
367
src/plugin/xml-digital-teaching/lib/single-image-group.js
Normal file
@ -0,0 +1,367 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
|
||||
/**
|
||||
* 单图片组合
|
||||
*/
|
||||
var script = {
|
||||
name: 'XmlSingleImageGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
typeText: '图片',
|
||||
//定义此变量,是为了解决页面中有多个块儿的情况。
|
||||
imageBlockDataName: 'imageData',
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
},
|
||||
clickImg() {
|
||||
this.$emit('clickImg');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-image-group",
|
||||
"xml-single-image-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
pageType: _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-image-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.imageBlockDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.imageBlockDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
"show-title": true,
|
||||
pageType: _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
},
|
||||
on: { blockclick: _vm.handleBlockClick, clickImg: _vm.clickImg },
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = undefined;
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-image-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-music-group-h5[data-v-272f2034] {
|
||||
}
|
||||
.xml-single-music-group-pc[data-v-272f2034] {
|
||||
}
|
||||
.xml-single-music-group-pad[data-v-272f2034] {
|
||||
}
|
||||
356
src/plugin/xml-digital-teaching/lib/single-music-group.js
Normal file
356
src/plugin/xml-digital-teaching/lib/single-music-group.js
Normal file
@ -0,0 +1,356 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleMusicGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '音频',
|
||||
musicDataName: 'musicData',
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-music-group",
|
||||
"xml-single-music-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-music-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.musicDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.musicDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
mode: _vm.mode,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
},
|
||||
on: { blockclick: _vm.handleBlockClick },
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-272f2034";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-music-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-music-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-music-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-question-group-h5[data-v-77922a38] {
|
||||
}
|
||||
.xml-single-question-group-pc[data-v-77922a38] {
|
||||
}
|
||||
.xml-single-question-group-pad[data-v-77922a38] {
|
||||
}
|
||||
393
src/plugin/xml-digital-teaching/lib/single-question-group.js
Normal file
393
src/plugin/xml-digital-teaching/lib/single-question-group.js
Normal file
@ -0,0 +1,393 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleQuestionGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '题库',
|
||||
questionDataName: 'questionData',
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
isShowAi: {
|
||||
type: String,
|
||||
default: '1'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
changeAnswer() {
|
||||
this.$refs.xmlQuestion.changeAnswer();
|
||||
},
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-question-group",
|
||||
"xml-single-question-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-question-render", {
|
||||
ref: "xmlQuestion",
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.questionDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.questionDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
mode: _vm.mode,
|
||||
isShowAi: _vm.isShowAi,
|
||||
pageType: _vm.pageType,
|
||||
isSubmit:
|
||||
_vm.groupData[_vm.questionDataName].questionMode == "false"
|
||||
? false
|
||||
: true,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
},
|
||||
on: {
|
||||
blockclick: _vm.handleBlockClick,
|
||||
submitAnswer: function ($event) {
|
||||
return _vm.$emit("submitAnswer", $event)
|
||||
},
|
||||
setanalysis: function ($event) {
|
||||
return _vm.$emit("setanalysis", $event)
|
||||
},
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
_vm._v(" "),
|
||||
_vm.groupData[_vm.questionDataName].questionMode == "false"
|
||||
? _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "xml-submit-answer xml-submit-answer-right",
|
||||
on: {
|
||||
click: function ($event) {
|
||||
return _vm.changeAnswer()
|
||||
},
|
||||
},
|
||||
},
|
||||
[_vm._v("\n 提交作答\n ")]
|
||||
)
|
||||
: _vm._e(),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-77922a38";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-question-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-question-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-question-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-question-group-h5[data-v-34ba0440] {
|
||||
}
|
||||
.xml-single-question-group-pc[data-v-34ba0440] {
|
||||
}
|
||||
.xml-single-question-group-pad[data-v-34ba0440] {
|
||||
}
|
||||
385
src/plugin/xml-digital-teaching/lib/single-resource-group.js
Normal file
385
src/plugin/xml-digital-teaching/lib/single-resource-group.js
Normal file
@ -0,0 +1,385 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleTestPaperGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '试卷',
|
||||
questionDataName: 'testPaperData',
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
reader: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
isShowAi: {
|
||||
type: String,
|
||||
default: '1'
|
||||
},
|
||||
BookName: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
},
|
||||
openTestPaper({
|
||||
info,
|
||||
showRobot
|
||||
}) {
|
||||
console.log(showRobot);
|
||||
this.$emit('openTestPaper', {
|
||||
info: info,
|
||||
showRobot: showRobot
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-test-paper-group",
|
||||
"xml-single-question-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_vm.mode === "editor"
|
||||
? _c("span", { staticClass: "xml-group-type-text" })
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
BookName: _vm.BookName,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-test-paper-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.questionDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.questionDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
mode: _vm.mode,
|
||||
reader: _vm.reader,
|
||||
pageType: _vm.pageType,
|
||||
BookName: _vm.BookName,
|
||||
isShowAi: _vm.isShowAi,
|
||||
},
|
||||
on: {
|
||||
blockclick: _vm.handleBlockClick,
|
||||
openTestPaper: _vm.openTestPaper,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-34ba0440";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-test-paper-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-resource-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-resource-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-question-group-h5[data-v-34ba0440] {
|
||||
}
|
||||
.xml-single-question-group-pc[data-v-34ba0440] {
|
||||
}
|
||||
.xml-single-question-group-pad[data-v-34ba0440] {
|
||||
}
|
||||
385
src/plugin/xml-digital-teaching/lib/single-testpaper-group.js
Normal file
385
src/plugin/xml-digital-teaching/lib/single-testpaper-group.js
Normal file
@ -0,0 +1,385 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlSingleTestPaperGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '试卷',
|
||||
questionDataName: 'testPaperData',
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
reader: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
isShowAi: {
|
||||
type: String,
|
||||
default: '1'
|
||||
},
|
||||
BookName: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
},
|
||||
openTestPaper({
|
||||
info,
|
||||
showRobot
|
||||
}) {
|
||||
console.log(showRobot);
|
||||
this.$emit('openTestPaper', {
|
||||
info: info,
|
||||
showRobot: showRobot
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-test-paper-group",
|
||||
"xml-single-question-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_vm.mode === "editor"
|
||||
? _c("span", { staticClass: "xml-group-type-text" })
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
BookName: _vm.BookName,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-test-paper-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.questionDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.questionDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
mode: _vm.mode,
|
||||
reader: _vm.reader,
|
||||
pageType: _vm.pageType,
|
||||
BookName: _vm.BookName,
|
||||
isShowAi: _vm.isShowAi,
|
||||
},
|
||||
on: {
|
||||
blockclick: _vm.handleBlockClick,
|
||||
openTestPaper: _vm.openTestPaper,
|
||||
},
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-34ba0440";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-test-paper-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-testpaper-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-testpaper-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-text-group-h5[data-v-647015fa] {
|
||||
}
|
||||
.xml-single-text-group-pc[data-v-647015fa] {
|
||||
}
|
||||
.xml-single-text-group-pad[data-v-647015fa] {
|
||||
}
|
||||
408
src/plugin/xml-digital-teaching/lib/single-text-group.js
Normal file
408
src/plugin/xml-digital-teaching/lib/single-text-group.js
Normal file
@ -0,0 +1,408 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
/**
|
||||
* 单文本组合
|
||||
*/
|
||||
var script = {
|
||||
name: 'XmlSingleTextGroupRender',
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: '文本',
|
||||
textDataName: 'textData',
|
||||
showComponentButtons: false,
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return 'editor';
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: 'h5'
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
projectId: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit('blockclick', {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
},
|
||||
groupDataChange({
|
||||
ruleIndex,
|
||||
dataName,
|
||||
data
|
||||
}) {
|
||||
this.$emit('groupDataChange', {
|
||||
ruleIndex,
|
||||
dataName,
|
||||
data
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark text-body-mark",
|
||||
class: [
|
||||
"xml-single-text-group",
|
||||
"xml-single-text-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
staticClass: "optional-text",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
"type-text": _vm.typeText,
|
||||
projectId: _vm.projectId,
|
||||
mode: _vm.mode,
|
||||
showLine: false,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_c("xml-text-render", {
|
||||
ref: "xmlText",
|
||||
attrs: {
|
||||
projectId: _vm.projectId,
|
||||
pBlockData: _vm.groupData[_vm.textDataName],
|
||||
"block-data-name": _vm.textDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
currentRule: _vm.currentRule,
|
||||
"css-theme": "default",
|
||||
"container-class": "text-container",
|
||||
"text-container": "default-text-container",
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
mode: _vm.mode,
|
||||
"page-type": _vm.pageType,
|
||||
scopedSlots: { $scopedSlots: _vm.$scopedSlots },
|
||||
},
|
||||
on: {
|
||||
"update:pBlockData": function ($event) {
|
||||
return _vm.$set(_vm.groupData, _vm.textDataName, $event)
|
||||
},
|
||||
"update:p-block-data": function ($event) {
|
||||
return _vm.$set(_vm.groupData, _vm.textDataName, $event)
|
||||
},
|
||||
blockclick: _vm.handleBlockClick,
|
||||
groupDataChange: _vm.groupDataChange,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
_vm._l(_vm.$scopedSlots, function (index, name) {
|
||||
return {
|
||||
key: name,
|
||||
fn: function (deliver) {
|
||||
return [_vm._t(name, null, null, deliver)]
|
||||
},
|
||||
}
|
||||
}),
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-647015fa";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-text-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-text-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-text-group.min.css
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
.xml-single-video-group-h5[data-v-3ae74720] {
|
||||
}
|
||||
.xml-single-video-group-pc[data-v-3ae74720] {
|
||||
}
|
||||
.xml-single-video-group-pad[data-v-3ae74720] {
|
||||
}
|
||||
373
src/plugin/xml-digital-teaching/lib/single-video-group.js
Normal file
373
src/plugin/xml-digital-teaching/lib/single-video-group.js
Normal file
@ -0,0 +1,373 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
props: {
|
||||
activeIndex: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
islast: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
getSingleGroupLocation: () => this.location
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
groupIsActive() {
|
||||
return this.ruleIndex === this.activeIndex;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
pGroupData: {
|
||||
handler() {
|
||||
if (this.pGroupData.options?.marginTop !== undefined && this.pGroupData.options.marginTop !== -1) {
|
||||
this.$nextTick(() => {
|
||||
this.$el && this.$el.style.setProperty('--book-marginTop', this.pGroupData.options.marginTop + 'px');
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.pGroupData.options?.marginTop === undefined) {
|
||||
let options = this.pGroupData.options ? {
|
||||
...this.pGroupData.options,
|
||||
marginTop: -1
|
||||
} : {
|
||||
marginTop: -1
|
||||
};
|
||||
this.$emit('updateModel', {
|
||||
key: 'pGroupData',
|
||||
value: {
|
||||
...this.pGroupData,
|
||||
options
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.islast) {
|
||||
this.$nextTick(() => {
|
||||
this.$EventBus.$emit('mounted_success');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitClick(e) {
|
||||
this.$emit('click', e, this.ruleIndex, this.currentRule);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: "XmlSingleVideoGroupRender",
|
||||
mixins: [singleGroupMixin],
|
||||
// components: { },
|
||||
data() {
|
||||
return {
|
||||
typeText: "视频",
|
||||
videoDataName: "videoData",
|
||||
groupData: {}
|
||||
};
|
||||
},
|
||||
props: {
|
||||
//模式:preview 预览 (默认),editor 编辑
|
||||
mode: {
|
||||
type: String,
|
||||
default: function () {
|
||||
return "editor";
|
||||
}
|
||||
},
|
||||
//必须有此属性,接收初始化值
|
||||
pGroupData: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
//必须有此属性,页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
default: "h5"
|
||||
},
|
||||
resourceBasisPath: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
extendParams: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
videoImg: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.groupData = this.pGroupData;
|
||||
},
|
||||
methods: {
|
||||
//
|
||||
/***
|
||||
* 固定方法。接收固定参数
|
||||
* 此方法接收块儿点击事件,事件传递块相关参数
|
||||
* @param blockData 块中的data属性数据
|
||||
* @param dataName 块data数据在组中时,属性key
|
||||
* @param propertyComponentsName 块儿对应的属性组件名
|
||||
*/
|
||||
handleBlockClick({
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
blockId,
|
||||
ruleIndex
|
||||
}) {
|
||||
this.$emit("blockclick", {
|
||||
groupData: this.groupData,
|
||||
blockData,
|
||||
dataName,
|
||||
propertyComponentsName,
|
||||
currentRule: this.currentRule,
|
||||
blockId,
|
||||
ruleIndex
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||||
if (typeof shadowMode !== 'boolean') {
|
||||
createInjectorSSR = createInjector;
|
||||
createInjector = shadowMode;
|
||||
shadowMode = false;
|
||||
}
|
||||
// Vue.extend constructor export interop.
|
||||
const options = typeof script === 'function' ? script.options : script;
|
||||
// render functions
|
||||
if (template && template.render) {
|
||||
options.render = template.render;
|
||||
options.staticRenderFns = template.staticRenderFns;
|
||||
options._compiled = true;
|
||||
// functional template
|
||||
if (isFunctionalTemplate) {
|
||||
options.functional = true;
|
||||
}
|
||||
}
|
||||
// scopedId
|
||||
if (scopeId) {
|
||||
options._scopeId = scopeId;
|
||||
}
|
||||
let hook;
|
||||
if (moduleIdentifier) {
|
||||
// server build
|
||||
hook = function (context) {
|
||||
// 2.3 injection
|
||||
context = context ||
|
||||
// cached call
|
||||
this.$vnode && this.$vnode.ssrContext ||
|
||||
// stateful
|
||||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||||
// 2.2 with runInNewContext: true
|
||||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||||
context = __VUE_SSR_CONTEXT__;
|
||||
}
|
||||
// inject component styles
|
||||
if (style) {
|
||||
style.call(this, createInjectorSSR(context));
|
||||
}
|
||||
// register component module identifier for async chunk inference
|
||||
if (context && context._registeredComponents) {
|
||||
context._registeredComponents.add(moduleIdentifier);
|
||||
}
|
||||
};
|
||||
// used by ssr in case component is cached and beforeCreate
|
||||
// never gets called
|
||||
options._ssrRegister = hook;
|
||||
} else if (style) {
|
||||
hook = shadowMode ? function (context) {
|
||||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||||
} : function (context) {
|
||||
style.call(this, createInjector(context));
|
||||
};
|
||||
}
|
||||
if (hook) {
|
||||
if (options.functional) {
|
||||
// register for functional component in vue file
|
||||
const originalRender = options.render;
|
||||
options.render = function renderWithStyleInjection(h, context) {
|
||||
hook.call(context);
|
||||
return originalRender(h, context);
|
||||
};
|
||||
} else {
|
||||
// inject component registration as beforeCreate hook
|
||||
const existing = options.beforeCreate;
|
||||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||
}
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
||||
/* script */
|
||||
const __vue_script__ = script;
|
||||
/* template */
|
||||
var __vue_render__ = function () {
|
||||
var _vm = this;
|
||||
var _h = _vm.$createElement;
|
||||
var _c = _vm._self._c || _h;
|
||||
return _c(
|
||||
"div",
|
||||
{
|
||||
staticClass: "parent-group parent-group-mark",
|
||||
class: [
|
||||
"xml-single-video-group",
|
||||
"xml-single-video-group-" + _vm.pageType,
|
||||
_vm.groupIsActive ? "active" : "",
|
||||
],
|
||||
on: { click: _vm.emitClick },
|
||||
},
|
||||
[
|
||||
_c(
|
||||
"xml-group-render",
|
||||
{
|
||||
ref: "xmlGroup",
|
||||
attrs: {
|
||||
"page-type": _vm.pageType,
|
||||
mode: _vm.mode,
|
||||
"type-text": _vm.typeText,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
},
|
||||
scopedSlots: _vm._u(
|
||||
[
|
||||
{
|
||||
key: "action-buttons",
|
||||
fn: function () {
|
||||
return [_vm._t("default")]
|
||||
},
|
||||
proxy: true,
|
||||
},
|
||||
],
|
||||
null,
|
||||
true
|
||||
),
|
||||
},
|
||||
[
|
||||
_vm._v(" "),
|
||||
_vm.videoImg
|
||||
? _c("xml-video-img-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.videoDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.videoDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
mode: _vm.mode,
|
||||
},
|
||||
on: { blockclick: _vm.handleBlockClick },
|
||||
})
|
||||
: _c("xml-video-render", {
|
||||
attrs: {
|
||||
"p-block-data": _vm.groupData[_vm.videoDataName],
|
||||
"current-rule": _vm.currentRule,
|
||||
"block-data-name": _vm.videoDataName,
|
||||
"extend-params": _vm.extendParams,
|
||||
"rule-index": _vm.ruleIndex,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
mode: _vm.mode,
|
||||
},
|
||||
on: { blockclick: _vm.handleBlockClick },
|
||||
}),
|
||||
],
|
||||
1
|
||||
),
|
||||
],
|
||||
1
|
||||
)
|
||||
};
|
||||
var __vue_staticRenderFns__ = [];
|
||||
__vue_render__._withStripped = true;
|
||||
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-3ae74720";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
const __vue_is_functional_template__ = false;
|
||||
/* style inject */
|
||||
|
||||
/* style inject SSR */
|
||||
|
||||
/* style inject shadow dom */
|
||||
|
||||
|
||||
|
||||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||||
__vue_inject_styles__,
|
||||
__vue_script__,
|
||||
__vue_scope_id__,
|
||||
__vue_is_functional_template__,
|
||||
__vue_module_identifier__,
|
||||
false,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
|
||||
let componentNamespace = 'xml';
|
||||
// 组件前缀命名只能更新一次,防止重复执行修改组件注册出错
|
||||
let isUpdated = false;
|
||||
function createNamespace(name, {
|
||||
prefix,
|
||||
isUnPrefix
|
||||
}) {
|
||||
let useNamespace;
|
||||
if (!isUpdated) {
|
||||
isUpdated = true;
|
||||
useNamespace = prefix || componentNamespace; // 更改前缀
|
||||
}
|
||||
if (prefix) {
|
||||
if (name.indexOf(componentNamespace) === 0) {
|
||||
return name.replace(componentNamespace, prefix);
|
||||
}
|
||||
return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
|
||||
}
|
||||
if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
|
||||
return name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
|
||||
}
|
||||
|
||||
__vue_component__.install = (Vue, options = {}) => {
|
||||
Vue.component(createNamespace('single-video-group-render', {
|
||||
prefix: options.prefix
|
||||
}), __vue_component__);
|
||||
};
|
||||
|
||||
export { __vue_component__ as default };
|
||||
0
src/plugin/xml-digital-teaching/lib/single-video-group.min.css
vendored
Normal file
0
src/plugin/xml-digital-teaching/lib/single-video-group.min.css
vendored
Normal file
762
src/plugin/xml-digital-teaching/lib/splitline.css
Normal file
762
src/plugin/xml-digital-teaching/lib/splitline.css
Normal file
@ -0,0 +1,762 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=eleventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=tenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=ninth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme1.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-pc[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
|
||||
.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 0.2s;
|
||||
}
|
||||
.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third {
|
||||
animation: fadeInOut 1s infinite 0.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;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTextDialog.vue.map */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
56684
src/plugin/xml-digital-teaching/lib/splitline.js
Normal file
56684
src/plugin/xml-digital-teaching/lib/splitline.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/splitline.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/splitline.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.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}
|
||||
246
src/plugin/xml-digital-teaching/lib/testPaper.css
Normal file
246
src/plugin/xml-digital-teaching/lib/testPaper.css
Normal file
@ -0,0 +1,246 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTestPaper.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=QuestionItem.vue.map */
|
||||
.content[data-v-091089da] {
|
||||
width: 100%;
|
||||
}
|
||||
.content .stem-content[data-v-091089da] {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 14px;
|
||||
height: auto;
|
||||
border: 1px solid #e7e7e7;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.content .stem-content.no-border[data-v-091089da] {
|
||||
padding: 0;
|
||||
border: none;
|
||||
cursor: default;
|
||||
}
|
||||
.content .stem-content .placeholder[data-v-091089da] {
|
||||
color: #c0c4cc;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=common.vue.map */
|
||||
.option-item + .option-item[data-v-2aeaa1c8] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8] {
|
||||
display: flex;
|
||||
background: #fbfbfb;
|
||||
border-radius: 6px;
|
||||
padding-left: 16px;
|
||||
cursor: pointer;
|
||||
transition: all ease 0.3s;
|
||||
border: 1px solid #fbfbfb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-2aeaa1c8] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isActive[data-v-2aeaa1c8] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item.isTrue[data-v-2aeaa1c8] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-2aeaa1c8] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.option-item[data-v-2aeaa1c8] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=radio.vue.map */
|
||||
.option-item + .option-item[data-v-2dab3356] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.option-item[data-v-2dab3356] {
|
||||
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-2dab3356] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-2dab3356] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isTrue[data-v-2dab3356] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-2dab3356] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-2dab3356]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-2dab3356] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.option-item[data-v-2dab3356] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=checkbox.vue.map */
|
||||
.image-file[data-v-506f1aca] {
|
||||
width: 218px;
|
||||
object-fit: scale-down;
|
||||
}
|
||||
.video-file[data-v-506f1aca] {
|
||||
width: 408px;
|
||||
}
|
||||
.file-render[data-v-506f1aca] {
|
||||
width: 100%;
|
||||
}
|
||||
.file-info[data-v-506f1aca] {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
.file-info.videoHandler[data-v-506f1aca] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.file-info.videoHandler .fileName[data-v-506f1aca] {
|
||||
font-size: 18px;
|
||||
color: #333333;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
.file-info.videoHandler .fileInfo[data-v-506f1aca] {
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=index.vue.map */
|
||||
.audio .audio-icon[data-v-25355b9e] {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.audio .audio-icon img[data-v-25355b9e] {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.audio .audio-controls[data-v-25355b9e] {
|
||||
width: 100%;
|
||||
max-width: 200px;
|
||||
flex: 1;
|
||||
height: 36px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--progress[data-v-25355b9e], .audio .audio-controls .audio-controls--handler[data-v-25355b9e] {
|
||||
width: 100%;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler[data-v-25355b9e] {
|
||||
line-height: 1;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play[data-v-25355b9e] {
|
||||
font-size: 24px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-25355b9e] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .current-time[data-v-25355b9e], .audio .audio-controls .audio-controls--handler .total-time[data-v-25355b9e] {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
.play-handler.mobile[data-v-25355b9e] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
.audio-component[data-v-25355b9e] {
|
||||
display: none;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__runway {
|
||||
margin: 0 0 4px 0;
|
||||
background: #e3e3e3;
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__bar {
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__button {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
[data-v-25355b9e] .el-slider__button-wrapper {
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=audio-play-new.vue.map */
|
||||
[data-v-7628e470] .el-dialog__header {
|
||||
padding: 10px;
|
||||
}
|
||||
.video-content[data-v-7628e470] {
|
||||
width: 180px;
|
||||
height: 135px;
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.video-content .play[data-v-7628e470] {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
cursor: pointer;
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
}
|
||||
.video-mask[data-v-7628e470] {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.video-mask img[data-v-7628e470] {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50% -50%);
|
||||
display: block;
|
||||
}
|
||||
.video-player[data-v-7628e470] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=video-play.vue.map */
|
||||
20466
src/plugin/xml-digital-teaching/lib/testPaper.js
Normal file
20466
src/plugin/xml-digital-teaching/lib/testPaper.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/testPaper.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/testPaper.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.content[data-v-091089da]{width:100%}.content .stem-content[data-v-091089da]{width:100%;box-sizing:border-box;padding:5px 14px;height:auto;border:1px solid #e7e7e7;border-radius:6px;cursor:pointer}.content .stem-content.no-border[data-v-091089da]{padding:0;border:none;cursor:default}.content .stem-content .placeholder[data-v-091089da]{color:#c0c4cc;font-size:14px;cursor:pointer;user-select:none}.option-item+.option-item[data-v-2aeaa1c8]{margin-top:16px}.option-item[data-v-2aeaa1c8]{display:flex;background:#fbfbfb;border-radius:6px;padding-left:16px;cursor:pointer;transition:all ease .3s;border:1px solid #fbfbfb}.option-item .questionSeq[data-v-2aeaa1c8]{padding:8px 0}.option-item.isActive[data-v-2aeaa1c8]{border-color:#2e9adb}.option-item.isTrue[data-v-2aeaa1c8]{border:1px solid #70b603}.option-item.isTrue[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner{border-color:#70b603;background:#70b603}.option-item.isFalse[data-v-2aeaa1c8]{border:1px solid #d9001b}.option-item.isFalse[data-v-2aeaa1c8] .el-radio__input.is-checked .el-radio__inner{border-color:#d9001b;background:#d9001b}.option-item[data-v-2aeaa1c8]:hover{background:#ddd}.option-item[data-v-2aeaa1c8] .content{cursor:pointer}.option-item[data-v-2aeaa1c8] .stem-content.no-border{padding:8px 14px!important;cursor:pointer}.option-item+.option-item[data-v-2dab3356]{margin-top:16px}.option-item[data-v-2dab3356]{display:flex;background:#fbfbfb;border-radius:6px;padding-left:16px;cursor:pointer;transition:all ease .3s;border:1px solid #fbfbfb}.option-item.isActive[data-v-2dab3356]{border-color:#2e9adb}.option-item .questionSeq[data-v-2dab3356]{padding:8px 0}.option-item.isTrue[data-v-2dab3356]{border:1px solid #70b603}.option-item.isTrue[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner{border-color:#70b603;background:#70b603}.option-item.isFalse[data-v-2dab3356]{border:1px solid #d9001b}.option-item.isFalse[data-v-2dab3356] .el-checkbox__input.is-checked .el-checkbox__inner{border-color:#d9001b;background:#d9001b}.option-item[data-v-2dab3356]:hover{background:#ddd}.option-item[data-v-2dab3356] .content{cursor:pointer}.option-item[data-v-2dab3356] .stem-content.no-border{padding:8px 14px!important;cursor:pointer}.image-file[data-v-506f1aca]{width:218px;object-fit:scale-down}.video-file[data-v-506f1aca]{width:408px}.file-render[data-v-506f1aca]{width:100%}.file-info[data-v-506f1aca]{flex:1;min-width:0}.file-info.videoHandler[data-v-506f1aca]{display:flex;flex-direction:column;justify-content:center}.file-info.videoHandler .fileName[data-v-506f1aca]{font-size:18px;color:#333;margin-bottom:19px}.file-info.videoHandler .fileInfo[data-v-506f1aca]{font-size:14px;color:#666;margin-bottom:19px}.audio .audio-icon[data-v-25355b9e]{width:36px;height:36px;margin-right:20px}.audio .audio-icon img[data-v-25355b9e]{width:100%;height:100%;display:block}.audio .audio-controls[data-v-25355b9e]{width:100%;max-width:200px;flex:1;height:36px}.audio .audio-controls .audio-controls--handler[data-v-25355b9e],.audio .audio-controls .audio-controls--progress[data-v-25355b9e]{width:100%}.audio .audio-controls .audio-controls--handler[data-v-25355b9e]{line-height:1}.audio .audio-controls .audio-controls--handler .play[data-v-25355b9e]{font-size:24px}.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-25355b9e]{width:22px;height:22px;display:block;cursor:pointer}.audio .audio-controls .audio-controls--handler .current-time[data-v-25355b9e],.audio .audio-controls .audio-controls--handler .total-time[data-v-25355b9e]{font-size:12px;color:#333}.play-handler.mobile[data-v-25355b9e]{width:20px;height:20px}.audio-component[data-v-25355b9e]{display:none}[data-v-25355b9e] .el-slider__runway{margin:0 0 4px 0;background:#e3e3e3;height:4px}[data-v-25355b9e] .el-slider__bar{height:4px}[data-v-25355b9e] .el-slider__button{width:10px;height:10px}[data-v-25355b9e] .el-slider__button-wrapper{top:-15px}[data-v-7628e470] .el-dialog__header{padding:10px}.video-content[data-v-7628e470]{width:180px;height:135px;border-radius:6px;overflow:hidden;position:relative}.video-content .play[data-v-7628e470]{position:absolute;left:50%;top:50%;cursor:pointer;transform:translateX(-50%) translateY(-50%)}.video-mask[data-v-7628e470]{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-mask img[data-v-7628e470]{position:absolute;left:50%;top:50%;transform:translate(-50% -50%);display:block}.video-player[data-v-7628e470]{width:100%}
|
||||
663
src/plugin/xml-digital-teaching/lib/text.css
Normal file
663
src/plugin/xml-digital-teaching/lib/text.css
Normal file
@ -0,0 +1,663 @@
|
||||
.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 0.2s;
|
||||
}
|
||||
.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third {
|
||||
animation: fadeInOut 1s infinite 0.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;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-pc[data-v-640283d5] {
|
||||
}
|
||||
.xml-text-h5[data-v-640283d5] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTextDialog.vue.map */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
50108
src/plugin/xml-digital-teaching/lib/text.js
Normal file
50108
src/plugin/xml-digital-teaching/lib/text.js
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/text.min.css
vendored
Normal file
1
src/plugin/xml-digital-teaching/lib/text.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.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}
|
||||
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/iconfont.ttf
Normal file
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/iconfont.ttf
Normal file
Binary file not shown.
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/iconfont.woff
Normal file
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/iconfont.woff
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
@font-face{font-family:heimgfont;src:url(iconfont.woff2?t=1635390861127) format('woff2'),url(iconfont.woff?t=1635390861127) format('woff'),url(iconfont.ttf?t=1635390861127) format('truetype')}.heimgfont{font-family:heimgfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.heimg-iconguanbi1:before{content:"\e608"}.heimg-iconiconfontzhizuobiaozhun023146:before{content:"\e694"}.heimg-iconhelp:before{content:"\e626"}.heimg-iconjiazaizhong:before{content:"\e6b1"}.heimg-icontupianjiazaishibai:before{content:"\ec0d"}.heimg-iconicon_arrow_right:before{content:"\e60d"}.heimg-iconjiantouzuo:before{content:"\e620"}.heimg-iconxuanzhuan:before{content:"\e66f"}.heimg-iconxuanzhuan1:before{content:"\e670"}.heimg-iconyuanshibili:before{content:"\e86b"}.heimg-iconfangda:before{content:"\e65d"}.heimg-iconsuoxiao:before{content:"\e65e"}.heimg-iconquanping:before{content:"\e698"}.heimg-iconguanbi:before{content:"\e764"}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/simhei.woff2
Normal file
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/simhei.woff2
Normal file
Binary file not shown.
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/simkai.woff2
Normal file
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/simkai.woff2
Normal file
Binary file not shown.
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/simsun.woff2
Normal file
BIN
src/plugin/xml-digital-teaching/lib/theme/fonts/simsun.woff2
Normal file
Binary file not shown.
1
src/plugin/xml-digital-teaching/lib/theme/iconfont.css
Normal file
1
src/plugin/xml-digital-teaching/lib/theme/iconfont.css
Normal file
@ -0,0 +1 @@
|
||||
@charset "UTF-8";.heimgfont,[class*=" dl-icon-"],[class^=dl-icon-]{font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:douluo-icons;src:url(./fonts/iconfont.woff?t=1662431203509) format("woff"),url(./fonts/iconfont.ttf?t=1662431203509) format("truetype")}@font-face{font-family:heimgfont;src:url(./fonts/iconfont/iconfont.woff2?t=1635390861127) format("woff2"),url(./fonts/iconfont/iconfont.woff?t=1635390861127) format("woff"),url(./fonts/iconfont/iconfont.ttf?t=1635390861127) format("truetype")}[class*=" dl-icon-"],[class^=dl-icon-]{font-family:douluo-icons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block}.dl-icon-add:before{content:"\e608"}.dl-icon-close:before{content:"\e607"}.dl-icon-warning:before{content:"\e606"}.dl-icon-info:before{content:"\e675"}.dl-icon-lock:before{content:"\e604"}.dl-icon-check:before{content:"\e663"}.dl-icon-success:before{content:"\e603"}.dl-icon-error:before{content:"\e601"}.dl-icon-help:before{content:"\e662"}.dl-icon-reflesh:before{content:"\e628"}.dl-icon-setting:before{content:"\e639"}.dl-icon-pass:before{content:"\e65a"}.dl-icon-delete:before{content:"\e605"}.dl-icon-star:before{content:"\e617"}.dl-icon-yanjing:before{content:"\e61a"}.dl-icon-right:before{content:"\e621"}.dl-icon-left:before{content:"\e622"}.dl-icon-review:before{content:"\e674"}.heimgfont{font-family:heimgfont!important;font-size:16px}.heimg-iconguanbi1:before{content:"\e608"}.heimg-iconiconfontzhizuobiaozhun023146:before{content:"\e694"}.heimg-iconhelp:before{content:"\e626"}.heimg-iconjiazaizhong:before{content:"\e6b1"}.heimg-icontupianjiazaishibai:before{content:"\ec0d"}.heimg-iconicon_arrow_right:before{content:"\e60d"}.heimg-iconjiantouzuo:before{content:"\e620"}.heimg-iconxuanzhuan:before{content:"\e66f"}.heimg-iconxuanzhuan1:before{content:"\e670"}.heimg-iconyuanshibili:before{content:"\e86b"}.heimg-iconfangda:before{content:"\e65d"}.heimg-iconsuoxiao:before{content:"\e65e"}.heimg-iconquanping:before{content:"\e698"}.heimg-iconguanbi:before{content:"\e764"}
|
||||
1
src/plugin/xml-digital-teaching/lib/theme/index.css
Normal file
1
src/plugin/xml-digital-teaching/lib/theme/index.css
Normal file
File diff suppressed because one or more lines are too long
1
src/plugin/xml-digital-teaching/lib/theme/var.css
Normal file
1
src/plugin/xml-digital-teaching/lib/theme/var.css
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
.xml-style-theme-blue{--background-color:#5d96e8}.xml-style-theme-orange{--background-color:#f5ab3e}.xml-style-theme-green{--background-color:#6fa350}.xml-style-theme-red{--background-color:#ae0133}.xml-style-theme-grey{--background-color:#c8c8c8}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
@charset "UTF-8";.xml-hevue-imgpreview-wrap{position:fixed;top:0;bottom:0;right:0;left:0;user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;z-index:9999;color:rgba(255,255,255,.6)}.xml-hevue-imgpreview-wrap .he-img-wrap{width:100%;height:100%;text-align:center;vertical-align:middle;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.xml-hevue-imgpreview-wrap .arrow{width:42px;height:42px;text-align:center;line-height:42px;position:absolute;top:50%;border-radius:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-ms-transform:translateY(-50%);font-size:24px;cursor:pointer;-webkit-transition:all .2s;transition:all .2s;background:rgba(0,0,0,.3)}.xml-hevue-imgpreview-wrap .arrow:hover{opacity:.8;-webkit-transform:translateY(-50%) scale(1.2);transform:translateY(-50%) scale(1.2)}.xml-hevue-imgpreview-wrap .arrow-left{left:50px}.xml-hevue-imgpreview-wrap .arrow-right{right:50px}.xml-hevue-imgpreview-wrap .he-close-icon{position:absolute;right:20px;top:50px;z-index:2;width:36px;height:36px;font-size:22px;line-height:36px;text-align:center;border-radius:50%;cursor:pointer;-webkit-transition:all .2s;transition:all .2s;background:rgba(0,0,0,.3)}.xml-hevue-imgpreview-wrap .he-close-icon:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.xml-hevue-imgpreview-wrap .he-control-bar-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;width:100%;bottom:10%;left:0}.xml-hevue-imgpreview-wrap .he-control-bar{height:44px;bottom:10%;padding:0 22px;display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:22px;margin:0 auto;background:rgba(0,0,0,.3)}.xml-hevue-imgpreview-wrap .he-control-title{position:absolute;top:30px;left:0;width:100%;padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;color:#fff;z-index:1}.xml-hevue-imgpreview-wrap .he-control-num{position:absolute;bottom:5%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);-ms-transform:translateX(-50%);padding:0 22px;font-size:16px;border-radius:15px;background:rgba(0,0,0,.3)}.xml-hevue-imgpreview-wrap .he-control-btn{line-height:44px;font-size:24px;cursor:pointer;padding:0 9px;-webkit-transition:all .2s;transition:all .2s}.xml-hevue-imgpreview-wrap .he-control-btn:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.xml-hevue-imgpreview-wrap .fade-enter-active,.xml-hevue-imgpreview-wrap .fade-leave-active{-webkit-transition:opacity .3s;transition:opacity .3s}.xml-hevue-imgpreview-wrap .fade-enter,.xml-hevue-imgpreview-wrap .fade-leave-to{opacity:0}.xml-hevue-imgpreview-wrap .hevue-img-status-icon{font-size:56px}.xml-hevue-imgpreview-wrap .rotate-animation{-webkit-animation:rotate 1.5s linear infinite;animation:rotate 1.5s linear infinite}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.xml-hevue-imgpreview-wrap .he-img-wrap{background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.he-close-icon,.he-control-num,.xml-hevue-imgpreview-wrap .arrow,.xml-hevue-imgpreview-wrap .he-control-bar{background:rgba(0,0,0,.3);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user