New file |
| | |
| | | * text=auto eol=lf |
New file |
| | |
| | | # Logs |
| | | logs |
| | | *.log |
| | | npm-debug.log* |
| | | yarn-debug.log* |
| | | yarn-error.log* |
| | | pnpm-debug.log* |
| | | lerna-debug.log* |
| | | |
| | | node_modules |
| | | .DS_Store |
| | | dist |
| | | dist-ssr |
| | | coverage |
| | | *.local |
| | | |
| | | /cypress/videos/ |
| | | /cypress/screenshots/ |
| | | |
| | | # Editor directories and files |
| | | .vscode/* |
| | | !.vscode/extensions.json |
| | | .idea |
| | | *.suo |
| | | *.ntvs* |
| | | *.njsproj |
| | | *.sln |
| | | *.sw? |
| | | |
| | | *.tsbuildinfo |
New file |
| | |
| | | { |
| | | "$schema": "https://json.schemastore.org/prettierrc", |
| | | "semi": false, |
| | | "singleQuote": true, |
| | | "printWidth": 100 |
| | | } |
New file |
| | |
| | | { |
| | | "recommendations": ["Vue.volar", "esbenp.prettier-vscode"] |
| | | } |
New file |
| | |
| | | # xiehe |
| | | |
| | | This template should help get you started developing with Vue 3 in Vite. |
| | | |
| | | ## Recommended IDE Setup |
| | | |
| | | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). |
| | | |
| | | ## Customize configuration |
| | | |
| | | See [Vite Configuration Reference](https://vite.dev/config/). |
| | | |
| | | ## Project Setup |
| | | |
| | | ```sh |
| | | npm install |
| | | ``` |
| | | |
| | | ### Compile and Hot-Reload for Development |
| | | |
| | | ```sh |
| | | npm run dev |
| | | ``` |
| | | |
| | | ### Compile and Minify for Production |
| | | |
| | | ```sh |
| | | npm run build |
| | | ``` |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang=""> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <link rel="icon" href="/favicon.ico"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | | <title>Vite App</title> |
| | | </head> |
| | | <body> |
| | | <div id="app"></div> |
| | | <script type="module" src="/src/main.js"></script> |
| | | </body> |
| | | </html> |
New file |
| | |
| | | { |
| | | "compilerOptions": { |
| | | "paths": { |
| | | "@/*": ["./src/*"] |
| | | } |
| | | }, |
| | | "exclude": ["node_modules", "dist"] |
| | | } |
New file |
| | |
| | | { |
| | | "name": "xiehe", |
| | | "version": "0.0.0", |
| | | "private": true, |
| | | "type": "module", |
| | | "engines": { |
| | | "node": "^20.19.0 || >=22.12.0" |
| | | }, |
| | | "scripts": { |
| | | "dev": "vite", |
| | | "build": "vite build", |
| | | "preview": "vite preview", |
| | | "format": "prettier --write src/" |
| | | }, |
| | | "dependencies": { |
| | | "axios": "^1.11.0", |
| | | "element-plus": "^2.10.7", |
| | | "less": "^4.4.0", |
| | | "moment": "^2.30.1", |
| | | "pinia": "^3.0.3", |
| | | "spark-md5": "^3.0.2", |
| | | "vue": "^3.5.18", |
| | | "vue-router": "^4.5.1" |
| | | }, |
| | | "devDependencies": { |
| | | "@vitejs/plugin-vue": "^6.0.1", |
| | | "prettier": "3.6.2", |
| | | "vite": "^7.0.6", |
| | | "vite-plugin-vue-devtools": "^8.0.0" |
| | | } |
| | | } |
New file |
| | |
| | | <script setup> |
| | | import { RouterView } from 'vue-router' |
| | | </script> |
| | | |
| | | <template> |
| | | <RouterView /> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | #app { |
| | | width: 100%; |
| | | } |
| | | </style> |
New file |
| | |
| | | /* color palette from <https://github.com/vuejs/theme> */ |
| | | :root { |
| | | --vt-c-white: #ffffff; |
| | | --vt-c-white-soft: #f8f8f8; |
| | | --vt-c-white-mute: #f2f2f2; |
| | | |
| | | --vt-c-black: #181818; |
| | | --vt-c-black-soft: #222222; |
| | | --vt-c-black-mute: #282828; |
| | | |
| | | --vt-c-indigo: #2c3e50; |
| | | |
| | | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); |
| | | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); |
| | | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); |
| | | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); |
| | | |
| | | --vt-c-text-light-1: var(--vt-c-indigo); |
| | | --vt-c-text-light-2: rgba(60, 60, 60, 0.66); |
| | | --vt-c-text-dark-1: var(--vt-c-white); |
| | | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); |
| | | } |
| | | |
| | | /* semantic color variables for this project */ |
| | | :root { |
| | | --color-background: var(--vt-c-white); |
| | | --color-background-soft: var(--vt-c-white-soft); |
| | | --color-background-mute: var(--vt-c-white-mute); |
| | | |
| | | --color-border: var(--vt-c-divider-light-2); |
| | | --color-border-hover: var(--vt-c-divider-light-1); |
| | | |
| | | --color-heading: var(--vt-c-text-light-1); |
| | | --color-text: var(--vt-c-text-light-1); |
| | | |
| | | --section-gap: 160px; |
| | | } |
| | | |
| | | @media (prefers-color-scheme: dark) { |
| | | :root { |
| | | --color-background: var(--vt-c-black); |
| | | --color-background-soft: var(--vt-c-black-soft); |
| | | --color-background-mute: var(--vt-c-black-mute); |
| | | |
| | | --color-border: var(--vt-c-divider-dark-2); |
| | | --color-border-hover: var(--vt-c-divider-dark-1); |
| | | |
| | | --color-heading: var(--vt-c-text-dark-1); |
| | | --color-text: var(--vt-c-text-dark-2); |
| | | } |
| | | } |
| | | |
| | | *, |
| | | *::before, |
| | | *::after { |
| | | box-sizing: border-box; |
| | | margin: 0; |
| | | font-weight: normal; |
| | | } |
| | | |
| | | body { |
| | | min-height: 100vh; |
| | | color: var(--color-text); |
| | | background: var(--color-background); |
| | | transition: |
| | | color 0.5s, |
| | | background-color 0.5s; |
| | | line-height: 1.6; |
| | | font-family: |
| | | Inter, |
| | | -apple-system, |
| | | BlinkMacSystemFont, |
| | | 'Segoe UI', |
| | | Roboto, |
| | | Oxygen, |
| | | Ubuntu, |
| | | Cantarell, |
| | | 'Fira Sans', |
| | | 'Droid Sans', |
| | | 'Helvetica Neue', |
| | | sans-serif; |
| | | font-size: 15px; |
| | | text-rendering: optimizeLegibility; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | } |
New file |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1669360744685" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1168" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M766.976 692.224h-190.464c-14.336 0-26.112-11.776-26.112-26.112s11.776-26.112 26.112-26.112h190.464c14.336 0 26.112 11.776 26.112 26.112s-11.776 26.112-26.112 26.112z" fill="#009A44" p-id="1169"></path><path d="M645.632 761.344v-190.464c0-14.336 11.776-26.112 26.112-26.112s26.112 11.776 26.112 26.112v190.464c0 14.336-11.776 26.112-26.112 26.112s-26.112-11.776-26.112-26.112zM508.928 855.552c-6.656 0-12.8-2.56-17.92-7.168l-299.008-299.008c-43.008-43.008-67.072-100.864-67.072-161.792s24.064-118.784 67.072-161.792c42.496-42.496 103.424-58.368 171.008-45.056 57.856 11.264 116.736 43.52 161.28 88.064 9.728 9.728 9.728 26.112 0 35.84-9.728 9.728-26.112 9.728-35.84 0C415.232 231.424 294.912 194.048 227.84 261.12c-33.792 33.792-52.224 78.336-52.224 125.952s18.432 92.672 52.224 125.952l299.008 299.008c9.728 9.728 9.728 26.112 0 35.84-5.12 5.632-11.264 7.68-17.92 7.68z" fill="#009A44" p-id="1170"></path><path d="M812.544 556.544c-6.656 0-12.8-2.56-17.92-7.168-9.728-9.728-9.728-26.112 0-35.84 33.792-33.792 52.224-78.336 52.224-125.952s-18.432-92.672-52.224-125.952c-41.472-41.472-98.816-38.4-129.536-33.28-50.176 8.704-101.888 35.84-138.24 72.192-9.728 9.728-26.112 9.728-35.84 0-9.728-9.728-9.728-26.112 0-35.84 44.032-44.032 104.448-75.776 165.376-86.016 69.632-12.288 131.584 4.608 174.08 47.104 43.008 43.008 67.072 100.864 67.072 161.792 0 60.928-23.552 118.784-67.072 161.792-5.12 4.608-11.776 7.168-17.92 7.168z" fill="#009A44" p-id="1171"></path></svg> |
New file |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1679558961529" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3002" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M461.842647 631.286804l22.067598-39.22128c-100.392478-56.483432-154.764829-113.929796-170.871669-182.065616l169.512718 0 0-45.008077-174.657902 0-0.050142-17.422811 0-77.797877 156.564825 0 0-44.99989L106.133226 224.771253l0 44.99989 156.709111 0 0 77.738525-0.042979 17.482163L88.473007 364.991832l0 45.008077 169.181167 0c-16.114003 68.13582-70.487378 125.583207-170.879855 182.065616l22.075785 39.22128c61.946864-34.853809 139.065266-86.675058 176.499853-165.742858 9.695826 20.555152 22.449291 40.244586 38.34226 58.924018C355.600951 561.991578 400.796292 596.934414 461.842647 631.286804z" fill="#DA1726" p-id="3003"></path><path d="M640.32976 432.744935c0.144286-50.42546 0.296759-98.048083-0.152473-132.307352-0.288572-21.99085-7.302313-39.795355-20.85191-52.950979-25.157983-24.414039-64.714907-23.735587-85.975117-23.378453-2.181689 0.041956-4.177136 0.076748-5.943362 0.076748l0 45.01217c1.995447 0 4.245697-0.047072 6.707772-0.089028 14.721283-0.25071 42.129516-0.713244 53.862745 10.68127 1.732457 1.681292 7.004531 6.7968 7.190773 21.22644 0.067538 4.924149 0.119727 10.163477 0.161682 15.631002l-69.910233 41.692564 23.059182 38.644135 46.986127-28.018124c-0.00921 15.945157-0.050142 32.81129-0.102331 50.127677l-69.944002 41.72224 23.059182 38.657438 46.731324-27.883047c-0.025583 12.905938-0.042979 25.735128-0.042979 38.300304 0 10.31595-6.070252 26.736944-13.270235 35.846416-20.886703 26.447349-56.478316 46.867424-56.809867 47.062875l22.159696 39.167045c1.765203-1.001817 43.522236-24.852014 69.969585-58.337663 13.525038-17.116843 22.957875-43.326784 22.957875-63.73765C640.176264 484.715587 640.253012 458.462666 640.32976 432.744935z" fill="#DA1726" p-id="3004"></path><path d="M708.015326 333.907882 753.032612 333.907882 753.032612 297.712519 848.710718 297.712519 848.710718 333.907882 893.719818 333.907882 893.719818 297.712519 937.080372 297.712519 937.080372 252.704442 893.719818 252.704442 893.719818 223.412302 848.710718 223.412302 848.710718 252.704442 753.032612 252.704442 753.032612 223.412302 708.015326 223.412302 708.015326 252.704442 665.621796 252.704442 665.621796 297.712519 708.015326 297.712519Z" fill="#DA1726" p-id="3005"></path><path d="M732.450854 633.655757l137.800459 0c36.763298 0 66.829058-30.072923 66.829058-66.833151L937.080372 391.660214l0-27.865651L665.621796 363.794563l0 45.008077L665.621796 566.822606C665.621796 603.582835 695.687556 633.655757 732.450854 633.655757zM823.851541 408.80264l68.220754 0 0 67.082838-68.220754 0L823.851541 408.80264zM823.851541 520.889461l68.220754 0 0 45.933145c0 11.831466-9.993608 21.820981-21.819958 21.820981l-46.400796 0L823.851541 520.889461zM710.639083 408.79343l68.212568 0 0 67.082838L710.639083 475.876268 710.639083 408.79343zM710.630896 520.889461l68.220754 0 0 67.754127-46.400796 0c-11.827373 0-21.820981-9.989515-21.820981-21.820981L710.629873 520.889461z" fill="#DA1726" p-id="3006"></path><path d="M392.713196 689.854711c-17.32969 0-23.51967 18.356067-23.51967 18.356067l-36.814464 92.37692 19.044752 0 15.341407-39.115879 50.544163 0 15.105023 39.115879 20.623713 0-36.797068-92.37692C416.241053 708.210777 410.092006 689.854711 392.713196 689.854711zM374.017392 743.5394l10.714016-26.091238c0 0 2.12336-5.866614 7.981788-5.866614 6.053879 0 7.997138 5.866614 7.997138 5.866614l9.399067 24.957415 0.424672 1.133823L374.017392 743.5394z" fill="#DA1726" p-id="3007"></path><path d="M88.201831 707.030905 132.99706 707.030905 132.99706 800.527322 133.00627 800.527322 151.642722 800.527322 151.642722 707.030905 196.447161 707.030905 196.447161 689.582511 88.201831 689.582511Z" fill="#DA1726" p-id="3008"></path><path d="M478.178707 763.26772l0-73.446779-18.525935 0 0 18.415418 0 63.628156c0 16.650215 11.538801 28.621874 29.079292 28.621874l22.534226 0 0-18.314111c0 0-4.168949 0.025583-13.71128 0.025583C485.123886 782.196839 478.178707 779.916912 478.178707 763.26772z" fill="#DA1726" p-id="3009"></path><path d="M541.924543 763.26772l0-73.446779-18.526959 0 0 18.415418 0 63.628156c0 16.650215 11.54801 28.621874 29.096688 28.621874l22.51683 0 0-18.314111c0 0-4.15974 0.025583-13.721513 0.025583C548.869722 782.196839 541.924543 779.916912 541.924543 763.26772z" fill="#DA1726" p-id="3010"></path><path d="M309.921585 690.321338c-6.180769-2.505054-11.92868 2.105964-13.066597 3.001357-8.126075 6.39771-16.887622 15.923668-32.815383 15.923668l-0.629333 0-0.194428 0-0.620124 0c-15.936971 0-24.698518-9.525957-32.815383-15.923668-1.137916-0.895393-6.894014-5.506411-13.075807-3.001357-5.782703 2.335185-6.691399 7.879458-6.691399 12.277628 0 8.468882 0.017396 57.319473 0.017396 97.836259l18.500353 0 0-83.249029c6.121418 3.378957 18.891256 11.759835 34.275641 11.759835l1.019213 0c14.629185 0 28.146037-8.379854 34.259268-11.759835l0 83.249029 18.517749 0c0.016373-40.516786 0.024559-89.366354 0.024559-97.836259C316.629357 698.200796 315.696102 692.656523 309.921585 690.321338z" fill="#DA1726" p-id="3011"></path><path d="M930.508699 690.321338c-6.180769-2.505054-11.92868 2.105964-13.066597 3.001357-8.117888 6.39771-16.879436 15.923668-32.807197 15.923668l-0.62831 0-0.203638 0-0.610914 0c-15.935947 0-24.707728-9.525957-32.816406-15.923668-1.136893-0.895393-6.894014-5.506411-13.075807-3.001357-5.78168 2.335185-6.690376 7.879458-6.690376 12.277628 0 8.468882 0.017396 57.319473 0.017396 97.836259l18.500353 0 0-83.249029c6.121418 3.378957 18.891256 11.759835 34.267455 11.759835l1.019213 0c14.637372 0 28.154223-8.379854 34.267455-11.759835l0 83.249029L937.199075 800.435225c0.016373-40.516786 0.025583-89.366354 0.025583-97.836259C937.224658 698.200796 936.282193 692.656523 930.508699 690.321338z" fill="#DA1726" p-id="3012"></path><path d="M603.888803 782.018783c-5.111414 0-9.271154 4.139274-9.271154 9.246595 0 5.111414 4.15974 9.254781 9.271154 9.254781 5.111414 0 9.254781-4.143367 9.254781-9.254781C613.142561 786.158057 609.000218 782.018783 603.888803 782.018783z" fill="#DA1726" p-id="3013"></path><path d="M766.642584 689.922249c-13.338796 0-24.800849 3.981684-34.097586 11.835559-11.114129 9.432837-16.759709 24.062022-16.759709 43.462884 0 17.685801 4.728698 31.465642 14.018272 40.941458 9.314133 9.517771 21.701255 14.366196 36.840046 14.366196 9.373485 0 18.178011-2.194992 26.158776-6.504134 7.964392-4.325515 14.119579-10.489912 18.331507-18.339694 4.13518-7.79043 6.214539-18.535145 6.214539-31.907711 0-16.666588-4.762467-29.946033-14.178931-39.455617C793.743826 694.774767 781.449825 689.922249 766.642584 689.922249zM789.829679 773.761726c-6.231935 6.049786-14.043854 9.122775-23.187095 9.122775-9.43386 0-17.057491-2.954285-23.331381-9.051143-6.376221-6.245238-9.628288-15.860223-9.628288-28.612665 0-12.744255 3.252067-22.338774 9.628288-28.53694 6.180769-5.985318 14.042831-9.025561 23.331381-9.025561 9.136078 0 16.921391 3.043313 23.13593 9.067516 6.4192 6.198166 9.679453 15.597233 9.679453 27.925003C799.457967 757.727541 796.222273 767.529791 789.829679 773.761726z" fill="#DA1726" p-id="3014"></path><path d="M675.395394 706.776102c9.136078 0 16.912182 3.039219 23.12672 9.05933 0.432859 0.424672 0.849344 0.865717 1.264806 1.324158l10.384511-15.401782c-9.16166-8.439206-20.862143-12.718673-34.777061-12.718673-13.338796 0-24.801872 3.973498-34.098609 11.831466-11.122315 9.42465-16.760732 24.066115-16.760732 43.454698 0 17.689894 4.720511 31.473829 14.018272 40.941458 9.305947 9.531074 21.693068 14.370289 36.84107 14.370289 9.364275 0 18.168802-2.199085 26.15059-6.512321 1.952468-1.061169 3.795443-2.232854 5.536087-3.510964l-8.277524-16.968463c-0.076748 0.076748-0.144286 0.152473-0.230244 0.229221-6.223748 6.053879-14.026458 9.126868-23.178909 9.126868-9.43386 0-17.066701-2.963495-23.332405-9.05933-6.376221-6.249331-9.627265-15.852036-9.627265-28.616758 0-12.740162 3.251044-22.334681 9.627265-28.523637C658.244782 709.797925 666.097634 706.776102 675.395394 706.776102z" fill="#DA1726" p-id="3015"></path></svg> |
New file |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1666837514634" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1889" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M442.5 699.7H285.8v21.4h156.7v-21.4zM663.6 220c-3.5-0.3-7.1-0.7-10.6-0.9-4-0.4-7.9-0.8-11.8-1.4 3.9 0.6 7.9 1 11.8 1.4 3.5 0.2 7 0.7 10.6 0.9z" fill="#E12319" p-id="1890"></path><path d="M767.2 83.4H213.1c-78.7 0-142.5 63.8-142.5 142.5V780c0 78.7 63.8 142.5 142.5 142.5h554.1c78.7 0 142.5-63.8 142.5-142.5V225.9c0-78.7-63.8-142.5-142.5-142.5zM228 323.3c1.8-4.8 3.3-9.6 5.5-14.2 2.8-5.8 6.3-11.2 10.4-16.2 10.2-12.4 17.2-26.6 23.1-41.5 3.4-8.4 7.1-16.7 10.5-25.2 3.9-9.7 12.4-11.4 21-8.8 4.2 1.3 8 3.6 11.3 6.4 6.4 5.4 13.7 9.6 20.7 14.3 1.2 0.8 2.1 1.2 3.4-0.2 13.4-14.5 30.1-24.2 47.9-32 35.1-15.6 71.9-25.7 109.7-32 30.8-5.1 61.8-6.1 93-4.6 0.6 0 1.2-0.1 1.8-0.1 1.8-1.7 3.4-1 5.1 0.2 1.2 0.4 2.4 0.5 3.6 0.3 0.8-0.7 1.5-0.7 2.2 0.2 4.4 0.4 8.7 0.9 13.1 1.3 0.8-0.7 1.5-0.6 2.1 0.2 1.5 0.2 2.9 0.3 4.4 0.5 0.6-0.6 1-0.5 1.4 0.2 0.9 0.4 1.9 0.6 2.9 0.4 1.2-1 2.2-0.7 3.1 0.5 7.3 1.6 14.7 3 22 4.8 19.9 4.9 39.1 11.5 55.4 24.7 13.1 10.6 18.2 23.9 15.5 40.9-3.7 22.9-11.7 44-23 64.1-1.4 2.5-3.9 3.8-5.6 5.9 0.8 3.9-3 5.8-3.9 9-0.8 2.7-3.2 4.4-4.9 6.5-0.1 0.4-0.2 0.9-0.8 0.6 0 0.5 0.2 1.3-0.7 0.7 0.6 1.6-1 2.3-1.7 3.2-10.5 13.9-23.5 25.2-37.2 35.8-28.5 22.1-61.1 35.1-96.5 41.2-8.8 1.5-17.7 0-26.5-1-6.5-0.7-13-1.5-19.5-2.8-1.2-0.2-2.6-1.2-3.8 0.1-0.1 0.1-0.4 0.2-0.5 0.3-0.7-4.6-4.8-2.7-7.1-3.2-20.3-4.7-38.9-13.6-57-23.5-23.5-13-46.3-27.1-65.9-45.9-15.1-14.5-28.3-30.4-36.5-50-1.6-3.9-3.1-8-3.7-12.2-0.4-3-1.6-4.8-4.7-5.7 0.6 6.8 1 13.6 0.4 20.3-2.1 27.1-15.2 46.2-41.1 55.6-8.6 3.1-16.9 7.1-26.3 8-12.5 1.3-28.2-12.2-22.6-27.1z m68.1 473.4c-6.2 11.1-14.9 20.9-22.5 31.2-6.1 8.2-14.1 10.8-25.4 7.4 3.6-6.4 7.8-12.1 10.2-18.5 6.9-18.3 13.5-36.8 19.3-55.5 1.9-6 3.5-9.2 10.3-8.8 8.2 0.5 16.4 0.1 28.3 0.1-7.4 16.5-12.7 30.9-20.2 44.1z m84.2-8c-0.5 32.8-19.2 49.6-53.4 47.3v-13.9c20-7.1 21-8.6 21-30.6v-51.4h-93.1v-57.7h218.5v57h-93v35.8c0 4.4 0.1 9 0 13.5z m75.7 40.6c-20-21.5-33.7-46.3-41.9-76.2h31.4c10.9 28.2 21.4 55.5 32 82.9-7.3 2-14.5 0.8-21.5-6.7z m25.2-162.6H246.9v-16.5h100.6c0.5-4.8 0.8-8.5 1.3-13h30.8c0.6 4.1 1.2 8.1 2 13.2h75.1c3.8 0 7.6-0.1 11.4-0.1 14.8-0.2 14.9-0.1 13.1 16.4z m26.7-172.5c-4.4 9.6-6.8 20-9.8 30.1-0.7 2.3-1.5 3.5-4.1 3.4-3 0-6.9 1.8-8.8 0.1-2-1.8-0.2-5.7 0-8.6 0.9-11.5 1.4-23 0.7-34.8-3.8 1.2-6.8 3.5-9.6 5.9-10.9 9.1-19.9 20-30.1 29.7-1.7 1.6-3.4 3.1-4.9 4.9-2.2 2.8-5.2 3.1-8.4 3.4-2.9 0.3-3.5-0.6-2-3.3 5.5-9.2 10.8-18.5 16.2-27.7 2.9-5 5.7-10.2 8.9-15.1 1.6-2.5 0.5-3-1.5-3.5-3.7-0.9-7-2.7-10-5-7.2-5.5-10.6-16.8-7.3-25.1 1.1 3.8 2.4 7.3 4.7 10.3 7.1 9.6 17.5 7.9 25.1 3.6 0.9-0.5 1.4-1.6 2-2.6 9-15 17.9-30 26.8-45.1 1.4-2.4 2.7-2.9 5.5-2.4 12 2.2 24 4 36.2 2.5 5.8-0.7 11.4-2 17.2-5.3v6c-0.3 36.2-0.6 72.5-0.7 108.7 0 3.4-1 4-4.1 3.7-7.6-0.7-7.5-0.6-9.4-8.1-2.2-8.4-3.3-17.2-6.4-25.4-1.7-4.3-3.6-8.5-6.9-11.9-4.3-4.3-7.5-4.3-11.9 0-3.4 3.4-5.5 7.5-7.4 11.6z m31.4 339c-4 3.5-11.6 2.9-18.5 4.4 8.2-18.6 15.7-35 22.6-51.6 2.6-6.2 5.3-13 5.4-19.6 0.2-12.7 6.8-15 17.5-13.9 6.2 0.6 12.6 0.1 20.4 0.1-9.5 32.3-23.6 59.5-47.4 80.6z m187.8-4.8c-19.7-21.3-32.9-45.8-40.9-74.1 2.1-0.9 2.4-1.1 2.8-1.1 29.8-3 29.5-2.9 37.6 25.3 2.9 10.2 6.8 20.1 11.1 29.8 4.1 9.2 9.4 17.9 14.3 27.2-10.3 2.7-17.8 0.6-24.9-7.1zM753.5 667c-3.5 0.2-7.5 0.6-11.5 0.6-45.9 0.1-91.9 0.3-137.8-0.1-8.8-0.1-13.8 2.2-17.1 10.8-5.5 14-12.4 27.5-19.8 43.6 17.9 0 33.9 0.3 50-0.4 1.8-0.1 4.7-5.1 4.9-8 0.6-9.7 0.2-19.5 0.2-30.1h31.7v38.3h90.7v17.8h-90.5c0 17.4 0.1 33.2 0 49-0.2 32.8-18.6 49.6-52.7 47.8-2.5-8.7-3.3-15.3 8.8-18.2 4.5-1.1 10.4-8 10.6-12.6 1.1-21.4 0.5-43 0.5-65.9h-95.1c11.2-24.4 21.6-46.9 33-71.8h-40.7v-17.5c13.6 0 27.2 0.2 40.8-0.1 3.2-0.1 8.4-0.8 9.1-2.6 7.7-19.4 23.5-8.5 37.3-11.9-1.8 5.5-3 8.9-4.7 14h152.2c0.1 6.4 0.1 11.1 0.1 17.3z" fill="#E12319" p-id="1891"></path><path d="M678 329.8c0.8 1.8-0.9 2.4-1.6 3.4-10.5 13.9-23.5 25.2-37.2 35.8-28.5 22.1-61.1 35.1-96.5 41.2-8.8 1.5-17.7 0-26.5-1-6.5-0.7-13-1.5-19.5-2.8-1.2-0.2-2.6-1.2-3.8 0.1-0.1 0.1-0.4 0.2-0.5 0.3-0.7-4.6-4.8-2.7-7.1-3.2-20.3-4.7-38.9-13.6-57-23.5-23.5-13-46.3-27.1-65.9-45.9-15.1-14.5-28.3-30.4-36.5-50-1.6-3.9-3.1-8-3.7-12.2-0.4-3-1.6-4.8-4.7-5.7 0.6 6.8 1 13.6 0.4 20.3-2.1 27.1-15.2 46.2-41.1 55.6-8.6 3.1-16.9 7.1-26.3 8-12.5 1.2-28.1-12.2-22.5-27.1 1.8-4.8 3.3-9.6 5.5-14.2 2.8-5.8 6.3-11.2 10.4-16.2 10.2-12.4 17.2-26.6 23.1-41.5 3.4-8.4 7.1-16.7 10.5-25.2 3.9-9.7 12.4-11.4 21-8.8 4.2 1.3 8 3.6 11.3 6.4 6.4 5.4 13.7 9.6 20.7 14.3 1.2 0.8 2.1 1.2 3.4-0.2 13.4-14.5 30.1-24.2 47.9-32 35.1-15.6 71.9-25.7 109.7-32 30.8-5.1 61.8-6.1 93-4.6 0.6 0 1.2-0.1 1.8-0.1 1.7 0.1 3.4 0.1 5.1 0.2 1.2 0.4 2.4 0.5 3.6 0.3 0.7 0.1 1.4 0.1 2.2 0.2 4.4 0.4 8.7 0.9 13.1 1.3 0.7 0.1 1.4 0.1 2.1 0.2 1.5 0.2 2.9 0.3 4.4 0.5 0.5 0.1 1 0.1 1.4 0.2 0.9 0.4 1.9 0.6 2.9 0.4 1 0.2 2.1 0.3 3.1 0.5 7.3 1.6 14.7 3 22 4.8 19.9 4.9 39.1 11.5 55.4 24.7 13.1 10.6 18.2 23.9 15.5 40.9-3.7 22.9-11.7 44-23 64.1-1.4 2.5-3.9 3.8-5.6 5.9-1.5 0.5-3 0.8-4.4 1.5-7.6 3.6-15.7 6-23.9 7.4-31.5 5.3-62.5 3-92.8-7.2-28.5-9.6-51.1-27.4-69-51.4-1.8-2.5-5.2-3.4-7.3-2-2 1.3-2.9 6.4-1.3 8.6 5.6 7.9 12 15.3 18.9 22.1 24.1 23.5 53.6 36.2 86.3 42 20.7 3.7 41.6 3.6 62.4 0.7 7-1 13.8-3.1 20.6-5.1z m-25-110.7c6.3 0.3 12.5 1.5 18.9 0.9 8.1-0.7 15.9-2 22.7-6.9 4.4-3.2 5-8.2 1.6-12.4-1.3-1.6-2.9-3-4.7-4-6.9-3.9-14.2-6.8-22-7.8-8-1-16-1.5-24.2-0.6-6.5 0.7-12.7 1.6-18.4 4.7-4.3 2.4-8.2 5.8-8.2 10.8 0 5.3 4.8 7.8 9.1 9.9 7.9 3.9 16.6 4.5 25.2 5.4z m-161.9-0.4c-0.7 6.7 5.1 13.4 12.1 14.2 6.2 0.7 14.6-5.4 15.3-11.1 0.8-6.1-5.6-13.4-12.3-14-8-0.7-14.3 3.9-15.1 10.9z" fill="#EEEEEE" p-id="1892"></path><path d="M437.2 448.7c1.1 3.8 2.4 7.3 4.7 10.3 7.1 9.6 17.5 7.9 25.1 3.6 0.9-0.5 1.4-1.6 2-2.6 9-15 17.9-30 26.8-45.1 1.4-2.4 2.7-2.9 5.5-2.4 12 2.2 24 4 36.2 2.5 5.8-0.7 11.4-2 17.2-5.3v6c-0.3 36.2-0.6 72.5-0.7 108.7 0 3.4-1 4-4.1 3.7-7.6-0.7-7.5-0.6-9.4-8.1-2.2-8.4-3.3-17.2-6.4-25.4-1.7-4.3-3.6-8.5-6.9-11.9-4.3-4.3-7.5-4.3-11.9 0-3.2 3.2-5.3 7.2-7.2 11.3-4.4 9.6-6.8 20-9.8 30.1-0.7 2.3-1.5 3.5-4.1 3.4-3 0-6.9 1.8-8.8 0.1-2-1.8-0.2-5.7 0-8.6 0.9-11.5 1.4-23 0.7-34.8-3.8 1.2-6.8 3.5-9.6 5.9-10.9 9.1-19.9 20-30.1 29.7-1.7 1.6-3.4 3.1-4.9 4.9-2.2 2.8-5.2 3.1-8.4 3.4-2.9 0.3-3.5-0.6-2-3.3 5.5-9.2 10.8-18.5 16.2-27.7 2.9-5 5.7-10.2 8.9-15.1 1.6-2.5 0.5-3-1.5-3.5-3.7-0.9-7-2.7-10-5-7.4-5.2-10.7-16.6-7.5-24.8z" fill="#EEEEEE" p-id="1893"></path><path d="M678 329.8c-6.8 2-13.6 4-20.7 5-20.9 2.9-41.7 3-62.4-0.7-32.7-5.8-62.1-18.5-86.3-42-7-6.8-13.3-14.1-18.9-22.1-1.6-2.2-0.7-7.2 1.3-8.6 2.2-1.4 5.5-0.5 7.3 2 17.9 24 40.5 41.8 69 51.4 30.2 10.2 61.3 12.4 92.8 7.2 8.3-1.4 16.3-3.8 23.9-7.4 1.4-0.6 2.9-1 4.4-1.5 0.8 3.9-3 5.8-3.9 9-0.8 2.7-3.2 4.4-4.9 6.5-0.5-0.1-0.8 0.1-0.8 0.6l0.1-0.1c-0.6 0.1-1.1 0.1-0.9 0.7zM591.3 169.5c-1.7-0.1-3.4-0.1-5.1-0.2 1.8-1.7 3.5-1 5.1 0.2zM624.2 172.9c-1-0.2-2.1-0.3-3.1-0.5 1.2-0.9 2.2-0.6 3.1 0.5zM597.1 169.9c-0.7-0.1-1.4-0.1-2.2-0.2 0.8-0.7 1.6-0.6 2.2 0.2zM612.4 171.4c-0.7-0.1-1.4-0.1-2.1-0.2 0.7-0.7 1.4-0.6 2.1 0.2zM618.2 172.1c-0.5-0.1-1-0.1-1.4-0.2 0.5-0.6 1-0.5 1.4 0.2z" fill="#282526" p-id="1894"></path><path d="M678.7 329.3c0.1-0.5 0.4-0.6 0.8-0.6-0.1 0.4-0.1 0.9-0.8 0.6z" fill="#EEEEEE" p-id="1895"></path><path d="M677.9 329.9c-0.1-0.7 0.4-0.7 0.9-0.7-0.1 0.5 0.3 1.6-0.9 0.7z" fill="#EEEEEE" p-id="1896"></path><path d="M653 219.1c-8.6-0.9-17.2-1.6-25.2-5.3-4.4-2.1-9.1-4.6-9.1-9.9 0-5 3.9-8.5 8.2-10.8 5.7-3.1 11.9-4 18.4-4.7 8.2-0.9 16.2-0.4 24.2 0.6 7.8 1 15.1 4 22 7.8 1.8 1 3.4 2.4 4.7 4 3.4 4.2 2.8 9.2-1.6 12.4-6.8 4.9-14.6 6.1-22.7 6.9-6.4 0.6-12.6-0.7-18.9-1z" fill="#282526" p-id="1897"></path><path d="M491.1 218.7c0.8-7 7.1-11.6 15.2-10.9 6.7 0.6 13 7.9 12.3 14-0.7 5.6-9.1 11.7-15.3 11.1-7.1-0.7-12.9-7.5-12.2-14.2z" fill="#444243" p-id="1898"></path><path d="M559.6 667.8h-40.7v-17.5c13.6 0 27.2 0.2 40.8-0.1 3.2-0.1 8.4-0.8 9.1-2.6 7.7-19.4 23.5-8.5 37.3-11.9-1.8 5.5-3 8.9-4.7 14h152.2V667c-3.5 0.2-7.5 0.6-11.5 0.6-45.9 0.1-91.9 0.3-137.8-0.1-8.8-0.1-13.8 2.2-17.1 10.8-5.5 14-12.4 27.5-19.8 43.6 17.9 0 33.9 0.3 50-0.4 1.8-0.1 4.7-5.1 4.9-8 0.6-9.7 0.2-19.5 0.2-30.1h31.7v38.3h90.7v17.8h-90.5c0 17.4 0.1 33.2 0 49-0.2 32.8-18.6 49.6-52.7 47.8-2.5-8.7-3.3-15.3 8.8-18.2 4.5-1.1 10.4-8 10.6-12.6 1.1-21.4 0.5-43 0.5-65.9h-95.1c11.3-24.4 21.7-47 33.1-71.8zM326.9 836v-13.9c20-7.1 21-8.6 21-30.6v-51.4h-93.1v-57.7h218.5v57h-93v49.5c-0.5 32.6-19.1 49.5-53.4 47.1z m-41.1-114.9h156.7v-21.4H285.8v21.4zM246.8 666.7v-16.5h100.6c0.5-4.8 0.8-8.5 1.3-13h30.8c0.6 4.1 1.2 8.1 2 13.2h75.1c3.8 0 7.6-0.1 11.4-0.1 15-0.1 15 0 13.2 16.5-77.7-0.1-155.5-0.1-234.4-0.1z" fill="#FFFFFF" p-id="1899"></path><path d="M686.2 754.2c2.1-0.9 2.4-1.1 2.8-1.1 29.8-3 29.5-2.9 37.6 25.3 2.9 10.2 6.8 20.1 11.1 29.8 4.1 9.2 9.4 17.9 14.3 27.2-10.3 2.8-17.8 0.7-24.9-7-19.7-21.3-33-45.9-40.9-74.2zM414.1 753.1h31.4c10.9 28.2 21.4 55.5 32 82.9-7.2 2.1-14.5 0.8-21.4-6.6-20.1-21.6-33.7-46.3-42-76.3zM316.4 752.6c-7.4 16.5-12.8 30.9-20.3 44.2-6.2 11.1-14.9 20.9-22.5 31.2-6.1 8.2-14.1 10.8-25.4 7.4 3.6-6.4 7.8-12.1 10.2-18.5 6.9-18.3 13.5-36.8 19.3-55.5 1.9-6 3.5-9.2 10.3-8.8 8.2 0.4 16.4 0 28.4 0zM586.6 752.5c-9.4 32.4-23.5 59.5-47.4 80.6-4 3.5-11.6 2.9-18.5 4.4 8.2-18.6 15.7-35 22.6-51.6 2.6-6.2 5.3-13 5.4-19.6 0.2-12.7 6.8-15 17.5-13.9 6.2 0.6 12.6 0.1 20.4 0.1z" fill="#FFFFFF" p-id="1900"></path></svg> |
New file |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1666837543425" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2096" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M83.168188 519.487531c17.535375-0.12689 35.071773-0.031722 52.608172-0.031722 17.198707 0.005117 34.398438-0.093121 51.596122 0.037862M115.494431 414.897452c-0.060375-11.618619-9.787924-21.146623-21.386076-20.948101-11.92868 0.204661-20.784372 9.349949-20.748556 21.428032 0.035816 11.970636 9.128915 20.87647 21.194718 20.756743C106.512872 436.015422 115.556852 426.843528 115.494431 414.897452zM289.782919 553.038672c16.989953 0 33.81413 0.290619 50.620911-0.121773 8.516977-0.208754 14.848173-7.466042 15.283078-15.975856 0.415462-8.111748-5.850242-16.909112-13.930267-17.206894-17.071817-0.629333-34.18252-0.191358-51.973722-0.191358C289.782919 530.900465 289.782919 541.259394 289.782919 553.038672zM187.373505 519.493671c-17.197684-0.130983-34.397415-0.032746-51.596122-0.035816-17.536398-0.002047-35.072797-0.097214-52.608172 0.029676M83.168188 519.487531c-12.458753 0.090051-19.564591 6.367011-19.522636 16.84669 0.039909 10.083659 6.940063 16.535605 18.760273 16.59291 35.071773 0.170892 70.14457 0.159636 105.216343 0.007163 11.793604-0.051165 18.978237-6.505158 19.142989-16.361643 0.173962-10.440793-7.086395-16.98586-19.392676-17.080004M84.947717 598.183871c24.419156 28.183899 55.475476 40.190351 92.771917 36.478819 47.625694-4.739954 86.159312-40.048111 91.570555-84.472903 6.16235-50.594305-20.676925-93.489254-68.474534-109.435435-18.427698-6.148024-18.427698-6.148024-18.46249-25.237801 0-4.723581 0.229221-9.460466-0.046049-14.167674-0.623193-10.627035-7.377014-17.526165-16.97665-17.672498-9.419534-0.143263-16.169261 5.803169-17.104563 16.244986-0.74906 8.372691-0.848321 16.874319-0.358157 25.267477 0.462534 7.91425-1.571798 11.656481-10.215666 13.803377-21.809725 5.415336-40.137139 17.253966-54.259788 35.004235-5.771447 7.254218-5.374404 16.502859 0.49221 21.914102 6.594185 6.082532 15.428388 5.467525 22.453385-1.62808 3.083222-3.114944 5.903453-6.505158 9.116635-9.474792 35.971259-33.253358 99.613742-21.217231 118.365828 22.680559 10.670014 24.978904 8.162914 49.242518-9.119705 70.372767-19.277042 23.568788-45.342698 30.407544-74.640977 25.463951-17.675568-2.982938-31.243585-13.151531-43.420929-26.048259-3.51301-3.719718-10.662851-6.179746-15.71696-5.583159-4.046153 0.477884-9.851369 6.060019-10.523681 10.100032C79.539544 586.947969 81.489966 594.192977 84.947717 598.183871zM257.008468 619.286492c23.107277 13.903661 47.164183 18.198477 73.251328 15.07637 60.35767-7.224542 100.997252-65.930595 85.044932-124.519991-10.425444-38.290071-36.285414-61.467957-74.200956-71.071685-8.639774-2.187829-11.669784-5.595438-10.839883-14.198374 0.709151-7.354502 0.26299-14.83487 0.101307-22.25384-0.25071-11.538801-6.647397-18.517749-16.845667-18.653849-10.204409-0.1361-16.756639 6.811126-16.983813 18.290575-0.160659 8.094352-0.469698 16.22452 0.083911 24.284079 0.50756 7.381108-2.189875 10.463306-9.461489 12.490475-10.384511 2.894933-20.227694 7.730055-30.834262 11.9471 6.991228 9.400091 12.596899 16.936741 18.73162 25.184589 37.731346-20.057825 77.543074-7.537673 97.270371 15.760962 18.804275 22.209838 21.172205 56.387241 4.752234 81.044828-8.879228 13.334703-21.12718 22.574135-36.33351 27.701922-22.774703 7.679913-44.886303 5.598508-65.754586-5.548366C268.717138 603.353614 263.006066 611.124602 257.008468 619.286492zM403.465075 415.390685c0.090051-12.009522-8.852622-21.298072-20.644179-21.443381-11.720949-0.144286-21.296025 9.224082-21.376866 20.917402-0.082888 11.992125 8.90788 21.169135 20.860097 21.291932C394.440537 436.281481 403.374 427.514817 403.465075 415.390685zM261.482363 415.359986c0.177032-11.543917-9.41851-21.366633-20.921495-21.417799-12.117992-0.053212-20.944008 8.718569-21.10262 20.971637-0.159636 12.251022 8.544607 21.204951 20.630876 21.222347C252.221442 436.154591 261.298168 427.338808 261.482363 415.359986z" p-id="2097" fill="#d81e06"></path><path d="M512.135076 497.649154l-10.077519 0 0-9.461489-0.205685 0c-4.149507 7.198959-10.593266 10.797927-19.334347 10.797927-7.198959 0-12.923334-2.562359-17.174148-7.687076-4.250814-5.123694-6.375198-12.040221-6.375198-20.747533 0-9.391904 2.39863-16.924461 7.197936-22.597671 4.799306-5.67321 11.072173-8.509814 18.819624-8.509814 7.746428 0 13.368472 3.016707 16.866133 9.049097l0.205685 0 0-35.015491 10.077519 0L512.135076 497.649154zM502.107699 463.815581c0-4.558829-1.499144-8.372691-4.498454-11.440563-2.99931-3.067872-6.693446-4.601808-11.08036-4.601808-5.347798 0-9.56382 1.997494-12.649088 5.990434-3.085268 3.993964-4.627391 9.435906-4.627391 16.325827 0 6.342452 1.481747 11.355629 4.447289 15.039531 2.964518 3.685949 6.915503 5.5279 11.851932 5.5279 4.866844 0 8.844435-1.808182 11.929704-5.424546 3.084245-3.616364 4.626367-8.114818 4.626367-13.497409L502.107699 463.815581zM531.467377 444.74013c5.655813-3.530406 12.186554-5.29561 19.591197-5.29561 13.710256 0 20.567431 7.198959 20.567431 21.595854l0 36.609803-9.975189 0 0-8.792247-0.25685 0c-3.942799 6.753821-9.752108 10.129708-17.430998 10.129708-5.519714 0-9.906627-1.49198-13.162788-4.473895-3.257184-2.982938-4.88424-7.009647-4.88424-12.0832 0-10.626012 6.28924-16.813944 18.87079-18.562774l16.864086-2.364861c0-9.289574-3.839445-13.934361-11.517311-13.934361-6.822382 0-13.044084 2.297322-18.665105 6.889921L531.4684 444.74013zM548.33351 470.91221c-4.663206 0.617054-7.875365 1.782599-9.641591 3.496637-1.766226 1.715061-2.648316 4.113691-2.648316 7.198959 0 2.707668 0.959861 4.919033 2.879584 6.633071 1.918699 1.714038 4.455475 2.570545 7.610328 2.570545 4.386914 0 8.003278-1.542122 10.850116-4.627391 2.843768-3.085268 4.267187-6.958482 4.267187-11.620665l0-5.450129L548.33351 470.91221zM636.412544 497.649154l-10.026354 0 0-32.341592c0-11.689227-4.26821-17.533328-12.803607-17.533328-4.421706 0-8.055466 1.645476-10.900258 4.936429-2.845815 3.290953-4.26821 7.455809-4.26821 12.494569l0 32.444946-10.078543 0 0-56.869219 10.078543 0 0 9.4093 0.205685 0c4.284583-7.164167 10.506285-10.745738 18.665105-10.745738 6.238075 0 10.985192 1.997494 14.242376 5.990434 3.257184 3.993964 4.88424 9.812483 4.88424 17.45658L636.411521 497.649154zM702.58771 492.867244c0 21.046339-10.214642 31.571043-30.644951 31.571043-7.060813 0-13.196557-1.320065-18.407232-3.959172l0-9.718339c6.341429 3.530406 12.426007 5.296633 18.253736 5.296633 13.81361 0 20.721951-7.268544 20.721951-21.801539l0-6.016017-0.205685 0c-4.319375 7.164167-10.765181 10.746762-19.334347 10.746762-7.130398 0-12.837376-2.553149-17.121959-7.661494-4.285606-5.107321-6.426363-11.877515-6.426363-20.310581 0-9.699919 2.365884-17.386996 7.095605-23.061228 4.730745-5.67321 11.037381-8.509814 18.921955-8.509814 7.575536 0 13.196557 3.016707 16.865109 9.049097l0.205685 0 0-7.712659 10.077519 0L702.588733 492.867244zM692.51019 463.815581c0.032746-4.386914-1.439792-8.157797-4.421706-11.311627-2.982938-3.15383-6.65149-4.730745-11.003612-4.730745-5.484921 0-9.753131 2.013867-12.803607 6.0416-3.051499 4.028757-4.577249 9.555633-4.577249 16.582677 0 6.033413 1.473561 10.917654 4.421706 14.653745 2.948145 3.736091 6.856152 5.604648 11.724019 5.604648 4.901637 0 8.911974-1.782599 12.032034-5.347798 3.119037-3.564175 4.66116-8.089235 4.627391-13.574157L692.509167 463.815581zM769.945817 497.649154l-10.077519 0 0-9.461489-0.205685 0c-4.148483 7.198959-10.593266 10.797927-19.334347 10.797927-7.197936 0-12.923334-2.562359-17.173125-7.687076-4.250814-5.123694-6.375198-12.040221-6.375198-20.747533 0-9.391904 2.39863-16.924461 7.197936-22.597671 4.798283-5.67321 11.072173-8.509814 18.819624-8.509814s13.368472 3.016707 16.865109 9.049097l0.205685 0 0-35.015491 10.077519 0L769.945817 497.649154zM759.919463 463.815581c0-4.558829-1.500167-8.372691-4.498454-11.440563-3.000334-3.067872-6.693446-4.601808-11.08036-4.601808-5.347798 0-9.564843 1.997494-12.649088 5.990434-3.085268 3.993964-4.627391 9.435906-4.627391 16.325827 0 6.342452 1.482771 11.355629 4.448312 15.039531 2.964518 3.685949 6.916527 5.5279 11.851932 5.5279 4.866844 0 8.844435-1.808182 11.92868-5.424546 3.085268-3.616364 4.627391-8.114818 4.627391-13.497409L759.920486 463.815581zM789.280164 444.74013c5.655813-3.530406 12.186554-5.29561 19.591197-5.29561 13.710256 0 20.567431 7.198959 20.567431 21.595854l0 36.609803-9.975189 0 0-8.792247-0.25685 0c-3.942799 6.753821-9.752108 10.129708-17.430998 10.129708-5.519714 0-9.906627-1.49198-13.162788-4.473895-3.257184-2.982938-4.88424-7.009647-4.88424-12.0832 0-10.626012 6.28924-16.813944 18.87079-18.562774l16.864086-2.364861c0-9.289574-3.839445-13.934361-11.517311-13.934361-6.822382 0-13.044084 2.297322-18.665105 6.889921L789.281187 444.74013zM806.145274 470.91221c-4.663206 0.617054-7.875365 1.782599-9.641591 3.496637-1.766226 1.715061-2.648316 4.113691-2.648316 7.198959 0 2.707668 0.959861 4.919033 2.879584 6.633071 1.918699 1.714038 4.455475 2.570545 7.610328 2.570545 4.386914 0 8.003278-1.542122 10.850116-4.627391 2.843768-3.085268 4.267187-6.958482 4.267187-11.620665l0-5.450129L806.145274 470.91221zM894.224308 497.649154l-10.026354 0 0-32.341592c0-11.689227-4.26821-17.533328-12.803607-17.533328-4.421706 0-8.055466 1.645476-10.900258 4.936429-2.845815 3.290953-4.26821 7.455809-4.26821 12.494569l0 32.444946-10.078543 0 0-56.869219 10.078543 0 0 9.4093 0.205685 0c4.284583-7.164167 10.506285-10.745738 18.665105-10.745738 6.238075 0 10.985192 1.997494 14.242376 5.990434 3.257184 3.993964 4.88424 9.812483 4.88424 17.45658L894.223285 497.649154zM960.399473 492.867244c0 21.046339-10.214642 31.571043-30.644951 31.571043-7.060813 0-13.196557-1.320065-18.407232-3.959172l0-9.718339c6.341429 3.530406 12.426007 5.296633 18.253736 5.296633 13.81361 0 20.721951-7.268544 20.721951-21.801539l0-6.016017-0.205685 0c-4.319375 7.164167-10.765181 10.746762-19.334347 10.746762-7.130398 0-12.837376-2.553149-17.121959-7.661494-4.285606-5.107321-6.426363-11.877515-6.426363-20.310581 0-9.699919 2.365884-17.386996 7.095605-23.061228 4.730745-5.67321 11.037381-8.509814 18.921955-8.509814 7.575536 0 13.196557 3.016707 16.865109 9.049097l0.205685 0 0-7.712659 10.077519 0L960.400496 492.867244zM950.322977 463.815581c0.032746-4.386914-1.439792-8.157797-4.421706-11.311627-2.982938-3.15383-6.65149-4.730745-11.003612-4.730745-5.484921 0-9.753131 2.013867-12.803607 6.0416-3.051499 4.028757-4.577249 9.555633-4.577249 16.582677 0 6.033413 1.473561 10.917654 4.421706 14.653745 2.948145 3.736091 6.856152 5.604648 11.724019 5.604648 4.901637 0 8.911974-1.782599 12.032034-5.347798 3.119037-3.564175 4.66116-8.089235 4.627391-13.574157L950.321954 463.815581z" p-id="2098" fill="#d81e06"></path><path d="M427.967118 627.373681c0-2.77623 0.950651-5.115508 2.854001-7.017834 1.901303-1.901303 4.267187-2.854001 7.095605-2.854001 2.87856 0 5.270027 0.963954 7.173376 2.892887 1.901303 1.927909 2.854001 4.254907 2.854001 6.978948 0 2.673899-0.951675 4.975315-2.854001 6.903224-1.90335 1.928932-4.319375 2.891863-7.250124 2.891863-2.828418 0-5.180999-0.962931-7.05672-2.891863C428.904467 632.350019 427.967118 630.04758 427.967118 627.373681zM529.235546 631.461789c-6.53074 3.906983-14.396895 5.862521-23.600511 5.862521-12.341073 0-22.265096-3.959172-29.771047-11.877515-7.507998-7.91732-11.260461-18.175965-11.260461-30.773887 0-13.985526 4.049223-25.25929 12.147668-33.82027s18.934235-12.842493 32.509415-12.842493c7.816013 0 14.500249 1.388627 20.053732 4.164856l0 14.962783c-6.016017-4.421706-12.700253-6.633071-20.053732-6.633071-8.637728 0-15.669888 2.996241-21.094434 8.985652-5.425569 5.990434-8.137331 13.973246-8.137331 23.947412 0 9.822716 2.557242 17.507746 7.674796 23.061228 5.116531 5.553483 12.018731 8.330736 20.708648 8.330736 7.353478 0 14.294564-2.416026 20.825304-7.250124L529.237593 631.461789zM543.812543 593.592296c0-14.08888 3.933589-25.208125 11.800767-33.358759 7.867178-8.148587 18.535145-12.224416 32.006971-12.224416 12.803607 0 22.842241 3.921309 30.118971 11.761881 7.274684 7.841595 10.913561 18.678408 10.913561 32.510438 0 13.471826-3.882424 24.346501-11.646248 32.625048-7.764847 8.278547-18.176988 12.417821-31.236422 12.417821-12.752442 0-22.933315-4.01136-30.54262-12.032034C547.616172 617.270579 543.812543 606.703919 543.812543 593.592296zM559.237861 593.129762c0 9.821693 2.480494 17.558911 7.442506 23.215748 4.962012 5.655813 11.632945 8.484232 20.014846 8.484232 8.637728 0 15.219633-2.76395 19.744693-8.29185 4.524037-5.526877 6.78759-13.458523 6.78759-23.793916 0-10.385535-2.263553-18.356067-6.78759-23.909549-4.52506-5.553483-11.106965-8.330736-19.744693-8.330736-8.484232 0-15.181771 2.90619-20.091594 8.716522C561.692772 575.031569 559.237861 583.001077 559.237861 593.129762zM772.727163 635.31863l-15.116279 0 0-48.975435c0-9.255805-1.439792-15.875572-4.319375-19.860327-2.880607-3.984754-7.611352-5.978155-14.192234-5.978155-5.552459 0-10.308787 2.597151-14.267958 7.79043-3.960195 5.193279-5.939269 11.337209-5.939269 18.433838l0 48.589648-15.116279 0 0-50.51858c0-16.196891-6.247284-24.295336-18.741853-24.295336-5.759167 0-10.527774 2.468215-14.306844 7.404644-3.778046 4.935406-5.668093 11.234879-5.668093 18.896372l0 48.5129-15.117302 0 0-85.302805 15.117302 0 0 13.497409 0.308015 0c6.067182-10.336416 14.937201-15.503089 26.610054-15.503089 5.706979 0 10.745738 1.568728 15.116279 4.705162 4.370541 3.136433 7.40362 7.379061 9.101285 12.726859 6.325056-11.619642 15.784498-17.430998 28.382421-17.430998 18.767436 0 28.152177 11.5695 28.152177 34.707476L772.72921 635.31863z" p-id="2099" fill="#d81e06"></path></svg> |
New file |
| | |
| | | export const requestCtx = 'http://182.92.203.7:5001' // 请æ±å°å |
| | | // export const appId = 1051; |
| | | |
| | | // export const requestCtx = 'http://172.31.31.145' // 请æ±å°å |
| | | // export const requestCtx = 'http://172.0.0.1' // 请æ±å°å |
| | | export const appId = 1 |
| | | |
| | | export const requestTimeOut = 300000 // 请æ±è¶
æ¶æ¶é´ |
| | | export const tokenKey = 'jilin-token' |
| | | export const userInfoKey = 'jilin-userInfo' // ç¨æ·ä¿¡æ¯key |
| | | export const appRefCode = 'jilinWebsite' |
| | | export const goodsStore = `defaultGoodsStore${appId}` // é»è®¤åååº(书å) |
| | | export const publicStore = `defaultPublicStore${appId}` // é»è®¤èµæºå¼æ¾ä»å¨ |
| | | export const publicRepository = `defaultPublicRepository${appId}` // é»è®¤èµæºå¼æ¾åº |
| | | |
| | | export const reg_tel = |
| | | /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/ // çµè¯å·æ£å |
| | | |
| | | // refcode |
| | | const refCode = { |
| | | // æ¶èèµæºåº |
| | | FavoriteMathVideo: 'FavoriteMathVideo', |
| | | FavoriteMathPicture: 'FavoriteMathPicture', |
| | | FavoriteMathAudio: 'FavoriteMathAudio', |
| | | FavoriteMathModel: 'FavoriteMathModel', |
| | | // è½®æå¾ |
| | | bannerCode: 'jilin_banner\\jilin_digitalResource', |
| | | // æ å |
| | | criterion: 'jilin_criterion', |
| | | // èµè®¯ |
| | | information: 'jilin_information', |
| | | // å
³äºæä»¬ |
| | | aboutUs: 'jilin_aboutUs', |
| | | // è£èªå¥å± |
| | | honorAwards: 'jilin_honorAwards', |
| | | // èç³»æä»¬ |
| | | contactUs: 'jilin_contactUs', |
| | | // ä»åºåº |
| | | pictureCode: 'jilin_imgResourceLibrary', |
| | | audioCode: 'jilin_audiosResourceLibrary', |
| | | videoCode: 'jilin_videosResourceLibrary', |
| | | modelCode: 'jilin_modelsResourceLibrary', |
| | | // åååº |
| | | imageStore: 'jilin_imgLibrary\\jilin_imageStore', |
| | | videoStore: 'jilin_videosLibrary\\jilin_videosStore', |
| | | audiosStore: 'jilin_audiosLibrary\\jilin_audiosStore', |
| | | modelStore: 'jilin_modelsLibrary\\jilin_modelsStore', |
| | | // ä¼ååååº |
| | | memberImage: 'jilin_imgLibrary\\jilin_memberImage', |
| | | memberAudios: 'jilin_audiosLibrary\\jilin_memberAudios', |
| | | memberVideos: 'jilin_videosLibrary\\jilin_memberVideos', |
| | | memberModels: 'jilin_modelsLibrary\\jilin_memberModels', |
| | | // ææ°èµæºåº |
| | | newImageStore: 'jilin_imgLibrary\\jilin_newImageStore', |
| | | newaudiosStore: 'jilin_audiosLibrary\\jilin_newaudiosStore', |
| | | newVideosStore: 'jilin_videosLibrary\\jilin_newVideosStore', |
| | | newModelsStore: 'jilin_modelsLibrary\\jilin_newModelsStore', |
| | | // é¦é¡µæ¨èèµæº |
| | | recommendImgStore:'jilin_imgLibrary\\jilin_recommendedImage', |
| | | recommendAudioStore:'jilin_audiosLibrary\\jilin_recommendedAudio', |
| | | recommendVideoStore:'jilin_videosLibrary\\jilin_recommendedVideo', |
| | | recommendModelStore:'jilin_modelsLibrary\\jilin_recommendedModel', |
| | | } |
| | | |
| | | const wxLogin = { |
| | | appid: 'wx2b9d4a6308fd03d6', |
| | | scope: 'snsapi_login', |
| | | logInRedirectURL: encodeURIComponent(requestCtx + '/website'), |
| | | authenRedirectURL:encodeURIComponent(requestCtx + '/website/#/userInfo') |
| | | } |
| | | |
| | | const config = { |
| | | requestCtx, |
| | | requestTimeOut, |
| | | tokenKey, |
| | | userInfoKey, |
| | | appRefCode, |
| | | goodsStore, |
| | | reg_tel, |
| | | appId, |
| | | refCode, |
| | | wxLogin |
| | | } |
| | | export default config |
New file |
| | |
| | | let isSelect = false; |
| | | let move = false; |
| | | |
| | | |
| | | document.addEventListener('mousedown', () => { |
| | | isSelect = true; |
| | | }); |
| | | |
| | | document.addEventListener('mousemove', () => { |
| | | if (isSelect) { |
| | | move = true; |
| | | } |
| | | }); |
| | | |
| | | document.addEventListener('mouseup', (e) => { |
| | | isSelect = false; |
| | | if (move) { |
| | | const selection = window.getSelection(); |
| | | if (selection && selection.toString().length != 0) { |
| | | parent.window.selectChange(e) |
| | | } |
| | | } |
| | | move = false; |
| | | e.preventDefault(); |
| | | }); |
| | | parent.window.document.getElementsByClassName("epub-container")[0].addEventListener("scroll", function (e) { |
| | | parent.window.scroll(e); // è°ç¨å¤ç彿°å¹¶ä¼ å
¥åæ° |
| | | }) |
| | | |
| | | |
| | | |
| | | |
New file |
| | |
| | | // åæ¶æ¥å£è°ç¨è½åï¼ |
| | | // éåçå¿
è¦æ§ï¼ï¼ |
| | | |
| | | import resource from "./api/resource.js"; |
| | | import store from "./api/store.js"; |
| | | import identity from "./api/identity.js"; |
| | | import ugc from "./api/ugc.js"; |
| | | import app from "./api/app.js"; |
| | | import file from "./api/file.js"; |
| | | import job from "./api/job.js"; |
| | | import edu from "./api/edu.js"; |
| | | |
| | | const WebMiddleGroundApi = { |
| | | resource, |
| | | store, |
| | | identity, |
| | | ugc, |
| | | app, |
| | | file, |
| | | job, |
| | | edu, |
| | | }; |
| | | |
| | | export default WebMiddleGroundApi; |
New file |
| | |
| | | import request from "@/plugin/axios/index.ts"; |
| | | const appApi = { |
| | | // è·åç¨æ·æ¶æ¯å表 |
| | | getAppMessageList(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetAppMessageList", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | // è·åç¨æ·æ¶æ¯è¯¦æ
|
| | | getMessage(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetMessage", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | //è·ååè¯ |
| | | getTicketResult(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetTicketResult", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | //使ç¨åè¯ |
| | | useTicket(data) { |
| | | return request({ |
| | | url: "/app/api/ApiUseTicket", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åCmsItemæç
§Eventç»è®¡ |
| | | getEventRankList(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetEventRankList", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åå¦ä¹ æ¶é¿æç
§Eventç»è®¡ |
| | | getStaticsSum(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetUserStaticsSum", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default appApi; |
New file |
| | |
| | | import request from '@/plugin/axios/index.ts' |
| | | import { handleQueryResourceListData } from '../tool' |
| | | const eduApi = { |
| | | // è·åååä¸çç»å·çç¥ |
| | | getQuizConfigListByProduct(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetQuizConfigListByProduct', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | // è·åç»å·ç»æ |
| | | getEduQuizConfigResult(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetEduQuizConfigResult', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //ç³è¯·è¯¾ç¨ |
| | | applyNewCourse(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiApplyNewCourse', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //æ´æ°è¯¾ç¨ç³è¯·ä¿¡æ¯ |
| | | updateCourseApply(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiUpdateCourseApply', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·åæçè¯¾ç¨ |
| | | getAppCourseList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetAppCourseList', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·åå·²ç³è¯·ç课ç¨è¯¦æ
|
| | | getCourseById(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetCourseById', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·åå建课ç¨ä¸çç级å表 |
| | | getCourseClassList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetCourseClassList', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //å建ççº§ä¿¡æ¯ |
| | | newCourseClass(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiNewCourseClass', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //å é¤ççº§ä¿¡æ¯ |
| | | delCourseClass(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiDelCourseClass', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ´æ°ççº§ä¿¡æ¯ |
| | | updateCourseClass(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiUpdateCourseClass', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //å建课ç¨è®¢å |
| | | createCourseOrder(data) { |
| | | return request({ |
| | | url: '/store/api/CreateCourseOrder', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // å
è´¹é¢åè¯¾ç¨ |
| | | makeFreeOrderPay(data) { |
| | | return request({ |
| | | url: '/store/api/MakeFreeOrderPay', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // è·åæåç»æ |
| | | getRankingList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetRankingList', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·å个人æå |
| | | getRanking(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetTopRanking', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ°å»ºæåè®°å½ |
| | | newRanking(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiNewRanking', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // å é¤ç»å·è§å |
| | | delQuizConfig(data) { |
| | | return request({ |
| | | url: '/edu/admin/DelQuizConfig', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ´æ°ç»å·è§å |
| | | updateQuizConfig(data) { |
| | | return request({ |
| | | url: '/edu/admin/UpdateQuizConfig', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ ¹æ®IDè·åç»å·é
ç½® |
| | | getQuizConfig(data) { |
| | | return request({ |
| | | url: '/edu/admin/GetQuizConfig', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | } |
| | | |
| | | export default eduApi |
New file |
| | |
| | | import request from "@/plugin/axios/index.ts"; |
| | | const fileApi = { |
| | | // è·åpdfæ»é¡µæ° |
| | | getPdfTotalPage(data) { |
| | | return request({ |
| | | url: "/file/GetPdfTotalPage", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åpdfãwordãpptç转å¾çé¢è§ |
| | | getPdfInfo(data) { |
| | | return request({ |
| | | url: "/file/GetPdfInfo", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | //è·åpdfç®å½ |
| | | GetPdfToc(data) { |
| | | return request({ |
| | | url: "/file/GetPdfToc", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | //è·åæä»¶ |
| | | getPdfPageImage(params) { |
| | | return request({ |
| | | url: '/file/GetPdfPageImage', |
| | | method: 'get', |
| | | responseType: 'blob', |
| | | params |
| | | }); |
| | | }, |
| | | //ä¸ä¼ æä»¶ |
| | | upload(data) { |
| | | return request({ |
| | | url: "/file/api/ApiUpload", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åé¿éäºå éå°å |
| | | getAliVod(data) { |
| | | return request({ |
| | | url: "/file/GetAliVod", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | downloadForAuthorize(params) { |
| | | return request({ |
| | | url: '/file/api/ApiDownloadForAuthorize', |
| | | method: 'GET', |
| | | responseType: 'blob', |
| | | params |
| | | }); |
| | | }, |
| | | // æ¹éä¸è½½ |
| | | downloadFiles(data) { |
| | | return request({ |
| | | url: '/file/api/ApiDownloadFiles', |
| | | method: 'post', |
| | | responseType: 'blob', |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // æ¹éä¸è½½get |
| | | getDownloadFiles (params) { |
| | | return request({ |
| | | url: '/file/api/ApiGetDownloadFiles', |
| | | method: 'GET', |
| | | responseType: 'blob', |
| | | headers:{ |
| | | 'md5s':params |
| | | } |
| | | }); |
| | | }, |
| | | // åéä¸è½½é®ä»¶ |
| | | sendFileEmail (data) { |
| | | return request({ |
| | | url:'/file/api/ApiSendFileWithEmail', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | } |
| | | |
| | | export default fileApi; |
New file |
| | |
| | | import request from "@/plugin/axios/index.ts"; |
| | | const identityApi = { |
| | | // è·åå¾å½¢éªè¯ç |
| | | getImgCode() { |
| | | return request({ |
| | | url: "/identity/NewCaptcha", |
| | | method: "post", |
| | | }); |
| | | }, |
| | | |
| | | // éªè¯å¾å½¢éªè¯ç |
| | | verificationImgCode(data) { |
| | | return request({ |
| | | url: "/identity/ValidCaptcha", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åçä¿¡éªè¯ç |
| | | getPhoneCode(data) { |
| | | return request({ |
| | | url: "/identity/NewSms", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // éªè¯çä¿¡éªè¯ç |
| | | verificationPhoneCode(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiValidMobilePhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // éè¿ææºå·æ³¨åç¨æ· |
| | | registerAppUserWithPhone(data) { |
| | | return request({ |
| | | url: "/identity/api/RegisterAppUserWithPhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è´¦å·å¯ç ç»å½ |
| | | loginByPassword(data) { |
| | | return request({ |
| | | url: "/identity/api/LoginByPassword", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // çä¿¡éªè¯ç ç»å½ |
| | | loginByMobilePhone(data) { |
| | | return request({ |
| | | url: "/identity/api/LoginByMobilePhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è®¾ç½®ç¨æ·key |
| | | setUserKey(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiAppUserSetKey", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·key |
| | | getUserKey(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiGetAppUserKey", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å é¤ç¨æ·key |
| | | delUserKey(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiDelAppUserKey", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åå»å½åç¨æ·ä¿¡æ¯ |
| | | getCurrentAppUser() { |
| | | return request({ |
| | | url: "/identity/api/GetCurrentAppUser", |
| | | method: "post", |
| | | }); |
| | | }, |
| | | |
| | | // æ·»å ç¨æ·ä¿¡æ¯ |
| | | setAppUserInfo(data) { |
| | | return request({ |
| | | url: "/identity/api/SetAppUserInfoRequest", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ç¨æ·æ´æ¢ç»å®ææºå·ï¼å¦æ²¡æç»å®ææºåèªå¨å建 |
| | | userSetPhoneNumber(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiUserSetPhoneNumber", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // æ£æµç¨æ·æ¯å¦ç»å®å¾®ä¿¡ |
| | | checkBuildingWeChat(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiCheckBuildingWeChat", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | |
| | | // éè¿ææºå·éç½®å¯ç |
| | | changePasswordByMobilePhone(data) { |
| | | return request({ |
| | | url: "/identity/api/ChangePasswordByMobilePhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å¾®ä¿¡å¼æ¾å¹³å°æ«ç ç»å½ |
| | | loginByWeChatOpenCode(data) { |
| | | return request({ |
| | | url: "/identity/api/LoginByWeChatOpenCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ç¨æ·ç»å®å¾®ä¿¡å· |
| | | bindingWeChat(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiBindingWeChat", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // 设置ç»å½çç¨æ·ååå¯ç ï¼ç¨æ·ååå¯ç è³å°6ä½ |
| | | setLoginNameAndPassword(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiUserSetLoginNameAndPassword", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åé®ç®±éªè¯ç |
| | | getEmailCode(data) { |
| | | return request({ |
| | | url: "/identity/api/SendVerifyEMail", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // ç¨æ·ç»å®é®ç®± |
| | | bindingEmail(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiBindEMail", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default identityApi; |
New file |
| | |
| | | import request from "@/plugin/axios/index.ts"; |
| | | import { tokenKey } from "@/assets/js/config"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | |
| | | |
| | | const jobApi = { |
| | | // ç»è®¡ |
| | | newJobWithNewView(data) { |
| | | return request({ |
| | | url: "/job/api/NewJobWithNewView", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | newSession(data) { |
| | | let token = toolClass.getCookie(tokenKey); |
| | | return request({ |
| | | url: token ? "/job/api/AppUserNewSession" : "/job/api/NewSession", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | newJobWithApiNewEvent(data){ |
| | | return request({ |
| | | url: "/job/api/NewJobWithApiNewEvent", |
| | | method: "post", |
| | | data |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | export default jobApi; |
New file |
| | |
| | | import request from "@/plugin/axios/index.ts"; |
| | | import { publicStore, publicRepository } from "@/assets/js/config"; |
| | | import { tokenKey } from "@/assets/js/config"; |
| | | import { handleQueryResourceListData } from "../tool"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | const resourceApi = { |
| | | /* |
| | | **è·åèµæºå表&详æ
** |
| | | path: æ°æ®è·¯å¾ |
| | | storeInfo: ä»å¨ |
| | | repositoryInfo: ä»åº |
| | | queryType: æ£ç´¢ç±»å |
| | | paging: å页 |
| | | sort: æåº |
| | | fields: èªå®ä¹å段 |
| | | itemId: è·å详æ
æ¶çèµæºID |
| | | */ |
| | | getItem: ({ |
| | | path, |
| | | storeInfo = publicStore, |
| | | repositoryInfo = publicRepository, |
| | | queryType, |
| | | linkType, |
| | | paging, |
| | | sort, |
| | | fields, |
| | | itemId, |
| | | itemIds, |
| | | itemType, |
| | | coverSize, |
| | | itemIdArr, |
| | | SysType, |
| | | tourism_isHighQualityResources, |
| | | }) => { |
| | | if (!path) return Promise.reject("æ¥å£è¯·æ±å¿
è¦åæ°ä¸è½ä¸ºç©ºï¼"); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + "", |
| | | RepositoryRefCode: repositoryInfo + "", |
| | | Type: queryType || "\\", |
| | | LinkType: linkType || "", |
| | | }, |
| | | PageQuery: { |
| | | Start: paging?.start || "0", |
| | | Size: paging?.size || "10", |
| | | }, |
| | | SortQuery: sort ? [sort] : [{ |
| | | LinkOrder: "Desc" |
| | | }], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | Type: [], |
| | | TypeId: [], |
| | | State: [], |
| | | Tag: [], |
| | | LinkInfo: [], |
| | | LinkFile: [], |
| | | CmsItemType: [], |
| | | ChildrenFolderCount: [], |
| | | ChildrenCount: [], |
| | | ...fields, |
| | | }; |
| | | if (itemIdArr) query["Id"] = itemIdArr; |
| | | if (SysType) query["SysType="] = [`${SysType}`]; |
| | | if (tourism_isHighQualityResources) |
| | | query["tourism_isHighQualityResources="] = [ |
| | | `${tourism_isHighQualityResources}`, |
| | | ]; |
| | | if (itemId) query["Id="] = [`${itemId}`]; |
| | | if (itemIds) query["Id="] = itemIds; |
| | | if (itemType) query["Type="] = [`${itemType}`]; |
| | | const body = { query: JSON.stringify({ Query: [{ Q1: query }] }) }; |
| | | let token = localStorage.getItem(tokenKey); |
| | | return request({ |
| | | url: token ? "/resource/api/ApiAppUserQuery" : "/resource/api/ApiQuery", |
| | | method: "post", |
| | | data: body, |
| | | }).then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0]; |
| | | const datas = handleQueryResourceListData({ |
| | | datas: data.datas, |
| | | fields, |
| | | path, |
| | | storeInfo, |
| | | repositoryInfo, |
| | | coverSize, |
| | | }); |
| | | return { datas, total: data.totalCount }; |
| | | } |
| | | return { datas: [], total: 0 }; |
| | | }); |
| | | }, |
| | | // æ¨¡ç³æç´¢ |
| | | EsQuery(query) { |
| | | let { params, path, paging } = query; |
| | | let queryBody = { |
| | | Type: "*", |
| | | Store: [], |
| | | ItemType: [], |
| | | CmsType: [], |
| | | SysType: ["CmsItem"], |
| | | LinkInfo: [], |
| | | PageQuery: { |
| | | Start: paging?.start || "0", |
| | | Size: paging?.size || "10", |
| | | }, |
| | | }; |
| | | // 设置ä¸åçPath |
| | | |
| | | // å¦ææ²¡ææç´¢å
³é®åï¼ååªç¨è·ååç§° |
| | | if (params.length > 0) { |
| | | let data = { |
| | | "||Name": [...params], |
| | | "||tourism_content*": [...params], |
| | | "||tourism_workflow*": [...params], |
| | | "||tourism_notes*": [...params], |
| | | "||tourism_caseIndex*": [...params], |
| | | "||tourism_basicCase*": [...params], |
| | | "||tourism_judgmentAndReasons*": [...params], |
| | | "||tourism_legalIssuesInvolvedInThisCase*": [...params], |
| | | "||tourism_referenceAnswerAndLegalAnalysis*": [...params], |
| | | "||tourism_case*": [...params], |
| | | "||tourism_clause*": [...params], |
| | | "||tourism_unscramble*": [...params], |
| | | "||tourism_specialRemind*": [...params], |
| | | "||tourism_fiction*": [...params], |
| | | "||tourism_authorityNature*": [...params], |
| | | "||tourism_authorityGist*": [...params], |
| | | "||tourism_penaltyGist*": [...params], |
| | | "||tourism_penaltyTerms*": [...params], |
| | | "||tourism_penaltyType*": [...params], |
| | | "||tourism_remarksNote*": [...params], |
| | | "||tourism_keyword*": [...params], |
| | | }; |
| | | Object.assign(queryBody, data); |
| | | } else { |
| | | let data = { |
| | | Name: [], |
| | | }; |
| | | Object.assign(queryBody, data); |
| | | } |
| | | |
| | | // å
¨é¨æç´¢ - åç¬çæä¸ªåº |
| | | if (path != "All") { |
| | | let data = { |
| | | Path: [ |
| | | { |
| | | Repository: "tourism_tourismLawsAndRegulationsDatabase", |
| | | Path: path, |
| | | }, |
| | | ], |
| | | }; |
| | | Object.assign(queryBody, data); |
| | | } |
| | | const body = { query: JSON.stringify({ Query: [{ Q1: queryBody }] }) }; |
| | | |
| | | return request({ |
| | | url: "/resource/api/ApiEsQuery", |
| | | method: "post", |
| | | data: body, |
| | | }).then((res) => { |
| | | if (res.length > 0) { |
| | | const data = res[0]; |
| | | |
| | | const datas = handleQueryResourceListData({ |
| | | datas: data.datas, |
| | | path, |
| | | }); |
| | | return { datas, total: data.totalCount }; |
| | | } |
| | | return { data: [], total: 0 }; |
| | | }); |
| | | }, |
| | | |
| | | //è·åèµæºç±»å |
| | | getCmsTypeByRefCode(data) { |
| | | return request({ |
| | | url: "resource/api/ApiGetCmsTypeByRefCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //åæ¶cmsæ¶è |
| | | delCmsItemLink(data) { |
| | | return request({ |
| | | url: "/resource/api/ApiDelCmsItemLink", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //cmsæ¶è |
| | | collectCmsItem(data) { |
| | | return request({ |
| | | url: "/resource/api/ApiAddCmsItemLink", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åcmsæ¶èå表 |
| | | getCmsCollectList(data) { |
| | | const body = { query: JSON.stringify({ Query: [{ Q1: data }] }) }; |
| | | return request({ |
| | | url: "/resource/api/ApiAppUserQuery", |
| | | method: "post", |
| | | data: body, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default resourceApi; |
New file |
| | |
| | | import request from '@/plugin/axios/index.ts' |
| | | import { tokenKey, goodsStore } from '@/assets/js/config' |
| | | import { handleQueryResourceListData, handleDetailQueryRequestData } from '../tool' |
| | | const storeApi = { |
| | | /* |
| | | **è·åååå表** |
| | | path: æ°æ®è·¯å¾ |
| | | storeInfo: ä»å¨ |
| | | channelInfo: é¢é |
| | | subAccess: |
| | | queryType: æ£ç´¢ç±»å |
| | | paging: å页 |
| | | sort: æåº |
| | | fields: èªå®ä¹å段 |
| | | */ |
| | | getProductList: ({ |
| | | path = '', |
| | | storeInfo = goodsStore, |
| | | storeEventIdOrRefCode = '', |
| | | favoriteTypes = '', |
| | | queryType, |
| | | linkType, |
| | | subAccess = [], |
| | | paging = {}, |
| | | sort, |
| | | fields, |
| | | filterList, |
| | | coverSize, |
| | | mainProductId, |
| | | handelEBooK |
| | | }) => { |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + '', |
| | | Type: queryType || '\\', |
| | | LinkType: linkType || '' |
| | | }, |
| | | FavoriteTypes: favoriteTypes ? [favoriteTypes] : [], |
| | | SubAccess: subAccess.length > 0 ? subAccess : [], |
| | | PageQuery: { |
| | | Start: paging.start || '0', |
| | | Size: paging.size || '10' |
| | | }, |
| | | SortQuery: |
| | | sort?.length == 0 |
| | | ? [] |
| | | : sort |
| | | ? [sort] |
| | | : [ |
| | | { |
| | | LinkOrder: 'Desc' |
| | | } |
| | | ], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | TypeId: [], |
| | | SysType: [], |
| | | State: [], |
| | | Tag: [], |
| | | BeginDate: [], |
| | | EndDate: [], |
| | | ProductLinkInfo: [], |
| | | AllowDonate: [], |
| | | // DonatePriceList: [], |
| | | StoreEvent: [], |
| | | SubProductCount: [], |
| | | SaleMethod: [], |
| | | SaleMethodValid: [], |
| | | StoreEventIdOrRefCode: storeEventIdOrRefCode, |
| | | ...fields, |
| | | ...filterList |
| | | } |
| | | if (mainProductId) { |
| | | query.AccessControl.MainProductId = mainProductId |
| | | } |
| | | if (handelEBooK) { |
| | | query.ProductCmsQuery = [ |
| | | { |
| | | QueryCms: { |
| | | Path: '*', |
| | | Type: '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999 |
| | | }, |
| | | ProductLinkInfo: [] |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | const body = { |
| | | query: JSON.stringify({ |
| | | Query: [ |
| | | { |
| | | Q1: query |
| | | } |
| | | ] |
| | | }) |
| | | } |
| | | let token = localStorage.getItem(tokenKey) |
| | | let url = token ? '/store/api/ApiQueryProductByAppUser' : '/store/api/ApiQueryProduct' |
| | | return request({ |
| | | url: url, |
| | | method: 'post', |
| | | data: body |
| | | }).then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0] |
| | | const datas = handleQueryResourceListData({ |
| | | datas: data.datas, |
| | | fields, |
| | | path, |
| | | storeInfo, |
| | | coverSize, |
| | | handelEBooK |
| | | }) |
| | | return { |
| | | datas, |
| | | total: data.totalCount, |
| | | extraInfos: data.extraInfos?.StoreEvent |
| | | } |
| | | } |
| | | return { |
| | | datas: [], |
| | | total: 0 |
| | | } |
| | | }) |
| | | }, |
| | | /* |
| | | **è·ååå详æ
** |
| | | path: æ°æ®è·¯å¾ |
| | | storeInfo: ä»å¨ |
| | | channelInfo: é¢é |
| | | subAccess: |
| | | fields: èªå®ä¹å段 |
| | | productId: ååID |
| | | cmsPathï¼cmsPath |
| | | */ |
| | | getProductDetail: ({ |
| | | path = '', |
| | | storeInfo = goodsStore, |
| | | channelInfo = '', |
| | | favoriteTypes = '', |
| | | queryType, |
| | | subAccess = [], |
| | | fields, |
| | | productId, |
| | | cmsPath, |
| | | cmsType, |
| | | coverSize, |
| | | itemId, |
| | | itemIds, |
| | | itemFields, |
| | | linkTypes, |
| | | filterList, |
| | | handelEBooK, |
| | | sort, |
| | | cmsSort, |
| | | source |
| | | }) => { |
| | | const subQuery = {} |
| | | if (cmsPath) { |
| | | subQuery['QueryCms'] = { |
| | | Path: cmsPath + '', |
| | | Type: cmsType || '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999 |
| | | }, |
| | | SortQuery: cmsSort |
| | | ? [cmsSort] |
| | | : [ |
| | | { |
| | | ProductLinkOrder: 'Asc' |
| | | } |
| | | ], |
| | | ProductLinkInfo: [], |
| | | ...itemFields |
| | | } |
| | | if (itemId) subQuery['QueryCms']['Id='] = [`${itemId}`] |
| | | if (itemIds) subQuery['QueryCms']['Id='] = itemIds |
| | | } else { |
| | | subQuery['QueryCms'] = { |
| | | Path: '*', |
| | | Type: '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999 |
| | | }, |
| | | ProductLinkInfo: [] |
| | | } |
| | | } |
| | | // è·åå
³èèµæº |
| | | let linkFields = {} |
| | | if (linkTypes && linkTypes.length) { |
| | | for (let i = 0; i < linkTypes.length; i++) { |
| | | const linkType = linkTypes[i] |
| | | subQuery['QueryLink_' + linkType.linkType] = { |
| | | Path: cmsPath + '', |
| | | Type: '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | LinkTypes: [linkType.linkType], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 100 |
| | | }, |
| | | ProductLinkInfo: [], |
| | | ...linkType.fields |
| | | } |
| | | linkFields = { |
| | | ...linkFields, |
| | | ...linkType.fields |
| | | } |
| | | } |
| | | } |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + '', |
| | | ChannelRefCode: channelInfo + '', |
| | | Type: queryType || '\\' |
| | | }, |
| | | FavoriteTypes: favoriteTypes ? [favoriteTypes] : [], |
| | | SubAccess: subAccess.length > 0 ? subAccess : [], |
| | | PageQuery: { |
| | | Start: '0', |
| | | Size: '1' |
| | | }, |
| | | 'Id=': [`${productId}`], |
| | | SortQuery: sort |
| | | ? [sort] |
| | | : [ |
| | | { |
| | | LinkOrder: 'Desc' |
| | | } |
| | | ], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | TypeId: [], |
| | | SysType: [], |
| | | State: [], |
| | | Tag: [], |
| | | BeginDate: [], |
| | | EndDate: [], |
| | | ProductLinkInfo: [], |
| | | AllowDonate: [], |
| | | DonatePriceList: [], |
| | | StoreEvent: [], |
| | | SaleMethod: [], |
| | | SaleMethodValid: [], |
| | | CmsItemValid: [], |
| | | ProductCmsQuery: [subQuery], |
| | | ...fields, |
| | | ...filterList |
| | | } |
| | | if (productId) query['Id='] = [`${productId}`] |
| | | |
| | | const body = { |
| | | query: JSON.stringify({ |
| | | Query: [ |
| | | { |
| | | Q1: query |
| | | } |
| | | ] |
| | | }) |
| | | } |
| | | let token = localStorage.getItem(tokenKey) |
| | | let url = token ? '/store/api/ApiQueryProductByAppUser' : '/store/api/ApiQueryProduct' |
| | | return request({ |
| | | url: url, |
| | | method: 'post', |
| | | data: body, |
| | | cancelToken: source?.token |
| | | }) |
| | | .then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0] |
| | | if (data.datas.length) { |
| | | data.datas[0].subDatas = data.datas[0].cmsDatas |
| | | const datas = handleDetailQueryRequestData({ |
| | | item: data.datas[0], |
| | | fields, |
| | | itemFields: { |
| | | ...itemFields, |
| | | ...linkFields |
| | | }, |
| | | path, |
| | | coverSize, |
| | | handelEBooK, |
| | | |
| | | }) |
| | | return { |
| | | datas, |
| | | total: data.totalCount |
| | | } |
| | | } else { |
| | | return { |
| | | datas: [], |
| | | total: 0 |
| | | } |
| | | } |
| | | } |
| | | return { |
| | | datas: [], |
| | | total: 0 |
| | | } |
| | | }) |
| | | }, |
| | | // è·ååå详æ
ï¼ä¸è¿å ChildrenCount,ChildrenFolderCount |
| | | // (æ¤æ¥å£ä¸ºäºæ»¡è¶³ä¸è¿å ChildrenCount,ChildrenFolderCountèåç»æ·»å ç) 䏿¯ä¸å°åæç |
| | | getProductDetailNoChildren:({ |
| | | path = '', |
| | | storeInfo = goodsStore, |
| | | channelInfo = '', |
| | | favoriteTypes = '', |
| | | queryType, |
| | | subAccess = [], |
| | | fields, |
| | | productId, |
| | | cmsPath, |
| | | cmsType, |
| | | coverSize, |
| | | itemId, |
| | | itemIds, |
| | | itemFields, |
| | | linkTypes, |
| | | filterList, |
| | | handelEBooK, |
| | | sort, |
| | | cmsSort, |
| | | source |
| | | }) => { |
| | | const subQuery = {} |
| | | if (cmsPath) { |
| | | subQuery['QueryCms'] = { |
| | | Path: cmsPath + '', |
| | | Type: cmsType || '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | // ChildrenCount: [], |
| | | // ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999 |
| | | }, |
| | | SortQuery: cmsSort |
| | | ? [cmsSort] |
| | | : [ |
| | | { |
| | | ProductLinkOrder: 'Asc' |
| | | } |
| | | ], |
| | | ProductLinkInfo: [], |
| | | ...itemFields |
| | | } |
| | | if (itemId) subQuery['QueryCms']['Id='] = [`${itemId}`] |
| | | if (itemIds) subQuery['QueryCms']['Id='] = itemIds |
| | | } else { |
| | | subQuery['QueryCms'] = { |
| | | Path: '*', |
| | | Type: '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999 |
| | | }, |
| | | ProductLinkInfo: [] |
| | | } |
| | | } |
| | | // è·åå
³èèµæº |
| | | let linkFields = {} |
| | | if (linkTypes && linkTypes.length) { |
| | | for (let i = 0; i < linkTypes.length; i++) { |
| | | const linkType = linkTypes[i] |
| | | subQuery['QueryLink_' + linkType.linkType] = { |
| | | Path: cmsPath + '', |
| | | Type: '\\', |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | LinkTypes: [linkType.linkType], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 100 |
| | | }, |
| | | ProductLinkInfo: [], |
| | | ...linkType.fields |
| | | } |
| | | linkFields = { |
| | | ...linkFields, |
| | | ...linkType.fields |
| | | } |
| | | } |
| | | } |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + '', |
| | | ChannelRefCode: channelInfo + '', |
| | | Type: queryType || '\\' |
| | | }, |
| | | FavoriteTypes: favoriteTypes ? [favoriteTypes] : [], |
| | | SubAccess: subAccess.length > 0 ? subAccess : [], |
| | | PageQuery: { |
| | | Start: '0', |
| | | Size: '1' |
| | | }, |
| | | 'Id=': [`${productId}`], |
| | | SortQuery: sort |
| | | ? [sort] |
| | | : [ |
| | | { |
| | | LinkOrder: 'Desc' |
| | | } |
| | | ], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | Description:[], |
| | | TypeId: [], |
| | | SysType: [], |
| | | State: [], |
| | | Tag: [], |
| | | BeginDate: [], |
| | | EndDate: [], |
| | | ProductLinkInfo: [], |
| | | AllowDonate: [], |
| | | DonatePriceList: [], |
| | | StoreEvent: [], |
| | | SaleMethod: [], |
| | | SaleMethodValid: [], |
| | | CmsItemValid: [], |
| | | ProductCmsQuery: [subQuery], |
| | | ...fields, |
| | | ...filterList |
| | | } |
| | | if (productId) query['Id='] = [`${productId}`] |
| | | |
| | | const body = { |
| | | query: JSON.stringify({ |
| | | Query: [ |
| | | { |
| | | Q1: query |
| | | } |
| | | ] |
| | | }) |
| | | } |
| | | let token = localStorage.getItem(tokenKey) |
| | | let url = token ? '/store/api/ApiQueryProductByAppUser' : '/store/api/ApiQueryProduct' |
| | | return request({ |
| | | url: url, |
| | | method: 'post', |
| | | data: body, |
| | | cancelToken: source?.token |
| | | }) |
| | | .then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0] |
| | | if (data.datas.length) { |
| | | data.datas[0].subDatas = data.datas[0].cmsDatas |
| | | const datas = handleDetailQueryRequestData({ |
| | | item: data.datas[0], |
| | | fields, |
| | | itemFields: { |
| | | ...itemFields, |
| | | ...linkFields |
| | | }, |
| | | path, |
| | | coverSize, |
| | | handelEBooK, |
| | | |
| | | }) |
| | | return { |
| | | datas, |
| | | total: data.totalCount |
| | | } |
| | | } else { |
| | | return { |
| | | datas: [], |
| | | total: 0 |
| | | } |
| | | } |
| | | } |
| | | return { |
| | | datas: [], |
| | | total: 0 |
| | | } |
| | | }) |
| | | }, |
| | | // è·å伿 å¸å表 |
| | | getChannelPromoteCodeList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetChannelPromoteCodeList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åç¨æ·å·²é¢åç伿 å¸å表 |
| | | getPromoteCodeList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetPromoteCodeList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åç¨æ·æµè§æè¡ |
| | | getProductViewRank(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetProductViewRank', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åç¨æ·éå®æè¡ |
| | | getProductSaleRank(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetProductSaleRank', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åååå¯ç¨ä¼æ å¸ |
| | | getProductPromoteCodeList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetProductPromoteCodeList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·å订åå¯ç¨ä¼æ å¸ |
| | | getOrderPromoteCodeList(data) { |
| | | return request({ |
| | | url: '/store/api/GetOrderPromoteCodeList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åé宿¹å¼å¯ç¨ä¼æ å¸ |
| | | getSaleMethodPromoteCodeList(data) { |
| | | return request({ |
| | | url: '/store/api/GetSaleMethodPromoteCodeList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // é¢å伿 å· |
| | | getPromoteCode(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetPromoteCode', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // 为订å使ç¨ä¼æ å¸ |
| | | updateOrderPromoteCode(data) { |
| | | return request({ |
| | | url: '/store/api/UpdateOrderPromoteCode', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // 为é宿¹å¼ä½¿ç¨ä¼æ å¸ |
| | | updateSaleMethodPromoteCode(data) { |
| | | return request({ |
| | | url: '/store/api/UpdateSaleMethodPromoteCode', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // éè¿è®¢åå·è·å订å |
| | | getOrderByOrderNum(data) { |
| | | return request({ |
| | | url: '/store/api/GetOrderByOrderNum', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // å建订å |
| | | initOrder(data) { |
| | | return request({ |
| | | url: '/store/api/InitOrder', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // 确认订å |
| | | confirmOrder(data) { |
| | | return request({ |
| | | url: '/store/api/ConfirmOrder', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // åæ¶è®¢å |
| | | cancelOrder(data) { |
| | | return request({ |
| | | url: '/store/api/CancelOrder', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // èµèµ |
| | | CreateDonateOrder(data) { |
| | | return request({ |
| | | url: '/store/api/CreateDonateOrder', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è·åç¨æ·è®¢åå表 |
| | | getUserOrderList(data) { |
| | | return request({ |
| | | url: '/store/api/GetUserOrderList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è·åé¢éä¸çå表 |
| | | getStoreChannelList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetStoreChannelList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è·åè´ç©è½¦ |
| | | getShoppingCartProductList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetShoppingCartProductList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //æ·»å å°è´ç©è½¦ |
| | | addShoppingCart(data) { |
| | | return request({ |
| | | url: '/store/api/ApiAddShoppingCart', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è´ç©è½¦å é¤åå |
| | | delShoppingCart(data) { |
| | | return request({ |
| | | url: '/store/api/ApiDelShoppingCart', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //ä»è´ç©è½¦å建订å |
| | | shoppingCartCreateOrder(data) { |
| | | return request({ |
| | | url: '/store/api/ApiShoppingCartCreateOrder', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è·åå·²è´ä¹°çååå表 |
| | | getPurchasedProductList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetPurchasedProductList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è°å微信æ¯ä» |
| | | makeWeChatPay(data) { |
| | | return request({ |
| | | url: '/store/api/MakeWeChatPay', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è°å微信äºç»´ç æ¯ä» |
| | | makeWeChatQrPay(data) { |
| | | return request({ |
| | | url: '/store/api/MakeWeChatQrPay', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åæ¿æ´»ç 详æ
|
| | | getActiveCode(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetActiveCode', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // ä½¿ç¨æ¿æ´»ç |
| | | userActiveCode(data) { |
| | | return request({ |
| | | url: '/store/api/ApiUseActiveCode', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | // ä½¿ç¨æ¿æ´»ç 使ç¨è®°å½ |
| | | userActiveCodeList(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetUsedActiveCodeList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // ååæ¥è¯¢ç±»ååæ®µæ¥å£ |
| | | getProductTypeField(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetProductTypeField', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // æ¶èæå å
¥ä¹¦æ¶ |
| | | addProductLink(data) { |
| | | return request({ |
| | | url: '/store/api/ApiAddProductLink', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // åæ¶æ¶èæç§»é¤ä¹¦æ¶ |
| | | delProductLink(data) { |
| | | return request({ |
| | | url: '/store/api/ApiDelProductLink', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | //è´ä¹°å
è´¹åå |
| | | MakeFreeOrderPay(data) { |
| | | return request({ |
| | | url: '/store/api/MakeFreeOrderPay', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // ç³è¯·è®¢åå¼ç¥¨ |
| | | requestOrderInvoice(data) { |
| | | return request({ |
| | | url: '/store/api/RequestOrderInvoice', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | |
| | | // è·åç¨æ·é±å
|
| | | getUserWallet(data) { |
| | | return request({ |
| | | url: '/store/api/GetWallet', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | // è·åç¨æ·é±å
è®°å½ |
| | | getWalletHistory(data) { |
| | | return request({ |
| | | url: '/store/api/GetWalletHistory', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | // éè¿é±å
èªå¨è´ä¹° |
| | | autoPayWithWallet(data) { |
| | | return request({ |
| | | url: '/store/api/AutoPayWithWallet', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | // æ¥è¯¢ååæå¨Store |
| | | getProductStore(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetProductStore', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | //æ ¹æ®é宿¹å¼æ¥è¯¢ååä¿¡æ¯ |
| | | getProductBySaleMethod(data) { |
| | | return request({ |
| | | url: '/store/api/ApiGetProductBySaleMethod', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | } |
| | | |
| | | export default storeApi |
New file |
| | |
| | | import request from "@/plugin/axios/index.ts"; |
| | | import { tokenKey } from "@/assets/js/config.js"; |
| | | import toolClass from "@/assets/js/toolClass.js"; |
| | | const ugcApi = { |
| | | // è·åååç¹èµTopic |
| | | getProductLikesTopic(data) { |
| | | return request({ |
| | | url: localStorage.getItem(tokenKey) |
| | | ? "/ugc/api/ApiAppUserGetProductLikesTopic" |
| | | : "/ugc/api/ApiGetProductLikesTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åååè¯è®ºTopic |
| | | getProductCommentTopic(data) { |
| | | return request({ |
| | | url: localStorage.getItem(tokenKey) |
| | | ? "/ugc/api/ApiAppUserGetProductCommentTopic" |
| | | : "/ugc/api/ApiGetProductCommentTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åMessageList |
| | | getTopicMessageList(data) { |
| | | return request({ |
| | | url: localStorage.getItem(tokenKey) |
| | | ? "/ugc/api/ApiAppUserGetTopicMessageList" |
| | | : "/ugc/api/ApiGetTopicMessageList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // ç¨æ·æ ¹æ®æ¶æ¯ç±»åè·åå表 |
| | | getMessageList(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiGetMessageList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // æ°å»ºMessage |
| | | newTopicMessage(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiNewTopicMessage", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å é¤Message |
| | | delTopicMessage(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiDelTopicMessage", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // æ´æ°message |
| | | updateTopicMessage(data) { |
| | | return request({ |
| | | url:'/ugc/api/ApiUpdateTopicMessage', |
| | | method:'post', |
| | | data |
| | | }) |
| | | }, |
| | | // è·åcmsè¯è®º |
| | | getCmsItemCommentTopic(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiGetCmsItemCommentTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // è·åç¨æ·æäº¤çæå¦èµæº |
| | | getProductUserSubmitTopic(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiGetProductUserSubmitTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //æ´æ°TOPICMESSAGE |
| | | // updateTopicMessage(data) { |
| | | // return request({ |
| | | // url: "/ugc/api/ApiUpdateTopicMessage", |
| | | // method: "post", |
| | | // data, |
| | | // }); |
| | | // }, |
| | | }; |
| | | |
| | | export default ugcApi; |
New file |
| | |
| | | import { requestCtx, appId } from '@/assets/js/config.js' |
| | | // import defaultImg from '@/assets/images/default-book-img.png' |
| | | // import defaultBookFair from '@/assets/images/default-bookFair.png' |
| | | // import bookCover from '@/assets/images/book-cover.png' |
| | | // import defaultPub from '@/assets/images/math/default-pub.png' |
| | | // import defaultAudio from '@/assets/images/math/default-audio.png' |
| | | import moment from 'moment' |
| | | // å¤çå表æ¥è¯¢ç»æ |
| | | export function handleQueryResourceListData({ |
| | | datas, |
| | | fields, |
| | | path, |
| | | storeInfo, |
| | | repositoryInfo, |
| | | coverSize, |
| | | handelEBooK |
| | | }) { |
| | | const dataList = [] |
| | | for (let i = 0; i < datas.length; i++) { |
| | | const item = datas[i] |
| | | // å¤çåæ®µ |
| | | const _fields = {} |
| | | if (fields != null) { |
| | | for (let fieldKey in fields) { |
| | | if (item.datas[fieldKey]) { |
| | | const values = JSON.parse(item.datas[fieldKey]) |
| | | if (values.length > 0) { |
| | | // ç¨å段åå¤çè¿åçåæ®µå¼ |
| | | if (values[0].Value) { |
| | | _fields[fieldKey] = values[0].Value |
| | | } else if (values[0].Data) { |
| | | _fields[fieldKey] = values[0].Data.Value |
| | | } |
| | | item.datas[fieldKey] = values[0] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | const subDatas = {} |
| | | if (item.subDatas) { |
| | | for (let subData of item.subDatas) { |
| | | const tag = subData.queryTag.replace('Query', '') |
| | | subDatas[tag] = subData.datas |
| | | } |
| | | } |
| | | |
| | | let obj = { |
| | | ...item, |
| | | id: item.id, |
| | | name: item.datas.Name, |
| | | icon: getPublicImage(item.datas.Icon, coverSize?.width, coverSize?.height, storeInfo), |
| | | repositoryInfo: repositoryInfo, |
| | | refCode: item.datas.RefCode === '[]' ? null : item.datas.RefCode, |
| | | state: item.datas.State, |
| | | type: item.datas.Type, |
| | | tag: item.datas.Tag, |
| | | creator: item.datas.Creator ? JSON.parse(item.datas.Creator) : undefined, |
| | | storeInfo: storeInfo, |
| | | linkType: item.datas.LinkType, |
| | | childrenCount: parseInt(item.datas.ChildrenCount ?? '0'), |
| | | childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? '0'), |
| | | childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? '0'), |
| | | createDate: moment(item.datas.CreateDate).format('YYYY-MM-DD'), |
| | | beginDate: moment(item.datas.BeginDate).format('YYYY-MM-DD'), |
| | | endDate: moment(item.datas.EndDate).format('YYYY-MM-DD'), |
| | | description: item.datas.Description, |
| | | sysType: item.datas.SysType, |
| | | idPath: path + '\\' + item.id, |
| | | typeId: parseInt(item.datas.TypeId), |
| | | linkFile: JSON.parse(item.datas.LinkFile ?? '[]'), |
| | | cmsItemType: item.datas.CmsItemType, |
| | | allowDonate: item.datas.AllowDonate == 'True', |
| | | // donatePriceList: JSON.parse(item.datas.DonatePriceList ?? "[]"), |
| | | productLinkInfo: item.datas.ProductLinkInfo ?? '[]', |
| | | storeEvent: JSON.parse(item.datas.StoreEvent ?? '[]'), |
| | | linkInfo: JSON.parse(item.datas.LinkInfo ?? '[]'), |
| | | saleMethod: JSON.parse(item.datas.SaleMethod ?? '[]'), |
| | | subProductCount: parseInt(item.datas.SubProductCount), |
| | | ..._fields, |
| | | datas: item.datas, |
| | | subDatas |
| | | } |
| | | |
| | | // ç»ä¸å¤çä»·æ ¼ |
| | | if (obj.defaultSaleMethod) { |
| | | if (handelEBooK) { |
| | | // è·åéä¹¦èµæºçé宿¹å¼ |
| | | let saleMethod = [] |
| | | try { |
| | | saleMethod = obj.cmsDatas[0].datas.find( |
| | | (item) => item.datas.RefCode == 'tourism_accompanyingResources' |
| | | ).datas.SaleMethod |
| | | saleMethod = JSON.parse(saleMethod) |
| | | } catch (error) { |
| | | saleMethod = [] |
| | | } |
| | | if (saleMethod.length) { |
| | | Object.keys(saleMethod[0]).map((key) => { |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()) |
| | | saleMethod[0][newKey] = saleMethod[0][key] |
| | | delete saleMethod[0][key] |
| | | }) |
| | | obj.defaultSaleMethod = saleMethod[0] |
| | | obj.defaultSaleMethodId = saleMethod[0].id |
| | | obj.alreadyBuy = obj.purchasedSaleMethodIdList.indexOf(obj.defaultSaleMethodId) > -1 |
| | | } |
| | | } |
| | | if (obj.defaultSaleMethod.allowEvent && obj.storeEvent.length) { |
| | | // å·²åå æ´»å¨ï¼è·åæææ´»å¨å¹¶è®¡ç®ä»·æ ¼ |
| | | let time = new Date().getTime() |
| | | // è¿æ»¤è¿ææ´»å¨ |
| | | let event = obj.storeEvent.filter((item) => { |
| | | let endTime = new Date(item.EndDate).getTime() |
| | | return endTime > time |
| | | }) |
| | | |
| | | // åªå¤ç䏿¡æææ´»å¨ |
| | | if (event.length) { |
| | | obj.price = (obj.defaultSaleMethod.price * event[0].Value).toFixed(2) |
| | | obj.oldPrice = obj.defaultSaleMethod.price |
| | | obj.storeEventId = event[0].Id |
| | | if ( |
| | | moment().format('YYYY-MM-DD') < |
| | | moment(obj.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | obj.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | obj.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | } |
| | | } else { |
| | | if ( |
| | | moment().format('YYYY-MM-DD') < moment(obj.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | obj.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | obj.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | obj.price = obj.defaultSaleMethod.price |
| | | obj.oldPrice = obj.defaultSaleMethod.virtualPrice |
| | | } |
| | | } |
| | | dataList.push(obj) |
| | | } |
| | | return dataList |
| | | } |
| | | |
| | | // å¤ç详æ
æ¥è¯¢ç»æ |
| | | export function handleDetailQueryRequestData({ |
| | | item, |
| | | fields, |
| | | path, |
| | | coverSize, |
| | | itemFields, |
| | | handelEBooK, |
| | | }) { |
| | | item.fileMap = {}; |
| | | let itemFieldsData = []; |
| | | for (const key in itemFields) { |
| | | itemFieldsData.push(key); |
| | | } |
| | | let fieldsData = []; |
| | | for (const key in fields) { |
| | | fieldsData.push(key); |
| | | } |
| | | for (let i = 0; i < fieldsData.length; i++) { |
| | | const field = fieldsData[i]; |
| | | item.datas[field] = JSON.parse(item.datas[field]); |
| | | const datas = item.datas[field]; |
| | | if (datas.length > 0) { |
| | | if (datas[0].Value) { |
| | | item[field] = datas[0].Value; |
| | | if (datas[0].Data.FileLinkList && datas[0].Data.FileLinkList.length) { |
| | | item.fileMap = { |
| | | ...item.fileMap, |
| | | ...handleLinkFileInfo( |
| | | datas[0].Data.FileLinkList.map((item) => { |
| | | return { |
| | | ...item.File, |
| | | ...item, |
| | | }; |
| | | }) |
| | | ), |
| | | }; |
| | | } |
| | | } else if (datas[0].Data) { |
| | | item[field] = datas[0].Data.Value; |
| | | if (datas[0].Data.FileLinkList && datas[0].Data.FileLinkList.length) { |
| | | item.fileMap = { |
| | | ...item.fileMap, |
| | | ...handleLinkFileInfo( |
| | | datas[0].Data.FileLinkList.map((item) => { |
| | | return { |
| | | ...item.File, |
| | | ...item, |
| | | }; |
| | | }) |
| | | ), |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // å¤çcmsèµæº |
| | | const subDatas = item.subDatas; |
| | | const linkItemsMap = {}; |
| | | if (subDatas) { |
| | | for (const sdata of subDatas) { |
| | | const tag = sdata.queryTag; |
| | | for (const subItem of sdata.datas) { |
| | | convertCmsItemBase(subItem, coverSize, handelEBooK); |
| | | subItem.fileMap = {}; |
| | | for (let i = 0; i < itemFieldsData.length; i++) { |
| | | const itemField = itemFieldsData[i]; |
| | | try { |
| | | subItem.datas[itemField] = JSON.parse(subItem.datas[itemField]); |
| | | } catch (error) { |
| | | subItem.datas[itemField] = []; |
| | | } |
| | | const itemDatas = subItem.datas[itemField]; |
| | | if (itemDatas.length > 0) { |
| | | if (itemDatas[0].Value) { |
| | | subItem[itemField] = itemDatas[0].Value; |
| | | if (itemDatas[0].FileList && itemDatas[0].FileList.length) { |
| | | subItem.fileMap = { |
| | | ...subItem.fileMap, |
| | | ...handleLinkFileInfo(itemDatas[0].FileList), |
| | | }; |
| | | } |
| | | } else if (itemDatas[0].Data) { |
| | | subItem[itemField] = itemDatas[0].Data.Value; |
| | | if ( |
| | | itemDatas[0].Data.FileList && |
| | | itemDatas[0].Data.FileList.length |
| | | ) { |
| | | subItem.fileMap = { |
| | | ...subItem.fileMap, |
| | | ...handleLinkFileInfo(itemDatas[0].Data.FileList), |
| | | }; |
| | | } |
| | | } else if (itemDatas[0].CmsItemData) { |
| | | subItem[itemField] = itemDatas[0].CmsItemData.Value; |
| | | if ( |
| | | itemDatas[0].CmsItemData.FileList && |
| | | itemDatas[0].CmsItemData.FileList.length |
| | | ) { |
| | | subItem.fileMap = { |
| | | ...subItem.fileMap, |
| | | ...handleLinkFileInfo(itemDatas[0].CmsItemData.FileList), |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subItem.productLinkInfo && subItem.productLinkInfo.length) { |
| | | let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.Name == item.datas.Name) |
| | | subItem.productLinkPath = |
| | | itemProductLinkInfo.LinkPath + |
| | | "\\" + |
| | | itemProductLinkInfo.CmsItemId; |
| | | } |
| | | if (subItem.linkInfo && subItem.linkInfo.length) |
| | | subItem.linkPath = |
| | | subItem.linkInfo[0].LinkPath + "\\" + subItem.linkInfo[0].CmsItemId; |
| | | } |
| | | linkItemsMap[tag] = sdata.datas; |
| | | } |
| | | } |
| | | convertCmsItemBase(item, coverSize, handelEBooK); |
| | | item.idPath = path + "\\" + item.id; |
| | | item.subItems = linkItemsMap; |
| | | return item; |
| | | } |
| | | |
| | | const handleLinkFileInfo = (linkList) => { |
| | | let linkFileMap = {} |
| | | for (let z = 0; z < linkList.length; z++) { |
| | | const linkItem = linkList[z] |
| | | linkFileMap[linkItem.Md5] = { |
| | | linkType: linkItem.LinkType, |
| | | extension: linkItem.Extension, |
| | | fileName: linkItem.FileName, |
| | | fileType: linkItem.Type, |
| | | md5: linkItem.Md5, |
| | | icon: linkItem.Icon, |
| | | size: linkItem.Size, |
| | | // metaData: JSON.parse(linkItem.MetaData ?? "{}"), |
| | | order: linkItem.Order, |
| | | protectType: linkItem.ProtectType |
| | | } |
| | | } |
| | | return linkFileMap |
| | | } |
| | | |
| | | const convertCmsItemBase = (item, coverSize, handelEBooK) => { |
| | | item.name = item.datas.Name |
| | | item.description = item.datas.Description |
| | | item.refCode = item.datas.RefCode |
| | | item.state = item.datas.State |
| | | item.type = item.datas.Type |
| | | item.tag = item.datas.Tag |
| | | item.typeId = parseInt(item.datas.TypeId) |
| | | item.icon = getPublicImage(item.datas.Icon, coverSize?.width, coverSize?.height) |
| | | item.sysType = item.datas.SysType |
| | | item.linkFile = JSON.parse(item.datas.LinkFile ?? '[]') |
| | | item.linkType = item.datas.LinkType |
| | | item.linkAppId = parseInt(item.datas.LinkAppId) |
| | | item.linkStoreId = parseInt(item.datas.LinkStore) |
| | | item.linkRepoId = item.datas.LinkRepository |
| | | item.childrenCount = parseInt(item.datas.ChildrenCount ?? '0') |
| | | ;(item.childrenFolderCount = parseInt(item.datas.ChildrenFolderCount ?? '0')), |
| | | (item.childrenChannelCount = parseInt(item.datas.ChildrenChannelCount ?? '0')), |
| | | (item.linkId = parseInt(item.datas.LinkId)) |
| | | item.linkOrg = JSON.parse(item.datas.LinkOrg ?? '[]')[0] |
| | | item.linkDepartment = JSON.parse(item.datas.LinkDepartment ?? '[]')[0] |
| | | item.linkInfo = JSON.parse(item.datas.LinkInfo ?? '[]') |
| | | item.productLinkInfo = JSON.parse(item.datas.ProductLinkInfo ?? '[]') |
| | | item.saleMethod = JSON.parse(item.datas.SaleMethod ?? '[]') |
| | | item.allowDonate = item.datas.AllowDonate == 'True' |
| | | // item.donatePriceList = JSON.parse(item.datas.DonatePriceList ?? "[]"); |
| | | item.createDate = moment(item.datas.CreateDate).format('YYYY-MM-DD') |
| | | item.beginDate = moment(item.datas.BeginDate).format('YYYY-MM-DD') |
| | | item.endDate = moment(item.datas.EndDate).format('YYYY-MM-DD') |
| | | item.storeEvent = JSON.parse(item.datas.StoreEvent ?? '[]') |
| | | // ç»ä¸å¤çä»·æ ¼ |
| | | if (item.defaultSaleMethod) { |
| | | if (handelEBooK) { |
| | | // è·åéä¹¦èµæºçé宿¹å¼ |
| | | let saleMethod = item.cmsDatas[0].datas.find( |
| | | (item) => item.refCode == 'tourism_accompanyingResources' |
| | | ).saleMethod |
| | | if (saleMethod && saleMethod.length > 0) { |
| | | Object.keys(saleMethod[0]).map((key) => { |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()) |
| | | saleMethod[0][newKey] = saleMethod[0][key] |
| | | delete saleMethod[0][key] |
| | | }) |
| | | item.defaultSaleMethod = saleMethod[0] |
| | | item.defaultSaleMethodId = saleMethod[0].id |
| | | item.alreadyBuy = item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1 |
| | | } |
| | | } |
| | | if (item.defaultSaleMethod.allowEvent && item.storeEvent.length) { |
| | | // å·²åå æ´»å¨ï¼è·åæææ´»å¨å¹¶è®¡ç®ä»·æ ¼ |
| | | let time = new Date().getTime() |
| | | // è¿æ»¤è¿ææ´»å¨ |
| | | let event = item.storeEvent.filter((item) => { |
| | | let endTime = new Date(item.EndDate).getTime() |
| | | return endTime > time |
| | | }) |
| | | // åªå¤ç䏿¡æææ´»å¨ |
| | | if (event.length) { |
| | | item.price = (item.defaultSaleMethod.price * event[0].Value).toFixed(2) |
| | | item.oldPrice = item.defaultSaleMethod.price |
| | | if ( |
| | | moment().format('YYYY-MM-DD') < |
| | | moment(item.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | item.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | item.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | item.storeEventId = event[0].Id |
| | | } |
| | | } else { |
| | | item.price = item.defaultSaleMethod.price |
| | | item.oldPrice = item.defaultSaleMethod.virtualPrice |
| | | if ( |
| | | moment().format('YYYY-MM-DD') < moment(item.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | item.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | item.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | export function getTopicMsgCmsItemFile(fileType, fileList) { |
| | | let obj = {} |
| | | fileType.forEach((item) => { |
| | | item.sequenceNum = item.config ? JSON.parse(item.config).uuid : '' |
| | | fileList.forEach((e) => { |
| | | if (item.sequenceNum == e.sequenceNum) { |
| | | try { |
| | | if (e.fileLinkList.length > 0) { |
| | | for (let i = 0; i < e.fileLinkList.length; i++) { |
| | | const ele = e.fileLinkList[i] |
| | | ele.name = ele.file.fileName |
| | | ele.md5 = ele.file.md5 |
| | | ele.status = 'success' |
| | | } |
| | | obj[item.typeField.refCode] = e.fileLinkList |
| | | } else { |
| | | const val = JSON.parse(e.value) |
| | | obj[item.typeField.refCode] = val |
| | | } |
| | | } catch (error) { |
| | | obj[item.typeField.refCode] = e.value |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | return obj |
| | | } |
| | | |
| | | // è·åä¸åä¿æ¤çå¾ç |
| | | export function getPublicImage(md5, width, height, storeInfo) { |
| | | let src = null |
| | | if (md5) { |
| | | src = requestCtx + `/file/GetPreViewImage?md5=${md5}` |
| | | } else { |
| | | if(storeInfo == `defaultGoodsStore${appId}`){ |
| | | return bookCover; |
| | | }else{ |
| | | return "" |
| | | } |
| | | } |
| | | if (width && src) src += `&width=${width}` |
| | | if (height && src) src += `&height=${height}` |
| | | return src |
| | | } |
New file |
| | |
| | | import SparkMD5 from 'spark-md5' |
| | | import { |
| | | getPublicImage |
| | | } from '@/assets/js/middleGround/tool.js' |
| | | import config from './config' |
| | | import moment from "moment"; |
| | | |
| | | |
| | | |
| | | |
| | | var tool = { |
| | | secondToTime(second) { |
| | | var minute = Math.floor(second / 60) |
| | | var sec = second % 60 |
| | | var time |
| | | if (second < 60) { |
| | | time = second + '"' |
| | | } else { |
| | | time = sec === 0 ? minute + "'" : minute + "'" + sec + '"' |
| | | } |
| | | return time |
| | | }, |
| | | setCookie: function (c_name, value, expiredays, path) { |
| | | var exdate = new Date() |
| | | exdate.setDate(exdate.getDate() + expiredays) |
| | | document.cookie = |
| | | c_name + |
| | | '=' + |
| | | escape(value) + |
| | | (expiredays == null ? '' : ';expires=' + exdate.toGMTString()) + |
| | | (path ? ';path=' + path : '') |
| | | }, |
| | | getCookie: function (c_name) { |
| | | if (document.cookie.length > 0) { |
| | | var c_start = document.cookie.indexOf(c_name + '=') |
| | | if (c_start != -1) { |
| | | c_start = c_start + c_name.length + 1 |
| | | var c_end = document.cookie.indexOf(';', c_start) |
| | | if (c_end == -1) c_end = document.cookie.length |
| | | return unescape(document.cookie.substring(c_start, c_end)) |
| | | } |
| | | } |
| | | return '' |
| | | }, |
| | | delCookie: function (name) { |
| | | var exp = new Date() |
| | | exp.setTime(exp.getTime() - 1) |
| | | var cval = tool.getCookie(name) |
| | | if (cval != null) document.cookie = name + '=' + cval + ';expires=' + exp.toGMTString() |
| | | }, |
| | | // 强å¶ä¿ç2ä½å°æ°ï¼å¦ï¼2ï¼ä¼å¨2åé¢è¡¥ä¸00.å³2.00 |
| | | toDecimal2(x) { |
| | | var f |
| | | f = parseFloat(x) |
| | | if (isNaN(f)) { |
| | | return false |
| | | } |
| | | f = Math.round(x * 100) / 100 |
| | | var s = f.toString() |
| | | var rs = s.indexOf('.') |
| | | if (rs < 0) { |
| | | rs = s.length |
| | | s += '.' |
| | | } |
| | | while (s.length <= rs + 2) { |
| | | s += '0' |
| | | } |
| | | return s |
| | | }, |
| | | formateTime(date) { |
| | | var newDate = new Date(+new Date(date) + 8 * 3600 * 1000) |
| | | .toISOString() |
| | | .replace(/T/g, ' ') |
| | | .replace(/\.[\d]{3}Z/, '') |
| | | var time = new Date(newDate) |
| | | return time.getTime() |
| | | } |
| | | } |
| | | |
| | | |
| | | //å¤ç表åæäº¤æ°æ® |
| | | export function worksData(res) { |
| | | let arr = [] |
| | | for (let i = 0; i < res.length; i++) { |
| | | const item = res[i] |
| | | if (item.typeField) { |
| | | if (item.typeField.config) { |
| | | item.typeField.options = JSON.parse(item.typeField.config).option |
| | | } |
| | | arr.push(item.typeField) |
| | | } |
| | | } |
| | | return arr |
| | | } |
| | | |
| | | export function worksDataBytool(res, value, linkList) { |
| | | let arr = [] |
| | | let nrr = [] |
| | | if (linkList && linkList.length > 0) { |
| | | linkList.forEach((e) => |
| | | nrr.push({ |
| | | linkProtectType: e.linkProtectType, |
| | | linkType: e.linkType, |
| | | md5: e.md5 |
| | | }) |
| | | ) |
| | | } |
| | | res.forEach((item) => { |
| | | const obj = { |
| | | baseType: item.typeField.baseType, |
| | | order: 0, |
| | | typeFieldId: item.typeField.id, |
| | | sequenceNum: item.config ? JSON.parse(item.config).uuid : '', |
| | | newDataAndFileLinkListRequest: [] |
| | | } |
| | | for (let k in value) { |
| | | if (item.typeField.refCode === k) { |
| | | if (item.typeField.type == 'File') { |
| | | try { |
| | | obj.strValue = JSON.stringify(value[k].map((citem) => citem.md5)) |
| | | } catch (error) { |
| | | obj.strValue = '' |
| | | } |
| | | obj.newDataAndFileLinkListRequest = nrr |
| | | } else { |
| | | if (typeof value[k] == 'object') { |
| | | obj.strValue = JSON.stringify(value[k]) |
| | | } else { |
| | | if (obj.baseType === 'String') { |
| | | obj.strValue = value[k] + '' |
| | | } else if (obj.baseType === 'Text') { |
| | | obj.textValue = value[k] + '' |
| | | } else { |
| | | obj.strValue = value[k] + '' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // if (obj.strValue || obj.textValue) { |
| | | arr.push(obj) |
| | | // } |
| | | }) |
| | | return arr |
| | | } |
| | | |
| | | export function UpdateworksDataBytool(initData, res, value, linkList) { |
| | | let arr = [] |
| | | let newArr = [] |
| | | for (let i = 0; i < initData.length; i++) { |
| | | const ele = initData[i] |
| | | for (let j = 0; j < res.length; j++) { |
| | | const item = res[j] |
| | | if (item.sequenceNum == ele.sequenceNum) { |
| | | item.refCode = ele.typeField.refCode |
| | | } |
| | | } |
| | | } |
| | | initData.forEach((citem) => { |
| | | const updateOldData = res.find((f) => f.sequenceNum == citem.sequenceNum) |
| | | if (updateOldData) { |
| | | const obj = { |
| | | baseType: citem.typeField.baseType, |
| | | order: 0, |
| | | id: updateOldData.id, |
| | | typeFieldId: citem.typeField.id, |
| | | sequenceNum: citem.sequenceNum, |
| | | setDataAndFileLinkListRequest: [] |
| | | } |
| | | for (let k in value) { |
| | | if (citem.typeField.refCode === k) { |
| | | if (typeof value[k] == 'object' && k != 'region') { |
| | | obj.strValue = JSON.stringify(linkList) |
| | | obj.setDataAndFileLinkListRequest = linkList |
| | | } else if (typeof value[k] == 'object' && k == 'region') { |
| | | obj.strValue = value[k]?.join('/') |
| | | obj.setDataAndFileLinkListRequest = [{ |
| | | area: value[k] |
| | | }] |
| | | } else { |
| | | obj.strValue = value[k].toString() |
| | | } |
| | | } |
| | | } |
| | | if (obj.strValue) { |
| | | arr.push(obj) |
| | | } |
| | | } else { |
| | | const newObj = { |
| | | baseType: citem.typeField.baseType, |
| | | order: 0, |
| | | typeFieldId: citem.typeField.id, |
| | | sequenceNum: citem.sequenceNum, |
| | | setDataAndFileLinkListRequest: [] |
| | | } |
| | | for (let k in value) { |
| | | if (citem.typeField.refCode === k) { |
| | | if (typeof value[k] == 'object') { |
| | | newObj.strValue = JSON.stringify(linkList) |
| | | newObj.setDataAndFileLinkListRequest = linkList |
| | | } else { |
| | | newObj.strValue = value[k].toString() |
| | | } |
| | | } |
| | | } |
| | | if (newObj.strValue) { |
| | | newArr.push(newObj) |
| | | } |
| | | } |
| | | }) |
| | | return { |
| | | updateData: arr, |
| | | newData: newArr |
| | | } |
| | | } |
| | | |
| | | export function download(url) { |
| | | const iframe = document.createElement('iframe') |
| | | iframe.setAttribute('hidden', 'hidden') |
| | | document.body.appendChild(iframe) |
| | | iframe.onload = () => { |
| | | if (iframe) { |
| | | iframe.setAttribute('src', 'about:blank') |
| | | } |
| | | } |
| | | |
| | | iframe.setAttribute('src', url) |
| | | } |
| | | |
| | | /** |
| | | * è·åä¸ä¸ªUUID |
| | | * @param len |
| | | * @param radix |
| | | * @returns {string} |
| | | */ |
| | | export function uuid(len = 32, radix = 16) { |
| | | const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('') |
| | | let uuid = [], |
| | | i |
| | | radix = radix || chars.length |
| | | |
| | | if (len) { |
| | | // Compact form |
| | | for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)] |
| | | } else { |
| | | // rfc4122, version 4 form |
| | | let r |
| | | |
| | | // rfc4122 requires these characters |
| | | uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-' |
| | | uuid[14] = '4' |
| | | |
| | | // Fill in random data. At i==19 set the high bits of clock sequence as |
| | | // per rfc4122, sec. 4.1.5 |
| | | for (i = 0; i < 36; i++) { |
| | | if (!uuid[i]) { |
| | | r = 0 | (Math.random() * 16) |
| | | uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r] |
| | | } |
| | | } |
| | | } |
| | | |
| | | return uuid.join('') |
| | | } |
| | | |
| | | export function getFileMd5(file, chunkSize) { |
| | | return new Promise((resolve, reject) => { |
| | | let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice |
| | | let chunks = Math.ceil(file.size / chunkSize) |
| | | let currentChunk = 0 |
| | | let spark = new SparkMD5.ArrayBuffer() |
| | | let fileReader = new FileReader() |
| | | fileReader.onload = function (e) { |
| | | spark.append(e.target.result) |
| | | currentChunk++ |
| | | if (currentChunk < chunks) { |
| | | loadNext() |
| | | } else { |
| | | const md5 = spark.end() |
| | | resolve(md5) |
| | | } |
| | | } |
| | | fileReader.onerror = function (e) { |
| | | reject(e) |
| | | } |
| | | |
| | | function loadNext() { |
| | | let start = currentChunk * chunkSize |
| | | let end = start + chunkSize |
| | | if (end > file.size) { |
| | | end = file.size |
| | | } |
| | | fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)) |
| | | } |
| | | loadNext() |
| | | }) |
| | | } |
| | | |
| | | // è·åæä»¶ |
| | | export function getPublicFile(md5, isToken) { |
| | | const { |
| | | tokenKey, |
| | | requestCtx |
| | | } = config |
| | | let src = null |
| | | let token = localStorage.getItem(tokenKey) |
| | | if (md5) { |
| | | if (isToken) { |
| | | src = requestCtx + `/file/api/ApiDownloadForAuthorize?md5=${md5}&token=${token}` |
| | | } else { |
| | | src = requestCtx + `/file/api/ApiDownload?md5=${md5}` |
| | | } |
| | | } else { |
| | | return '' |
| | | } |
| | | return src |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | export const handleCmsItemListRequestData = (datas, fields, path, storeId, repositoryId) => { |
| | | const dataList = []; |
| | | for (let i = 0; i < datas.length; i++) { |
| | | const item = datas[i]; |
| | | const _fields = {}; |
| | | const _datas = []; |
| | | if (fields != null) { |
| | | for (let fieldKey in fields) { |
| | | // å
¼å®¹ç鿡件çåæ®µå¼è·åï¼å 为åå°çéååå¼åªè½ä¼ ä¸ä¸ªï¼é½ä¼è¿åå¼ |
| | | fieldKey = fieldKey.replace(/[!=<>*]/g, ''); |
| | | if (item.datas[fieldKey]) { |
| | | let values = []; |
| | | if (typeof item.datas[fieldKey] == 'string') { |
| | | values = JSON.parse(item.datas[fieldKey]); |
| | | } else { |
| | | values = item.datas[fieldKey]; |
| | | } |
| | | if (values ?.length > 0) { |
| | | // ç¨å段åå¤çè¿åçåæ®µå¼ |
| | | if (values[0].Value) { |
| | | _fields[fieldKey] = values[0].Value; |
| | | values[0].sequenceNum = values[0].SequenceNum; |
| | | } |
| | | // å
¼å®¹å¤çæ°æ®è¿åçkeyæ¯CmsItemData |
| | | // if (values[0].CmsItemData) { |
| | | // _fields[fieldKey] = values[0].CmsItemData.Value; |
| | | // values[0].sequenceNum = values[0].CmsItemData.SequenceNum; |
| | | // } |
| | | |
| | | item.datas[fieldKey] = values[0]; |
| | | if (values ?.length > 1) { |
| | | const isFile = values.find((citem) => citem.FileList ?.length > 0); |
| | | const dataItems = deduplicateArray(values, 'FieldId'); |
| | | if (!isFile) { |
| | | _datas.push(dataItems[0]); |
| | | } else { |
| | | const customFile = { |
| | | customFileList: values, |
| | | name: fieldKey, |
| | | md5: _fields[fieldKey], |
| | | FieldId: values[0].FieldId, |
| | | SequenceNum: values[0].SequenceNum |
| | | }; |
| | | _datas.push(customFile); |
| | | } |
| | | } else { |
| | | _datas.push(values[0]); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (item.datas.LogQuery) { |
| | | item.datas.LogQuery = JSON.parse(item.datas.LogQuery); |
| | | } |
| | | |
| | | const subDatas = {}; |
| | | if (item.subDatas) { |
| | | for (let subData of item.subDatas) { |
| | | const tag = subData.queryTag.replace('Query', ''); |
| | | subDatas[tag] = subData.datas; |
| | | } |
| | | } |
| | | dataList.push({ |
| | | ...item, |
| | | id: item.id, |
| | | name: item.datas.Name ? item.datas.Name : item.name, |
| | | icon: item.datas.Icon, |
| | | storeId: storeId, |
| | | repositoryId: repositoryId, |
| | | refCode: item.datas.RefCode === '[]' ? null : item.datas.RefCode, |
| | | state: item.datas.State, |
| | | type: item.datas.Type, |
| | | tag: item.datas.Tag, |
| | | creator: item.datas.Creator ? JSON.parse(item.datas.Creator) : undefined, |
| | | linkType: item.datas.LinkType, |
| | | childrenCount: parseInt(item.datas.ChildrenCount ?? '0'), |
| | | childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? '0'), |
| | | childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? '0'), |
| | | childrenCmsItemCount: parseInt(item.datas.ChildrenCmsItemCount ?? '0'), |
| | | childrenFileCount: parseInt(item.datas.ChildrenFileCount ?? '0'), |
| | | createDate: moment(item.datas.CreateDate).format('YYYY-MM-DD HH:mm:ss'), |
| | | description: item.datas.Description, |
| | | sysType: item.datas.SysType, |
| | | idPath: path + '\\' + item.id, |
| | | typeId: parseInt(item.datas.TypeId), |
| | | linkAppId: item.datas.linkAppId, |
| | | linkFile: JSON.parse(item.datas.LinkFile ?? '[]'), |
| | | PublishInfo: JSON.parse(item.datas.PublishInfo ?? '[]'), |
| | | linkInfo: item.datas.LinkInfo ? JSON.parse(item.datas.LinkInfo) : [], |
| | | linkPath: item.datas.LinkPath ?? null, |
| | | linkOrg: item.datas.LinkOrg ? JSON.parse(item.datas.LinkOrg) : [], |
| | | linkDepartment: item.datas.LinkDepartment? JSON.parse(item.datas.LinkDepartment) : [], |
| | | ..._fields, |
| | | datas: item.datas, |
| | | fieldList: _datas, |
| | | subDatas |
| | | }); |
| | | } |
| | | return dataList; |
| | | }; |
| | | |
| | | // typeç»æå¤ç |
| | | export const handleTypeList = (list) => { |
| | | for (let i = 0; i < list.length; i++) { |
| | | const type = list[i]; |
| | | try { |
| | | type.cfg = JSON.parse(type.config); |
| | | } catch (error) { |
| | | type.cfg = null; |
| | | } |
| | | const fieldRefcodeMap = {}; |
| | | const tableHeaderFieldList = []; |
| | | const isSearchFieldList = []; |
| | | const isAdvSearchFieldList = []; |
| | | const isFilterFieldList = []; |
| | | handleType({ |
| | | typeFieldList: type.typeLinkList, |
| | | fieldRefcodeMap, |
| | | tableHeaderFieldList, |
| | | isSearchFieldList, |
| | | isAdvSearchFieldList, |
| | | isFilterFieldList |
| | | }); |
| | | type.fieldRefcodeMap = fieldRefcodeMap; |
| | | type.tableHeaderFieldList = tableHeaderFieldList; |
| | | type.isSearchFieldList = isSearchFieldList; |
| | | type.isAdvSearchFieldList = isAdvSearchFieldList; |
| | | type.isFilterFieldList = isFilterFieldList; |
| | | } |
| | | |
| | | return list; |
| | | }; |
| | | |
| | | const handleType = ({ |
| | | typeFieldList, |
| | | fieldRefcodeMap, |
| | | tableHeaderFieldList, |
| | | isSearchFieldList, |
| | | isAdvSearchFieldList, |
| | | isFilterFieldList |
| | | }) => { |
| | | for (let i = 0; i < typeFieldList.length; i++) { |
| | | const item = typeFieldList[i]; |
| | | try { |
| | | item.cfg = JSON.parse(item.config); |
| | | } catch (error) { |
| | | item.cfg = null; |
| | | } |
| | | if (item.typeField) { |
| | | try { |
| | | item.typeField.cfg = JSON.parse(item.typeField.config); |
| | | } catch (error) { |
| | | item.typeField.cfg = null; |
| | | } |
| | | fieldRefcodeMap[item.typeField.refCode] = item; |
| | | } |
| | | if (item.cfg && item.cfg.isColHeader) { |
| | | tableHeaderFieldList.push(item); |
| | | } |
| | | if (item.cfg && item.cfg.isSearch) { |
| | | isSearchFieldList.push(item); |
| | | } |
| | | if (item.cfg && item.cfg.isAdvSearch) { |
| | | isAdvSearchFieldList.push(item); |
| | | } |
| | | if (item.cfg && item.cfg.isFilter) { |
| | | isFilterFieldList.push(item); |
| | | } |
| | | if (item.children && item.children.length) { |
| | | handleType({ |
| | | typeFieldList: item.children, |
| | | fieldRefcodeMap, |
| | | tableHeaderFieldList, |
| | | isSearchFieldList, |
| | | isAdvSearchFieldList, |
| | | isFilterFieldList |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | |
| | | //å¤çæ å½¢ç»æ |
| | | const handleTreeData = (datas, parent, noTriggerSelect = false) => { |
| | | let parentData = {}; |
| | | if (parent) { |
| | | parentData = { ...parent, parent: null }; |
| | | } else { |
| | | parentData = null; |
| | | } |
| | | const list = []; |
| | | for (let i = 0; i < datas.length; i++) { |
| | | const data = datas[i]; |
| | | const obj = { |
| | | label: data.name, |
| | | key: parentData ? parentData.key + "_" + i : i + "", |
| | | namePath: parentData ? parentData.namePath + "\\" + data.name : data.name, |
| | | icon: data.icon, |
| | | data: data, |
| | | parent: parentData, |
| | | leaf: false, |
| | | children: [], |
| | | }; |
| | | if (data["children"] && data["children"].length) { |
| | | obj.leaf = false; |
| | | obj.children = handleTreeData( |
| | | data["children"], |
| | | { |
| | | ...data, |
| | | key: obj.key, |
| | | namePath: obj.namePath, |
| | | }, |
| | | i == 0 ? false : true // 妿æåæ°æ®å¤çï¼åªæç¬¬ä¸æ¡æ°æ®éè¦å±å¼ååè° |
| | | ); |
| | | } else { |
| | | obj.leaf = |
| | | !data["childrenChannelCount"] || data["childrenChannelCount"] == 0; |
| | | } |
| | | list.push(obj); |
| | | } |
| | | console.log(list, "list"); |
| | | return list; |
| | | }; |
| | | |
| | | |
| | | //è·åèµæº |
| | | |
| | | |
| | | |
| | | export default { |
| | | ...tool, |
| | | uuid, |
| | | getFileMd5, |
| | | worksDataBytool, |
| | | UpdateworksDataBytool, |
| | | getPublicImage, |
| | | worksData, |
| | | getPublicFile, |
| | | handleTypeList, |
| | | handleTreeData, |
| | | // parseHtml, |
| | | } |
New file |
| | |
| | | import config from "@/assets/js/config.js"; |
| | | |
| | | import jobApi from "./middleGround/api/job"; // newJobWithNewView // newSession, |
| | | |
| | | export function setSessionGuid(type, id) { |
| | | var cityCode = null; |
| | | var SnIp = null; |
| | | try { |
| | | // eslint-disable-next-line |
| | | SnIp = window.returnCitySN; |
| | | } catch (error) { |
| | | SnIp = null; |
| | | console.log(error); |
| | | } |
| | | if (SnIp != undefined && SnIp != null) { |
| | | cityCode = SnIp; |
| | | } else { |
| | | cityCode = { |
| | | cip: "0.0.0.0", |
| | | cname: "æªç¥", |
| | | }; |
| | | } |
| | | const _city = cityCode.cname.substring(3); |
| | | const _province = cityCode.cname.substring(0, 3); |
| | | const params = { |
| | | appRefCode: config.appRefCode, |
| | | hostName: config.requestCtx, |
| | | ipAddress: cityCode.cip, |
| | | browser: myBrowser(), |
| | | os: navigator.platform, |
| | | device: "pc", |
| | | province: _province, |
| | | city: _city ? _city : _province, |
| | | }; |
| | | |
| | | jobApi.newSession(params).then(res => { |
| | | storage.set("sessionGuid", res, 30); |
| | | setNewView(type, id); |
| | | }); |
| | | } |
| | | |
| | | export const storage = { |
| | | /* |
| | | * set å卿¹æ³ |
| | | * @ param {String} key é® |
| | | * @ param {String} value å¼ï¼ |
| | | * @ param {String} expired è¿ææ¶é´ï¼ä»¥åé为åä½ï¼éå¿
é¡» |
| | | */ |
| | | set(key, val, expired) { |
| | | if (typeof val !== "string") { |
| | | val = JSON.stringify(val); |
| | | } |
| | | window.sessionStorage.setItem(key, val); |
| | | if (expired) { |
| | | window.sessionStorage.setItem( |
| | | `${key}__expires__`, |
| | | `${Date.now() + 1000 * 60 * expired}` |
| | | ); |
| | | } |
| | | }, |
| | | /* |
| | | * get è·åæ¹æ³ |
| | | * @ param {String} key é® |
| | | * @ param {String} expired å卿¶ä¸ºéå¿
须忮µï¼æä»¥æå¯è½åä¸å°ï¼é»è®¤ä¸º Date.now+1 |
| | | */ |
| | | get(key) { |
| | | const expired = |
| | | window.sessionStorage.getItem(`${key}__expires__`) || Date.now + 1; |
| | | const now = Date.now(); |
| | | |
| | | if (now >= expired) { |
| | | window.sessionStorage.removeItem(key); |
| | | return; |
| | | } |
| | | let val = window.sessionStorage.getItem(key); |
| | | try { |
| | | val = JSON.parse(val); |
| | | } catch (e) { |
| | | return e; |
| | | } |
| | | return val; |
| | | }, |
| | | }; |
| | | |
| | | function myBrowser() { |
| | | const userAgent = navigator.userAgent; //å徿µè§å¨çuserAgentå符串 |
| | | const isOpera = userAgent.indexOf("Opera") > -1; |
| | | if (isOpera) { |
| | | //夿æ¯å¦Operaæµè§å¨ |
| | | return "Opera"; |
| | | } |
| | | if (userAgent.indexOf("Firefox") > -1) { |
| | | //夿æ¯å¦Firefoxæµè§å¨ |
| | | return "Firefox"; |
| | | } |
| | | if (userAgent.indexOf("Chrome") > -1) { |
| | | return "Chrome"; |
| | | } |
| | | if (userAgent.indexOf("Safari") > -1) { |
| | | //夿æ¯å¦Safariæµè§å¨ |
| | | return "Safari"; |
| | | } |
| | | if ( |
| | | userAgent.indexOf("compatible") > -1 && |
| | | userAgent.indexOf("MSIE") > -1 && |
| | | !isOpera |
| | | ) { |
| | | //夿æ¯å¦IEæµè§å¨ |
| | | return "IE"; |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | export function setNewView(type, id) { |
| | | if (!sessionStorage.getItem("sessionGuid")) { |
| | | setSessionGuid(type, id); |
| | | } |
| | | |
| | | const sessionGuid = sessionStorage.getItem("sessionGuid"); |
| | | const fromPath = sessionStorage.getItem("fromPath"); |
| | | const toPath = sessionStorage.getItem("toPath"); |
| | | if (sessionGuid) { |
| | | let params = { |
| | | sessionGuid: sessionGuid, |
| | | appRefCode: config.appRefCode, |
| | | type: "View", |
| | | url: toPath == null ? "/" : toPath, |
| | | ref: fromPath == null ? "/" : fromPath, |
| | | }; |
| | | if (id) { |
| | | params[type] = id; |
| | | } |
| | | jobApi.newJobWithNewView(params).then(res => {}); |
| | | } |
| | | } |
New file |
| | |
| | | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg> |
New file |
| | |
| | | @import './base.css'; |
| | | |
| | | #app { |
| | | width: 100%; |
| | | |
| | | } |
| | | |
| | | a, |
| | | .green { |
| | | text-decoration: none; |
| | | color: hsla(160, 100%, 37%, 1); |
| | | transition: 0.4s; |
| | | padding: 3px; |
| | | } |
| | | |
New file |
| | |
| | | <template> |
| | | <div class="layoutBox"> |
| | | <Header class="header"></Header> |
| | | <div class="layoutContentBox" id="layout"> |
| | | <RouterView /> |
| | | <Footer class="footer"></Footer> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Header from './components/headerPage.vue' |
| | | import Footer from './components/footerPage.vue' |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .layoutBox { |
| | | width: 100%; |
| | | height: 100vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | background-color: #fff; |
| | | |
| | | .layoutContentBox { |
| | | flex: 1; |
| | | height: auto; |
| | | } |
| | | |
| | | .header { |
| | | flex-shrink: 0; |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1200px) { |
| | | .layoutContentBox { |
| | | flex: 1; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="footerBox">FOOT</div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"></script> |
| | | |
| | | <style scoped> |
| | | .footerBox { |
| | | width: 100%; |
| | | height: 240px; |
| | | min-width: 1200px; |
| | | color: #fff; |
| | | background-color: #f0f0f0; |
| | | text-align: center; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="pageHeader"> |
| | | <div class="contentBox logoBox"> |
| | | <div class="logo"> |
| | | <img |
| | | @click=" |
| | | () => { |
| | | $router.push({ |
| | | path: '/home', |
| | | }) |
| | | } |
| | | " |
| | | src="@/assets/images/xiehe/home/Group_303.png" |
| | | /> |
| | | </div> |
| | | <div class="searchBox" v-show="!hideSerch"> |
| | | <el-input |
| | | style="width: 500px" |
| | | placeholder="请è¾å
¥å
容" |
| | | @change="gotoSearch" |
| | | v-model="searchKey" |
| | | :suffix-icon="Search" |
| | | > |
| | | </el-input> |
| | | <div class="loginInfoBox"> |
| | | <div v-if="!userInfo" class="loginBtnBox"> |
| | | <a |
| | | @click=" |
| | | () => { |
| | | $router.push({ |
| | | path: '/register', |
| | | }) |
| | | } |
| | | " |
| | | >注å</a |
| | | > |
| | | | |
| | | <a |
| | | @click=" |
| | | () => { |
| | | $router.push({ |
| | | path: '/login', |
| | | query: { |
| | | redirectPath: $route.fullPath, |
| | | }, |
| | | }) |
| | | } |
| | | " |
| | | >ç»å½</a |
| | | > |
| | | </div> |
| | | <div v-else class="userInfoBox"> |
| | | <el-dropdown @command="handleCommand"> |
| | | <span style="cursor: pointer">æ¬¢è¿æ¨ï¼{{ userInfo.name }}ï¼</span> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item icon="el-icon-user" command="gotoPersonalCenter" |
| | | >个人ä¸å¿</el-dropdown-item |
| | | > |
| | | <el-dropdown-item icon="el-icon-switch-button" command="logout" |
| | | >éåºç»å½</el-dropdown-item |
| | | > |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="contentBox navBox" v-show="!hideNav"> |
| | | <div |
| | | :class="{ |
| | | navItem: true, |
| | | active: $route.fullPath.indexOf(item.path) > -1, |
| | | }" |
| | | v-for="(item, index) in navData" |
| | | :key="index" |
| | | @click="gotoPage(item)" |
| | | > |
| | | {{ item.name }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue' |
| | | |
| | | const props = defineProps({ |
| | | hideSerch: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | hideNav: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }) |
| | | |
| | | let searchKey = ref('') |
| | | let userInfo = ref('') |
| | | |
| | | const gotoSearch = () => {} |
| | | const handleCommand = () => {} |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .pageHeader { |
| | | width: 100%; |
| | | background-color: #fff; |
| | | border-bottom: 1px solid #e6e6e6; |
| | | .topBar { |
| | | background: #e6e6e6; |
| | | color: #808080; |
| | | overflow: hidden; |
| | | padding: 14px 0; |
| | | p { |
| | | float: left; |
| | | } |
| | | .loginInfoBox { |
| | | float: right; |
| | | .loginBtnBox { |
| | | a { |
| | | cursor: pointer; |
| | | text-decoration: none; |
| | | color: inherit; |
| | | margin: 0 4px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .logoBox { |
| | | padding: 25px 0; |
| | | overflow: hidden; |
| | | max-width: 1200px !important; |
| | | .logo { |
| | | float: left; |
| | | height: 66px; |
| | | img { |
| | | height: 100%; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .searchBox { |
| | | width: 670px; |
| | | float: right; |
| | | padding-right: 10px; |
| | | line-height: 66px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .searchItem { |
| | | width: 120px; |
| | | vertical-align: initial; |
| | | } |
| | | .searchBtn { |
| | | width: auto; |
| | | background: #144941; |
| | | color: #fff; |
| | | padding: 0 20px; |
| | | height: 40px; |
| | | } |
| | | } |
| | | } |
| | | .navBox { |
| | | .navItem { |
| | | display: inline-block; |
| | | width: 120px; |
| | | height: 50px; |
| | | text-align: center; |
| | | line-height: 50px; |
| | | font-size: 16px; |
| | | cursor: pointer; |
| | | &.active { |
| | | background: #144941; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | <style> |
| | | .pageHeader .searchBox .el-input-group__prepend { |
| | | background: #fff; |
| | | color: #444; |
| | | } |
| | | </style> |
New file |
| | |
| | | import './assets/main.css' |
| | | |
| | | import { createApp } from 'vue' |
| | | import { createPinia } from 'pinia' |
| | | |
| | | import App from './App.vue' |
| | | // 宿´å¼å
¥ Element Plus |
| | | import ElementPlus from 'element-plus' |
| | | import 'element-plus/dist/index.css' |
| | | import * as ElementPlusIconsVue from '@element-plus/icons-vue' |
| | | import router from './router' |
| | | import MG from '@/assets/js/middleGround/WebMiddleGroundApi.js' |
| | | import toolClass from '@/assets/js/toolClass.js' |
| | | import config from '@/assets/js/config.js' |
| | | |
| | | const app = createApp(App) |
| | | |
| | | app.provide('config', config) |
| | | app.provide('MG', MG) |
| | | app.provide('toolClass', toolClass) |
| | | |
| | | // æ³¨åææå¾æ |
| | | for (const [key, component] of Object.entries(ElementPlusIconsVue)) { |
| | | app.component(key, component) |
| | | } |
| | | app.use(ElementPlus) |
| | | app.use(createPinia()) |
| | | app.use(router) |
| | | |
| | | app.mount('#app') |
New file |
| | |
| | | import axios from "axios"; |
| | | import myConfig from "@/assets/js/config.js"; |
| | | import toolClass from "@/assets/js/toolClass.js"; |
| | | import router from "@/router"; |
| | | // å建 axios å®ä¾ |
| | | const service = axios.create({ |
| | | baseURL: myConfig.requestCtx, |
| | | timeout: myConfig.requestTimeOut, // 请æ±è¶
æ¶æ¶é´ |
| | | }); |
| | | |
| | | // è¯·æ±æ¦æªå¨ |
| | | service.interceptors.request.use( |
| | | (config) => { |
| | | let token = localStorage.getItem(myConfig.tokenKey); |
| | | if (token) config.headers["Authorization"] = `bearer ${token}`; |
| | | return config; |
| | | }, |
| | | (error) => { |
| | | // åé失败 |
| | | Promise.reject(error); |
| | | } |
| | | ); |
| | | |
| | | // ååºæ¦æªå¨ |
| | | service.interceptors.response.use( |
| | | (response) => { |
| | | // dataAxios æ¯ axios è¿åæ°æ®ä¸ç data |
| | | const dataAxios = response.data; |
| | | if (typeof dataAxios.data === "boolean") { |
| | | return dataAxios.data; |
| | | } |
| | | if (response.config.responseType == "blob") { |
| | | return dataAxios; |
| | | } |
| | | const { success } = dataAxios; |
| | | if (dataAxios.currentDate) { |
| | | sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime(); |
| | | } |
| | | // æ ¹æ® code è¿è¡å¤æ |
| | | if (response.status == 200 && response.statusText == "OK") { |
| | | return dataAxios.data ? dataAxios.data : dataAxios; |
| | | } else { |
| | | // æç¤ºé误 |
| | | } |
| | | }, |
| | | (error) => { |
| | | if ( |
| | | (error.response && error.response.status == 401) || |
| | | error.code == "ERR_NETWORK" |
| | | ) { |
| | | console.log(router, "router"); |
| | | |
| | | localStorage.removeItem(myConfig.tokenKey); |
| | | localStorage.removeItem("jesk-userInfo"); |
| | | router.push({ |
| | | name: "login", |
| | | }); |
| | | } else { |
| | | if (error.response && error.response.data && error.response.data.error) { |
| | | console.error(error.response.data.error.msg); |
| | | } else { |
| | | console.error("请æ±åçé误"); |
| | | } |
| | | } |
| | | return Promise.reject(error); |
| | | } |
| | | ); |
| | | |
| | | export default service; |
New file |
| | |
| | | import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router' |
| | | import HomeView from '../views/home/index.vue' |
| | | import PageLayout from '../layout/baseLayout.vue' |
| | | const router = createRouter({ |
| | | history: createWebHashHistory(import.meta.env.BASE_URL), |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | name: 'layout', |
| | | component: PageLayout, |
| | | redirect: { name: 'home' }, |
| | | children: [ |
| | | { |
| | | path: '/', |
| | | name: 'home', |
| | | component: HomeView, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }) |
| | | |
| | | export default router |
New file |
| | |
| | | import { ref, computed } from 'vue' |
| | | import { defineStore } from 'pinia' |
| | | |
| | | export const useCounterStore = defineStore('counter', () => { |
| | | const count = ref(0) |
| | | const doubleCount = computed(() => count.value * 2) |
| | | function increment() { |
| | | count.value++ |
| | | } |
| | | |
| | | return { count, doubleCount, increment } |
| | | }) |
New file |
| | |
| | | <template> |
| | | <div class="homePage"> |
| | | <el-carousel :height="screenheight"> |
| | | <el-carousel-item v-for="item in 4" :key="item"> |
| | | <h3 class="small justify-center" text="2xl">{{ item }}</h3> |
| | | </el-carousel-item> |
| | | </el-carousel> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref } from 'vue' |
| | | let screenheight = ref(document.documentElement.clientHeight / 4) |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .homePage { |
| | | min-width: 1220px; |
| | | background-color: #fff; |
| | | } |
| | | .el-carousel__item h3 { |
| | | color: #475669; |
| | | opacity: 0.75; |
| | | line-height: 150px; |
| | | margin: 0; |
| | | text-align: center; |
| | | } |
| | | |
| | | .el-carousel__item:nth-child(2n) { |
| | | background-color: #99a9bf; |
| | | } |
| | | |
| | | .el-carousel__item:nth-child(2n + 1) { |
| | | background-color: #d3dce6; |
| | | } |
| | | </style> |
New file |
| | |
| | | import { fileURLToPath, URL } from 'node:url' |
| | | |
| | | import { defineConfig } from 'vite' |
| | | import vue from '@vitejs/plugin-vue' |
| | | |
| | | // https://vite.dev/config/ |
| | | export default defineConfig({ |
| | | plugins: [vue()], |
| | | base: './', |
| | | server: { |
| | | host: '0.0.0.0', |
| | | }, |
| | | resolve: { |
| | | alias: { |
| | | '@': fileURLToPath(new URL('./src', import.meta.url)), |
| | | }, |
| | | }, |
| | | }) |