Browse Source

完成 智慧公寓新版界面

hzj18279462576@163.com 2 years ago
parent
commit
a9ca9d2d51
100 changed files with 1190 additions and 19690 deletions
  1. 0 18
      .babelrc
  2. 0 9
      .editorconfig
  3. 0 5
      .eslintignore
  4. 0 29
      .eslintrc.js
  5. 14 7
      .gitignore
  6. 0 10
      .postcssrc.js
  7. 3 0
      .vscode/extensions.json
  8. 36 0
      README.en.md
  9. 29 20
      README.md
  10. 0 41
      build/build.js
  11. 0 54
      build/check-versions.js
  12. BIN
      build/logo.png
  13. 0 101
      build/utils.js
  14. 0 22
      build/vue-loader.conf.js
  15. 0 103
      build/webpack.base.conf.js
  16. 0 110
      build/webpack.dev.conf.js
  17. 0 149
      build/webpack.prod.conf.js
  18. 0 7
      config/dev.env.js
  19. 0 88
      config/index.js
  20. 0 4
      config/prod.env.js
  21. 0 7
      config/test.env.js
  22. 11 5
      index.html
  23. 717 18061
      package-lock.json
  24. 25 93
      package.json
  25. 24 24
      src/App.vue
  26. 0 72
      src/api/acl/permission.js
  27. 0 83
      src/api/acl/role.js
  28. 0 132
      src/api/acl/user.js
  29. 87 0
      src/api/admin.js
  30. 0 59
      src/api/api.js
  31. 0 17
      src/api/doorLock.js
  32. 0 7
      src/api/fileServes.js
  33. 0 31
      src/api/fingerprint.js
  34. 14 0
      src/api/home.js
  35. 0 32
      src/api/hotelAdmin.js
  36. 0 71
      src/api/hotelOrder.js
  37. 0 32
      src/api/hotelStaff.js
  38. 0 32
      src/api/houseType.js
  39. 0 31
      src/api/icCard.js
  40. 0 12
      src/api/normalUser.js
  41. 0 27
      src/api/room.js
  42. 0 25
      src/api/roomRealTimeStatu.js
  43. 0 17
      src/api/roomThirdSetting.js
  44. 0 13
      src/api/stat.js
  45. 120 0
      src/api/system.js
  46. 0 13
      src/api/systemSetup.js
  47. 0 17
      src/api/systemnotice.js
  48. 110 0
      src/api/vidicons.js
  49. BIN
      src/assets/add.png
  50. BIN
      src/assets/addRoom.png
  51. BIN
      src/assets/affiche.png
  52. BIN
      src/assets/back.png
  53. BIN
      src/assets/blockUp.png
  54. BIN
      src/assets/bottom.png
  55. BIN
      src/assets/classX.png
  56. BIN
      src/assets/classes.png
  57. BIN
      src/assets/classesA.png
  58. BIN
      src/assets/cleanRoom.png
  59. BIN
      src/assets/close.png
  60. BIN
      src/assets/colorSelect.png
  61. BIN
      src/assets/comment.png
  62. BIN
      src/assets/del.png
  63. BIN
      src/assets/delete.png
  64. BIN
      src/assets/delete_hover.png
  65. BIN
      src/assets/hint.png
  66. BIN
      src/assets/home.png
  67. BIN
      src/assets/house.png
  68. BIN
      src/assets/houseS.png
  69. BIN
      src/assets/icons/account.png
  70. BIN
      src/assets/icons/accountS.png
  71. BIN
      src/assets/icons/calendar.png
  72. BIN
      src/assets/icons/checkOut.png
  73. BIN
      src/assets/icons/class.png
  74. BIN
      src/assets/icons/classS.png
  75. BIN
      src/assets/icons/clock.png
  76. BIN
      src/assets/icons/deblocking.png
  77. BIN
      src/assets/icons/doorLock.png
  78. BIN
      src/assets/icons/doorLockS.png
  79. BIN
      src/assets/icons/electronicKey.png
  80. BIN
      src/assets/icons/error.png
  81. BIN
      src/assets/icons/forbidden.png
  82. BIN
      src/assets/icons/info.png
  83. BIN
      src/assets/icons/key.png
  84. BIN
      src/assets/icons/loading.png
  85. BIN
      src/assets/icons/lock.png
  86. BIN
      src/assets/icons/log.png
  87. BIN
      src/assets/icons/news.png
  88. BIN
      src/assets/icons/order.png
  89. BIN
      src/assets/icons/orderS.png
  90. BIN
      src/assets/icons/payCode.png
  91. BIN
      src/assets/icons/refund.png
  92. BIN
      src/assets/icons/resetPass.png
  93. BIN
      src/assets/icons/roomChange.png
  94. BIN
      src/assets/icons/roomStatus.png
  95. BIN
      src/assets/icons/roomStatusS.png
  96. BIN
      src/assets/icons/roomType.png
  97. BIN
      src/assets/icons/roomTypeS.png
  98. BIN
      src/assets/icons/ruzhu.png
  99. BIN
      src/assets/icons/sendPass.png
  100. 0 0
      src/assets/icons/setAside.png

+ 0 - 18
.babelrc

@@ -1,18 +0,0 @@
-{
-  "presets": [
-    ["env", {
-      "modules": false,
-      "targets": {
-        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
-      }
-    }],
-    "stage-2"
-  ],
-  "plugins": ["transform-vue-jsx", "transform-runtime"],
-  "env": {
-    "test": {
-      "presets": ["env", "stage-2"],
-      "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"]
-    }
-  }
-}

+ 0 - 9
.editorconfig

@@ -1,9 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true

+ 0 - 5
.eslintignore

