Browse Source

Merge branch 'dev' of http://120.46.222.128:10021/elink-star/epmet-apartment-work-mp into fenbao

# Conflicts:
#	pages/tabBar/work/index.vue
fenbao
wangyx 1 month ago
parent
commit
9ee36f3f7b
  1. 8
      main.js
  2. 287
      node_modules/.package-lock.json
  3. 290
      package-lock.json
  4. 3
      package.json
  5. 14
      pages/api.js
  6. 12
      pages/login/login.vue
  7. 153
      pages/tabBar/mine/index.vue
  8. 175
      pages/tabBar/work/index.vue
  9. 36
      pagesA/checkout/detail/detail.vue
  10. 2
      pagesA/release/list/list.vue
  11. 124
      pagesA/xjPage/xj.vue
  12. 14
      pagesA/xjPage/xjRecord.vue
  13. 11
      store/index.js
  14. 23
      store/user.js

8
main.js

@ -1,5 +1,6 @@
import App from './App'
import uView from "uview-ui";
import store from "./store";
// import Vconsole from "vconsole";
Vue.use(uView);
// new Vconsole();
@ -15,8 +16,9 @@ Vue.prototype.handleTree = handleTree
App.mpType = 'app'
// uni.$u.config.unit = 'rpx'
const app = new Vue({
...App
})
store,
...App,
});
app.$mount()
// #endif
@ -24,7 +26,7 @@ app.$mount()
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
return { store,
app
}
}

287
node_modules/.package-lock.json

