diff --git a/package-lock.json b/package-lock.json index e9cc24c..20eee38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "douyin3", + "name": "douyin", "version": "0.1.0", "lockfileVersion": 1, "requires": true, @@ -8054,6 +8054,12 @@ "minimist": "^1.2.5" } }, + "mobile-select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mobile-select/-/mobile-select-1.1.2.tgz", + "integrity": "sha1-Hcuei0G7RlJXm8XUyOumFwO7RX8=", + "dev": true + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", diff --git a/package.json b/package.json index 7959acd..d15df62 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "babel-eslint": "^10.1.0", "eslint": "^6.7.2", "eslint-plugin-vue": "^7.0.0", + "mobile-select": "^1.1.2", "node-sass": "^4.9.3", "sass-loader": "^7.1.0" }, diff --git a/src/App.vue b/src/App.vue index e0db509..47afd76 100644 --- a/src/App.vue +++ b/src/App.vue @@ -29,6 +29,7 @@ export default { '/choose-school', '/choose-department', '/declare-school', + '/display-type', ]; const toDepth = routeDeep.indexOf(to.path) const fromDepth = routeDeep.indexOf(from.path) diff --git a/src/components/BaseHeader.vue b/src/components/BaseHeader.vue index 651c487..2ccae36 100644 --- a/src/components/BaseHeader.vue +++ b/src/components/BaseHeader.vue @@ -28,7 +28,11 @@ export default { computed: {}, methods: { back() { - window.history.back() + if (this.$attrs.onBack) { + this.$attrs.onBack() + } else { + this.$back() + } } } } @@ -41,6 +45,7 @@ export default { width: 100%; position: fixed; background: $main-bg; + .header { display: flex; justify-content: center; diff --git a/src/components/ConfirmDialog.vue b/src/components/ConfirmDialog.vue new file mode 100644 index 0000000..6173e1a --- /dev/null +++ b/src/components/ConfirmDialog.vue @@ -0,0 +1,72 @@ + + + + diff --git a/src/components/Loading.vue b/src/components/Loading.vue new file mode 100644 index 0000000..4fa6551 --- /dev/null +++ b/src/components/Loading.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/components/SelectDialog.vue b/src/components/SelectDialog.vue index 36bef56..078731c 100644 --- a/src/components/SelectDialog.vue +++ b/src/components/SelectDialog.vue @@ -27,8 +27,6 @@ export default { \ No newline at end of file diff --git a/src/pages/me/userinfo/DisplayType.vue b/src/pages/me/userinfo/DisplayType.vue new file mode 100644 index 0000000..76139fe --- /dev/null +++ b/src/pages/me/userinfo/DisplayType.vue @@ -0,0 +1,93 @@ + + + + diff --git a/src/router/index.js b/src/router/index.js index 07e6cf2..a2b8022 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -16,6 +16,7 @@ import AddSchool from "../pages/me/userinfo/AddSchool"; import ChooseSchool from "../pages/me/userinfo/ChooseSchool"; import DeclareSchool from "../pages/me/userinfo/DeclareSchool"; import ChooseDepartment from "../pages/me/userinfo/ChooseDepartment"; +import DisplayType from "../pages/me/userinfo/DisplayType"; const routes = [ // {path: '', component: Music}, @@ -36,6 +37,7 @@ const routes = [ {path: '/choose-school', component: ChooseSchool}, {path: '/declare-school', component: DeclareSchool}, {path: '/choose-department', component: ChooseDepartment}, + {path: '/display-type', component: DisplayType}, ] export default VueRouter.createRouter({ diff --git a/src/utils/enums.js b/src/utils/enums.js index 4887808..c92d650 100644 --- a/src/utils/enums.js +++ b/src/utils/enums.js @@ -1,7 +1,7 @@ export default { DISPLAY_TYPE: { - ALL: 1, - SCHOOL: 2, - ME: 3, + ALL: 0, + SCHOOL: 1, + ME: 2, } } \ No newline at end of file diff --git a/src/utils/global-methods.js b/src/utils/global-methods.js index dc326b6..0fda2c4 100644 --- a/src/utils/global-methods.js +++ b/src/utils/global-methods.js @@ -1,7 +1,24 @@ import * as Vue from "vue"; import SelectDialog from "../components/SelectDialog"; +import ConfirmDialog from "../components/ConfirmDialog"; +import Loading from "../components/Loading"; export default { + $showLoading() { + const app = Vue.createApp({ + render() { + return + }, + }) + let parent = document.createElement('div') + parent.classList.add(...['dialog-ctn']) + document.body.append(parent) + app.mount(parent) + }, + $hideLoading() { + let parent = document.querySelector('.dialog-ctn') + parent.remove() + }, $showSelectDialog(sexList, cb) { let remove = () => { let parent = document.querySelector('.dialog-ctn') @@ -24,6 +41,32 @@ export default { document.body.append(parent) app.mount(parent) }, + $showConfirmDialog(title, okCb, cancelCb) { + let remove = () => { + let parent = document.querySelector('.dialog-ctn') + parent.classList.replace('fade-in', 'fade-out') + setTimeout(() => { + parent.remove() + }, 300) + } + let tempOkCb = e => { + remove() + okCb(e) + } + let tempCancelCb = e => { + remove() + cancelCb(e) + } + const app = Vue.createApp({ + render() { + return + }, + }) + let parent = document.createElement('div') + parent.classList.add(...['dialog-ctn', 'fade-in']) + document.body.append(parent) + app.mount(parent) + }, $notice(val) { let div = document.createElement('div') div.classList.add('global-notice') @@ -97,5 +140,10 @@ export default { str += s } return str + }, + $sleep(duration) { + return new Promise((resolve, reject) => { + setTimeout(resolve, duration) + }) } } \ No newline at end of file