@@ -1,5 +0,0 @@
-/build/
-/config/
-/dist/
-/*.js
-/test/unit/coverage/

+ 0 - 29
.eslintrc.js

@@ -1,29 +0,0 @@
-// https://eslint.org/docs/user-guide/configuring
-
-module.exports = {
-  root: true,
-  parserOptions: {
-    parser: 'babel-eslint'
-  },
-  env: {
-    browser: true,
-  },
-  extends: [
-    // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
-    // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
-    'plugin:vue/essential', 
-    // https://github.com/standard/standard/blob/master/docs/RULES-en.md
-    'standard'
-  ],
-  // required to lint *.vue files
-  plugins: [
-    'vue'
-  ],
-  // add your custom rules here
-  rules: {
-    // allow async-await
-    'generator-star-spacing': 'off',
-    // allow debugger during development
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
-  }
-}

+ 14 - 7
.gitignore

@@ -1,17 +1,24 @@
-.DS_Store
-node_modules/
-/dist/
+# Logs
+logs
+*.log
 npm-debug.log*
 npm-debug.log*
 yarn-debug.log*
 yarn-debug.log*
 yarn-error.log*
 yarn-error.log*
-/test/unit/coverage/
-/test/e2e/reports/
-selenium-debug.log
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
 
 
 # Editor directories and files
 # Editor directories and files
+.vscode/*
+!.vscode/extensions.json
 .idea
 .idea
-.vscode
+.DS_Store
 *.suo
 *.suo
 *.ntvs*
 *.ntvs*
 *.njsproj
 *.njsproj
 *.sln
 *.sln
+*.sw?

+ 0 - 10
.postcssrc.js

@@ -1,10 +0,0 @@
-// https://github.com/michael-ciniawsky/postcss-load-config
-
-module.exports = {
-  "plugins": {
-    "postcss-import": {},
-    "postcss-url": {},
-    // to edit target browsers: use "browserslist" field in package.json
-    "autoprefixer": {}
-  }
-}

+ 3 - 0
.vscode/extensions.json

@@ -0,0 +1,3 @@
+{
+  "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
+}

+ 36 - 0
README.en.md

@@ -0,0 +1,36 @@
+# 校园报修系统
+
+#### Description
+{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
+
+#### Software Architecture
+Software architecture description
+
+#### Installation
+
+1.  xxxx
+2.  xxxx
+3.  xxxx
+
+#### Instructions
+
+1.  xxxx
+2.  xxxx
+3.  xxxx
+
+#### Contribution
+
+1.  Fork the repository
+2.  Create Feat_xxx branch
+3.  Commit your code
+4.  Create Pull Request
+
+
+#### Gitee Feature
+
+1.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
+2.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
+3.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
+4.  The most valuable open source project [GVP](https://gitee.com/gvp)
+5.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
+6.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

+ 29 - 20
README.md

@@ -1,30 +1,39 @@
-# admin
+# 校园报修系统
 
 
-> A Vue.js project
+#### 介绍
+{**以下是 Gitee 平台说明,您可以替换此简介**
+Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
+无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
 
 
-## Build Setup
+#### 软件架构
+软件架构说明
 
 
-``` bash
-# install dependencies
-npm install
 
 
-# serve with hot reload at localhost:8080
-npm run dev
+#### 安装教程
 
 
-# build for production with minification
-npm run build
+1.  xxxx
+2.  xxxx
+3.  xxxx
 
 
-# build for production and view the bundle analyzer report
-npm run build --report
+#### 使用说明
 
 
-# run unit tests
-npm run unit
+1.  xxxx
+2.  xxxx
+3.  xxxx
 
 
-# run e2e tests
-npm run e2e
+#### 参与贡献
 
 
-# run all tests
-npm test
-```
+1.  Fork 本仓库
+2.  新建 Feat_xxx 分支
+3.  提交代码
+4.  新建 Pull Request
 
 
-For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
+
+#### 特技
+
+1.  使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
+2.  Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
+3.  你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
+4.  [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
+5.  Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
+6.  Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

+ 0 - 41
build/build.js

@@ -1,41 +0,0 @@
-'use strict'
-require('./check-versions')()
-
-process.env.NODE_ENV = 'production'
-
-const ora = require('ora')
-const rm = require('rimraf')
-const path = require('path')
-const chalk = require('chalk')
-const webpack = require('webpack')
-const config = require('../config')
-const webpackConfig = require('./webpack.prod.conf')
-
-const spinner = ora('building for production...')
-spinner.start()
-
-rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
-  if (err) throw err
-  webpack(webpackConfig, (err, stats) => {
-    spinner.stop()
-    if (err) throw err
-    process.stdout.write(stats.toString({
-      colors: true,
-      modules: false,
-      children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
-      chunks: false,
-      chunkModules: false
-    }) + '\n\n')
-
-    if (stats.hasErrors()) {
-      console.log(chalk.red('  Build failed with errors.\n'))
-      process.exit(1)
-    }
-
-    console.log(chalk.cyan('  Build complete.\n'))
-    console.log(chalk.yellow(
-      '  Tip: built files are meant to be served over an HTTP server.\n' +
-      '  Opening index.html over file:// won\'t work.\n'
-    ))
-  })
-})

+ 0 - 54
build/check-versions.js

@@ -1,54 +0,0 @@
-'use strict'
-const chalk = require('chalk')
-const semver = require('semver')
-const packageConfig = require('../package.json')
-const shell = require('shelljs')
-
-function exec (cmd) {
-  return require('child_process').execSync(cmd).toString().trim()
-}
-
-const versionRequirements = [
-  {
-    name: 'node',
-    currentVersion: semver.clean(process.version),
-    versionRequirement: packageConfig.engines.node
-  }
-]
-
-if (shell.which('npm')) {
-  versionRequirements.push({
-    name: 'npm',
-    currentVersion: exec('npm --version'),
-    versionRequirement: packageConfig.engines.npm
-  })
-}
-
-module.exports = function () {
-  const warnings = []
-
-  for (let i = 0; i < versionRequirements.length; i++) {
-    const mod = versionRequirements[i]
-
-    if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
-      warnings.push(mod.name + ': ' +
-        chalk.red(mod.currentVersion) + ' should be ' +
-        chalk.green(mod.versionRequirement)
-      )
-    }
-  }
-
-  if (warnings.length) {
-    console.log('')
-    console.log(chalk.yellow('To use this template, you must update following to modules:'))
-    console.log()
-
-    for (let i = 0; i < warnings.length; i++) {
-      const warning = warnings[i]
-      console.log('  ' + warning)
-    }
-
-    console.log()
-    process.exit(1)
-  }
-}

BIN
build/logo.png


+ 0 - 101
build/utils.js

@@ -1,101 +0,0 @@
-'use strict'
-const path = require('path')
-const config = require('../config')
-const ExtractTextPlugin = require('extract-text-webpack-plugin')
-const packageConfig = require('../package.json')
-
-exports.assetsPath = function (_path) {
-  const assetsSubDirectory = process.env.NODE_ENV === 'production'
-    ? config.build.assetsSubDirectory
-    : config.dev.assetsSubDirectory
-
-  return path.posix.join(assetsSubDirectory, _path)
-}
-
-exports.cssLoaders = function (options) {
-  options = options || {}
-
-  const cssLoader = {
-    loader: 'css-loader',
-    options: {
-      sourceMap: options.sourceMap
-    }
-  }
-
-  const postcssLoader = {
-    loader: 'postcss-loader',
-    options: {
-      sourceMap: options.sourceMap
-    }
-  }
-
-  // generate loader string to be used with extract text plugin
-  function generateLoaders (loader, loaderOptions) {
-    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
-
-    if (loader) {
-      loaders.push({
-        loader: loader + '-loader',
-        options: Object.assign({}, loaderOptions, {
-          sourceMap: options.sourceMap
-        })
-      })
-    }
-
-    // Extract CSS when that option is specified
-    // (which is the case during production build)
-    if (options.extract) {
-      return ExtractTextPlugin.extract({
-        use: loaders,
-        fallback: 'vue-style-loader'
-      })
-    } else {
-      return ['vue-style-loader'].concat(loaders)
-    }
-  }
-
-  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
-  return {
-    css: generateLoaders(),
-    postcss: generateLoaders(),
-    less: generateLoaders('less'),
-    sass: generateLoaders('sass', { indentedSyntax: true }),
-    scss: generateLoaders('sass'),
-    stylus: generateLoaders('stylus'),
-    styl: generateLoaders('stylus')
-  }
-}
-
-// Generate loaders for standalone style files (outside of .vue)
-exports.styleLoaders = function (options) {
-  const output = []
-  const loaders = exports.cssLoaders(options)
-
-  for (const extension in loaders) {
-    const loader = loaders[extension]
-    output.push({
-      test: new RegExp('\\.' + extension + '$'),
-      use: loader
-    })
-  }
-
-  return output
-}
-
-exports.createNotifierCallback = () => {
-  const notifier = require('node-notifier')
-
-  return (severity, errors) => {
-    if (severity !== 'error') return
-
-    const error = errors[0]
-    const filename = error.file && error.file.split('!').pop()
-
-    notifier.notify({
-      title: packageConfig.name,
-      message: severity + ': ' + error.name,
-      subtitle: filename || '',
-      icon: path.join(__dirname, 'logo.png')
-    })
-  }
-}

+ 0 - 22
build/vue-loader.conf.js

@@ -1,22 +0,0 @@
-'use strict'
-const utils = require('./utils')
-const config = require('../config')
-const isProduction = process.env.NODE_ENV === 'production'
-const sourceMapEnabled = isProduction
-  ? config.build.productionSourceMap
-  : config.dev.cssSourceMap
-
-module.exports = {
-  loaders: utils.cssLoaders({
-    sourceMap: sourceMapEnabled,
-    extract: isProduction
-  }),
-  cssSourceMap: sourceMapEnabled,
-  cacheBusting: config.dev.cacheBusting,
-  transformToRequire: {
-    video: ['src', 'poster'],
-    source: 'src',
-    img: 'src',
-    image: 'xlink:href'
-  }
-}

+ 0 - 103
build/webpack.base.conf.js

@@ -1,103 +0,0 @@
-'use strict'
-const path = require('path')
-const utils = require('./utils')
-const config = require('../config')
-const vueLoaderConfig = require('./vue-loader.conf')
-
-function resolve (dir) {
-  return path.join(__dirname, '..', dir)
-}
-
-const createLintingRule = () => ({
-  test: /\.(js|vue)$/,
-  loader: 'eslint-loader',
-  enforce: 'pre',
-  include: [resolve('src'), resolve('test')],
-  options: {
-    formatter: require('eslint-friendly-formatter'),
-    emitWarning: !config.dev.showEslintErrorsInOverlay
-  }
-})
-
-module.exports = {
-  context: path.resolve(__dirname, '../'),
-  entry: {
-    app: './src/main.js'
-  },
-  output: {
-    path: config.build.assetsRoot,
-    filename: '[name].js',
-    publicPath: process.env.NODE_ENV === 'production'
-      ? config.build.assetsPublicPath
-      : config.dev.assetsPublicPath
-  },
-  resolve: {
-    extensions: ['.js', '.vue', '.json'],
-    alias: {
-      'vue$': 'vue/dist/vue.esm.js',
-      '@': resolve('src'),
-    }
-  },
-  module: {
-    rules: [
-      ...(config.dev.useEslint ? [] : []),// 开启eslint 将后面改成 [createLintingRule()] : []
-      {
-        test: /(\.svg)(\?.*)?$/,
-        loader: 'svg-sprite-loader',
-        include: [resolve('src/assets/icons/svg')],
-        options: {
-          symbolId: 'icon-[name]'
-        }
-      },
-      
-      {
-        test: /\.vue$/,
-        loader: 'vue-loader',
-        options: vueLoaderConfig
-      },
-      {
-        test: /\.js$/,
-        loader: 'babel-loader',
-        include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
-      },
-      {
-        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
-        loader: 'url-loader',
-        exclude: [resolve('src/assets/icons/svg')],
-        options: {
-          limit: 10000,
-          name: utils.assetsPath('img/[name].[hash:7].[ext]')
-        }
-      },
-      
-      {
-        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
-        loader: 'url-loader',
-        options: {
-          limit: 10000,
-          name: utils.assetsPath('media/[name].[hash:7].[ext]')
-        }
-      },
-      {
-        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
-        loader: 'url-loader',
-        options: {
-          limit: 10000,
-          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
-        }
-      }
-    ]
-  },
-  node: {
-    // prevent webpack from injecting useless setImmediate polyfill because Vue
-    // source contains it (although only uses it if it's native).
-    setImmediate: false,
-    // prevent webpack from injecting mocks to Node native modules
-    // that does not make sense for the client
-    dgram: 'empty',
-    fs: 'empty',
-    net: 'empty',
-    tls: 'empty',
-    child_process: 'empty'
-  }
-}

+ 0 - 110
build/webpack.dev.conf.js

@@ -1,110 +0,0 @@
-"use strict";
-const utils = require("./utils");
-const webpack = require("webpack");
-const config = require("../config");
-const merge = require("webpack-merge");
-const path = require("path");
-const baseWebpackConfig = require("./webpack.base.conf");
-const CopyWebpackPlugin = require("copy-webpack-plugin");
-const HtmlWebpackPlugin = require("html-webpack-plugin");
-const FriendlyErrorsPlugin = require("friendly-errors-webpack-plugin");
-const portfinder = require("portfinder");
-
-const HOST = process.env.HOST;
-const PORT = process.env.PORT && Number(process.env.PORT);
-
-const devWebpackConfig = merge(baseWebpackConfig, {
-  module: {
-    rules: utils.styleLoaders({
-      sourceMap: config.dev.cssSourceMap,
-      usePostCSS: true
-    })
-  },
-  // cheap-module-eval-source-map is faster for development
-  devtool: config.dev.devtool,
-
-  // these devServer options should be customized in /config/index.js
-  devServer: {
-    clientLogLevel: "warning",
-    historyApiFallback: {
-      rewrites: [
-        {
-          from: /.*/,
-          to: path.posix.join(config.dev.assetsPublicPath, "index.html")
-        }
-      ]
-    },
-    // useLocalIp: true, //将useLoackIp设置为true 就可以了
-    hot: true,
-    contentBase: false, // since we use CopyWebpackPlugin.
-    compress: true,
-    host: HOST || config.dev.host,
-    port: PORT || config.dev.port,
-    open: config.dev.autoOpenBrowser,
-    overlay: config.dev.errorOverlay
-      ? { warnings: false, errors: true }
-      : false,
-    publicPath: config.dev.assetsPublicPath,
-    proxy: config.dev.proxyTable,
-    quiet: true, // necessary for FriendlyErrorsPlugin
-    watchOptions: {
-      poll: config.dev.poll
-    }
-  },
-  plugins: [
-    new webpack.DefinePlugin({
-      "process.env": require("../config/dev.env")
-    }),
-    new webpack.HotModuleReplacementPlugin(),
-    new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
-    new webpack.NoEmitOnErrorsPlugin(),
-    // https://github.com/ampedandwired/html-webpack-plugin
-    new HtmlWebpackPlugin({
-      filename: "index.html",
-      template: "index.html",
-      inject: true
-    }),
-    // copy custom static assets
-    new CopyWebpackPlugin([
-      {
-        from: path.resolve(__dirname, "../static"),
-        to: config.dev.assetsSubDirectory,
-        ignore: [".*"]
-      }
-    ])
-  ]
-});
-
-module.exports = new Promise((resolve, reject) => {
-  portfinder.basePort = process.env.PORT || config.dev.port;
-  portfinder.getPort((err, port) => {
-    if (err) {
-      reject(err);
-    } else {
-      // publish the new Port, necessary for e2e tests
-      process.env.PORT = port;
-      // add port to devServer config
-      devWebpackConfig.devServer.port = port;
-
-      // Add FriendlyErrorsPlugin
-      devWebpackConfig.plugins.push(
-        new FriendlyErrorsPlugin({
-          compilationSuccessInfo: {
-            messages: [
-              //下面两个地方,直接复制即可
-              `App runing at: `,
-              ` - Local: http://localhost:${port}`, //配置这里
-              ` - Network: http://${require("ip").address()}:${port}` //配置这里
-            ]
-            // messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
-          },
-          onErrors: config.dev.notifyOnErrors
-            ? utils.createNotifierCallback()
-            : undefined
-        })
-      );
-
-      resolve(devWebpackConfig);
-    }
-  });
-});