@ -3,6 +3,42 @@
"lockfileVersion": 3,
"requires": true,
"packages": {
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.27.1",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
"integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
"version": "7.28.0",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.0.tgz",
"integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/types": "^7.28.0"
},
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/runtime": {
"version": "7.27.6",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz",
@ -12,6 +48,20 @@
"node": ">=6.9.0"
}
},
"node_modules/@babel/types": {
"version": "7.28.1",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.1.tgz",
"integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/helper-string-parser": "^7.27.1",
"@babel/helper-validator-identifier": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.12",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
@ -51,7 +101,6 @@
"version": "1.5.4",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
"integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
"dev": true,
"license": "MIT",
"peer": true
},
@ -175,6 +224,121 @@
"undici-types": "~7.8.0"
}
},
"node_modules/@vue/compiler-core": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.17.tgz",
"integrity": "sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/parser": "^7.27.5",
"@vue/shared": "3.5.17",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.17.tgz",
"integrity": "sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.5.17",
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.17.tgz",
"integrity": "sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/parser": "^7.27.5",
"@vue/compiler-core": "3.5.17",
"@vue/compiler-dom": "3.5.17",
"@vue/compiler-ssr": "3.5.17",
"@vue/shared": "3.5.17",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.17",
"postcss": "^8.5.6",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.17.tgz",
"integrity": "sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.17",
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"license": "MIT"
},
"node_modules/@vue/reactivity": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.17.tgz",
"integrity": "sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.17.tgz",
"integrity": "sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.5.17",
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.17.tgz",
"integrity": "sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.5.17",
"@vue/runtime-core": "3.5.17",
"@vue/shared": "3.5.17",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.17.tgz",
"integrity": "sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-ssr": "3.5.17",
"@vue/shared": "3.5.17"
},
"peerDependencies": {
"vue": "3.5.17"
}
},
"node_modules/@vue/shared": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.17.tgz",
"integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==",
"license": "MIT",
"peer": true
},
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
"resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.14.1.tgz",
@ -613,6 +777,13 @@
"url": "https://opencollective.com/core-js"
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"license": "MIT",
"peer": true
},
"node_modules/detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
@ -660,6 +831,19 @@
"node": ">=10.13.0"
}
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"license": "BSD-2-Clause",
"peer": true,
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/es-module-lexer": {
"version": "1.7.0",
"resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
@ -730,6 +914,13 @@
"node": ">=4.0"
}
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"license": "MIT",
"peer": true
},
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
@ -943,6 +1134,16 @@
"node": ">=8.9.0"
}
},
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
@ -996,6 +1197,25 @@
"resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz",
"integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
@ -1023,7 +1243,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true,
"license": "ISC",
"peer": true
},
@ -1041,6 +1260,35 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
@ -1226,7 +1474,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@ -1473,6 +1720,40 @@
"mutation-observer": "^1.0.3"
}
},
"node_modules/vue": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.17.tgz",
"integrity": "sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.17",
"@vue/compiler-sfc": "3.5.17",
"@vue/runtime-dom": "3.5.17",
"@vue/server-renderer": "3.5.17",
"@vue/shared": "3.5.17"
},
"peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/vuex": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz",
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
"license": "MIT",
"dependencies": {
"@vue/devtools-api": "^6.0.0-beta.11"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/watchpack": {
"version": "2.4.4",
"resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.4.tgz",

290
package-lock.json

@ -7,13 +7,50 @@
"dependencies": {
"jsencrypt": "^3.3.2",
"uview-ui": "^2.0.38",
"vconsole": "^3.15.1"
"vconsole": "^3.15.1",
"vuex": "^4.1.0"
},
"devDependencies": {
"sass": "^1.89.2",
"sass-loader": "^10.5.2"
}
},
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.27.1",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
"integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
"version": "7.28.0",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.0.tgz",
"integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/types": "^7.28.0"
},
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/runtime": {
"version": "7.27.6",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz",
@ -23,6 +60,20 @@
"node": ">=6.9.0"
}
},
"node_modules/@babel/types": {
"version": "7.28.1",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.1.tgz",
"integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/helper-string-parser": "^7.27.1",
"@babel/helper-validator-identifier": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.12",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
@ -62,7 +113,6 @@
"version": "1.5.4",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
"integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
"dev": true,
"license": "MIT",
"peer": true
},
@ -438,6 +488,121 @@
"undici-types": "~7.8.0"
}
},
"node_modules/@vue/compiler-core": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.17.tgz",
"integrity": "sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/parser": "^7.27.5",
"@vue/shared": "3.5.17",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.17.tgz",
"integrity": "sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.5.17",
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.17.tgz",
"integrity": "sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/parser": "^7.27.5",
"@vue/compiler-core": "3.5.17",
"@vue/compiler-dom": "3.5.17",
"@vue/compiler-ssr": "3.5.17",
"@vue/shared": "3.5.17",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.17",
"postcss": "^8.5.6",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.17.tgz",
"integrity": "sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.17",
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"license": "MIT"
},
"node_modules/@vue/reactivity": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.17.tgz",
"integrity": "sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.17.tgz",
"integrity": "sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.5.17",
"@vue/shared": "3.5.17"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.17.tgz",
"integrity": "sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.5.17",
"@vue/runtime-core": "3.5.17",
"@vue/shared": "3.5.17",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.17.tgz",
"integrity": "sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-ssr": "3.5.17",
"@vue/shared": "3.5.17"
},
"peerDependencies": {
"vue": "3.5.17"
}
},
"node_modules/@vue/shared": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.17.tgz",
"integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==",
"license": "MIT",
"peer": true
},
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
"resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.14.1.tgz",
@ -876,6 +1041,13 @@
"url": "https://opencollective.com/core-js"
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"license": "MIT",
"peer": true
},
"node_modules/detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
@ -923,6 +1095,19 @@
"node": ">=10.13.0"
}
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"license": "BSD-2-Clause",
"peer": true,
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/es-module-lexer": {
"version": "1.7.0",
"resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
@ -993,6 +1178,13 @@
"node": ">=4.0"
}
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"license": "MIT",
"peer": true
},
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
@ -1206,6 +1398,16 @@
"node": ">=8.9.0"
}
},
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
@ -1259,6 +1461,25 @@
"resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz",
"integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
@ -1286,7 +1507,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true,
"license": "ISC",
"peer": true
},
@ -1304,6 +1524,35 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
@ -1489,7 +1738,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@ -1736,6 +1984,40 @@
"mutation-observer": "^1.0.3"
}
},
"node_modules/vue": {
"version": "3.5.17",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.17.tgz",
"integrity": "sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==",
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.17",
"@vue/compiler-sfc": "3.5.17",
"@vue/runtime-dom": "3.5.17",
"@vue/server-renderer": "3.5.17",
"@vue/shared": "3.5.17"
},
"peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/vuex": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz",
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
"license": "MIT",
"dependencies": {
"@vue/devtools-api": "^6.0.0-beta.11"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/watchpack": {
"version": "2.4.4",
"resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.4.tgz",

3
package.json

@ -2,7 +2,8 @@
"dependencies": {
"jsencrypt": "^3.3.2",
"uview-ui": "^2.0.38",
"vconsole": "^3.15.1"
"vconsole": "^3.15.1",
"vuex": "^4.1.0"
},
"devDependencies": {
"sass": "^1.89.2",

14
pages/api.js

@ -1,4 +1,18 @@
import request, { uploadFile } from "../utils/request.js";
// 路由
export function getRouters() {
return request({
url: "/getRouters",
method: "get",
});
}
// 个人中心
export function getUserInfo() {
return request({
url: "/system/user/profile",
method: "get",
});
}
// 获取验证码
export function getCodeImg() {

12
pages/login/login.vue

@ -67,8 +67,9 @@
</template>
<script>
import { login, getCodeImg, updateWxOpenId } from "../api";
import { login, getCodeImg, updateWxOpenId,getUserInfo } from "../api";
import { encrypt, decrypt } from "../../utils/jsencrypt";
import store from "../../store"
export default {
data() {
return {
@ -177,6 +178,15 @@ export default {
if (res.code === 200) {
this.loginFailCounts[username] = 0;
uni.setStorageSync("token", res.token);
// 1.
const userRes = await getUserInfo();
console.log(userRes,'获取用户信息成功');
if (userRes.code === 200) {
uni.setStorageSync("userInfo", userRes.data);
// 2. vuex
store.dispatch('user/setUserInfo', userRes.data);
}
uni.switchTab({
url: "/pages/tabBar/work/index",
});

153
pages/tabBar/mine/index.vue

@ -1,33 +1,158 @@
<template>
<view class="content">
<view>
<u-button type="primary" text="退出登录" @click="handleLogout"></u-button>
<view class="mine-content">
<view class="user-info">
<image
:src="userInfo.avatar ? 'userInfo.avatar' : '/static/img/login-top.png'"
class="avatar"
></image>
<view class="nickname" >{{
userInfo.userName
}}</view>
</view>
<view class="menu-list">
<view
class="menu-item"
v-for="(item, idx) in menuList"
:key="idx"
@click="goPage(item.url)"
>
<image :src="item.icon" class="menu-icon"></image>
<text class="menu-text">{{ item.text }}</text>
<u-icon name="arrow-right" color="#bbb" size="22"></u-icon>
</view>
<u-button
:hairline="false"
shape="circle"
:custom-style="btnStyle"
@click="handleLogout"
color="#fff"
text="退出登录"
></u-button>
</view>
</view>
</template>
<script>
import { logout } from '@/pages/api'
import { logout } from "@/pages/api";
export default {
data() {
return {
userInfo:{},
menuList: [
// {
// icon: "/static/img/repair.png",
// text: "",
// url: "/pagesA/repair/record",
// },
// {
// icon: "/static/img/report.png",
// text: "",
// url: "/pagesA/bs/record",
// },
{
icon: "/static/img/巡检记录.png",
text: "我的巡检记录",
url: "/pagesA/xjPage/xjRecord",
},
// {
// icon: "/static/img/password.png",
// text: "",
// url: "/pagesA/mine/changePwd",
// },
],
btnStyle: {
position: "fixed",
left: "40rpx",
bottom: 0,
width: "60%",
height: "44px",
fontSize: "18px",
margin: "50px",
marginTop: "200rpx",
background: "linear-gradient(90deg, #0DC6C6 0%, #13C2C2 100%)",
},
};
},
onLoad() {
if (!uni.getStorageSync("token")) {
uni.redirectTo({
url: "/pages/login/login",
});
}
const userInfo = uni.getStorageSync("userInfo");
if (userInfo) {
this.$store.dispatch("user/setUserInfo", userInfo);
}
this.userInfo = userInfo;
console.log("userInfo", userInfo);
},
methods: {
async handleLogout() {
try {
await logout();
} catch (e) {}
uni.removeStorageSync('token');
uni.removeStorageSync("token");
uni.reLaunch({
url: '/pages/login/login'
url: "/pages/login/login",
});
}
}
}
},
goPage(url) {
uni.navigateTo({
url,
});
},
},
};
</script>
<style lang="scss" scoped>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.mine-content {
min-height: 100vh;
background: #f5f6fa;
.user-info {
display: flex;
flex-direction: row;
align-items: flex-start;
padding: 40rpx 0 30rpx 0;
background: linear-gradient(90deg, #cbf3fb 0%, #e2e7fd 100%);
height: 228rpx;
padding-left: 40rpx;
.avatar {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
margin-bottom: 16rpx;
object-fit: cover;
}
.nickname {
font-size: 36rpx;
color: #333;
margin-left: 30rpx;
margin-top: 30rpx;
}
}
.menu-list {
margin-top: 30rpx;
.menu-item {
display: flex;
align-items: center;
background: #fff;
border-radius: 18rpx;
margin: -110rpx 24rpx 28rpx 24rpx;
padding: 44rpx 24rpx;
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
.menu-icon {
width: 40rpx;
height: 40rpx;
margin-right: 24rpx;
}
.menu-text {
flex: 1;
font-size: 30rpx;
color: #222;
}
}
}
}
</style>

175
pages/tabBar/work/index.vue

@ -2,20 +2,36 @@
<scroll-view class="content" scroll-y="true">
<image src="/static/img/workBac1.png" class="bacImg1"></image>
<image src="/static/img/workBac2.png" class="bacImg2"></image>
<view class="conItem" style="margin-top: 100rpx;">
<!-- 房源模块 -->
<view class="conItem" style="margin-top: 100rpx" v-if="showCheckOut">
<view class="conItem-title">房源</view>
<view class="conItem-cont">
<view class="conItem-cont-item" v-for="(item, index) in fyList" :key="index" @click="handelFyClick(item)">
<view
class="conItem-cont-item"
v-for="(item, index) in fyList"
:key="index"
@click="handelFyClick(item)"
>
<image :src="item.image" class="itemImg"></image>
<text class="itemText">{{ item.text }}</text>
</view>
</view>
</view>
<view class="conItem">
<!-- 巡检模块 -->
<view
class="conItem"
:style="!showCheckOut && showInspection ? 'margin-top:100rpx' : ''"
v-if="showInspection"
>
<view class="conItem-title">巡检</view>
<view class="conItem-cont">
<view class="conItem-cont-item" v-for="(item, index) in xjList" :key="index" @click="handelXjClick(item)">
<view
class="conItem-cont-item"
v-for="(item, index) in xjList"
:key="index"
@click="handelXjClick(item)"
>
<image :src="item.image" class="itemImg"></image>
<text class="itemText">{{ item.text }}</text>
</view>
@ -25,127 +41,159 @@
<view class="conItem" >
<view class="conItem-title">水电</view>
<view class="conItem-cont">
<view class="conItem-cont-item" v-for="(item, index) in sdList" :key="index" @click="handelSdClick(item)">
<view
class="conItem-cont-item"
v-for="(item, index) in sdList"
:key="index"
@click="handelSdClick(item)"
>
<image :src="item.image" class="itemImg"></image>
<text class="itemText">{{ item.text }}</text>
</view>
</view>
</view>
<view class="conItem" style="display: none;">
<view class="conItem" style="display: none">
<view class="conItem-title">报修</view>
<view class="conItem-cont">
<view class="conItem-cont-item" v-for="(item, index) in bxList" :key="index">
<view
class="conItem-cont-item"
v-for="(item, index) in bxList"
:key="index"
>
<image :src="item.image" class="itemImg"></image>
<text class="itemText">{{ item.text }}</text>
</view>
</view>
</view>
<view class="conItem" style="display: none;">
<view class="conItem" style="display: none">
<view class="conItem-title">报事</view>
<view class="conItem-cont">
<view class="conItem-cont-item" v-for="(item, index) in bsList" :key="index" @click="handleBsClick(item)">
<view
class="conItem-cont-item"
v-for="(item, index) in bsList"
:key="index"
@click="handleBsClick(item)"
>
<image :src="item.image" class="itemImg"></image>
<text class="itemText">{{ item.text }}</text>
</view>
</view>
</view>
</scroll-view>
</template>
<script>
import { getRouters } from "../../../pages/api";
export default {
data () {
data() {
return {
showCheckOut: false, //
showInspection: false, //
fyList: [
// { image: '/static/img/.png', text: '' },
{ image: '/static/img/退房检查.png', text: '退房检查' },
{ image: '/static/img/释放.png', text: '释放房源检查' },
{ image: "/static/img/退房检查.png", text: "退房检查" },
{ image: "/static/img/释放.png", text: "释放房源检查" },
// { image: '/static/img/.png', text: '' },
{ image: '/static/img/强制清退.png', text: '强制清退' },
{ image: "/static/img/强制清退.png", text: "强制清退" },
],
xjList: [
{ image: '/static/img/巡查.png', text: '巡检上报' },
{ image: '/static/img/记录.png', text: '巡检记录' },
{ image: "/static/img/巡查.png", text: "巡检上报" },
{ image: "/static/img/记录.png", text: "巡检记录" },
],
sdList: [
{ image: '/static/img/水费.png', text: '水量上报' },
{ image: '/static/img/电费.png', text: '电量上报' },
],
// bxList: [
// { image: '/static/img/.png', text: '' },
// { image: '/static/img/.png', text: '' },
// { image: '/static/img/.png', text: '' },
// { image: '/static/img/.png', text: '' },
// ],
// bsList: [
// { image: '/static/img/.png', text: '' },
// { image: '/static/img/.png', text: '' },
// { image: '/static/img/.png', text: '' },
// { image: '/static/img/.png', text: '' },
// ],
}
};
},
onLoad () {
if (!uni.getStorageSync('token')) {
onLoad() {
this.getRouter();
if (!uni.getStorageSync("token")) {
uni.redirectTo({
url: '/pages/login/login',
})
url: "/pages/login/login",
});
}
},
methods: {
handelFyClick (item) {
//
async getRouter() {
const res = await getRouters();
//
function hasMenu(menu, name) {
if (!menu) return false;
if (Array.isArray(menu)) {
return menu.some(item => hasMenu(item, name));
}
if (menu.name === name) return true;
if (menu.children) return hasMenu(menu.children, name);
return false;
}
this.showCheckOut = hasMenu(res.data || res, "Check_out");
this.showInspection = hasMenu(res.data || res, "Inspection");
},
handelFyClick(item) {
if (item.text == "退房检查") {
uni.navigateTo({
url: '/pagesA/checkout/list/list'
})
url: "/pagesA/checkout/list/list",
});
} else if (item.text == "释放房源检查") {
uni.navigateTo({
url: '/pagesA/release/list/list'
})
}else if (item.text == "强制清退") {
url: "/pagesA/release/list/list",
});
} else if (item.text == "强制清退") {
uni.navigateTo({
url: '/pagesA/force/index/index'
})
url: "/pagesA/force/index/index",
});
}
},
handleBsClick (item) {
if (item.text === '处理') {
handleBsClick(item) {
if (item.text === "处理") {
//
uni.navigateTo({
url: '/pages/tabBar/bsPage/bsRecord'
})
url: "/pages/tabBar/bsPage/bsRecord",
});
} else {
//
uni.navigateTo({
url: '/pages/tabBar/bsPage/bsReport'
})
url: "/pages/tabBar/bsPage/bsReport",
});
}
},
handelXjClick (item) {
if (item.text === '巡检上报') {
handelXjClick(item) {
if (item.text === "巡检上报") {
//
uni.navigateTo({
url: '/pagesA/xjPage/xj'
})
url: "/pagesA/xjPage/xj",
});
} else {
uni.navigateTo({
url: '/pagesA/xjPage/xjRecord'
})
url: "/pagesA/xjPage/xjRecord",
});
}
},
handelSdClick (item) {
if(item.text === '水量上报'){
handelSdClick(item) {
if (item.text === "水量上报") {
uni.navigateTo({
url: '/pagesA/sdPage/sfReport'
})
} else if(item.text === '电量上报'){
url: "/pagesA/sdPage/sfReport",
});
} else if (item.text === "电量上报") {
uni.navigateTo({
url: '/pagesA/sdPage/dfReport'
})
url: "/pagesA/sdPage/dfReport",
});
}
}
}
}
},
},
};
</script>
<style lang="scss" scoped>
@ -167,7 +215,7 @@ export default {
.conItem-title {
color: rgb(64, 64, 64);
font-size: 30rpx;
font-size: 32rpx;
text-align: left;
}
@ -189,14 +237,15 @@ export default {
margin-bottom: 20rpx;
.itemImg {
width: 80rpx;
height: 80rpx;
width: 100rpx;
height: 100rpx;
}
.itemText {
color: rgb(64, 64, 64);
font-size: 20rpx;
margin-top: 5rpx;
font-size: 28rpx;
margin-top: 15rpx;
white-space: nowrap;
}
}
@ -206,7 +255,7 @@ export default {
.bacImg1 {
width: 100%;
height: 20%;
height: 17%;
position: absolute;
top: 0;
z-index: -1;
@ -216,7 +265,7 @@ export default {
width: 100%;
height: 80%;
position: absolute;
top: 30%;
top: 12%;
z-index: -1;
}
</style>

36
pagesA/checkout/detail/detail.vue

@ -118,6 +118,19 @@
</u-upload>
</view>
<!-- 提交按钮 -->
<view style="margin: 30rpx 0 30rpx 30rpx">
<!-- <checkbox-group v-model="isChecked">
<checkbox value="1" style="margin-right: 10rpx" />
<text style="color: #888; font-size: 28rpx">
</text>
</checkbox-group> -->
<checkbox-group @change="checkboxChange">
<label>
<checkbox value="isChecked" :checked="isChecked" style="transform:scale(0.7)" />确认以上信息无误生成房屋交割单由毕业生在微信小程序端签字确认
</label>
</checkbox-group>
</view>
<view class="submit-btn-wrap">
<u-button
type="primary"
@ -166,6 +179,7 @@ export default {
img1: [],
info: {},
facilitiesCheckDesc: "",
isChecked: false, //
};
},
onLoad(options) {
@ -176,6 +190,9 @@ export default {
this.getFacilities(options.houseId);
},
methods: {
checkboxChange(event) {
this.isChecked = !this.isChecked
},
maskPhoneNumber(phoneNumber) {
if (!phoneNumber || phoneNumber.length !== 11) {
return phoneNumber;
@ -206,7 +223,11 @@ export default {
for (let i = 0; i < files.length; i++) {
const file = files[i];
const filePath = file.tempFilePath;
const type = file.fileType || (filePath.match(/\.(mp4|mov|avi|wmv|flv|mkv)$/i) ? "video" : "image");
const type =
file.fileType ||
(filePath.match(/\.(mp4|mov|avi|wmv|flv|mkv)$/i)
? "video"
: "image");
//
const uploadRes = await uploadImage(filePath);
this.fileList.push({
@ -264,6 +285,15 @@ export default {
});
},
onSubmit() {
console.log(this.isChecked);
if (!this.isChecked) {
uni.showToast({
title: "请先确认信息无误并勾选",
icon: "none",
});
return;
}
//
const uncheckedDevices = this.deviceList.filter((item, index) => {
return (
@ -315,8 +345,8 @@ export default {
energyMeterValue: this.energyMeterValue || "",
};
this.handleTempSave(params);
uni.navigateTo({
url: "/pages/tabBar/work",
uni.switchTab({
url: "/pages/tabBar/work/index",
});
uni.showToast({ title: "提交成功", icon: "success" });
},

2
pagesA/release/list/list.vue

@ -48,7 +48,7 @@ export default {
},
onShow() {
//
// this.refreshData();
this.refreshData();
},
methods: {
//

124
pagesA/xjPage/xj.vue

@ -24,7 +24,6 @@
></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-form-item
labelAlign="right"
labelWidth="100px"
@ -42,7 +41,6 @@
></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-form-item
labelAlign="right"
labelWidth="100px"
@ -57,7 +55,6 @@
maxlength="500"
></u--textarea>
</u-form-item>
<u-form-item
labelAlign="right"
labelWidth="100px"
@ -106,8 +103,7 @@
</u-form-item>
</u-form>
</view>
<view class="conItem" style="margin-top: 40rpx">
<!-- <view class="conItem" style="margin-top: 40rpx">
<u--form labelPosition="left">
<u-form-item
labelAlign="right"
@ -128,10 +124,8 @@
<u--input v-model="form.inspectorPhone" border="none"></u--input>
</u-form-item>
</u--form>
</view>
</view> -->
<view class="btn" @click="handleBtn">提交</view>
<u-action-sheet
:show="lysqShow"
:actions="apartmentList"
@ -150,13 +144,12 @@
</u-action-sheet>
</scroll-view>
</template>
<script>
import { queryDeptDropdownList } from "@/common/rec";
import { getdeptList, addInspection } from "@/common/api";
import { uploadImage } from "@/pages/api";
import { getDicts } from "@/common/system/dict/data";
import { mapState } from "vuex";
export default {
data() {
return {
@ -188,6 +181,13 @@ export default {
onLoad() {
this.getTree();
this.getDictType();
const userInfo = uni.getStorageSync("userInfo");
if (userInfo) {
this.$store.dispatch("user/setUserInfo", userInfo);
}
},
computed: {
...mapState("user", ["userInfo"]),
},
methods: {
chooseMedia() {
@ -204,7 +204,11 @@ export default {
for (let i = 0; i < files.length; i++) {
const file = files[i];
const filePath = file.tempFilePath;
const type = file.fileType || (filePath.match(/\.(mp4|mov|avi|wmv|flv|mkv)$/i) ? "video" : "image");
const type =
file.fileType ||
(filePath.match(/\.(mp4|mov|avi|wmv|flv|mkv)$/i)
? "video"
: "image");
//
const uploadRes = await uploadImage(filePath);
this.fileList.push({
@ -258,20 +262,24 @@ export default {
},
getTree() {
getdeptList().then(async (res) => {
this.deptOptions = this.handleTree(
res.data,
"deptId",
"parentId",
"children",
2
);
console.log(this.deptOptions, "this.deptOptions");
if (res.code == 200) {
this.deptOptions = this.handleTree(
res.data,
"deptId",
"parentId",
"children",
2
);
console.log(this.deptOptions, "this.deptOptions");
const deptInfo = this.deptOptions[0].children[0];
const newArr = this.deptOptions.map((item) => ({
name: item.deptName,
}));
this.apartmentList = newArr;
} else {
uni.showToast({ title: res.msg, icon: "none" });
}
const deptInfo = this.deptOptions[0].children[0];
const newArr = this.deptOptions.map((item) => ({
name: item.deptName,
}));
this.apartmentList = newArr;
// this.deptOptions = await this.getListByParentId("1", deptInfo.deptId);
// console.log(this.deptOptions);
});
@ -310,21 +318,24 @@ export default {
title: "请输入问题描述",
});
return;
} else if (!this.form.inspector) {
uni.showToast({
icon: "none",
title: "请输入巡检人姓名",
});
return;
} else if (!this.form.inspectorPhone) {
uni.showToast({
icon: "none",
title: "请输入巡检人电话",
});
return;
}
// console.log(this.form);
// else if (!this.form.inspector) {
// uni.showToast({
// icon: "none",
// title: "",
// });
// return;
// } else if (!this.form.inspectorPhone) {
// uni.showToast({
// icon: "none",
// title: "",
// });
// return;
// }
this.form.inspector = this.userInfo.userName;
this.form.inspectorPhone = this.userInfo.phonenumber;
let parmas = JSON.parse(JSON.stringify(this.form));
delete parmas.apartmentName;
delete parmas.questionName;
addInspection(parmas).then((res) => {
@ -333,24 +344,26 @@ export default {
icon: "success",
title: "提交成功!",
success: () => {
this.fileList = [];
this.form = {
apartmentId: "",
apartmentName: "",
questionType: "",
questionName: "",
title: "",
content: "",
inspector: "",
inspectorPhone: "",
inspectionTime: "",
imageList: [],
};
setTimeout(() => {
uni.switchTab({
url: "/pages/tabBar/work/index",
success: () => {
this.fileList = [];
this.form = {
apartmentId: "",
apartmentName: "",
questionType: "",
questionName: "",
title: "",
content: "",
inspector: "",
inspectorPhone: "",
inspectionTime: "",
imageList: [],
};
},
});
}, 2000);
}, 1500);
},
});
} else {
@ -364,7 +377,6 @@ export default {
handleTreeSelect(e) {
console.log(e);
console.log(this.deptOptions);
this.form.apartmentName = e.name;
this.form.apartmentId = this.deptOptions.find(
(item) => item.deptName === e.name
@ -377,7 +389,6 @@ export default {
},
};
</script>
<style lang="scss" scoped>
.xj-page {
width: 100%;
@ -385,7 +396,6 @@ export default {
padding-bottom: 50rpx;
box-sizing: border-box;
}
.contentImg {
position: absolute;
left: 0rpx;
@ -394,7 +404,6 @@ export default {
height: 280rpx;
z-index: -1;
}
.xjTitle {
width: 100%;
color: rgba(16, 16, 16, 1);
@ -403,7 +412,6 @@ export default {
margin-left: 30rpx;
margin-top: 40rpx;
}
.xjTips {
width: 100%;
color: rgba(102, 102, 102, 1);
@ -411,7 +419,6 @@ export default {
margin-left: 30rpx;
margin-top: 10rpx;
}
.conItem {
width: calc(100% - 40rpx);
border-radius: 10rpx;
@ -422,7 +429,6 @@ export default {
padding: 20rpx;
box-sizing: border-box;
}
.btn {
width: 414rpx;
height: 70rpx;
@ -440,7 +446,6 @@ export default {
margin: auto;
margin-top: 40rpx;
}
.custom-upload-btn {
width: 160rpx;
height: 160rpx;
@ -484,7 +489,6 @@ export default {
margin-bottom: 16rpx;
}
</style>
<style lang="scss">
.xj-page {
.u-form-item__body__left__content__required {

14
pagesA/xjPage/xjRecord.vue

@ -157,12 +157,22 @@ export default {
},
handlePreviewImage(list, index) {
//
const filePaths = list
.filter((item) => item.format == "image/jpeg" || item.format == "image/png")
.filter((item) => item.format === "image" || item.format === "image/jpeg" || item.format === "image/png")
.map((item) => item.url);
if (!filePaths.length) {
uni.showToast({ title: "没有可预览的图片", icon: "none" });
return;
}
//
const imgIndex = filePaths.indexOf(list[index].url);
uni.previewImage({
urls: filePaths,
current: index,
current: imgIndex >= 0 ? imgIndex : 0,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function (data) {

11
store/index.js

@ -0,0 +1,11 @@
import Vue from "vue";
import Vuex from "vuex";
import user from "./user";
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
user,
},
});

23
store/user.js

@ -0,0 +1,23 @@
// store/user.js
const state = {
userInfo: null,
};
const mutations = {
SET_USER_INFO(state, info) {
state.userInfo = info;
},
};
const actions = {
setUserInfo({ commit }, info) {
commit("SET_USER_INFO", info);
},
};
export default {
namespaced: true,
state,
mutations,
actions,
};
Loading…
Cancel
Save