关于我们长页

master
yujialong 1 year ago
parent 23e5ae12e6
commit 4df88054f9
  1. 207
      package-lock.json
  2. 3
      package.json
  3. 80
      src/components/modules/content.vue
  4. 59
      src/components/modules/link.vue
  5. 15
      src/components/modules/module.vue
  6. 602
      src/const/modules.js
  7. 172
      src/pages/article/list/index.vue
  8. 169
      src/pages/column/list/index.vue
  9. 334
      src/pages/column/page/aboutUs.vue

207
package-lock.json generated

@ -1630,8 +1630,7 @@
"ansi-regex": { "ansi-regex": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
"dev": true
}, },
"ansi-styles": { "ansi-styles": {
"version": "3.2.1", "version": "3.2.1",
@ -2484,8 +2483,7 @@
"camelcase": { "camelcase": {
"version": "5.3.1", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
"dev": true
}, },
"camelcase-keys": { "camelcase-keys": {
"version": "2.1.0", "version": "2.1.0",
@ -2725,7 +2723,6 @@
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
"requires": { "requires": {
"string-width": "^3.1.0", "string-width": "^3.1.0",
"strip-ansi": "^5.2.0", "strip-ansi": "^5.2.0",
@ -2735,14 +2732,12 @@
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
"dev": true
}, },
"string-width": { "string-width": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": { "requires": {
"emoji-regex": "^7.0.1", "emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0", "is-fullwidth-code-point": "^2.0.0",
@ -2753,7 +2748,6 @@
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^3.2.0", "ansi-styles": "^3.2.0",
"string-width": "^3.0.0", "string-width": "^3.0.0",
@ -2911,6 +2905,11 @@
} }
} }
}, },
"comutils": {
"version": "1.1.19",
"resolved": "https://registry.npmjs.org/comutils/-/comutils-1.1.19.tgz",
"integrity": "sha512-JxXB67juILiwhdLwOsYyjUqwWEhHdObI0EClOPk+JDtEuTbac59s0pxGpfCBnNNQ5JommifmcMGneW/4Cg7YWw=="
},
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -5551,8 +5550,7 @@
"get-caller-file": { "get-caller-file": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
"dev": true
}, },
"get-stdin": { "get-stdin": {
"version": "4.0.1", "version": "4.0.1",
@ -6513,7 +6511,8 @@
"has-symbols": { "has-symbols": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
"dev": true
}, },
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
@ -8486,9 +8485,9 @@
} }
}, },
"node-sass": { "node-sass": {
"version": "4.14.0", "version": "4.14.1",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.0.tgz", "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
"integrity": "sha512-AxqU+DFpk0lEz95sI6jO0hU0Rwyw7BXVEv6o9OItoXLyeygPeaSpiV4rwQb10JiTghHaa0gZeD21sz+OsQluaw==", "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
"requires": { "requires": {
"async-foreach": "^0.1.3", "async-foreach": "^0.1.3",
"chalk": "^1.1.1", "chalk": "^1.1.1",
@ -8504,7 +8503,7 @@
"node-gyp": "^3.8.0", "node-gyp": "^3.8.0",
"npmlog": "^4.0.0", "npmlog": "^4.0.0",
"request": "^2.88.0", "request": "^2.88.0",
"sass-graph": "^2.2.4", "sass-graph": "2.2.5",
"stdout-stream": "^1.4.0", "stdout-stream": "^1.4.0",
"true-case-path": "^1.0.2" "true-case-path": "^1.0.2"
}, },
@ -8720,6 +8719,7 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"dev": true,
"requires": { "requires": {
"define-properties": "^1.1.2", "define-properties": "^1.1.2",
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
@ -9104,8 +9104,7 @@
"path-exists": { "path-exists": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
"dev": true
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
@ -10684,8 +10683,7 @@
"require-main-filename": { "require-main-filename": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
"dev": true
}, },
"requires-port": { "requires-port": {
"version": "1.0.0", "version": "1.0.0",
@ -10829,139 +10827,93 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"sass-graph": { "sass-graph": {
"version": "2.2.6", "version": "2.2.5",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.6.tgz", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
"integrity": "sha512-MKuEYXFSGuRSi8FZ3A7imN1CeVn9Gpw0/SFJKdL1ejXJneI9a5rwlEZrKejhEFAA3O6yr3eIyl/WuvASvlT36g==", "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
"requires": { "requires": {
"glob": "^7.0.0", "glob": "^7.0.0",
"lodash": "^4.0.0", "lodash": "^4.0.0",
"scss-tokenizer": "^0.2.3", "scss-tokenizer": "^0.2.3",
"yargs": "^7.0.0" "yargs": "^13.3.2"
}, },
"dependencies": { "dependencies": {
"ansi-regex": { "emoji-regex": {
"version": "2.1.1", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
}, },
"camelcase": { "find-up": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==" "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
},
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
"integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
"requires": { "requires": {
"string-width": "^1.0.1", "locate-path": "^3.0.0"
"strip-ansi": "^3.0.1",
"wrap-ansi": "^2.0.0"
} }
}, },
"get-caller-file": { "locate-path": {
"version": "1.0.3", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
},
"invert-kv": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ=="
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
"requires": { "requires": {
"number-is-nan": "^1.0.0" "p-locate": "^3.0.0",
"path-exists": "^3.0.0"
} }
}, },
"lcid": { "p-limit": {
"version": "1.0.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"requires": { "requires": {
"invert-kv": "^1.0.0" "p-try": "^2.0.0"
} }
}, },
"os-locale": { "p-locate": {
"version": "1.4.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"requires": { "requires": {
"lcid": "^1.0.0" "p-limit": "^2.0.0"
} }
}, },
"require-main-filename": { "p-try": {
"version": "1.0.1", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"which-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
"integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ=="
},
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
"requires": { "requires": {
"string-width": "^1.0.1", "emoji-regex": "^7.0.1",
"strip-ansi": "^3.0.1" "is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
} }
}, },
"y18n": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
"integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
},
"yargs": { "yargs": {
"version": "7.1.2", "version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"requires": { "requires": {
"camelcase": "^3.0.0", "cliui": "^5.0.0",
"cliui": "^3.2.0", "find-up": "^3.0.0",
"decamelize": "^1.1.1", "get-caller-file": "^2.0.1",
"get-caller-file": "^1.0.1",
"os-locale": "^1.4.0",
"read-pkg-up": "^1.0.1",
"require-directory": "^2.1.1", "require-directory": "^2.1.1",
"require-main-filename": "^1.0.1", "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"string-width": "^1.0.2", "string-width": "^3.0.0",
"which-module": "^1.0.0", "which-module": "^2.0.0",
"y18n": "^3.2.1", "y18n": "^4.0.0",
"yargs-parser": "^5.0.1" "yargs-parser": "^13.1.2"
} }
}, },
"yargs-parser": { "yargs-parser": {
"version": "5.0.1", "version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"requires": { "requires": {
"camelcase": "^3.0.0", "camelcase": "^5.0.0",
"object.assign": "^4.1.0" "decamelize": "^1.2.0"
} }
} }
} }
@ -11862,7 +11814,6 @@
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": { "requires": {
"ansi-regex": "^4.1.0" "ansi-regex": "^4.1.0"
} }
@ -12811,6 +12762,14 @@
"schart.js": "^3.0.0" "schart.js": "^3.0.0"
} }
}, },
"vue-seamless-scroll": {
"version": "1.1.23",
"resolved": "https://registry.npmjs.org/vue-seamless-scroll/-/vue-seamless-scroll-1.1.23.tgz",
"integrity": "sha512-HBjUub8WwsKJzbFCrwKPDrZn4e+SSbkKgwWtjKtfLwesiFGwSsVxP44/Z6d3kpXy94qIFOiflJH6l0/9pj7SGA==",
"requires": {
"comutils": "^1.1.9"
}
},
"vue-style-loader": { "vue-style-loader": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
@ -13263,8 +13222,7 @@
"which-module": { "which-module": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
"dev": true
}, },
"wide-align": { "wide-align": {
"version": "1.1.5", "version": "1.1.5",
@ -13395,8 +13353,7 @@
"y18n": { "y18n": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
"dev": true
}, },
"yallist": { "yallist": {
"version": "3.1.1", "version": "3.1.1",

@ -28,6 +28,7 @@
"vue-quill-editor": "^3.0.6", "vue-quill-editor": "^3.0.6",
"vue-router": "^3.0.3", "vue-router": "^3.0.3",
"vue-schart": "^2.0.0", "vue-schart": "^2.0.0",
"vue-seamless-scroll": "^1.1.23",
"vue-ueditor-wrap": "^2.5.6", "vue-ueditor-wrap": "^2.5.6",
"vuedraggable": "^2.17.0", "vuedraggable": "^2.17.0",
"vuex": "^3.4.0" "vuex": "^3.4.0"
@ -36,7 +37,7 @@
"@vue/cli-plugin-babel": "^3.9.0", "@vue/cli-plugin-babel": "^3.9.0",
"@vue/cli-service": "^3.9.0", "@vue/cli-service": "^3.9.0",
"element-theme-chalk": "^2.13.0", "element-theme-chalk": "^2.13.0",
"node-sass": "^4.14.0", "node-sass": "^4.14.1",
"sass-loader": "^8.0.0", "sass-loader": "^8.0.0",
"vue-template-compiler": "^2.6.10" "vue-template-compiler": "^2.6.10"
} }

@ -28,10 +28,10 @@
api-key='rnk6zw9v267xqz7pf98twt1vmrvltmd436je7a642pckltda' api-key='rnk6zw9v267xqz7pf98twt1vmrvltmd436je7a642pckltda'
v-model="data.form[item.prop]" v-model="data.form[item.prop]"
:init="editorConfig" /> :init="editorConfig" />
<el-upload v-if="item.type === 'upload' && item.crop" <el-upload v-if="item.type === 'upload' && item.width"
class="uploader" class="uploader"
accept=".jpg,.png,.jpeg,.gif" accept=".jpg,.png,.jpeg,.gif"
:on-change="res => changeFile(res, data.form)" :on-change="res => changeFile(res, data.form, item)"
:show-file-list="false" :show-file-list="false"
:action="api.upload" :action="api.upload"
:auto-upload="false"> :auto-upload="false">
@ -48,10 +48,10 @@
<p>只支持.jpg,.png格式</p> <p>只支持.jpg,.png格式</p>
</div> </div>
</el-upload> </el-upload>
<el-upload v-if="item.type === 'upload' && !item.crop" <el-upload v-if="item.type === 'upload' && !item.width"
class="uploader" class="uploader"
accept=".jpg,.png,.jpeg" accept=".jpg,.png,.jpeg"
:on-success="res => uploadSuccess(res, data.form)" :on-success="res => uploadSuccess(res, data.form, item)"
:show-file-list="false" :show-file-list="false"
:headers="headers" :headers="headers"
:action="api.upload"> :action="api.upload">
@ -68,6 +68,22 @@
<p>只支持.jpg,.png格式</p> <p>只支持.jpg,.png格式</p>
</div> </div>
</el-upload> </el-upload>
<!-- 图片视频都可上传 -->
<template v-if="item.type === 'media'">
<el-upload :on-success="res => uploadSuccess(res, data.form, item)"
:before-remove="beforeRemove"
:on-remove="(file, fileList) => handleRemove(file, fileList, data.form, item.prop)"
:file-list="fileList"
:headers="headers"
:action="api.upload">
<el-button>上传资源</el-button>
</el-upload>
<i v-if="!item.required"
class="el-icon-delete del"
@click="data.form[item.prop] = ''"></i>
</template>
<template v-if="item.type === 'pic'"> <template v-if="item.type === 'pic'">
<img v-if="data.form[item.prop]" <img v-if="data.form[item.prop]"
:src="data.form[item.prop]" :src="data.form[item.prop]"
@ -109,6 +125,8 @@
:is-upload="isUpload" :is-upload="isUpload"
:fixed="fixed" :fixed="fixed"
:fixedNumber.sync="fixedNumber" :fixedNumber.sync="fixedNumber"
:autoCropWidth="autoCropWidth"
:autoCropHeight="autoCropHeight"
@upload="customUpload" /> @upload="customUpload" />
</el-dialog> </el-dialog>
</div> </div>
@ -143,8 +161,12 @@ export default {
isUpload: false, isUpload: false,
file: {}, // file: {}, //
curForm: {}, curForm: {},
curItem: {},
fixed: false, fixed: false,
fixedNumber: [0.88, 1] fixedNumber: [0.88, 1],
autoCropWidth: 480,
autoCropHeight: 124,
fileList: [],
}; };
}, },
watch: { watch: {
@ -159,18 +181,30 @@ export default {
methods: { methods: {
// form // form
handleForm () { handleForm () {
const { forms, type } = this.data const { forms, form, type } = this.data
console.log("🚀 ~ file: content.vue:179 ~ handleForm ~ type:", type, form)
this.fileList = []
// //
if (type === 'form' || type === 'introduce') { if (type === 'form' || type === 'introduce') {
forms.map(e => { forms.map(e => {
if (e.type === 'upload') { if (e.type === 'upload') {
if (e.fixedNumber) { if (e.width) {
this.autoCropWidth = e.width
this.autoCropHeight = e.height
this.fixed = true this.fixed = true
this.fixedNumber = e.fixedNumber this.fixedNumber = [e.width / e.height, 1]
} else { } else {
this.fixed = false this.fixed = false
} }
} }
if (e.type === 'media' && form.fileName) {
this.fileList = [
{
name: form.fileName,
url: form.video || e.pic
}
]
}
if (e.required) { if (e.required) {
this.rules[e.prop] = [ this.rules[e.prop] = [
{ {
@ -204,14 +238,16 @@ export default {
token: Util.local.get(Setting.tokenKey) token: Util.local.get(Setting.tokenKey)
}, },
}).then(({ data }) => { }).then(({ data }) => {
this.$set(this.curForm, 'pic', data.url) console.log("🚀 ~ file: content.vue:234 ~ imgUpload ~ this.curForm:", this.curForm)
this.$set(this.curForm, this.curItem.prop, data.url)
}).catch(res => { }) }).catch(res => { })
this.$refs.cropper.isDisabled = false this.$refs.cropper.isDisabled = false
this.isUpload = false this.isUpload = false
this.cropperModel = false this.cropperModel = false
}, },
// //
changeFile (file, form) { changeFile (file, form, item) {
console.log("🚀 ~ file: content.vue:242 ~ changeFile ~ item:", form, item)
const { size, name } = file const { size, name } = file
const ext = name.substring(name.lastIndexOf('.') + 1) const ext = name.substring(name.lastIndexOf('.') + 1)
if (!Util.isImg(ext)) { if (!Util.isImg(ext)) {
@ -224,6 +260,7 @@ export default {
} }
this.file = file this.file = file
this.curForm = form this.curForm = form
this.curItem = item
this.cropperModel = true this.cropperModel = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.cropper.updateImg({ this.$refs.cropper.updateImg({
@ -232,9 +269,28 @@ export default {
}) })
}) })
}, },
beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleRemove (file, fileList, form, prop) {
form[prop] = ''
form.fileName = ''
},
// //
uploadSuccess (res, row) { uploadSuccess (res, row, item) {
this.$set(row, 'pic', res.url) console.log("🚀 ~ file: content.vue:270 ~ uploadSuccess ~ item:", res, row, item)
this.$set(row, item.prop, res.url)
if (item.type === 'media') {
this.fileList = [
{
name: res.original,
url: res.url
}
]
}
this.$set(row, 'mediaType', res.original.substr(res.original.lastIndexOf('.') + 1))
this.$set(row, 'fileName', res.original)
// console.log("🚀 ~ file: content.vue:273 ~ uploadSuccess ~ row:", row)
}, },
// //
toLink (row, i = 0) { toLink (row, i = 0) {

@ -1,9 +1,16 @@
<template> <template>
<!-- 设置链接 --> <!-- 设置链接 -->
<div> <div>
<el-dialog title="设置链接地址" :visible.sync="visible" width="500px" :close-on-click-modal="false" :before-close="close"> <el-dialog title="设置链接地址"
<el-form :model="data" class="model" label-width="120px"> :visible.sync="visible"
<el-form-item prop="connectionType" label="连接类型"> width="500px"
:close-on-click-modal="false"
:before-close="close">
<el-form :model="data"
class="model"
label-width="120px">
<el-form-item prop="connectionType"
label="连接类型">
<el-radio-group v-model="data.connectionType"> <el-radio-group v-model="data.connectionType">
<!-- <el-radio :label="0"></el-radio> --> <!-- <el-radio :label="0"></el-radio> -->
<el-radio :label="1">站内链接</el-radio> <el-radio :label="1">站内链接</el-radio>
@ -12,9 +19,8 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<template v-if="data.connectionType === 1"> <template v-if="data.connectionType === 1">
<el-form-item label="站内链接"> <el-form-item label="栏目">
<el-cascader <el-cascader ref="column"
ref="column"
v-model="data.columnId" v-model="data.columnId"
:options="columns" :options="columns"
:props="columnProps" :props="columnProps"
@ -22,8 +28,7 @@
</el-form-item> </el-form-item>
<el-form-item label="文章"> <el-form-item label="文章">
<el-select v-model="data.articleId"> <el-select v-model="data.articleId">
<el-option <el-option v-for="item in articles"
v-for="item in articles"
:key="item.id" :key="item.id"
:label="item.title" :label="item.title"
:value="item.id"> :value="item.id">
@ -31,18 +36,19 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
<el-form-item v-show="data.connectionType === 2" prop="linkAddress" label="站外链接"> <el-form-item v-show="data.connectionType === 2"
<el-input prop="linkAddress"
placeholder="请输入站外链接" label="站外链接">
<el-input placeholder="请输入站外链接"
v-model.trim="data.linkAddress" v-model.trim="data.linkAddress"
clearable clearable></el-input>
></el-input>
</el-form-item> </el-form-item>
<template v-if="data.connectionType === 3"> <template v-if="data.connectionType === 3">
<el-form-item prop="site" label="站点选择"> <el-form-item prop="site"
<el-select v-model="data.site" @change="getOtherColumn"> label="站点选择">
<el-option <el-select v-model="data.site"
v-for="item in sites" @change="getOtherColumn">
<el-option v-for="item in sites"
:key="item.id" :key="item.id"
:label="item.siteName" :label="item.siteName"
:value="item.id"> :value="item.id">
@ -50,8 +56,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="栏目"> <el-form-item label="栏目">
<el-cascader <el-cascader ref="otherColumn"
ref="otherColumn"
v-model="data.otherColumnId" v-model="data.otherColumnId"
:options="otherColumns" :options="otherColumns"
:props="columnProps" :props="columnProps"
@ -59,8 +64,7 @@
</el-form-item> </el-form-item>
<el-form-item label="文章"> <el-form-item label="文章">
<el-select v-model="data.otherArticleId"> <el-select v-model="data.otherArticleId">
<el-option <el-option v-for="item in articles"
v-for="item in articles"
:key="item.id" :key="item.id"
:label="item.title" :label="item.title"
:value="item.id"> :value="item.id">
@ -68,17 +72,19 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
<el-form-item prop="isOpen" label="新窗口打开"> <el-form-item prop="isOpen"
<el-switch label="新窗口打开">
v-model="data.isOpen" <el-switch v-model="data.isOpen"
:active-value="1" :active-value="1"
:inactive-value="0"> :inactive-value="0">
</el-switch> </el-switch>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer"
class="dialog-footer">
<el-button @click="$emit('update:visible', false)">取消</el-button> <el-button @click="$emit('update:visible', false)">取消</el-button>
<el-button type="primary" @click="linkSubmit">确定</el-button> <el-button type="primary"
@click="linkSubmit">确定</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -200,5 +206,4 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
</style> </style>

@ -32,15 +32,16 @@
</div> </div>
<template v-else-if="item.type === 'upload'"> <template v-else-if="item.type === 'upload'">
<img v-if="scope.row.pic" <img v-if="scope.row[item.prop]"
:src="scope.row.pic" :src="scope.row[item.prop]"
class="upload-pic"> class="upload-pic">
<div class="upload-none" <div class="upload-none"
v-else> v-else>
<i class="el-icon-picture-outline"></i> <i class="el-icon-picture-outline"></i>
</div> </div>
</template> </template>
<p v-else>{{ scope.row[item.prop] }}</p> <div v-else
v-html="scope.row[item.prop]"></div>
</template> </template>
</el-table-column> </el-table-column>
@ -76,7 +77,7 @@
ref="form" ref="form"
:model="data.form" :model="data.form"
:rules="rules" :rules="rules"
label-width="70px"> :label-width="labelWidth">
<el-form-item v-for="(item, i) in data.forms" <el-form-item v-for="(item, i) in data.forms"
:key="i" :key="i"
:prop="item.prop" :prop="item.prop"
@ -305,6 +306,7 @@ export default {
}, },
isVideo: Util.isVideo, isVideo: Util.isVideo,
dialogWidth: '700px', dialogWidth: '700px',
labelWidth: '70px',
rules: {}, rules: {},
linkVisible: false, linkVisible: false,
linkForm: {}, linkForm: {},
@ -376,7 +378,7 @@ export default {
]), ]),
// form // form
handleForm () { handleForm () {
const { type, forms, form, dialogWidth } = this.data const { type, forms, form, dialogWidth, labelWidth } = this.data
if (type === 'form' || type === 'forms') { if (type === 'form' || type === 'forms') {
forms.map(e => { forms.map(e => {
if (e.type === 'video' || e.type === 'media') { if (e.type === 'video' || e.type === 'media') {
@ -421,7 +423,8 @@ export default {
this.articleNums = nums this.articleNums = nums
} }
form && form.site && this.siteChange(form.site) form && form.site && this.siteChange(form.site)
this.dialogWidth = dialogWidth || '700px' if (dialogWidth) this.dialogWidth = dialogWidth
if (labelWidth) this.labelWidth = labelWidth
}, },
// //
siteChange (siteId) { siteChange (siteId) {

@ -10321,4 +10321,606 @@ export default {
], ],
}, },
], ],
aboutUs: [
{
type: 'introduce',
forms: [
{
type: 'media',
prop: 'pic',
label: '资源',
required: true,
width: 1912,
height: 480
},
{
type: 'editor',
prop: 'des',
label: '描述'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'upload',
prop: 'weixinPic1',
label: '公众号二维码',
width: 103,
height: 103
},
{
type: 'input',
prop: 'weixinText1',
label: '公众号文案'
},
{
type: 'upload',
prop: 'weixinPic2',
label: '小程序二维码',
width: 103,
height: 103
},
{
type: 'input',
prop: 'weixinText2',
label: '小程序文案'
},
],
form: {
pic: '',
des: ``,
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
pic: 'https://huorantech.com/images/about/qrcode.jpg',
title: `扫一扫,关注公众号`,
weixinPic1: '',
weixinText1: ``,
weixinPic2: '',
weixinText2: ``,
},
list: [],
dialogWidth: '1200px',
labelWidth: '110px'
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true,
width: 367,
height: 524
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'input',
prop: 'subTitle1',
label: '小标题'
},
{
type: 'input',
prop: 'subTitle2',
label: '英文标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'editor',
prop: 'des',
label: '描述'
}
],
form: {
pic: 'https://huorantech.com/images/about/about1.png',
title: '或然科技有限公司',
subTitle1: '职站商城,让您一站式采购无忧',
subTitle2: 'HUORAN TECH',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `深圳或然科技,教育数字化产业的推动者,为教育IT创业者赋能的首选合作伙伴。我们是一家拥有丰富IT互联网背景的科技企业,致力于为教育软件销售代理人提供专业而全面的产品供应链服务。`
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'input',
prop: 'des',
label: '描述'
}
],
form: {
title: '随时、随地、贴心为您提供全方位服务',
des: 'At anytime,anywhere,intimate to provide you with a full range of services',
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'input',
prop: 'des',
label: '描述'
}
],
form: {
title: '企业文化',
des: 'CORPORATE CULTURE',
}
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
width: 70,
height: 70
},
{
type: 'input',
prop: 'title',
label: '标题',
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: 'https://huorantech.com/images/about/about4.png',
title: '使命',
des: '成就百万教育产业数字化的创业者',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
},
{
pic: 'https://huorantech.com/images/about/about5.png',
title: '愿景',
des: '成为教育产业数字化的共创平台',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
},
{
pic: 'https://huorantech.com/images/about/about6.png',
title: '核心价值观',
des: '公正、诚信、创新、实干',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
},
],
dialogWidth: '900px'
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'input',
prop: 'subTitle',
label: '小标题'
},
{
type: 'input',
prop: 'des',
label: '描述'
}
],
form: {
title: '为什么选择我们',
subTitle: 'WHY CHOOSE US',
des: '专业、全面、高效',
}
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
width: 70,
height: 70
},
{
type: 'input',
prop: 'title',
label: '标题',
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: 'https://huorantech.com/images/index/index3.png',
title: '产品优势',
des: '整合好不同的教育信息化解决方案所需的软件和硬件产品,通过教育产业互联网平台和反向供应链,提供利润合适,交付便捷,质量有保障的体系化产品。',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
},
{
pic: 'https://huorantech.com/images/index/index4.png',
title: '服务优势',
des: '专业的培训和服务团队,提供教育信息化产业的创业辅导和专业培训。帮助打造一支专业化的商务支持、客户成功和售后运营服务的支撑型团队。',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
},
{
pic: 'https://huorantech.com/images/index/index5.png',
title: '生态优势',
des: '我们拥有强大可靠的渠道、产品的生态联盟,可共享、调用生态内的多方资源,背靠联盟携手共创新奇迹。',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
},
],
dialogWidth: '900px'
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'input',
prop: 'subTitle',
label: '小标题'
},
{
type: 'input',
prop: 'des',
label: '描述'
}
],
form: {
title: '合作院校',
subTitle: 'PARTNERSHIP',
des: '助力100+所院校客户实现数字化升级',
}
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
width: 453,
height: 308
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'editor',
prop: 'des',
label: '描述'
}
],
form: {
pic: 'https://huorantech.com/images/index/index0.png',
title: '他们说',
subTitle: '—— 河海大学老师',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `平台功能丰富,操作简单,自动判分功能,能更高效的批改作业给学生更好的指导。`
}
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true,
width: 253,
height: 124
},
],
form: {
pic: '',
},
list: [
{
pic: 'https://huorantech.com/images/index/school1.png',
},
{
pic: 'https://huorantech.com/images/index/school2.png',
},
{
pic: 'https://huorantech.com/images/index/school3.png',
},
{
pic: 'https://huorantech.com/images/index/school4.png',
},
{
pic: 'https://huorantech.com/images/index/school5.png',
},
]
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
},
{
type: 'input',
prop: 'des',
label: '描述'
}
],
form: {
title: '联系我们',
des: `CONTACT US`
}
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: 'logo',
width: 185,
height: 44
},
{
type: 'input',
prop: 'site',
label: '公司官网',
},
{
type: 'input',
prop: 'address',
label: '地址'
},
{
type: 'input',
prop: 'phone',
label: '合作咨询',
},
{
type: 'input',
prop: 'mail',
label: '客户建议'
},
],
form: {
pic: 'https://huorantech.com/images/about/logo.png',
site: '公司官网:www.huorantech.com',
address: `地址:广东省深圳市南山区粤海街道海天二路盈峰中心2101`,
phone: `合作咨询:郭经理 17671782660`,
mail: `客户建议:service@huorantech.cn`,
},
labelWidth: '100px'
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '公众号二维码',
width: 103,
height: 103
},
{
type: 'input',
prop: 'title',
label: '公众号文案'
},
],
form: {
pic: 'https://huorantech.com/images/about/qrcode.jpg',
title: `扫一扫,关注公众号`,
},
labelWidth: '100px'
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '小程序二维码',
width: 103,
height: 103
},
{
type: 'input',
prop: 'title',
label: '小程序文案'
},
],
form: {
pic: 'https://huorantech.com/images/about/mini-program-sm.jpg',
title: `扫一扫,登录职站商城`,
},
labelWidth: '100px'
},
],
} }