+ 0 - 149
build/webpack.prod.conf.js

@@ -1,149 +0,0 @@
-'use strict'
-const path = require('path')
-const utils = require('./utils')
-const webpack = require('webpack')
-const config = require('../config')
-const merge = require('webpack-merge')
-const baseWebpackConfig = require('./webpack.base.conf')
-const CopyWebpackPlugin = require('copy-webpack-plugin')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-const ExtractTextPlugin = require('extract-text-webpack-plugin')
-const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
-const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
-
-const env = process.env.NODE_ENV === 'testing'
-  ? require('../config/test.env')
-  : require('../config/prod.env')
-
-const webpackConfig = merge(baseWebpackConfig, {
-  module: {
-    rules: utils.styleLoaders({
-      sourceMap: config.build.productionSourceMap,
-      extract: true,
-      usePostCSS: true
-    })
-  },
-  devtool: config.build.productionSourceMap ? config.build.devtool : false,
-  output: {
-    path: config.build.assetsRoot,
-    filename: utils.assetsPath('js/[name].[chunkhash].js'),
-    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
-  },
-  plugins: [
-    // http://vuejs.github.io/vue-loader/en/workflow/production.html
-    new webpack.DefinePlugin({
-      'process.env': env
-    }),
-    new UglifyJsPlugin({
-      uglifyOptions: {
-        compress: {
-          warnings: false
-        }
-      },
-      sourceMap: config.build.productionSourceMap,
-      parallel: true
-    }),
-    // extract css into its own file
-    new ExtractTextPlugin({
-      filename: utils.assetsPath('css/[name].[contenthash].css'),
-      // Setting the following option to `false` will not extract CSS from codesplit chunks.
-      // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
-      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 
-      // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
-      allChunks: true,
-    }),
-    // Compress extracted CSS. We are using this plugin so that possible
-    // duplicated CSS from different components can be deduped.
-    new OptimizeCSSPlugin({
-      cssProcessorOptions: config.build.productionSourceMap
-        ? { safe: true, map: { inline: false } }
-        : { safe: true }
-    }),
-    // generate dist index.html with correct asset hash for caching.
-    // you can customize output by editing /index.html
-    // see https://github.com/ampedandwired/html-webpack-plugin
-    new HtmlWebpackPlugin({
-      filename: process.env.NODE_ENV === 'testing'
-        ? 'index.html'
-        : config.build.index,
-      template: 'index.html',
-      inject: true,
-      minify: {
-        removeComments: true,
-        collapseWhitespace: true,
-        removeAttributeQuotes: true
-        // more options:
-        // https://github.com/kangax/html-minifier#options-quick-reference
-      },
-      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
-      chunksSortMode: 'dependency'
-    }),
-    // keep module.id stable when vendor modules does not change
-    new webpack.HashedModuleIdsPlugin(),
-    // enable scope hoisting
-    new webpack.optimize.ModuleConcatenationPlugin(),
-    // split vendor js into its own file
-    new webpack.optimize.CommonsChunkPlugin({
-      name: 'vendor',
-      minChunks (module) {
-        // any required modules inside node_modules are extracted to vendor
-        return (
-          module.resource &&
-          /\.js$/.test(module.resource) &&
-          module.resource.indexOf(
-            path.join(__dirname, '../node_modules')
-          ) === 0
-        )
-      }
-    }),
-    // extract webpack runtime and module manifest to its own file in order to
-    // prevent vendor hash from being updated whenever app bundle is updated
-    new webpack.optimize.CommonsChunkPlugin({
-      name: 'manifest',
-      minChunks: Infinity
-    }),
-    // This instance extracts shared chunks from code splitted chunks and bundles them
-    // in a separate chunk, similar to the vendor chunk
-    // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
-    new webpack.optimize.CommonsChunkPlugin({
-      name: 'app',
-      async: 'vendor-async',
-      children: true,
-      minChunks: 3
-    }),
-
-    // copy custom static assets
-    new CopyWebpackPlugin([
-      {
-        from: path.resolve(__dirname, '../static'),
-        to: config.build.assetsSubDirectory,
-        ignore: ['.*']
-      }
-    ])
-  ]
-})
-
-if (config.build.productionGzip) {
-  const CompressionWebpackPlugin = require('compression-webpack-plugin')
-
-  webpackConfig.plugins.push(
-    new CompressionWebpackPlugin({
-      asset: '[path].gz[query]',
-      algorithm: 'gzip',
-      test: new RegExp(
-        '\\.(' +
-        config.build.productionGzipExtensions.join('|') +
-        ')$'
-      ),
-      threshold: 10240,
-      minRatio: 0.8
-    })
-  )
-}
-
-if (config.build.bundleAnalyzerReport) {
-  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
-  webpackConfig.plugins.push(new BundleAnalyzerPlugin())
-}
-
-module.exports = webpackConfig

