chenrui 4 سال پیش
والد
کامیت
d36f79e8ac

+ 38 - 32
package-lock.json

@@ -2313,9 +2313,9 @@
       "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
     },
     "ant-design-vue": {
-      "version": "1.4.0-beta.0",
-      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.4.0-beta.0.tgz",
-      "integrity": "sha512-MZnb5Pwr4mlYoE2pHB5XMeL22pmPlKF7WkQszS18t7VygS9Q/gF8nJl94nebv6EHJRrKg0i/6Axh1gR0vXb6Hg==",
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.5.2.tgz",
+      "integrity": "sha512-DmlOl+ld4hSQdEG1c2wAV+v9/Bl2aG+wBEnd1GJYV0LeOXaSrBGiIkZrmUrTrUL92yBdFO+OF25aFNb0UFMZOA==",
       "requires": {
         "@ant-design/icons": "^2.1.1",
         "@ant-design/icons-vue": "^2.0.0",
@@ -2326,13 +2326,14 @@
         "babel-runtime": "6.x",
         "classnames": "^2.2.5",
         "component-classes": "^1.2.6",
-        "dom-align": "^1.7.0",
+        "dom-align": "^1.10.4",
         "dom-closest": "^0.2.0",
-        "dom-scroll-into-view": "^1.2.1",
+        "dom-scroll-into-view": "^2.0.0",
         "enquire.js": "^2.1.6",
         "intersperse": "^1.0.0",
+        "is-mobile": "^2.2.1",
         "is-negative-zero": "^2.0.0",
-        "ismobilejs": "^0.5.1",
+        "ismobilejs": "^1.0.0",
         "json2mq": "^0.2.0",
         "lodash": "^4.17.5",
         "moment": "^2.21.0",
@@ -2343,8 +2344,8 @@
         "resize-observer-polyfill": "^1.5.1",
         "shallow-equal": "^1.0.0",
         "shallowequal": "^1.0.2",
-        "vue-ref": "^1.0.4",
-        "warning": "^3.0.0"
+        "vue-ref": "^2.0.0",
+        "warning": "^4.0.0"
       }
     },
     "any-promise": {
@@ -2570,9 +2571,9 @@
       "dev": true
     },
     "async-validator": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.2.0.tgz",
-      "integrity": "sha512-QBuW7Qrg8wbh7Wtqw1QdN162GUmXDs9gayxFaXcCOf3bCqHJ/TQep0H4I63iVk7Q3kIGWU4wbAr/C0Uj64JiMw=="
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.3.0.tgz",
+      "integrity": "sha512-cAHGD9EL8aCqWXjnb44q94MWiDFzUo1tMhvLb2WzcpWqGiKugsjWG9cvl+jPgkPca7asNbsBU3fa0cwkI/P+Xg=="
     },
     "asynckit": {
       "version": "0.4.0",
@@ -5505,9 +5506,9 @@
       }
     },
     "dom-align": {
-      "version": "1.10.2",
-      "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.10.2.tgz",
-      "integrity": "sha512-AYZUzLepy05E9bCY4ExoqHrrIlM49PEak9oF93JEFoibqKL0F7w5DLM70/rosLOawerWZ3MlepQcl+EmHskOyw=="
+      "version": "1.12.0",
+      "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz",
+      "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA=="
     },
     "dom-closest": {
       "version": "0.2.0",
@@ -5538,9 +5539,9 @@
       "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw="
     },
     "dom-scroll-into-view": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz",
-      "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4="
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
+      "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w=="
     },
     "dom-serializer": {
       "version": "0.2.1",
@@ -8975,6 +8976,11 @@
         "is-extglob": "^2.1.1"
       }
     },
+    "is-mobile": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz",
+      "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg=="
+    },
     "is-negative-zero": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz",
@@ -9131,9 +9137,9 @@
       "dev": true
     },
     "ismobilejs": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-0.5.2.tgz",