@ -3,79 +3,173 @@
<div style="width: 218px;border-right: 1px solid #EBEDF0"> <div style="width: 218px;border-right: 1px solid #EBEDF0">
<p class="page-name mb">全部栏目</p> <p class="page-name mb">全部栏目</p>
<div style="height: calc(100% - 50px);overflow: auto"> <div style="height: calc(100% - 50px);overflow: auto">
<el-tree ref="column" :data="columns" highlight-current :expand-on-click-node="false" default-expand-all :props="defaultProps" node-key="id" @node-click="initData"> <el-tree ref="column"
<span class="custom-tree-node" slot-scope="{ node, data }"> :data="columns"
<span class="org-name" :title="node.label">{{ node.label }}</span> highlight-current
:expand-on-click-node="false"
default-expand-all
:props="defaultProps"
node-key="id"
@node-click="initData">
<span class="custom-tree-node"
slot-scope="{ node, data }">
<span class="org-name"
:title="node.label">{{ node.label }}</span>
</span> </span>
</el-tree> </el-tree>
</div> </div>
</div> </div>
<div class="p-l-20" style="width: calc(100% - 219px);"> <div class="p-l-20"
style="width: calc(100% - 219px);">
<div class="tool"> <div class="tool">
<div class="search-wrap"> <div class="search-wrap">
<el-select v-model="field" @change="initData"> <el-select v-model="field"
<el-option @change="initData">
v-for="(item, i) in keywords" <el-option v-for="(item, i) in keywords"
:key="i" :key="i"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
<el-input class="keyword" :placeholder="'请输入' + keywords.find(e => e.id === field).name" v-model.trim="keyword" clearable></el-input> <el-input class="keyword"
:placeholder="'请输入' + keywords.find(e => e.id === field).name"
v-model.trim="keyword"
clearable></el-input>
</div> </div>
<div class="actions"> <div class="actions">
<el-dropdown class="setting" trigger="click" :hide-on-click="false"> <el-dropdown class="setting"
<img class="icon" src="@/assets/images/setting.png" alt=""> trigger="click"
:hide-on-click="false">
<img class="icon"
src="@/assets/images/setting.png"
alt="">
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item> <el-dropdown-item>
<el-button @click="resetColumns" type="text">列重置</el-button> <el-button @click="resetColumns"
type="text">列重置</el-button>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-for="(column, i) in settings" :key="i" :divided="i === 0"> <el-dropdown-item v-for="(column, i) in settings"
:key="i"
:divided="i === 0">
<el-checkbox v-model="column.show">{{ column.name }}</el-checkbox> <el-checkbox v-model="column.show">{{ column.name }}</el-checkbox>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:新增'" type="primary" @click="add" >新增</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:新增'"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:删除'" @click="batchDel">删除</el-button> type="primary"
@click="add">新增</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:删除'"
@click="batchDel">删除</el-button>
</div> </div>
</div> </div>
<el-table :data="list" class="table" ref="table" header-align="center" @selection-change="handleSelectionChange" row-key="id" @sort-change="sortChange"> <el-table :data="list"
<el-table-column v-if="settings[0].show" type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> class="table"
<el-table-column type="index" width="60" label="序号" align="center"> ref="table"
header-align="center"
@selection-change="handleSelectionChange"
row-key="id"
@sort-change="sortChange">
<el-table-column v-if="settings[0].show"
type="selection"
width="55"
align="center"
:reserve-selection="true"></el-table-column>
<el-table-column type="index"
width="60"
label="序号"
align="center">
<template scope="scope"> <template scope="scope">
<span>{{(page - 1) * pageSize + scope.$index + 1}}</span> <span>{{(page - 1) * pageSize + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[1].show" show-overflow-tooltip prop="title" label="标题" align="center" min-width="150"></el-table-column> <el-table-column v-if="settings[1].show"
<el-table-column v-if="settings[2].show" prop="columnName" label="栏目" align="center" min-width="120"></el-table-column> show-overflow-tooltip
<el-table-column v-if="settings[3].show" prop="classificationName" label="所属分类" align="center" min-width="120"></el-table-column> prop="title"
<el-table-column v-if="settings[4].show" prop="typeId" label="栏目类型" align="center" min-width="100"> label="标题"
align="center"
min-width="150"></el-table-column>
<el-table-column v-if="settings[2].show"
prop="columnName"
label="栏目"
align="center"
min-width="120"></el-table-column>
<el-table-column v-if="settings[3].show"
prop="classificationName"
label="所属分类"
align="center"
min-width="120"></el-table-column>
<el-table-column v-if="settings[4].show"
prop="typeId"
label="栏目类型"
align="center"
min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ types.find(e => e.id === scope.row.typeId).name }} {{ types.find(e => e.id === scope.row.typeId).name }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[5].show" prop="founderName" label="录入人" align="center" min-width="80"></el-table-column> <el-table-column v-if="settings[5].show"
<el-table-column v-if="settings[6].show" prop="editorName" label="修改人" align="center" min-width="80"></el-table-column> prop="founderName"
<el-table-column v-if="settings[7].show" prop="updateTime" label="修改日期" align="center" min-width="150" sortable="custom"></el-table-column> label="录入人"
<el-table-column v-if="settings[8].show" prop="releaseTime" label="发布日期" align="center" min-width="100" sortable="custom"></el-table-column> align="center"
<el-table-column v-if="settings[9].show" prop="totalBrowsing" label="总浏览" align="center" min-width="70"></el-table-column> min-width="80"></el-table-column>
<el-table-column v-if="settings[10].show" prop="workNumber" label="状态" align="center" min-width="80"> <el-table-column v-if="settings[6].show"
prop="editorName"
label="修改人"
align="center"
min-width="80"></el-table-column>
<el-table-column v-if="settings[7].show"
prop="updateTime"
label="修改日期"
align="center"
min-width="150"
sortable="custom"></el-table-column>
<el-table-column v-if="settings[8].show"
prop="releaseTime"
label="发布日期"
align="center"
min-width="100"
sortable="custom"></el-table-column>
<el-table-column v-if="settings[9].show"
prop="totalBrowsing"
label="总浏览"
align="center"
min-width="70"></el-table-column>
<el-table-column v-if="settings[10].show"
prop="workNumber"
label="状态"
align="center"
min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.isRelease ? '已发布' : '草稿' }} {{ scope.row.isRelease ? '已发布' : '草稿' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-auth="'/site/list:' + siteName + ':内容管理:文章管理:置顶'" prop="sequence" label="置顶" align="center" min-width="80" sortable="custom"> <el-table-column v-auth="'/site/list:' + siteName + ':内容管理:文章管理:置顶'"
prop="sequence"
label="置顶"
align="center"
min-width="80"
sortable="custom">
<template slot-scope="scope"> <template slot-scope="scope">
<i v-if="scope.row.isRelease" :class="['squ-icon', scope.row.isTop ? 'el-icon-check' : 'el-icon-close']" @click="sticky(scope.row)"></i> <i v-if="scope.row.isRelease"
:class="['squ-icon', scope.row.isTop ? 'el-icon-check' : 'el-icon-close']"
@click="sticky(scope.row)"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[11].show" label="操作" align="center" width="190"> <el-table-column v-if="settings[11].show"
label="操作"
align="center"
width="190">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:预览'" type="text" @click="preview(scope.row)">预览</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:预览'"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:编辑'" type="text" @click="edit(scope.row)">编辑</el-button> type="text"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> @click="preview(scope.row)">预览</el-button>
<el-switch <el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:编辑'"
v-if="scope.row.isRelease" type="text"
@click="edit(scope.row)">编辑</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:删除'"
type="text"
@click="handleDelete(scope.row)">删除</el-button>
<el-switch v-if="scope.row.isRelease"
v-auth="'/site/list:' + siteName + ':内容管理:文章管理:禁用'" v-auth="'/site/list:' + siteName + ':内容管理:文章管理:禁用'"
class="m-l-10" class="m-l-10"
v-model="scope.row.isDisable" v-model="scope.row.isDisable"
@ -87,7 +181,11 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background @current-change="currentChange" :current-page="page" layout="total, prev, pager, next" :total="total"></el-pagination> <el-pagination background
@current-change="currentChange"
:current-page="page"
layout="total, prev, pager, next"
:total="total"></el-pagination>
</div> </div>
</div> </div>
</div> </div>
@ -382,7 +480,7 @@ export default {
}, },
// //
preview (row) { preview (row) {
window.open((Setting.isDev ? `http://${location.hostname}:8095` : this.$store.state.content.site.domainName) + `#/article?articleId=${row.id}&siteId=${this.$refs.column.getCurrentNode().siteId}&id=${row.columnId}`) window.open((Setting.isDev ? `http://${location.hostname}:8097` : this.$store.state.content.site.domainName) + `#/article?articleId=${row.id}&siteId=${this.$refs.column.getCurrentNode().siteId}&id=${row.columnId}`)
}, },
// //
edit (row) { edit (row) {

@ -2,91 +2,157 @@
<div class="page"> <div class="page">
<div class="tool"> <div class="tool">
<div class="search-wrap"> <div class="search-wrap">
<el-input placeholder="请输入栏目名称" v-model.trim="keyword" clearable></el-input> <el-input placeholder="请输入栏目名称"
v-model.trim="keyword"
clearable></el-input>
</div> </div>
<div class="actions"> <div class="actions">
<el-dropdown class="setting" trigger="click" :hide-on-click="false"> <el-dropdown class="setting"
<img class="icon" src="@/assets/images/setting.png" alt=""> trigger="click"
:hide-on-click="false">
<img class="icon"
src="@/assets/images/setting.png"
alt="">
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item> <el-dropdown-item>
<el-button @click="resetColumns" type="text">列重置</el-button> <el-button @click="resetColumns"
type="text">列重置</el-button>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-for="(column, i) in settings" :key="i" :divided="i === 0"> <el-dropdown-item v-for="(column, i) in settings"
:key="i"
:divided="i === 0">
<el-checkbox v-model="column.show">{{ column.name }}</el-checkbox> <el-checkbox v-model="column.show">{{ column.name }}</el-checkbox>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:新增'" type="primary" @click="add" >新增</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:新增'"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:删除'" @click="batchDel">删除</el-button> type="primary"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:更改排序'" class="lg" @click="sort">更改排序</el-button> @click="add">新增</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:导航样式设置'" class="lg" @click="styleSet">导航样式设置</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:删除'"
@click="batchDel">删除</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:更改排序'"
class="lg"
@click="sort">更改排序</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:导航样式设置'"
class="lg"
@click="styleSet">导航样式设置</el-button>
</div> </div>
</div> </div>
<el-table v-loading="listLoading" ref="table" :data="list" default-expand-all class="table" header-align="center" @selection-change="handleSelectionChange" @select-all="selectAll" row-key="id"> <el-table v-loading="listLoading"
<el-table-column v-if="settings[0].show" type="selection" width="50" align="center" :reserve-selection="true"></el-table-column> ref="table"
<el-table-column prop="columnName" show-overflow-tooltip label="名称" min-width="140"></el-table-column> :data="list"
<el-table-column v-if="settings[1].show" prop="typeId" label="栏目类型" min-width="100"> default-expand-all
class="table"
header-align="center"
@selection-change="handleSelectionChange"
@select-all="selectAll"
row-key="id">
<el-table-column v-if="settings[0].show"
type="selection"
width="50"
align="center"
:reserve-selection="true"></el-table-column>
<el-table-column prop="columnName"
show-overflow-tooltip
label="名称"
min-width="140"></el-table-column>
<el-table-column v-if="settings[1].show"
prop="typeId"
label="栏目类型"
min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ types.find(e => e.id == scope.row.typeId) && types.find(e => e.id == scope.row.typeId).name }} {{ types.find(e => e.id == scope.row.typeId) && types.find(e => e.id == scope.row.typeId).name }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[2].show" prop="templateName" label="栏目模板" min-width="100"> <el-table-column v-if="settings[2].show"
prop="templateName"
label="栏目模板"
min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.typeId === 2 ? '--' : scope.row.templateName }} {{ scope.row.typeId === 2 ? '--' : scope.row.templateName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[3].show" prop="listStyle" label="列表/长页样式" min-width="100"> <el-table-column v-if="settings[3].show"
prop="listStyle"
label="列表/长页样式"
min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.typeId === 2 ? '--' : scope.row.listStyle }} {{ scope.row.typeId === 2 ? '--' : scope.row.listStyle }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[4].show" prop="detailStyle" label="详情样式" min-width="100"> <el-table-column v-if="settings[4].show"
prop="detailStyle"
label="详情样式"
min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.typeId === 1 || scope.row.typeId === 4) ? scope.row.detailStyle : '--' }} {{ (scope.row.typeId === 1 || scope.row.typeId === 4) ? scope.row.detailStyle : '--' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[5].show" prop="menuVisible" label="导航菜单" min-width="100"> <el-table-column v-if="settings[5].show"
prop="menuVisible"
label="导航菜单"
min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.menuVisible"
v-model="scope.row.menuVisible"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
@change="switchOff($event, scope.row, scope.$index)"> @change="switchOff($event, scope.row, scope.$index)">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[6].show" prop="id" label="ID" min-width="80"></el-table-column> <el-table-column v-if="settings[6].show"
<el-table-column v-if="settings[7].show" label="操作" width="270"> prop="id"
label="ID"
min-width="80"></el-table-column>
<el-table-column v-if="settings[7].show"
label="操作"
width="270">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:新增下级'" type="text" @click="edit(scope.row, 'add')">新增下级</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:新增下级'"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:编辑'" type="text" @click="edit(scope.row, 'edit')">编辑</el-button> type="text"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:删除'" type="text" @click="del(scope.row)">删除</el-button> @click="edit(scope.row, 'add')">新增下级</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:预览'" v-if="scope.row.typeId != 2" type="text" @click="preview(scope.row)">预览</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:编辑'"
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:页面管理'" v-if="scope.row.typeId == 3" class="page-set" type="primary" size="mini" @click="page(scope.row)">页面设置</el-button> type="text"
@click="edit(scope.row, 'edit')">编辑</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:删除'"
type="text"
@click="del(scope.row)">删除</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:预览'"
v-if="scope.row.typeId != 2"
type="text"
@click="preview(scope.row)">预览</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:栏目管理:页面管理'"
v-if="scope.row.typeId == 3"
class="page-set"
type="primary"
size="mini"
@click="page(scope.row)">页面设置</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog title="编辑栏目排序" :visible.sync="sortVisible" width="750px" :close-on-click-modal="false"> <el-dialog title="编辑栏目排序"
:visible.sync="sortVisible"
width="750px"
:close-on-click-modal="false">
<div class="sort-wrap"> <div class="sort-wrap">
<ul class="thead"> <ul class="thead">
<li style="width: 395px;padding-left: 30px">栏目</li> <li style="width: 395px;padding-left: 30px">栏目</li>
<li style="width: 205px">栏目类型</li> <li style="width: 205px">栏目类型</li>
<li>前台可见</li> <li>前台可见</li>
</ul> </ul>
<el-tree <el-tree class="sort"
class="sort"
:data="sortColumns" :data="sortColumns"
node-key="id" node-key="id"
default-expand-all default-expand-all
draggable> draggable>
<ul class="sort-line" slot-scope="{ node, data }"> <ul class="sort-line"
slot-scope="{ node, data }">
<li>{{ data.columnName }}</li> <li>{{ data.columnName }}</li>
<li>{{ types.find(e => e.id == data.typeId) && types.find(e => e.id == data.typeId).name }}</li> <li>{{ types.find(e => e.id == data.typeId) && types.find(e => e.id == data.typeId).name }}</li>
<li> <li>
<el-switch <el-switch v-model="data.menuVisible"
v-model="data.menuVisible"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
@change="switchOff($event, data)"> @change="switchOff($event, data)">
@ -95,18 +161,23 @@
</ul> </ul>
</el-tree> </el-tree>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer"
class="dialog-footer">
<el-button @click="sortVisible = false"> </el-button> <el-button @click="sortVisible = false"> </el-button>
<el-button type="primary" @click="sortSubmit"> </el-button> <el-button type="primary"
@click="sortSubmit"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="导航样式设置" :visible.sync="styleVisible" width="850px" :close-on-click-modal="false"> <el-dialog title="导航样式设置"
<el-form class="input-form" label-width="100px"> :visible.sync="styleVisible"
width="850px"
:close-on-click-modal="false">
<el-form class="input-form"
label-width="100px">
<el-form-item label="导航样式"> <el-form-item label="导航样式">
<el-select v-model="form.navigationStyle"> <el-select v-model="form.navigationStyle">
<el-option <el-option v-for="item in styleTypes"
v-for="item in styleTypes"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id">
@ -117,9 +188,11 @@
<ul class="styles"> <ul class="styles">
<li> <li>
<div class="review"> <div class="review">
<img src="@/assets/images/style1.png" alt=""> <img src="@/assets/images/style1.png"
alt="">
</div> </div>
<el-radio v-model="form.styleTemplate" :label="1">竖行导航</el-radio> <el-radio v-model="form.styleTemplate"
:label="1">竖行导航</el-radio>
</li> </li>
<!-- <li> <!-- <li>
<div class="review"> <div class="review">
@ -130,9 +203,11 @@
</ul> </ul>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer"
class="dialog-footer">
<el-button @click="styleVisible = false"> </el-button> <el-button @click="styleVisible = false"> </el-button>
<el-button type="primary" @click="styleSubmit"> </el-button> <el-button type="primary"
@click="styleSubmit"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -289,7 +364,7 @@ export default {
// //
preview (row) { preview (row) {
// /column // /column
window.open((Setting.isDev ? `http://${location.hostname}:8095` : this.$store.state.content.site.domainName) + `#/${row.typeId === 3 ? row.path : 'column'}?id=${row.id}&siteId=${row.siteId}`) window.open((Setting.isDev ? `http://${location.hostname}:8097` : this.$store.state.content.site.domainName) + `#/${row.typeId === 3 ? row.path : 'column'}?id=${row.id}&siteId=${row.siteId}`)
}, },
// //
page (row) { page (row) {
@ -411,7 +486,7 @@ export default {
.thead { .thead {
display: flex; display: flex;
line-height: 44px; line-height: 44px;
background-color: #F7F7F7; background-color: #f7f7f7;
li { li {
padding: 0 10px; padding: 0 10px;
font-size: 12px; font-size: 12px;
@ -423,7 +498,7 @@ export default {
/deep/.sort { /deep/.sort {
.el-tree-node__content { .el-tree-node__content {
height: auto; height: auto;
border-bottom: 1px solid #EBEDF0; border-bottom: 1px solid #ebedf0;
} }
// .el-tree-node__expand-icon { // .el-tree-node__expand-icon {
// display: none; // display: none;
@ -453,13 +528,13 @@ export default {
margin-right: 20px; margin-right: 20px;
text-align: center; text-align: center;
&:hover .review { &:hover .review {
border-color: #2962FF; border-color: #2962ff;
} }
} }
.review { .review {
padding: 18px; padding: 18px;
margin-bottom: 10px; margin-bottom: 10px;
border: 1px solid #DCDEE0; border: 1px solid #dcdee0;
border-radius: 2px; border-radius: 2px;
} }
} }

@ -1,7 +1,7 @@
<template> <template>
<div class="wrap index"> <div class="wrap index">
<div class="actions"> <div class="actions">
<p class="page-name">页面设置/关于IASF-发展历程</p> <p class="page-name">页面设置/关于我们</p>
<div> <div>
<el-button type="primary" <el-button type="primary"
@click="preview">预览</el-button> @click="preview">预览</el-button>
@ -14,15 +14,61 @@
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<div class="banner"> <el-carousel v-if="modules[0].list.length && modules[0].list.filter(e => e.isEnable).length"
<img class="texts" class="carousel"
src="http://139.159.254.212/images/about/banner-text.png" :interval="6000"
alt=""> height="480px"
:arrow="(modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'"
:indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable"
:key="i">
<div v-if="isImg(item.mediaType)"
class="pic"
:style="{backgroundImage: 'url(' + item.pic + ')'}"></div>
<video v-else
class="pic"
width="100%"
height="100%"
autoplay
muted
loop>
<source :src="item.pic"
type="video/mp4">
您的浏览器不支持 video 标签
</video>
<div class="text-wrap">
<div class="text"
v-html="item.des"></div>
<div v-if="!GTA" <div v-if="!GTA"
class="qrcodes"> class="qrcodes">
<div class="qrcode"> <div class="qrcode">
<img width="103" <img width="103"
src="http://139.159.254.212/images/about/qrcode.jpg" :src="item.weixinPic1"
alt="">
<p class="text">{{ item.weixinText1 }}</p>
</div>
<div class="qrcode m-l-30">
<img width="103"
:src="item.weixinPic2"
alt="">
<p class="text">{{ item.weixinText2 }}</p>
</div>
</div>
</div>
</el-carousel-item>
</template>
</el-carousel>
<div v-else
class="banner">
<img class="texts"
src="https://huorantech.com/images/about/banner-text.png"
alt="">
<div class="qrcodes">
<div class="qrcode">
<img width="103"
src="https://huorantech.com/images/about/qrcode.jpg"
alt=""> alt="">
<p class="text">扫一扫关注公众号</p> <p class="text">扫一扫关注公众号</p>
</div> </div>
@ -34,57 +80,60 @@
</div> </div>
</div> </div>
</div> </div>
<div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div> </div>
<div class="intro"> <div class="intro">
<div class="inner"> <div class="inner">
<div class="pics"> <div class="pics c-wrap">
<div class="text"> <div class="text">
<div class="title-wrap"> <div class="title-wrap">
<p class="title">或然科技有限公司</p> <p class="title">{{ modules[1].form.title }}</p>
<p class="brief">职站商城让您一站式采购无忧</p> <p class="brief">{{ modules[1].form.subTitle1 }}</p>
<p class="en">HUORAN TECH</p> <p class="en">{{ modules[1].form.subTitle2 }}</p>
</div> </div>
<p class="desc wow fadeInLeft" <div class="desc wow fadeInLeft"
data-wow-delay="0.7s">深圳或然科技教育数字化产业的推动者为教育IT创业者赋能的首选合作伙伴我们是一家拥有丰富IT互联网背景的科技企业致力于为教育软件销售代理人提供专业而全面的产品供应链服务</p> v-html="modules[1].form.des"></div>
</div> </div>
<img class="bg" <img class="bg"
src="http://139.159.254.212/images/about/about1.png" :src="modules[1].form.pic"
alt=""> alt="">
<div class="cover"
style="height: 360px;"
@click="toSet(1)">点击更改图片标题概述与链接</div>
</div> </div>
</div> </div>
</div> </div>
<div class="service-intro"> <div class="service-intro">
<div class="inner"> <div class="inner">
<h6>随时随地贴心为您提供全方位服务</h6> <h6>{{ modules[2].form.title }}</h6>
<p class="text">At anytime,anywhere,intimate to provide you with a full range of services</p> <p class="text">{{ modules[2].form.des }}</p>
<div class="cover"
@click="toSet(2)">点击更换标题与描述</div>
</div> </div>
</div> </div>
<div class="culture"> <div class="culture">
<div class="inner"> <div class="inner">
<h6 class="i-title wow fadeInDown">企业文化</h6> <div class="c-wrap"
<p class="en">CORPORATE CULTURE</p> style="height: 150px">
<ul class="list"> <h6 class="i-title wow fadeInDown">{{ modules[3].form.title }}</h6>
<li class="wow fadeInDown" <p class="en">{{ modules[3].form.des }}</p>
data-wow-delay="0.5s"> <div class="cover"
<img src="http://139.159.254.212/images/about/about4.png" @click="toSet(3)">点击更换标题与描述</div>
alt=""> </div>
<h6>使命</h6> <ul class="list c-wrap">
<p class="text">成就百万教育产业数字化的创业者</p> <template v-for="(item, i) in modules[4].list">
</li> <li v-if="item.isEnable"
<li class="wow fadeInRight" :key="i">
data-wow-delay="0.8s"> <img :src="item.pic"
<img src="http://139.159.254.212/images/about/about5.png"
alt="">
<h6>愿景</h6>
<p class="text">成为教育产业数字化的共创平台</p>
</li>
<li class="wow fadeInUp"
data-wow-delay="1.1s">
<img src="http://139.159.254.212/images/about/about6.png"
alt=""> alt="">
<h6>核心价值观</h6> <h6>{{ item.title }}</h6>
<p class="text">公正诚信创新实干</p> <div class="text"
v-html="item.des"></div>
</li> </li>
</template>
<div class="cover"
@click="toSet(4)">点击更改图片标题概述与链接</div>
</ul> </ul>
</div> </div>
</div> </div>
@ -93,130 +142,151 @@
<div class="adv" <div class="adv"
id="part2"> id="part2">
<div class="inner"> <div class="inner">
<h6 class="i-title wow fadeInDown">为什么选择我们</h6> <div class="c-wrap"
<p class="en">WHY CHOOSE US</p> style="height: 150px">
<p class="title-des wow fadeInDown">专业全面高效</p> <h6 class="i-title wow fadeInDown">{{ modules[5].form.title }}</h6>
<p class="en">{{ modules[5].form.subTitle }}</p>
<p class="title-des wow fadeInDown">{{ modules[5].form.des }}</p>
<div class="cover"
@click="toSet(5)">点击更换标题与描述</div>
</div>
<ul class="list"> <ul class="list c-wrap">
<li class="wow fadeInDown" <template v-for="(item, i) in modules[6].list">
data-wow-delay="0.5s"> <li v-if="item.isEnable"
<img src="http://139.159.254.212/images/index/index3.png" :key="i">
alt=""> <img :src="item.pic"
<h6>产品优势</h6>
<p class="text">整合好不同的教育信息化解决方案所需的软件和硬件产品通过教育产业互联网平台和反向供应链提供利润合适交付便捷质量有保障的体系化产品</p>
</li>
<li class="wow fadeInRight"
data-wow-delay="0.8s">
<img src="http://139.159.254.212/images/index/index4.png"
alt="">
<h6>服务优势</h6>
<p class="text">专业的培训和服务团队提供教育信息化产业的创业辅导和专业培训帮助打造一支专业化的商务支持客户成功和售后运营服务的支撑型团队</p>
</li>
<li class="wow fadeInUp"
data-wow-delay="1.1s">
<img src="http://139.159.254.212/images/index/index5.png"
alt=""> alt="">
<h6>生态优势</h6> <h6>{{ item.title }}</h6>
<p class="text">我们拥有强大可靠的渠道产品的生态联盟可共享调用生态内的多方资源背靠联盟携手共创新奇迹</p> <div class="text"
v-html="item.des"></div>
</li> </li>
</template>
<div class="cover"
@click="toSet(6)">点击更改图片标题概述与链接</div>
</ul> </ul>
</div> </div>
</div> </div>
<!-- 合作客户 --> <!-- 合作客户 -->
<div class="client"> <div class="client">
<div class="inner"> <div class="inner">
<h6 class="i-title wow fadeInDown">合作院校</h6> <div class="c-wrap"
<p class="en">PARTNERSHIP</p> style="height: 150px">
<p class="title-des wow fadeInDown">助力100+所院校客户实现数字化升级</p> <h6 class="i-title wow fadeInDown">{{ modules[7].form.title }}</h6>
<div class="client-pic"> <p class="en">{{ modules[7].form.subTitle }}</p>
<p class="title-des wow fadeInDown">{{ modules[7].form.des }}</p>
<div class="cover"
@click="toSet(7)">点击更换标题与描述</div>
</div>
<div class="client-pic c-wrap">
<img class="bg" <img class="bg"
src="http://139.159.254.212/images/index/index0.png" :src="modules[8].form.pic"
alt=""> alt="">
<div class="text"> <div class="text">
<div class="c-title1"> <div class="c-title1">
<img src="http://139.159.254.212/images/index/comma1.png" <img src="https://huorantech.com/images/index/comma1.png"
alt=""> alt="">
他们说 {{ modules[8].form.title }}
</div> </div>
<div class="text">平台功能丰富操作简单自动判分功能能更高效的批改作业给学生更好的指导</div> <div class="text"
v-html="modules[8].form.des"></div>
<div class="c-title2"> <div class="c-title2">
河海大学老师 {{ modules[8].form.subTitle }}
<img src="http://139.159.254.212/images/index/comma2.png" <img src="https://huorantech.com/images/index/comma2.png"
alt=""> alt="">
</div> </div>
<div class="cover"
@click="toSet(8)">点击更改图片标题概述与链接</div>
</div> </div>
</div> </div>
<!-- <scroll class="clients" <div class="c-wrap">
:data="clients" <scroll class="clients"
:data="modules[9].list"
:class-option="{limitMoveNum: 2, direction: 2}"> :class-option="{limitMoveNum: 2, direction: 2}">
<ul class="client-list" <ul class="client-list"
ref="client"> ref="client">
<li v-for="i in clients" <li v-for="item in modules[9].list"
:key="i"> :key="item">
<img :src="require('http://139.159.254.212/images/index/school' + i + '.png')" <img :src="item.pic"
alt=""> alt="">
</li> </li>
</ul> </ul>
</scroll> --> </scroll>
<div class="cover"
@click="toSet(9)">点击更改图片</div>
</div>
</div> </div>
</div> </div>
<div class="contact"> <div class="contact">
<div class="inner"> <div class="inner">
<div class="title"> <div class="title c-wrap">
<h6>联系我们</h6> <h6>{{ modules[10].form.title }}</h6>
<p class="text">CONTACT US</p> <p class="text">{{ modules[10].form.des }}</p>
<div class="cover"
@click="toSet(10)">点击更改标题与描述</div>
</div> </div>
<div class="region"> <div class="region">
<img class="dot" <img class="dot"
src="http://139.159.254.212/images/about/dot.png" src="https://huorantech.com/images/about/dot.png"
alt=""> alt="">
<p class="name">深圳</p> <p class="name">深圳</p>
</div> </div>
<div class="info"> <div class="info">
<img class="logo" <img class="logo"
src="http://139.159.254.212/images/about/logo.png" :src="modules[11].form.pic"
alt=""> alt="">
<div class="texts"> <div class="texts c-wrap">
<div class="item"> <div class="item">
<div class="line"> <div class="line">
<img class="icon" <img class="icon"
src="http://139.159.254.212/images/about/site.png" src="https://huorantech.com/images/about/site.png"
alt=""> alt="">
公司官网www.huorantech.com {{ modules[11].form.site }}
</div> </div>
<div class="line"> <div class="line">
<img class="icon" <img class="icon"
src="http://139.159.254.212/images/about/address.png" src="https://huorantech.com/images/about/address.png"
alt=""> alt="">
地址广东省深圳市南山区粤海街道海天二路盈峰中心2101 {{ modules[11].form.address }}
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<div class="line"> <div class="line">
<img class="icon" <img class="icon"
src="http://139.159.254.212/images/about/phone.png" src="https://huorantech.com/images/about/phone.png"
alt=""> alt="">
合作咨询郭经理 17671782660 {{ modules[11].form.phone }}
</div> </div>
<div class="line"> <div class="line">
<img class="icon" <img class="icon"
src="http://139.159.254.212/images/about/mail.png" src="https://huorantech.com/images/about/mail.png"
alt=""> alt="">
客户建议service@huorantech.cn {{ modules[11].form.mail }}
</div> </div>
</div> </div>
<div class="qrcode"> <div class="cover"
style="width: 800px"
@click="toSet(11)">点击更改信息</div>
<div class="cover"
style="width: 800px"
@click="toSet(11)">点击更改信息</div>
<div class="qrcode c-wrap">
<img width="103" <img width="103"
src="http://139.159.254.212/images/about/qrcode.jpg" :src=" modules[12].form.pic"
alt=""> alt="">
<p class="text">扫一扫关注公众号</p> <p class="text">{{ modules[12].form.title }}</p>
<div class="cover"
@click="toSet(12)">点击更改信息</div>
</div> </div>
<div class="qrcode m-l-30"> <div class="qrcode c-wrap m-l-30">
<img width="103" <img width="103"
src="@/assets/images/mini-program-sm.jpg" :src=" modules[13].form.pic"
alt=""> alt="">
<p class="text">扫一扫登录职站商城</p> <p class="text">{{ modules[13].form.title }}</p>
<div class="cover"
@click="toSet(13)">点击更改信息</div>
</div> </div>
</div> </div>
</div> </div>
@ -235,13 +305,19 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules' import Modules from '@/const/modules'
import scroll from 'vue-seamless-scroll'
import Util from '@/libs/util'
export default { export default {
mixins: [mixins], mixins: [mixins],
data () { data () {
return { return {
modules: Modules.application isImg: Util.isImg,
modules: Modules.aboutUs
} }
}, },
components: {
scroll
},
mounted () { mounted () {
this.$store.commit('user/setCrumbs', [ this.$store.commit('user/setCrumbs', [
{ {
@ -275,8 +351,8 @@ export default {
.banner { .banner {
position: relative; position: relative;
height: 480px; height: 480px;
background: url(http://139.159.254.212/images/about/banner1.png) 0 0 / auto no-repeat, background: url(https://huorantech.com/images/about/banner1.png) 0 0 / auto no-repeat,
url(http://139.159.254.212/images/about/banner2.png) (90% 37px) / auto no-repeat; url(https://huorantech.com/images/about/banner2.png) (90% 37px) / auto no-repeat;
background-color: #0f5bed; background-color: #0f5bed;
.texts { .texts {
position: absolute; position: absolute;
@ -290,6 +366,28 @@ export default {
display: flex; display: flex;
} }
} }
.carousel {
.pic {
height: 100%;
background-position: center center;
background-size: 100% 100%;
background-repeat: no-repeat;
}
/deep/.el-carousel__container {
height: 100%;
}
.text-wrap {
position: absolute;
top: 50%;
left: 165px;
color: #fff;
transform: translateY(-50%);
}
.qrcodes {
display: flex;
margin-top: 10px;
}
}
.qrcode { .qrcode {
text-align: center; text-align: center;
@ -379,7 +477,7 @@ export default {
height: 153px; height: 153px;
margin-top: -240px; margin-top: -240px;
color: #fff; color: #fff;
background: url(http://139.159.254.212/images/about/about2.png) 0 0 / cover no-repeat; background: url(https://huorantech.com/images/about/about2.png) 0 0 / cover no-repeat;
.inner { .inner {
padding: 0; padding: 0;
} }
@ -393,7 +491,7 @@ export default {
} }
.culture { .culture {
position: relative; position: relative;
background: #fff url(http://139.159.254.212/images/about/about3.png) 0 0/100% 100% no-repeat; background: #fff url(https://huorantech.com/images/about/about3.png) 0 0/100% 100% no-repeat;
.inner { .inner {
padding-bottom: 112px; padding-bottom: 112px;
} }
@ -519,7 +617,7 @@ export default {
.contact { .contact {
position: relative; position: relative;
padding: 0 0 106px 0; padding: 0 0 106px 0;
background: url(http://139.159.254.212/images/about/map.png) 0 0 / cover no-repeat; background: url(https://huorantech.com/images/about/map.png) 0 0 / cover no-repeat;
.inner { .inner {
padding: 0; padding: 0;
} }
@ -575,8 +673,8 @@ export default {
.about { .about {
padding: 130px 0 200px; padding: 130px 0 200px;
background: url(http://139.159.254.212/images/index/about2.png) (bottom right) / auto no-repeat, background: url(https://huorantech.com/images/index/about2.png) (bottom right) / auto no-repeat,
url(http://139.159.254.212/images/index/about1.png) 0 0 / cover no-repeat; url(https://huorantech.com/images/index/about1.png) 0 0 / cover no-repeat;
.inner { .inner {
padding: 0; padding: 0;
} }
@ -617,7 +715,7 @@ export default {
} }
.adv { .adv {
position: relative; position: relative;
background: #fff url(http://139.159.254.212/images/index/index7.png) 0 0/100% 100% no-repeat; background: #fff url(https://huorantech.com/images/index/index7.png) 0 0/100% 100% no-repeat;
.list { .list {
display: flex; display: flex;
li { li {
@ -661,7 +759,7 @@ export default {
} }
.service { .service {
position: relative; position: relative;
background: #0653ff url(http://139.159.254.212/images/index/service4.png) 0 0/100% 100% no-repeat; background: #0653ff url(https://huorantech.com/images/index/service4.png) 0 0/100% 100% no-repeat;
.i-title { .i-title {
color: #fff; color: #fff;
} }
@ -751,8 +849,8 @@ export default {
} }
} }
.product { .product {
background: url(http://139.159.254.212/images/index/pro-bg1.png) (right 828px) / auto no-repeat, background: url(https://huorantech.com/images/index/pro-bg1.png) (right 828px) / auto no-repeat,
url(http://139.159.254.212/images/index/pro-bg8.png) (left bottom) / auto no-repeat; url(https://huorantech.com/images/index/pro-bg8.png) (left bottom) / auto no-repeat;
background-color: #fff; background-color: #fff;
.list { .list {
display: flex; display: flex;
@ -807,10 +905,10 @@ export default {
top: 157px; top: 157px;
width: 21px; width: 21px;
height: 21px; height: 21px;
background: url(http://139.159.254.212/images/index/arrow.png) no-repeat; background: url(https://huorantech.com/images/index/arrow.png) no-repeat;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background-image: url(http://139.159.254.212/images/index/arrow-active.png); background-image: url(https://huorantech.com/images/index/arrow-active.png);
} }
} }
.a-left { .a-left {
@ -886,7 +984,7 @@ export default {
} }
} }
.parner { .parner {
background: #fff url(http://139.159.254.212/images/index/parner.png) 0 0 / cover no-repeat; background: #fff url(https://huorantech.com/images/index/parner.png) 0 0 / cover no-repeat;
.i-title, .i-title,
.brief { .brief {
color: #fff; color: #fff;
@ -899,7 +997,7 @@ export default {
height: 600px; height: 600px;
} }
.client { .client {
background: url(http://139.159.254.212/images/index/client.png) 0 0 / cover no-repeat; background: url(https://huorantech.com/images/index/client.png) 0 0 / cover no-repeat;
} }
.client-pic { .client-pic {
display: flex; display: flex;
@ -1017,9 +1115,9 @@ export default {
cursor: pointer; cursor: pointer;
} }
.wechat { .wechat {
background: #fff url(http://139.159.254.212/images/index/wechat.png) center center/auto no-repeat; background: #fff url(https://huorantech.com/images/index/wechat.png) center center/auto no-repeat;
&:hover { &:hover {
background-image: url(http://139.159.254.212/images/index/wechat-1.png); background-image: url(https://huorantech.com/images/index/wechat-1.png);
background-color: #006eff; background-color: #006eff;
& + .popup { & + .popup {
display: block; display: block;
@ -1027,9 +1125,9 @@ export default {
} }
} }
.tel { .tel {
background: #fff url(http://139.159.254.212/images/index/tel.png) center center/auto no-repeat; background: #fff url(https://huorantech.com/images/index/tel.png) center center/auto no-repeat;
&:hover { &:hover {
background-image: url(http://139.159.254.212/images/index/tel-1.png); background-image: url(https://huorantech.com/images/index/tel-1.png);
background-color: #006eff; background-color: #006eff;
& + .popup { & + .popup {
display: block; display: block;
@ -1037,9 +1135,9 @@ export default {
} }
} }
.topping { .topping {
background: #fff url(http://139.159.254.212/images/index/top.png) center center/auto no-repeat; background: #fff url(https://huorantech.com/images/index/top.png) center center/auto no-repeat;
&:hover { &:hover {
background-image: url(http://139.159.254.212/images/index/top-1.png); background-image: url(https://huorantech.com/images/index/top-1.png);
background-color: #006eff; background-color: #006eff;
} }
} }

Loading…
Cancel
Save