+ 0 - 7
config/dev.env.js

@@ -1,7 +0,0 @@
-'use strict'
-const merge = require('webpack-merge')
-const prodEnv = require('./prod.env')
-
-module.exports = merge(prodEnv, {
-  NODE_ENV: '"development"'
-})

+ 0 - 88
config/index.js

@@ -1,88 +0,0 @@
-"use strict";
-// Template version: 1.3.1
-// see http://vuejs-templates.github.io/webpack for documentation.
-
-const path = require("path");
-
-module.exports = {
-  dev: {
-    // http://192.168.161.34:8089线下地址
-    // https://chtech.ncjti.edu.cn/hotel/ihotel-api线上地址
-    // Paths
-    assetsSubDirectory: "static",
-    assetsPublicPath: "/hotel/manage/",
-    proxyTable: {
-      "/hotel/ihotel-api": {
-        // target: 'http://192.168.161.34:8089',
-        target: "https://chtech.ncjti.edu.cn/hotel/ihotel-api",
-        secure: false, // 这是签名认证,http和https区分的参数设置
-        changeOrigin: true,
-        pathRewrite: {
-          "^/hotel/ihotel-api": ""
-        }
-      }
-    },
-
-    // Various Dev Server settings
-    host: "0.0.0.0", // can be overwritten by process.env.HOST
-    // host: "localhost",
-    port: 8899, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
-    autoOpenBrowser: false,
-    errorOverlay: true,
-    notifyOnErrors: true,
-    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
-
-    // Use Eslint Loader?
-    // If true, your code will be linted during bundling and
-    // linting errors and warnings will be shown in the console.
-    useEslint: true,
-    // If true, eslint errors and warnings will also be shown in the error overlay
-    // in the browser.
-    showEslintErrorsInOverlay: false,
-
-    /**
-     * Source Maps
-     */
-
-    // https://webpack.js.org/configuration/devtool/#development
-    devtool: "cheap-module-eval-source-map",
-
-    // If you have problems debugging vue-files in devtools,
-    // set this to false - it *may* help
-    // https://vue-loader.vuejs.org/en/options.html#cachebusting
-    cacheBusting: true,
-
-    cssSourceMap: true
-  },
-
-  build: {
-    // Template for index.html
-    index: path.resolve(__dirname, "../dist/index.html"),
-
-    // Paths
-    assetsRoot: path.resolve(__dirname, "../dist"),
-    assetsSubDirectory: "static",
-    assetsPublicPath: "/hotel/manage/",
-
-    /**
-     * Source Maps
-     */
-
-    productionSourceMap: true,
-    // https://webpack.js.org/configuration/devtool/#production
-    devtool: "#source-map",
-
-    // Gzip off by default as many popular static hosts such as
-    // Surge or Netlify already gzip all static assets for you.
-    // Before setting to `true`, make sure to:
-    // npm install --save-dev compression-webpack-plugin
-    productionGzip: false,
-    productionGzipExtensions: ["js", "css"],
-
-    // Run the build command with an extra argument to
-    // View the bundle analyzer report after build finishes:
-    // `npm run build --report`
-    // Set to `true` or `false` to always turn it on or off
-    bundleAnalyzerReport: process.env.npm_config_report
-  }
-};

+ 0 - 4
config/prod.env.js

@@ -1,4 +0,0 @@
-'use strict'
-module.exports = {
-  NODE_ENV: '"production"'
-}

+ 0 - 7
config/test.env.js

@@ -1,7 +0,0 @@
-'use strict'
-const merge = require('webpack-merge')
-const devEnv = require('./dev.env')
-
-module.exports = merge(devEnv, {
-  NODE_ENV: '"testing"'
-})

+ 11 - 5
index.html

@@ -1,12 +1,18 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
-<html>
+<html lang="zh">
   <head>
   <head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
-    <title>智慧校园公寓管理</title>
+    <meta charset="UTF-8" />
+    <link
+      rel="icon"
+      type="image/svg+xml"
+      href="./src/assets/items/favicon.ico"
+    />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>靖安乡村民宿民宿端</title>
   </head>
   </head>
+
   <body>
   <body>
     <div id="app"></div>
     <div id="app"></div>
-    <!-- built files will be auto injected -->
+    <script type="module" src="/src/main.js"></script>
   </body>
   </body>
 </html>
 </html>

File diff suppressed because it is too large
+ 717 - 18061
package-lock.json


+ 25 - 93
package.json

@@ -1,102 +1,34 @@
 {
 {
-  "name": "admin",
-  "version": "1.0.0",
-  "description": "A Vue.js project",
-  "author": "hzj2232462644 <hzj2232462644@163.com>",
+  "name": "vite-project",
   "private": true,
   "private": true,
+  "version": "0.0.0",
+  "type": "module",
   "scripts": {
   "scripts": {
-    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0",
-    "start": "npm run dev",
-    "unit": "jest --config test/unit/jest.conf.js --coverage",
-    "e2e": "node test/e2e/runner.js",
-    "test": "npm run unit && npm run e2e",
-    "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
-    "build": "node build/build.js"
+    "dev": "vite",
+    "build": "vite build",
+    "preview": "vite preview"
   },
   },
   "dependencies": {
   "dependencies": {
-    "axios": "^0.27.2",
-    "better-scroll": "^2.4.2",
-    "dayjs": "^1.11.5",
-    "element-ui": "^2.15.2",
-    "file-saver": "^2.0.5",
-    "js-cookie": "^3.0.1",
-    "jsencrypt": "^3.2.1",
+    "@easydarwin/easyplayer": "^5.0.7",
+    "@element-plus/icons-vue": "^2.0.10",
+    "@liveqing/liveplayer-v3": "^3.7.10",
+    "axios": "^1.3.2",
+    "dayjs": "^1.11.8",
+    "echarts": "^5.4.2",
+    "element-plus": "^2.2.29",
+    "hls.js": "^1.3.4",
+    "jsencrypt": "^3.3.1",
     "lodash": "^4.17.21",
     "lodash": "^4.17.21",
-    "moment": "^2.29.4",
-    "svg-sprite-loader": "^4.3.0",
-    "vue": "^2.5.2",
-    "vue-router": "^3.0.1",
-    "vuex": "^3.6.2",
-    "vuex-persistedstate": "^4.1.0",
-    "xlsx": "^0.18.5"
+    "sass": "^1.58.0",
+    "sass-loader": "^13.2.0",
+    "terser": "^5.16.5",
+    "vue": "^3.2.45",
+    "vue-router": "^4.0.10",
+    "vuex": "^4.0.2",
+    "vuex-persistedstate": "^4.1.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "autoprefixer": "^7.1.2",
-    "babel-core": "^6.22.1",
-    "babel-eslint": "^8.2.1",
-    "babel-helper-vue-jsx-merge-props": "^2.0.3",
-    "babel-jest": "^21.0.2",
-    "babel-loader": "^7.1.1",
-    "babel-plugin-dynamic-import-node": "^1.2.0",
-    "babel-plugin-syntax-jsx": "^6.18.0",
-    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
-    "babel-plugin-transform-runtime": "^6.22.0",
-    "babel-plugin-transform-vue-jsx": "^3.5.0",
-    "babel-preset-env": "^1.3.2",
-    "babel-preset-stage-2": "^6.22.0",
-    "babel-register": "^6.22.0",
-    "chalk": "^2.0.1",
-    "chromedriver": "^2.27.2",
-    "copy-webpack-plugin": "^4.0.1",
-    "cross-spawn": "^5.0.1",
-    "css-loader": "^0.28.0",
-    "eslint": "^4.15.0",
-    "eslint-config-standard": "^10.2.1",
-    "eslint-friendly-formatter": "^3.0.0",
-    "eslint-loader": "^1.7.1",
-    "eslint-plugin-import": "^2.7.0",
-    "eslint-plugin-node": "^5.2.0",
-    "eslint-plugin-promise": "^3.4.0",
-    "eslint-plugin-standard": "^3.0.1",
-    "eslint-plugin-vue": "^4.0.0",
-    "extract-text-webpack-plugin": "^3.0.0",
-    "file-loader": "^1.1.4",
-    "friendly-errors-webpack-plugin": "^1.6.1",
-    "html-webpack-plugin": "^2.30.1",
-    "jest": "^22.0.4",
-    "jest-serializer-vue": "^0.3.0",
-    "nightwatch": "^0.9.12",
-    "node-notifier": "^5.1.2",
-    "node-sass": "^4.14.1",
-    "optimize-css-assets-webpack-plugin": "^3.2.0",
-    "ora": "^1.2.0",
-    "portfinder": "^1.0.13",
-    "postcss-import": "^11.0.0",
-    "postcss-loader": "^2.0.8",
-    "postcss-url": "^7.2.1",
-    "rimraf": "^2.6.0",
-    "sass-loader": "^7.3.1",
-    "selenium-server": "^3.0.1",
-    "semver": "^5.3.0",
-    "shelljs": "^0.7.6",
-    "uglifyjs-webpack-plugin": "^1.1.1",
-    "url-loader": "^0.5.8",
-    "vue-jest": "^1.0.2",
-    "vue-loader": "^13.3.0",
-    "vue-style-loader": "^3.0.1",
-    "vue-template-compiler": "^2.5.2",
-    "webpack": "^3.6.0",
-    "webpack-bundle-analyzer": "^2.9.0",
-    "webpack-dev-server": "^2.9.1",
-    "webpack-merge": "^4.1.0"
-  },
-  "engines": {
-    "node": ">= 6.0.0",
-    "npm": ">= 3.0.0"
-  },
-  "browserslist": [
-    "> 1%",
-    "last 2 versions",
-    "not ie <= 8"
-  ]
+    "@vitejs/plugin-vue": "^4.0.0",
+    "vite": "^4.1.0"
+  }
 }
 }