-      "integrity": "sha512-ta9UdV60xVZk/ZafFtSFslQaE76SvNkcs1r73d2PVR21zVzx9xuYv9tNe4MxA1NN7WoeCc2RjGot3Bz1eHDx3Q=="
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
+      "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw=="
     },
     "isobject": {
       "version": "3.0.1",
@@ -11817,9 +11823,9 @@
       "dev": true
     },
     "mutationobserver-shim": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz",
-      "integrity": "sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ=="
+      "version": "0.3.7",
+      "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz",
+      "integrity": "sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ=="
     },
     "mute-stream": {
       "version": "0.0.7",
@@ -14694,9 +14700,9 @@
       }
     },
     "shallow-equal": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.0.tgz",
-      "integrity": "sha512-Z21pVxR4cXsfwpMKMhCEIO1PCi5sp7KEp+CmOpBQ+E8GpHwKOw2sEzk7sgblM3d/j4z4gakoWEoPcjK0VJQogA=="
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
+      "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
     },
     "shallowequal": {
       "version": "1.1.0",
@@ -16551,9 +16557,9 @@
       }
     },
     "vue-ref": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-1.0.6.tgz",
-      "integrity": "sha512-UzD8t1CG+aoWVOOpGd5KcaCNtCgUc0byaKhJMH+6N7H/p1ThVkYl/VCt7DmCrdhUlzZK+hT5JPTKAdrbWi0nNw=="
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-2.0.0.tgz",
+      "integrity": "sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ=="
     },
     "vue-router": {
       "version": "3.1.3",
@@ -16669,9 +16675,9 @@
       "integrity": "sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk="
     },
     "warning": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
-      "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+      "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
       "requires": {
         "loose-envify": "^1.0.0"
       }

+ 1 - 1
package.json