+ 24 - 24
src/App.vue

@@ -1,33 +1,33 @@
+<script setup>
+import { ref, reactive, nextTick, onBeforeMount, onUnmounted } from "vue";
+import { useRouter } from "vue-router";
+import { useStore } from "vuex";
+const store = useStore();
+const router = useRouter();
+onBeforeMount(() => {
+  // store.dispatch("pathSelect");
+  // store.dispatch("busNum");
+  // store.dispatch("newsAsync");
+  // store.dispatch("sm_time");
+});
+</script>
+
 <template>
 <template>
-  <div id="app">
-    <router-view></router-view>
-  </div>
+  <router-view></router-view>
 </template>
 </template>
 
 
-<script>
-export default {
-  name: "App",
-  mounted() {},
-};
-</script>
-
 <style lang="scss">
 <style lang="scss">
 #app {
 #app {
-  font-family: "Avenir", Helvetica, Arial, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  width: 100%;
-  height: 100%;
-}
-
-html,
-body {
+  max-width: 1920px;
+  width: 1920px;
+  min-height: 100vh;
+  max-height: 1080px;
   margin: 0;
   margin: 0;
   padding: 0;
   padding: 0;
-  width: 100%;
-  height: 100%;
-  ::-webkit-scrollbar {
-    display: none; /* Chrome Safari */
-  }
+  text-align: unset;
+  // width: 100%;
+  // height: 100%;
+  // margin: 0;
+  // padding: 0;
 }
 }
 </style>
 </style>

+ 0 - 72
src/api/acl/permission.js

@@ -1,72 +0,0 @@
-import request from '@/utils/request'
-
-/* 
-权限管理相关的API请求函数
-*/
-const api_name = '/admin/acl/permission'
-
-export default {
-  
-  /* 
-  获取权限(菜单/功能)列表
-  */
-  getPermissionList() {
-    return request({
-      url: `${api_name}`,
-      method: 'get'
-    })
-  },
-  
-  /* 
-  删除一个权限项
-  */
-  removePermission(id) {
-    return request({
-      url: `${api_name}/remove/${id}`,
-      method: "delete"
-    })
-  },
-  
-  /* 
-  保存一个权限项
-  */
-  addPermission(permission) {
-    return request({
-      url: `${api_name}/save`,
-      method: "post",
-      data: permission
-    })
-  },
-
-  /* 
-  更新一个权限项
-  */
-  updatePermission(permission) {
-    return request({
-      url: `${api_name}/update`,
-      method: "put",
-      data: permission
-    })
-  },
-
-  /* 
-  查看某个角色的权限列表
-  */
-  toAssign(roleId) {
-    return request({
-      url: `${api_name}/toAssign/${roleId}`,
-      method: 'get'
-    })
-  },
-
-  /* 
-  给某个角色授权
-  */
-  doAssign(roleId, permissionId) {
-    return request({
-      url: `${api_name}/doAssign`,
-      method: "post",
-      params: {roleId, permissionId}
-    })
-  }
-}

+ 0 - 83
src/api/acl/role.js

@@ -1,83 +0,0 @@
-/* 
-角色管理相关的API请求函数
-*/
-import request from '@/utils/request'
-
-const api_name = '/admin/acl/role'
-
-export default {
-
-  /* 
-  获取角色分页列表(带搜索)
-  */
-  getPageList(page, limit, searchObj) {
-    return request({
-      url: `${api_name}/${page}/${limit}`,
-      method: 'get',
-      params: searchObj // url查询字符串或表单键值对
-    })
-  },
-
-  /* 
-  获取某个角色
-  */
-  getById(id) {
-    return request({
-      url: `${api_name}/get/${id}`,
-      method: 'get'
-    })
-  },
-
-  /* 
-  保存一个新角色
-  */
-  save(role) {
-    return request({
-      url: `${api_name}/save`,
-      method: 'post',
-      data: role
-    })
-  },
-
-  /* 
-  更新一个角色
-  */
-  updateById(role) {
-    return request({
-      url: `${api_name}/update`,
-      method: 'put',
-      data: role
-    })
-  },
-
-  /* 
-  获取一个角色的所有权限列表
-  */
-  getAssign(roleId) {
-    return request({
-      url: `${api_name}/toAssign/${roleId}`,
-      method: 'get'
-    })
-  },
-
-  /* 
-  删除某个角色
-  */
-  removeById(id) {
-    return request({
-      url: `${api_name}/remove/${id}`,
-      method: 'delete'
-    })
-  },
-
-  /* 
-  批量删除多个角色
-  */
-  removeRoles(ids) {
-    return request({
-      url: `${api_name}/batchRemove`,
-      method: 'delete',
-      data: ids
-    })
-  }
-}

+ 0 - 132
src/api/acl/user.js

@@ -1,132 +0,0 @@
-import request from '@/utils/request'
-
-const api_name = '/api/ihotel/hotelStaff'
-
-/*
-登陆
-*/
-export function login({ username, password }) {
-  return request({
-    url: '/admin/acl/index/login',
-    method: 'post',
-    data: { username, password }
-  })
-}
-
-/*
-获取用户信息(根据token)
-*/
-export function getInfo() {
-  return request({
-    url: '/admin/acl/index/info',
-    method: 'get'
-  })
-}
-
-/*
-登出
-*/
-export function logout() {
-  return request({
-    url: '/admin/acl/index/logout',
-    method: 'post'
-  })
-}
-
-/* 
-获取当前用户的菜单权限列表
-*/
-export function getMenu() {
-  return request('/admin/acl/index/menu')
-}
-
-
-/* 
-获取后台用户分页列表(带搜索)
-*/
-export function getPageList(page, limit, searchObj) {
-  return request({
-    url: `${api_name}/${page}/${limit}`,
-    method: 'get',
-    params: searchObj
-  })
-}
-
-/* 
-根据ID获取某个后台用户
-*/
-export function getById(id) {
-  return request({
-    url: `${api_name}/get/${id}`,
-    method: 'get'
-  })
-}
-
-/* 
-保存一个新的后台用户
-*/
-export function add(user) {
-  return request({
-    url: `${api_name}/save`,
-    method: 'post',
-    data: user
-  })
-}
-
-/* 
-更新一个后台用户
-*/
-export function update(user) {
-  return request({
-    url: `${api_name}/update`,
-    method: 'put',
-    data: user
-  })
-}
-
-/* 
-获取某个用户的所有角色
-*/
-export function getRoles(userId) {
-  return request({
-    url: `${api_name}/toAssign/${userId}`,
-    method: 'get'
-  })
-}
-
-/* 
-给某个用户分配角色
-roleId的结构: 字符串, 'rId1,rId2,rId3'
-*/
-export function assignRoles(userId, roleId) {
-  return request({
-    url: `${api_name}/doAssign`,
-    method: 'post',
-    params: {
-      userId,
-      roleId
-    }
-  })
-}
-
-/* 
-删除某个用户
-*/
-export function removeById(id) {
-  return request({
-    url: `${api_name}/remove/${id}`,
-    method: 'delete'
-  })
-}
-
-/* 
-批量删除多个用户
-ids的结构: ids是包含n个id的数组
-*/
-export function removeUsers(ids) {
-  return request({
-    url: `${api_name}/batchRemove`,
-    method: 'delete',
-    data: ids
-  })
-}

+ 87 - 0
src/api/admin.js

@@ -0,0 +1,87 @@
+import request from "@/utils/request";
+const requests = '/api'// 线上
+// const requests = '/video/transcoding/transcoding'//线下
+export default {
+    // 登录账号
+    // async adminLogin(data) {
+    //     let requestData = await request({
+    //         url: `${requests}/carBook/adminlogin.action`,
+    //         method: "POST",
+    //         // headers: { "Content-Type": "application/json;charset=utf-8" },
+    //         data: data,
+    //     });
+    //     return requestData;
+    // },
+
+    // 账号列表
+    // async adminList(params) {
+    //     let requestData = await request({
+    //         url: `${requests}/carBook/adminlist.action`,
+    //         method: "GET",
+    //         headers: { "Content-Type": "multipart/form-data" },
+    //         params,
+    //     });
+    //     return requestData;
+    // },
+
+    // 新增管理员
+    async adminAdd(data) {
+        let requestData = await request({
+            url: `${requests}/carBook/admininsert.action`,
+            method: "POST",
+            data,
+        });
+        return requestData;
+    },
+    // 修改管理员
+    async adminUpdate(data) {
+        let requestData = await request({
+            url: `${requests}/carBook/adminupdate.action`,
+            method: "POST",
+            data,
+        });
+        return requestData;
+    },
+    // 修改密码
+    // async updatePassword(data) {
+    //     let requestData = await request({
+    //         url: `${requests}/videoAdmin/updatePassword`,
+    //         method: "PUT",
+    //         data,
+    //     });
+    //     return requestData;
+    // },
+    // 删除管理员
+    async adminDel(data) {
+        let requestData = await request({
+            url: `${requests}/carBook/admindel.action`,
+            method: "POST",
+            data,
+        });
+        return requestData;
+    },
+
+    // 导出管理员信息
+    async download(params) {
+        let requestData = await request({
+            url: `${requests}/carBook/admintoExcel.action`,
+            method: "GET",
+            headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" },
+            responseType: "blob",
+            params,
+        });
+        return requestData;
+    },
+
+    // 导入监控信息
+    // async importByExcel(data) {
+    //     let requestData = await request({
+    //         // url: "/api/video/videoAdmin/importByExcel",
+    //         url: `${requests}/camera/importByExcel`,
+    //         method: "POST",
+    //         headers: { "Content-Type": "multipart/form-data" },
+    //         data: data,
+    //     });
+    //     return requestData;
+    // },
+};

+ 0 - 59
src/api/api.js

@@ -1,59 +0,0 @@
-// import http from '../utils/http'
-import * as doorLock from "./doorLock";
-import * as fileServes from "./fileServes";
-import * as hotelOrder from "./hotelOrder";
-import * as hotelAdmin from "./hotelAdmin";
-import * as hotelStaff from "./hotelStaff";
-import * as houseType from "./houseType";
-import * as normalUser from "./normalUser";
-import * as room from "./room";
-import * as systemnotice from "./systemnotice";
-import * as systemSetup from "./systemSetup";
-import * as roomRealTimeStatu from "./roomRealTimeStatu";
-import * as roomThirdSetting from "./roomThirdSetting";
-import * as icCard from "./icCard";
-import * as fingerprint from "./fingerprint";
-import * as stat from "./stat";
-//
-/**
- *  @parms resquest 请求地址 例如:http://197.82.15.15:8088/request/...
- *  @param '/testIp'代表vue-cil中config,index.js中配置的代理
- */
-// let resquest = "/api/ihotel"
-
-// get请求
-// export function getListAPI(params) {
-//     return http.get(`${resquest}/getList.json`, params)
-// }
-
-// // post请求
-// export function postFormAPI(params) {
-//     return http.post(`${resquest}/postForm.json`, params)
-// }
-
-// // put 请求
-// export function putSomeAPI(params) {
-//     return http.put(`${resquest}/putSome.json`, params)
-// }
-// // delete 请求
-// export function deleteListAPI(params) {
-//     return http.delete(`${resquest}/deleteList.json`, params)
-// }
-
-export default {
-  doorLock, // 门锁
-  fileServes, // 文件服务
-  hotelOrder, // 酒店订单
-  hotelAdmin, // 酒店管理员
-  hotelStaff, // 酒店员工
-  houseType, // 房型
-  normalUser, // 普通用户
-  room, // 房间
-  systemnotice, // 系统通知
-  systemSetup, // 系统设置
-  roomRealTimeStatu, // 实时房态
-  roomThirdSetting, // 房间第三方平台设置
-  icCard, // IC卡
-  stat, // 统计报表
-  fingerprint // 指纹
-};

+ 0 - 17
src/api/doorLock.js

@@ -1,17 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/roomDoorLock"
-
-// 根据房间id查询密码锁
-export function roomDoorLockRoomId(roomId) {
-    return http.get(`${resquest}/room/${roomId}`)
-}
-
-// 根据订单id查询密码锁
-export function roomDoorLockOrderId(orderId) {
-    return http.get(`${resquest}/order/${orderId}`)
-}
-
-// 根据订单id下发密码锁
-export function sendPassword(Id) {
-    return http.get(`${resquest}/sendPassword/${Id}`)
-}

+ 0 - 7
src/api/fileServes.js

@@ -1,7 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel"
-
-// 获取上传文件签名
-export function getListAPI(params) {
-    return http.get(`${resquest}/oss/aliyun/policy`, params)
-}

+ 0 - 31
src/api/fingerprint.js

@@ -1,31 +0,0 @@
-import http from "../utils/http";
-let resquest = "/hotel/ihotel-api/ihotel/condition/fingerprint";
-
-// fingerprint查询
-export function queryInfo(params) {
-  return http.get(`${resquest}/queryInfo/${params}`);
-}
-
-// IC卡查询-详情
-export function queryICInfoById(params) {
-  return http.get(`${resquest}/ic/queryICInfoById`, params);
-}
-
-// 指纹新增
-export function add(params) {
-  return http.post(`${resquest}/add`, params);
-}
-//  指纹修改  hotel/ihotel-api/ihotel/condition/fingerprint/update
-export function update(params) {
-  return http.post(`${resquest}/update`, params);
-}
-
-// 指纹解绑  hotel/ihotel-api/ihotel/condition/fingerprint/unbundFingerprint
-export function unbundIC(params) {
-  return http.get(`${resquest}/unbundFingerprint`, params);
-}
-
-// 指纹导出详情
-// export function downLoadICInfo(params) {
-//   return http.get(`${resquest}/downLoadICInfo`, params, "", "blob");
-// }

+ 14 - 0
src/api/home.js

@@ -0,0 +1,14 @@
+import request from "@/utils/request";
+// const request='/api'
+export default {
+    /*搜索*/
+
+    async getHomeList(data) {
+        let requestData = await request({
+            url: "/api",
+            method: "POST",
+            data: data,
+        });
+        return requestData;
+    }
+}

+ 0 - 32
src/api/hotelAdmin.js

@@ -1,32 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/hotelAdmin"
-
-// 管理员登录
-export function hotelStaffLogin(params) {
-    return http.post(`${resquest}/login`, params)
-}
-
-// 管理员列表
-export function hotelStaffList(params) {
-    return http.get(`${resquest}/list`, params)
-}
-
-// 新增管理员
-export function hotelStaffAdd(data) {
-    return http.post(`${resquest}/add`, data)
-}
-
-// 修改管理员
-export function hotelStaffUpdate(data) {
-    return http.put(`${resquest}/update`, data)
-}
-
-// 修改密码
-export function updatePassword(data) {
-    return http.put(`${resquest}/updatePassword`, data)
-}
-
-// 删除管理员
-export function hotelStaffDelete(data) {
-    return http.delete(`${resquest}/delete`, data)
-}