@@ -15,7 +15,7 @@
   },
   "dependencies": {
     "@antv/data-set": "^0.10.2",
-    "ant-design-vue": "1.4.0-beta.0",
+    "ant-design-vue": "^1.5.2",
     "axios": "^0.19.0",
     "core-js": "2.6.9",
     "enquire.js": "^2.1.6",

+ 2 - 2
src/components/Select/index.js

@@ -29,7 +29,7 @@ export default {
   }),
   created () {
     const _this = this
-    console.log(_this.code, '_this.code')
+    // console.log(_this.code, '_this.code')
     Promise.all([listLookUp({ code: '' }), getLookUpData({
       pageNo: 1,
       pageSize: 1000,
@@ -40,7 +40,7 @@ export default {
       if (_all.status + '' === '200' && _data.status + '' === '200') {
         _this.dataList = _data.data.list
         const a = _.find(_all.data, ['code', _this.code])
-        console.log(a)
+        // console.log(a)
         _this.placeholderText = '请选择' + (a != undefined ? a.name : '')
       }
     })

+ 25 - 10
src/config/router.config.js

@@ -1,13 +1,8 @@
 // eslint-disable-next-line
-import {
-  UserLayout,
-  BasicLayout,
-  RouteView,
-  BlankLayout,
-  PageView
-} from '@/layouts'
+import { UserLayout, BasicLayout, RouteView, BlankLayout, PageView } from '@/layouts'
 
-export const asyncRouterMap = [{
+export const asyncRouterMap = [
+  {
     path: '/',
     name: 'index',
     component: BasicLayout,
@@ -47,6 +42,27 @@ export const asyncRouterMap = [{
           }
         ]
       },
+      // Car washing machine management center
+      {
+        path: '/CarWashManagement',
+        redirect: '/CarWashManagement/CarWashManagement',
+        component: PageView,
+        meta: {
+          title: '洗车机管理中心',
+          icon: 'setting',
+          // permission: 'M_setting_0'
+        },
+        children: [{
+          path: '/CarWashManagement/CarWashManagement',
+          name: 'CarWashManagement',
+          component: () => import('@/views/CarWashManagement/CarWashManagement.vue'),
+          meta: {
+            title: '洗车机管理',
+            icon: 'database',
+            // permission: 'M_sys_dataDictionary'
+          }
+        }]
+      },
       {
         path: '/setting',
         redirect: '/setting/userList',
@@ -59,8 +75,7 @@ export const asyncRouterMap = [{
         children: [{
             path: '/setting/dataDictionary',
             name: 'powerDD',
-            component: () => import( /* webpackChunkName: "setting" */
-              '@/views/power/dataDictionary/dataDictionary.vue'),
+            component: () => import( /* webpackChunkName: "setting" */ '@/views/power/dataDictionary/dataDictionary.vue'),
             meta: {
               title: '数据字典管理',
               icon: 'database',

+ 1 - 1
src/core/bootstrap.js

@@ -16,7 +16,7 @@ import {
 import config from '@/config/defaultSettings'
 
 export default function Initializer () {
-  console.log(`API_URL: ${process.env.VUE_APP_API_BASE_URL}`)
+  // console.log(`API_URL: ${process.env.VUE_APP_API_BASE_URL}`)
 
   store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
   store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))

+ 3 - 3
src/permission.js

@@ -27,7 +27,7 @@ router.beforeEach((to, from, next) => {
       NProgress.done()
     } else {
       const userInfo = Vue.ls.get('userName')
-      console.log(userInfo)
+      // console.log(userInfo)
       if (userInfo) {
         store.dispatch('SetInfo', userInfo)
       } else {
@@ -35,13 +35,13 @@ router.beforeEach((to, from, next) => {
           next({ path: '/user/login', query: { redirect: to.fullPath } })
         })
       }
-      console.log(store.getters.roles)
+      // console.log(store.getters.roles)
       if (store.getters.roles.permissionList.length === 0) {
         store
           .dispatch('GetInfo', token)
           .then(res => {
             const roles = res
-            console.log(roles, 'roles')
+            // console.log(roles, 'roles')
             if (roles.permissionList.length == 0 || !roles) {
               store.dispatch('Logout').then(() => {
                 store.dispatch('ResetRoutes').then(() => {

+ 1 - 1
src/utils/request.js

@@ -47,7 +47,7 @@ service.interceptors.request.use(config => {
 
 // response interceptor
 service.interceptors.response.use((response) => {
-  console.log(response, 'response.data.status')
+  // console.log(response, 'response.data.status')
   const et = sessionStorage.getItem('errorTips')
   if (response.data.status == '1001' && !et) {
     sessionStorage.setItem('errorTips', 1)

+ 54 - 0
src/views/CarWashManagement/AddCarWashModal.vue

@@ -0,0 +1,54 @@
+<template>
+  <a-modal class="CarWashModal" :title="mtitle" :width="600" :footer="null" :destroyOnClose="true" @cancel="isShow=false" v-model="isShow">
+    <a-form-model ref="ruleForm" :model="form" :rules="rules" :label-col="{ span: 4 }" :wrapper-col="{ span: 14 }">
+      <a-form-model-item ref="name" label="网点名称" prop="name">
+        <a-input v-model="form.name" />
+      </a-form-model-item>
+    </a-form-model>
+  </a-modal>
+</template>
+
+<script>
+  export default{
+    name: 'AddCarWashModal',
+    props: {
+      openModal: {  //  弹框是否展示
+        type: Boolean,
+        default: false
+      },
+      mtitle: {  //  弹框标题
+        type: String,
+        default: ''
+      }
+    },
+    data(){
+      return{
+        isShow: this.openModal,  //  弹框是否展示
+        form: {
+          name: ''
+        },
+        rules: {
+          name: [
+            { required: true, message: '请输入网店名称,20个字以内', trigger: 'blur' }
+          ]
+        }
+      }
+    },
+    watch: {
+      openModal (newValue, oldValue) {
+        this.isShow = newValue
+      },
+      isShow (val){
+        if (!val){
+          this.$emit('close')
+        }
+      },
+    }
+  }
+</script>
+
+<style lang="less">
+  .CarWashModal{
+    
+  }
+</style>

+ 122 - 0
src/views/CarWashManagement/CarWashManagement.vue

@@ -0,0 +1,122 @@
+<template>
+  <a-card class="CarWashManagement" :bordered="false">
+    <!-- 搜索条件 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="48">
+          <a-col :span="6">
+            <a-form-item class="search-item" label="网点名称">
+              <a-input v-model.trim="queryParam.name" placeholder="请输入网点名称" allowClear/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item class="search-item" label="营业状态">
+              <v-select ref="yyzt" allowClear placeholder="请选择营业状态" v-model="queryParam.yyzt" code="CHECK_ENABLE_STATE"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item class="search-item" label="设备状态">
+              <v-select ref="sbzt" allowClear placeholder="请选择设备状态" v-model="queryParam.sbzt" code="CHECK_ENABLE_STATE"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item class="search-item" label="省">
+              <v-select ref="province" allowClear placeholder="请选择省" v-model="queryParam.province" code="CHECK_ENABLE_STATE"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item class="search-item" label="市">
+              <v-select ref="city" allowClear placeholder="请选择市" v-model="queryParam.city" code="CHECK_ENABLE_STATE"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-button type="primary" class="search-btn" @click="$refs.table.refresh(true)">查询</a-button>
+            <a-button type="" @click="reset">重置</a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 新建 -->
+    <div class="table-operator">
+      <a-button type="primary" icon="plus" @click="modalHandle('add')">新建</a-button>
+    </div>
+    <!-- 表格列表 -->
+    <s-table ref="table" size="default" rowKey="id" :columns="columns" :data="loadData" bordered >
+    </s-table>
+    
+    <!-- 新增/编辑 洗车机 -->
+    <AddCarWashModal
+      :openModal="openModal"
+      :mtitle="mtitle"
+      @close="openModal=false"
+    />
+  </a-card>
+</template>
+
+<script>
+  import { STable, VSelect } from '@/components'
+  import AddCarWashModal from './AddCarWashModal.vue'
+  export default{
+    name: 'CarWashManagement',
+    components: { STable, VSelect, AddCarWashModal },
+    data(){
+      return{
+        queryParam: {
+          name: '',  //  网点名称
+          yyzt: '',  //  营业状态
+          sbzt: '',  //  设备状态
+          province: '',  //  省
+          city: ''  //  市
+        },
+        columns: [
+          { title: '创建时间', dataIndex: 'createDate', width: '100', align: 'center' },
+        ],
+        // 加载数据方法 必须为 Promise 对象
+        loadData: parameter => {
+          // return activeList(Object.assign(parameter, this.queryParam)).then(res => {
+          //   const no = (res.data.pageNo - 1) * res.data.pageSize
+          //   for (let i = 0; i < res.data.list.length; i++) {
+          //     const _item = res.data.list[i]
+          //     _item.no = no + i + 1
+          //     _item.releaseStatus = _item.releaseStatus + '' === 'FB'
+          //   }
+          //   return res.data
+          // })
+        },
+        openModal: false,  //  新增/编辑 洗车机  弹框展示状态
+        mtitle: '',  //  新增/编辑 洗车机  弹框标题
+      }
+    },
+    methods: {
+      //  新建
+      modalHandle(type){
+        this.mtitle = type == 'add' ? '新增' : '编辑'
+        this.openModal = true
+      },
+      //  重置
+      reset(){
+        this.queryParam = {
+          name: '',  //  网点名称
+          yyzt: '',  //  营业状态
+          sbzt: '',  //  设备状态
+          province: '',  //  省
+          city: ''  //  市
+        }
+        this.$refs.table.refresh()
+      }
+    }
+  }
+</script>
+
+<style lang="less">
+  .CarWashManagement{
+    .table-page-search-wrapper{
+      .search-item{
+        // margin-bottom: 0;
+      }
+      .search-btn{
+        margin-right: 10px;
+      }
+    }
+  }
+</style>

+ 2 - 3
src/views/Home.vue

@@ -1,14 +1,13 @@
 <template>
   <div class="home">
     <a-alert message="欢迎登录洗车机运营后台系统" type="info" showIcon />
- </div>
+  </div>
 </template>
 
 <script>
 export default {
   name: 'Home',
-  components: { 
-  },
+  components: {},
   data () {
     return {}
   },