+ 0 - 71
src/api/hotelOrder.js

@@ -1,71 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/hotelOrder"
-let contentType = { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' }
-//  获取请求令牌
-export function hotelOrderToken(params) {
-    return http.get(`${resquest}/user/submit/token`, params)
-}
-
-//  确认订单    
-export function hotelOrderConfirm(params) {
-    return http.get(`${resquest}/user/order/confirm`, params)
-}
-
-//  提交订单
-export function hotelOrderSubmit(params) {
-    return http.post(`${resquest}/user/order/submit`, params)
-}
-
-//  订单列表【用户端】  
-export function hotelOrderUserPage(params) {
-    return http.get(`${resquest}/user/order/page`, params)
-}
-
-//  订单列表【管理端】
-export function hotelOrderAdminPage(params) {
-    return http.get(`${resquest}/admin/order/page`, params)
-}
-
-//  订单详情 【用户端】
-export function hotelOrderUserOrderId(orderId, params) {
-    return http.get(`${resquest}/user/order/${orderId}`, params)
-}
-
-//   获取订单支付参数
-export function hotelOrderOrderPay(orderId, params) {
-    return http.get(`${resquest}/user/order/pay/${orderId}`, params)
-}
-
-//   获取订单支付参数
-export function hotelOrderOrderBill(orderId, params) {
-    return http.get(`${resquest}/user/order/bill/${orderId}`, params)
-}
-
-//   导出订单【管理端】
-export function downOrder(params) {
-    return http.get(`${resquest}/admin/order/downOrder`, params, '', 'blob')
-}
-
-
-
-
-//  删除订单【管理端】
-export function hotelOrderAdminDelete(orderId, params) {
-    return http.delete(`${resquest}/admin/order/${orderId}`, params, contentType)
-}
-
-// 取消订单
-export function hotelOrdercancel(orderId, params) {
-    return http.put(`${resquest}/user/order/cancel/${orderId}`, params, contentType)
-}
-
-// 办理入住
-export function hotelOrderHold(orderId, params) {
-    return http.put(`${resquest}/user/order/hold/${orderId}`, params, contentType)
-}
-
-// 办理退房
-export function hotelOrderReturn(orderId, params) {
-    return http.put(`${resquest}/user/order/return/${orderId}`, params, contentType)
-}
-

+ 0 - 32
src/api/hotelStaff.js

@@ -1,32 +0,0 @@
-import http from "../utils/http";
-let resquest = "/hotel/ihotel-api/ihotel/ihotel/hotelStaff";
-
-// 员工列表
-export function hotelStaffList(params) {
-  return http.get(`${resquest}/list`, params);
-}
-
-// 员工信息
-export function hotelStaffInfo(id, params) {
-  return http.get(`${resquest}/info/${id}`, params);
-}
-
-// 新增员工
-export function hotelStaffSave(params) {
-  return http.post(`${resquest}/save`, params);
-}
-
-// 修改管理员
-export function hotelStaffUpdate(data) {
-  return http.put(`${resquest}/update`, data);
-}
-
-// 删除管理员
-export function hotelStaffDelete(data) {
-  return http.delete(`${resquest}/delete`, data);
-}
-
-// 员工类型和员工
-export function departList(params) {
-  return http.get(`${resquest}/departList`, params);
-}

+ 0 - 32
src/api/houseType.js

@@ -1,32 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/roomType"
-
-// 房型列表(客户端)
-export function roomTypeList(params) {
-    return http.get(`${resquest}/roomType/list`, params)
-}
-
-// 房型列表(管理端)
-export function roomTypePage(params) {
-    return http.get(`${resquest}/roomType/page`, params)
-}
-
-// 房型详细信息
-export function roomTypeInfo(params) {
-    return http.post(`${resquest}/info/{id}`, params)
-}
-
-// 新增房型
-export function roomTypeSave(params) {
-    return http.post(`${resquest}/save`, params)
-}
-
-// 修改房型
-export function roomTypeUpdate(params) {
-    return http.put(`${resquest}/update`, params)
-}
-
-// 删除房型
-export function roomTypeDelete(params) {
-    return http.delete(`${resquest}/delete`, params)
-}

+ 0 - 31
src/api/icCard.js

@@ -1,31 +0,0 @@
-import http from "../utils/http";
-let resquest = "/hotel/ihotel-api/ihotel/condition";
-
-// IC卡查询
-export function icqueryInfo(params) {
-  return http.get(`${resquest}/ic/queryInfo/${params}`);
-}
-
-// IC卡查询-详情
-export function queryICInfoById(params) {
-  return http.get(`${resquest}/ic/queryICInfoById`, params);
-}
-
-//  IC卡新增
-export function add(params) {
-  return http.post(`${resquest}/ic/add`, params);
-}
-//  IC卡修改
-export function update(params) {
-  return http.post(`${resquest}/ic/update`, params);
-}
-
-// IC卡解绑
-export function unbundIC(params) {
-  return http.get(`${resquest}/ic/unbundIC`, params);
-}
-
-// IC卡导出详情
-export function downLoadICInfo(params) {
-  return http.get(`${resquest}/downLoadICInfo`, params, "", "blob");
-}

+ 0 - 12
src/api/normalUser.js

@@ -1,12 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/hotelUser"
-
-// 微校授权回调地址
-export function hotelUserWX(params) {
-    return http.get(`${resquest}/weixiaoAuth`, params)
-}
-
-//  获取用户信息
-export function hotelUserInfo(params) {
-    return http.get(`${resquest}/userInfo`, params)
-}

+ 0 - 27
src/api/room.js

@@ -1,27 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/room"
-
-// 房间列表(分页)
-export function roomPage(params) {
-    return http.get(`${resquest}/page`, params)
-}
-
-// 房间列表(分页分组)
-export function roomPageGroup(params) {
-    return http.get(`${resquest}/page/group`, params)
-}
-
-// 新增房间
-export function roomSave(params) {
-    return http.post(`${resquest}/save`, params)
-}
-
-// 修改房间
-export function roomUpdate(params) {
-    return http.put(`${resquest}/update`, params)
-}
-
-// 删除房间
-export function roomDelete(params) {
-    return http.delete(`${resquest}/delete`, params)
-}

+ 0 - 25
src/api/roomRealTimeStatu.js

@@ -1,25 +0,0 @@
-import http from "../utils/http";
-let resquest = "/hotel/ihotel-api/ihotel/roomRealTimeStatu";
-
-//  房态信息
-export function realData(params) {
-  return http.get(`${resquest}/realData/${params}`);
-}
-
-// 脏房修改为空闲房间   /hotel/ihotel-api/ihotel/roomRealTimeStatu/clean/cleanByStatuId
-let ContentType = {
-  "Content-Type": "application/x-www-form-urlencoded;charset=utf-8"
-};
-export function clean(params) {
-  return http.post(`${resquest}/clean/cleanByStatuId`, params);
-}
-
-// 锁定房间  /hotel/ihotel-api/ihotel/roomRealTimeStatu/lock
-export function lock(params) {
-  return http.put(`${resquest}/lock`, params);
-}
-
-// 房间转为脏房
-export function toDirty(params) {
-  return http.put(`${resquest}/toDirty`, params);
-}

+ 0 - 17
src/api/roomThirdSetting.js

@@ -1,17 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/roomThirdSetting"
-
-//  根据房间id查询
-export function settingId(params) {
-    return http.get(`${resquest}/setting/${params}`)
-}
-
-//  电控制
-export function changeElectric(roomId, operType) {
-    return http.get(`${resquest}/changeElectric/${roomId}/${operType}`)
-}
-
-// 修改房间第三方平台设置
-export function Updata(params) {
-    return http.post(`${resquest}/update`, params)
-}

+ 0 - 13
src/api/stat.js

@@ -1,13 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/report"
-
-// 12.1. 查询统计报表数据【管理端】
-export function queryReport(params) {
-    return http.get(`${resquest}/queryReport`, params)
-}
-
-//  导出报表【管理端】
-export function downLoadReport(params) {
-    return http.get(`${resquest}/downLoadReport`, params, '', 'blob')
-}
-

+ 120 - 0
src/api/system.js

@@ -0,0 +1,120 @@
+import request from "@/utils/request";
+const requests = "/video/transcoding"; // 线上
+// const requests = '/video/transcoding/transcoding'// 线下
+export default {
+  // 添加监控信息
+  async systemList(data) {
+    let requestData = await request({
+      url: `${requests}/config/showCfg`,
+      method: "get",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
+      },
+      params: data,
+    });
+    return requestData;
+  },
+
+  // 删除监控信息
+  async delCamera(data) {
+    let requestData = await request({
+      url: `${requests}/camera/delete`,
+      method: "DELETE",
+      data,
+    });
+    return requestData;
+  },
+
+  // 修改监控信息
+  async updateCamera(data) {
+    let requestData = await request({
+      url: `${requests}/camera/updateCamera`,
+      method: "PUT",
+      headers: { "Content-Type": "application/json; charset=utf-8" },
+      data,
+    });
+    return requestData;
+  },
+
+  // 监控信息列表
+  async queryCamera(data) {
+    let requestData = await request({
+      url: `${requests}/camera/queryCamera`,
+      method: "POST",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
+      },
+      params: data,
+    });
+    return requestData;
+  },
+  // 导出监控信息
+  async download(params) {
+    let requestData = await request({
+      url: `${requests}/camera/download`,
+      method: "GET",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
+      },
+      responseType: "blob",
+      params,
+    });
+    return requestData;
+  },
+  // 导入监控信息
+  async importByExcel(data) {
+    let requestData = await request({
+      url: `${requests}/camera/importByExcel`,
+      method: "POST",
+      headers: { "Content-Type": "multipart/form-data" },
+      data,
+    });
+    return requestData;
+  },
+
+  // 使用Stream推拉流
+  async addStreamSource(data) {
+    let requestData = await request({
+      url: `${requests}/stream/addStreamSource`,
+      method: "POST",
+      headers: { "Content-Type": "application/json; charset=utf-8" },
+      data,
+    });
+    return requestData;
+  },
+
+  // 关闭Stream推拉流
+  async delStreamSource(data) {
+    let requestData = await request({
+      url: `${requests}/stream/delStreamSource`,
+      method: "POST",
+      headers: { "Content-Type": "application/json; charset=utf-8" },
+      data,
+    });
+    return requestData;
+  },
+  // 更新输出链接
+  async updateCameraLink(params) {
+    let requestData = await request({
+      url: `${requests}/camera/updateCameraLink`,
+      method: "GET",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
+      },
+      params,
+    });
+    return requestData;
+  },
+  // 关闭当前播放回写剩下的播放链接、
+  async delAndUpdateLink(params) {
+    let requestData = await request({
+      url: `${requests}/stream/delAndUpdateLink`,
+      method: "GET",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
+      },
+      params,
+    });
+    return requestData;
+  },
+};

+ 0 - 13
src/api/systemSetup.js

@@ -1,13 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/systemSetting"
-
-// 获取系统设置
-export function systemSettingInfo(params) {
-    return http.get(`${resquest}/info`, params)
-}
-
-// 修改系统设置
-export function systemnoticeUpdate(params) {
-    return http.put(`${resquest}/update`, params)
-}
-

+ 0 - 17
src/api/systemnotice.js

@@ -1,17 +0,0 @@
-import http from '../utils/http'
-let resquest = "/hotel/ihotel-api/ihotel/systemNotice"
-
-// 通知列表
-export function systemnoticeList(params) {
-    return http.get(`${resquest}/list`, params)
-}
-
-// 标记为已读
-export function systemnoticeRead(params) {
-    return http.put(`${resquest}/read`, params)
-}
-
-// 删除通知
-export function systemnoticeDelete(params) {
-    return http.delete(`${resquest}/delete`, params)
-}

+ 110 - 0
src/api/vidicons.js

@@ -0,0 +1,110 @@
+import request from "@/utils/request";
+const requests = '/video/transcoding'// 线上
+// const requests = '/video/transcoding/transcoding'// 线下
+export default {
+    // 添加监控信息
+    async addCamera(data) {
+        let requestData = await request({
+            url: `${requests}/camera/addCamera`,
+            method: "POST",
+            headers: { "Content-Type": "application/json; charset=utf-8" },
+            data: data,
+        });
+        return requestData;
+    },
+
+    // 删除监控信息
+    async delCamera(data) {
+        let requestData = await request({
+            url: `${requests}/camera/delete`,
+            method: "DELETE",
+            data
+        });
+        return requestData;
+    },
+
+    // 修改监控信息
+    async updateCamera(data) {
+        let requestData = await request({
+            url: `${requests}/camera/updateCamera`,
+            method: "PUT",
+            headers: { "Content-Type": "application/json; charset=utf-8" },
+            data,
+        });
+        return requestData;
+    },
+
+    // 监控信息列表
+    async queryCamera(data) {
+        let requestData = await request({
+            url: `${requests}/camera/queryCamera`,
+            method: "POST",
+            headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" },
+            params: data,
+        });
+        return requestData;
+    },
+    // 导出监控信息
+    async download(params) {
+        let requestData = await request({
+            url: `${requests}/camera/download`,
+            method: "GET",
+            headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" },
+            responseType: "blob",
+            params,
+        });
+        return requestData;
+    },
+    // 导入监控信息
+    async importByExcel(data) {
+        let requestData = await request({
+            url: `${requests}/camera/importByExcel`,
+            method: "POST",
+            headers: { "Content-Type": "multipart/form-data" },
+            data,
+        });
+        return requestData;
+    },
+
+    // 使用Stream推拉流
+    async addStreamSource(data) {
+        let requestData = await request({
+            url: `${requests}/stream/addStreamSource`,
+            method: "POST",
+            headers: { "Content-Type": "application/json; charset=utf-8" },
+            data,
+        });
+        return requestData;
+    },
+
+    // 关闭Stream推拉流
+    async delStreamSource(data) {
+        let requestData = await request({
+            url: `${requests}/stream/delStreamSource`,
+            method: "POST",
+            headers: { "Content-Type": "application/json; charset=utf-8" },
+            data,
+        });
+        return requestData;
+    },
+    // 更新输出链接
+    async updateCameraLink(params) {
+        let requestData = await request({
+            url: `${requests}/camera/updateCameraLink`,
+            method: "GET",
+            headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" },
+            params,
+        });
+        return requestData;
+    },
+    // 关闭当前播放回写剩下的播放链接、
+    async delAndUpdateLink(params) {
+        let requestData = await request({
+            url: `${requests}/stream/delAndUpdateLink`,
+            method: "GET",
+            headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" },
+            params,
+        });
+        return requestData;
+    },
+};

BIN
src/assets/add.png


BIN
src/assets/addRoom.png


BIN
src/assets/affiche.png


BIN
src/assets/back.png


BIN
src/assets/blockUp.png


BIN
src/assets/bottom.png


BIN
src/assets/classX.png


BIN
src/assets/classes.png


BIN
src/assets/classesA.png


BIN
src/assets/cleanRoom.png


BIN
src/assets/close.png


BIN
src/assets/colorSelect.png


BIN
src/assets/comment.png


BIN
src/assets/del.png


BIN
src/assets/delete.png


BIN
src/assets/delete_hover.png


BIN
src/assets/hint.png


BIN
src/assets/home.png


BIN
src/assets/house.png


BIN
src/assets/houseS.png


BIN
src/assets/icons/account.png


BIN
src/assets/icons/accountS.png


BIN
src/assets/icons/calendar.png


BIN
src/assets/icons/checkOut.png


BIN
src/assets/icons/class.png


BIN
src/assets/icons/classS.png


BIN
src/assets/icons/clock.png


BIN
src/assets/icons/deblocking.png


BIN
src/assets/icons/doorLock.png


BIN
src/assets/icons/doorLockS.png


BIN
src/assets/icons/electronicKey.png


BIN
src/assets/icons/error.png


BIN
src/assets/icons/forbidden.png


BIN
src/assets/icons/info.png


BIN
src/assets/icons/key.png


BIN
src/assets/icons/loading.png


BIN
src/assets/icons/lock.png


BIN
src/assets/icons/log.png


BIN
src/assets/icons/news.png


BIN
src/assets/icons/order.png


BIN
src/assets/icons/orderS.png


BIN
src/assets/icons/payCode.png


BIN
src/assets/icons/refund.png


BIN
src/assets/icons/resetPass.png


BIN
src/assets/icons/roomChange.png


BIN
src/assets/icons/roomStatus.png


BIN
src/assets/icons/roomStatusS.png


BIN
src/assets/icons/roomType.png


BIN
src/assets/icons/roomTypeS.png


BIN
src/assets/icons/ruzhu.png


BIN
src/assets/icons/sendPass.png


+ 0 - 0
src/assets/icons/setAside.png


Some files were not shown because too many files changed in this diff