فهرست منبع

Merge branch 'master' of http://git.zthymaoyi.com/gongdc/gubi

# Conflicts:
#	unimall-admin/dist/static/css/chunk-0d12.fee324e7.css
#	unimall-admin/dist/static/css/chunk-451b.7473bdb6.css
#	unimall-admin/dist/static/css/chunk-4d5f.77f4eae2.css
#	unimall-admin/dist/static/css/chunk-57c5.dbff8ecc.css
#	unimall-admin/dist/static/css/chunk-6101.b8c1055c.css
#	unimall-admin/dist/static/css/chunk-6621.4c89550f.css
#	unimall-admin/dist/static/css/chunk-7311.2172b911.css
#	unimall-admin/dist/static/css/chunk-c1dc.15fc4fe5.css
#	unimall-admin/dist/static/css/chunk-d125.8c2c0059.css
#	unimall-admin/dist/static/css/chunk-f446.a46e7338.css
#	unimall-admin/dist/static/js/UZQo.d42af3a6.js
#	unimall-admin/dist/static/js/chunk-04d5.bd811a8c.js
#	unimall-admin/dist/static/js/chunk-0d12.8ed96eb9.js
#	unimall-admin/dist/static/js/chunk-17bc.7741fa37.js
#	unimall-admin/dist/static/js/chunk-1aa7.4d43bf42.js
#	unimall-admin/dist/static/js/chunk-22eb.c594be3e.js
#	unimall-admin/dist/static/js/chunk-3f3d.b7a30566.js
#	unimall-admin/dist/static/js/chunk-451b.54c91632.js
#	unimall-admin/dist/static/js/chunk-4d5f.e308c1e5.js
#	unimall-admin/dist/static/js/chunk-4f56.6b02ca42.js
#	unimall-admin/dist/static/js/chunk-6101.5ccab44f.js
#	unimall-admin/dist/static/js/chunk-6621.bed0a55e.js
#	unimall-admin/dist/static/js/chunk-6a9f.a6ceab0c.js
#	unimall-admin/dist/static/js/chunk-7311.23b2856c.js
#	unimall-admin/dist/static/js/chunk-c1dc.3b27b14d.js
#	unimall-admin/dist/static/js/chunk-d125.31b3aa5d.js
#	unimall-admin/dist/static/js/chunk-e67c.457d8830.js
#	unimall-admin/dist/static/js/chunk-elementUI.51ef68d6.js
#	unimall-admin/dist/static/js/chunk-f446.ac338e45.js
achao 1 سال پیش
والد
کامیت
436eeeedae
24فایلهای تغییر یافته به همراه957 افزوده شده و 703 حذف شده
  1. 1 1
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeSecondService.java
  2. 1 1
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeThreeService.java
  3. 2 1
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTransactionServiceImpl.java
  4. 20 1
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeThreeServiceImpl.java
  5. 4 2
      unimall-admin/config/dev.env.js
  6. BIN
      unimall-admin/dist/dist.zip
  7. 0 0
      unimall-admin/dist/index.html
  8. 68 57
      unimall-admin/src/api/gubi/transaction.js
  9. 219 112
      unimall-admin/src/router/index.js
  10. 111 96
      unimall-admin/src/router/route.json
  11. 132 130
      unimall-admin/src/store/modules/user.js
  12. 34 37
      unimall-admin/src/views/gubi/info/index.vue
  13. 126 129
      unimall-admin/src/views/gubi/priceHis/index.vue
  14. 63 58
      unimall-admin/src/views/gubi/transaction/index.vue
  15. 1 5
      unimall-admin/src/views/sys/admin.vue
  16. 1 1
      unimall-admin/src/views/sys/role.vue
  17. 10 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeThree.java
  18. 78 25
      yinyuan/components/yunmiao-jobSelect/yunmiao-jobSelect.vue
  19. 1 1
      yinyuan/config/index.js
  20. 23 17
      yinyuan/index.html
  21. 4 1
      yinyuan/manifest.json
  22. 0 6
      yinyuan/pages/index/index.vue
  23. 55 18
      yinyuan/pages/index/price.vue
  24. 3 4
      yinyuan/pages/login/login.vue

+ 1 - 1
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeSecondService.java

@@ -24,7 +24,7 @@ public interface IGubiTypeSecondService {
     public Boolean add(@NotNull @HttpParam(name = "gubiTypeSecond", type = HttpParamType.COMMON, description = "二级分类") GubiTypeSecond gubiTypeSecond,
                        @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId) throws ServiceException;
 
-    @HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeSecond:list", permissionParentName = "宠物管理", permissionName = "二级分类管理")
+    @HttpMethod(description = "列表")
     public Page<GubiTypeSecond> list(
             @HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
             @HttpParam(name = "typeId", type = HttpParamType.COMMON, description = "分类id") String typeId,

+ 1 - 1
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeThreeService.java

@@ -24,7 +24,7 @@ public interface IGubiTypeThreeService {
     public Boolean add(@NotNull @HttpParam(name = "gubiTypeThree", type = HttpParamType.COMMON, description = "分值信息") GubiTypeThree gubiTypeThree,
                        @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId) throws ServiceException;
 
-    @HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeThree:list", permissionParentName = "宠物管理", permissionName = "分值信息管理")
+    @HttpMethod(description = "列表")
     public Page<GubiTypeThree> list(
             @HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
             @HttpParam(name = "typeId", type = HttpParamType.COMMON, description = "分类id") String typeId,

+ 2 - 1
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTransactionServiceImpl.java

@@ -65,7 +65,7 @@ public class GubiTransactionServiceImpl implements IGubiTransactionService {
             wrapper.eq("number", number);
         }
         if (!StringUtils.isEmpty(grade)) {
-            wrapper.eq("grade", grade);
+            wrapper.like("grade", grade);
         }
         if (!StringUtils.isEmpty(collection)) {
             wrapper.eq("collection", collection);
@@ -95,6 +95,7 @@ public class GubiTransactionServiceImpl implements IGubiTransactionService {
             wrapper.eq("admin_id", adminId);
         }
         wrapper.eq("delete_flag", 0);
+        wrapper.orderBy("gmt_create",false);
         List<GubiTransaction> list = gubiTransactionMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
         if(!CollectionUtils.isEmpty(list)){
             for(int i=0;i<list.size();i++){

+ 20 - 1
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeThreeServiceImpl.java

@@ -3,11 +3,16 @@ package com.iotechn.unimall.admin.api.gubi.impl;
 import java.util.List;
 
 import com.iotechn.unimall.admin.api.gubi.IGubiTypeThreeService;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeInfo;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeSecond;
 import com.iotechn.unimall.data.domain.gubi.GubiTypeThree;
+import com.iotechn.unimall.data.mapper.gubi.GubiTypeInfoMapper;
+import com.iotechn.unimall.data.mapper.gubi.GubiTypeSecondMapper;
 import com.iotechn.unimall.data.mapper.gubi.GubiTypeThreeMapper;
 import org.apache.ibatis.session.RowBounds;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -30,7 +35,10 @@ import org.springframework.transaction.annotation.Transactional;
 public class GubiTypeThreeServiceImpl implements IGubiTypeThreeService {
     @Autowired
     private GubiTypeThreeMapper gubiTypeThreeMapper;
-
+    @Autowired
+    private GubiTypeInfoMapper gubiTypeInfoMapper;
+    @Autowired
+    private GubiTypeSecondMapper gubiTypeSecondMapper;
     @Override
     public Boolean add(GubiTypeThree gubiTypeThree, Long adminId) throws ServiceException {
         Date now = new Date();
@@ -109,6 +117,17 @@ public class GubiTypeThreeServiceImpl implements IGubiTypeThreeService {
         wrapper.eq("delete_flag", 0);
         wrapper.orderBy("postion");
         List<GubiTypeThree> list = gubiTypeThreeMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+       if(!CollectionUtils.isEmpty(list)){
+           for(int i=0;i<list.size();i++){
+               List<GubiTypeSecond> gubiTypeSeconds =  gubiTypeSecondMapper.selectList(new EntityWrapper<GubiTypeSecond>()
+                       .eq("id",list.get(i).getSecondId()));
+               List<GubiTypeInfo> gubiTypeInfos = gubiTypeInfoMapper.selectList(new EntityWrapper<GubiTypeInfo>()
+                       .eq("id",gubiTypeSeconds.get(0).getTypeId()));
+               list.get(i).setStrFlag(gubiTypeInfos.get(0).getTypeName()+"/"+gubiTypeSeconds.get(0).getSecondName()+"/"+list.get(i).getTypeId());
+               list.get(i).setIdstr(gubiTypeInfos.get(0).getId()+"/"+gubiTypeSeconds.get(0).getId()+"/"+list.get(i).getId());
+
+           }
+       }
         Integer count = gubiTypeThreeMapper.selectCount(wrapper);
         return new Page<GubiTypeThree>(list, page, limit, count);
     }

+ 4 - 2
unimall-admin/config/dev.env.js

@@ -1,6 +1,8 @@
 module.exports = {
     NODE_ENV: '"development"',
     ENV_CONFIG: '"dev"',
-    HOST: '"http://192.168.110.82:8181"',
-    BASE_API: '"http://192.168.110.82:8181/m.api"'
+    // HOST: '"http://192.168.110.82:8181"',
+    // BASE_API: '"http://192.168.110.82:8181/m.api"'
+    HOST: '"http://121.5.163.150:8181"',
+    BASE_API: '"http://121.5.163.150:8181/m.api"'
 }

BIN
unimall-admin/dist/dist.zip


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unimall-admin/dist/index.html


+ 68 - 57
unimall-admin/src/api/gubi/transaction.js

@@ -2,82 +2,93 @@ import request from '@/utils/request'
 
 // 查询交易记录列表
 export function listTransaction(query) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.gubi.gubiTransaction',
-      _mt: 'list',
-      ...query
-    }
-  })
+    return request({
+        method: 'get',
+        params: {
+            _gp: 'admin.gubi.gubiTransaction',
+            _mt: 'list',
+            ...query
+        }
+    })
 }
+export function loginRecord(query) {
+    return request({
+        method: 'get',
+        params: {
+            _gp: 'admin.log.logininfor',
+            _mt: 'list',
+            ...query
+        }
+    })
+}
+
 export function typeList(query) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.gubi.gubiTypeInfo',
-      _mt: 'listInfo',
-      ...query
-    }
-  })
+    return request({
+        method: 'get',
+        params: {
+            _gp: 'admin.gubi.gubiTypeInfo',
+            _mt: 'listInfo',
+            ...query
+        }
+    })
 }
 
 // 查询交易记录详细
 export function getTransaction(id) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.gubi.gubiTransaction',
-      _mt: 'get',
-      id: id
-    }
-  })
+    return request({
+        method: 'get',
+        params: {
+            _gp: 'admin.gubi.gubiTransaction',
+            _mt: 'get',
+            id: id
+        }
+    })
 }
 
 // 新增交易记录
 export function addTransaction(data) {
-  return request({
-    method: 'post',
-    params: {
-      _gp: 'admin.gubi.gubiTransaction',
-      _mt: 'add',
-      gubiTransaction: data
-    }
-  })
+    return request({
+        method: 'post',
+        params: {
+            _gp: 'admin.gubi.gubiTransaction',
+            _mt: 'add',
+            gubiTransaction: data
+        }
+    })
 }
 
 // 修改交易记录
 export function updateTransaction(data) {
-  return request({
-    method: 'post',
-    params: {
-      _gp: 'admin.gubi.gubiTransaction',
-      _mt: 'update',
-      gubiTransaction: data
-    }
-  })
+    return request({
+        method: 'post',
+        params: {
+            _gp: 'admin.gubi.gubiTransaction',
+            _mt: 'update',
+            gubiTransaction: data
+        }
+    })
 }
 
 // 删除交易记录
 export function delTransaction(id) {
-  return request({
-    method: 'post',
-    params: {
-      _gp: 'admin.gubi.gubiTransaction',
-      _mt: 'delete',
-      id: id
-    }
-  })
+    return request({
+        method: 'post',
+        params: {
+            _gp: 'admin.gubi.gubiTransaction',
+            _mt: 'delete',
+            id: id
+        }
+    })
 }
 
 // 导出交易记录
 export function exportTransaction(query) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.gubi.gubiTransaction',
-      _mt: 'export',
-      ...query
-    }
-  })
-}
+    return request({
+        method: 'get',
+        params: {
+            _gp: 'admin.gubi.gubiTransaction',
+            _mt: 'export',
+            ...query
+        }
+    })
+}

+ 219 - 112
unimall-admin/src/router/index.js

@@ -25,124 +25,231 @@ import Layout from '@/views/layout/Layout'
     noCache: true                if true ,the page will no be cached(default is false)
   }
 **/
-export const constantRouterMap = [
-  {
-    path: '/redirect',
-    component: Layout,
-    hidden: true,
-    children: [
-      {
-        path: '/redirect/:path*',
-        component: () => import('@/views/redirect/index')
-      }
-    ]
-  },
-  {
-    path: '/login',
-    component: () => import('@/views/login/index'),
-    hidden: true
-  },
-  {
-    path: '/auth-redirect',
-    component: () => import('@/views/login/authredirect'),
-    hidden: true
-  },
-  {
-    path: '/404',
-    component: () => import('@/views/errorPage/404'),
-    hidden: true
-  },
-  {
-    path: '/401',
-    component: () => import('@/views/errorPage/401'),
-    hidden: true
-  },
-  {
-    path: '',
-    component: Layout,
-    redirect: 'dashboard',
-    children: [
-      {
-        path: 'dashboard',
-        component: () => import('@/views/dashboard/index'),
-        name: 'Dashboard',
-        meta: { title: 'dashboard', icon: 'dashboard', noCache: true }
-      }
-    ]
-  },
-  {
-    path: '/info',
-    component: Layout,
-    redirect: 'info',
-    children: [
-      {
-        path: 'info',
-        component: () => import('@/views/gubi/info'),
-        name: 'Dashboard',
-        meta: { title: '分类管理', icon: 'dashboard', noCache: true }
-      }
-    ]
-  },
-  {
-    path: '/three',
-    component: Layout,
-    redirect: 'three',
-    children: [
-      {
-        path: 'three',
-        component: () => import('@/views/gubi/three/index1'),
-        name: 'three',
-        meta: { title: '币种信息', icon: 'dashboard', noCache: true }
-      }
-    ]
-  },
-  {
-    path: '/priceHis',
-    component: Layout,
-    redirect: 'priceHis',
-    children: [
-      {
-        path: 'priceHis',
-        component: () => import('@/views/gubi/priceHis'),
-        name: 'priceHis',
-        meta: { title: '历史价格', icon: 'dashboard', noCache: true }
-      }
-    ]
-  },
-  {
-    path: '/transaction',
-    component: Layout,
-    redirect: 'transaction',
-    children: [
-      {
-        path: 'transaction',
-        component: () => import('@/views/gubi/transaction'),
-        name: 'transaction',
-        meta: { title: '交易记录', icon: 'dashboard', noCache: true }
-      }
-    ]
-  }
+
+console.log('user', localStorage.getItem('user'))
+export const constantRouterMap = [{
+        path: '/redirect',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: '/redirect/:path*',
+            component: () =>
+                import ('@/views/redirect/index')
+        }]
+    },
+    {
+        path: '/login',
+        component: () =>
+            import ('@/views/login/index'),
+        hidden: true
+    },
+    {
+        path: '/auth-redirect',
+        component: () =>
+            import ('@/views/login/authredirect'),
+        hidden: true
+    },
+    {
+        path: '/404',
+        component: () =>
+            import ('@/views/errorPage/404'),
+        hidden: true
+    },
+    {
+        path: '/401',
+        component: () =>
+            import ('@/views/errorPage/401'),
+        hidden: true
+    },
+    {
+        path: '',
+        component: Layout,
+        redirect: 'dashboard',
+        children: [{
+            path: 'dashboard',
+            component: () =>
+                import ('@/views/dashboard/index'),
+            name: 'Dashboard',
+            meta: { title: 'dashboard', icon: 'dashboard', noCache: true }
+        }]
+    },
+    {
+        path: '/info',
+        component: Layout,
+        redirect: 'info',
+        children: [{
+            path: 'info',
+            component: () =>
+                import ('@/views/gubi/info'),
+            name: 'Dashboard',
+            meta: { title: '分类管理', icon: 'dashboard', noCache: true }
+        }],
+        hidden: localStorage.getItem('user') == 'xinxi' ? true : false
+    },
+    {
+        path: '/three',
+        component: Layout,
+        redirect: 'three',
+        children: [{
+            path: 'three',
+            component: () =>
+                import ('@/views/gubi/three/index1'),
+            name: 'three',
+            meta: { title: '币种信息', icon: 'dashboard', noCache: true }
+        }],
+        hidden: localStorage.getItem('user') == 'xinxi' ? true : false
+    },
+    {
+        path: '/priceHis',
+        component: Layout,
+        redirect: 'priceHis',
+        children: [{
+            path: 'priceHis',
+            component: () =>
+                import ('@/views/gubi/priceHis'),
+            name: 'priceHis',
+            meta: { title: '历史价格', icon: 'dashboard', noCache: true }
+        }],
+        hidden: localStorage.getItem('user') == 'xinxi' ? true : false
+    },
+    {
+        path: '/transaction',
+        component: Layout,
+        redirect: 'transaction',
+        children: [{
+            path: 'transaction',
+            component: () =>
+                import ('@/views/gubi/transaction'),
+            name: 'transaction',
+            meta: { title: '交易记录', icon: 'dashboard', noCache: true }
+        }]
+    },
+    {
+        path: '/loginRecord',
+        component: Layout,
+        redirect: 'loginRecord',
+        children: [{
+            path: 'loginRecord',
+            component: () =>
+                import ('@/views/gubi/loginRecord'),
+            name: 'loginRecord',
+            meta: { title: '登录记录', icon: 'dashboard', noCache: true }
+        }],
+        hidden: localStorage.getItem('user') == 'xinxi' ? true : false
+    }
 ]
 
 export default new Router({
-  mode: 'history',
-  scrollBehavior: () => ({ y: 0 }),
-  routes: constantRouterMap
+    mode: 'history',
+    scrollBehavior: () => ({ y: 0 }),
+    routes: constantRouterMap
 })
 
 const parseJson = () => {
-  const mapArray = routeJson
-  for (let i = 0; i < mapArray.length; i++) {
-    const item = mapArray[i]
-    item.component = Layout
-    if (item.children && item.children.length > 0) {
-      for (let j = 0; j < item.children.length; j++) {
-        const childrenItem = item.children[j]
-        childrenItem.component = () => import(`@/views${childrenItem.page}`)
-      }
+    const mapArray = [{
+            'redirect': 'noredirect',
+            'path': '/sys',
+            'children': [{
+                'path': 'admin',
+                'meta': {
+                    'noCache': true,
+                    'icon': 'admin',
+                    'perms': [
+                        'admin:admin:list',
+                        'admin:admin:create',
+                        'admin:admin:update',
+                        'admin:admin:delete'
+                    ],
+                    'title': '会员'
+                },
+                'name': 'admin',
+                'page': '/sys/admin'
+            }, {
+                'path': 'role',
+                'meta': {
+                    'noCache': true,
+                    'icon': 'role',
+                    'perms': [
+                        'admin:role:list',
+                        'admin:role:create',
+                        'admin:role:delete',
+                        'admin:role:update',
+                        'admin:role:permissionList',
+                        'admin:permission:list'
+                    ],
+                    'title': '角色管理'
+                },
+                'name': 'role',
+                'page': '/sys/role'
+            }],
+            'meta': {
+                'icon': 'sys',
+                'title': '会员管理'
+            },
+            'name': 'sysManage',
+            'alwaysShow': true,
+            hidden: localStorage.getItem('user') == 'xinxi' ? true : false
+        },
+        {
+            'redirect': 'noredirect',
+            'name': 'sysLog',
+            'path': '/log',
+            'meta': {
+                'icon': 'log',
+                'title': '日志管理'
+            },
+            'alwaysShow': true,
+            'children': [{
+                'path': 'logininfor',
+                'name': 'logininfor',
+                'page': '/log/logininfor',
+                'meta': {
+                    'title': '登陆日志',
+                    'icon': 'logininfor',
+                    'noCache': true,
+                    'perms': [
+                        'log:logininfor:list',
+                        'log:logininfor:create',
+                        'log:logininfor:delete',
+                        'log:logininfor:update'
+                    ]
+                }
+            }],
+            hidden: localStorage.getItem('user') == 'xinxi' ? true : false
+        },
+        {
+            'redirect': 'noredirect',
+            'path': '/profile',
+            'hidden': true,
+            'children': [{
+                'path': 'password',
+                'meta': {
+                    'noCache': true,
+                    'title': '修改密码'
+                },
+                'name': 'password',
+                'page': '/profile/password'
+            }],
+            'alwaysShow': true
+        },
+        {
+            'redirect': '/404',
+            'path': '*',
+            'hidden': true
+        }
+    ]
+    for (let i = 0; i < mapArray.length; i++) {
+        const item = mapArray[i]
+        item.component = Layout
+        if (item.children && item.children.length > 0) {
+            for (let j = 0; j < item.children.length; j++) {
+                const childrenItem = item.children[j]
+                childrenItem.component = () =>
+                    import (`@/views${childrenItem.page}`)
+            }
+        }
     }
-  }
-  return mapArray
+    return mapArray
 }
 
-export const asyncRouterMap = parseJson()
+export const asyncRouterMap = parseJson()

+ 111 - 96
unimall-admin/src/router/route.json

@@ -1,98 +1,113 @@
 [
-	
-	{
-		"redirect": "noredirect",
-		"path": "/sys",
-		"children": [
-			{
-				"path": "admin",
-				"meta": {
-					"noCache": true,
-					"icon": "admin",
-					"perms": [
-						"admin:admin:list",
-						"admin:admin:create",
-						"admin:admin:update",
-						"admin:admin:delete"
-					],
-					"title": "会员"
-				},
-				"name": "admin",
-				"page": "/sys/admin"
-			},{
-				"path": "role",
-				"meta": {
-					"noCache": true,
-					"icon": "role",
-					"perms": [
-						"admin:role:list",
-						"admin:role:create",
-						"admin:role:delete",
-						"admin:role:update",
-						"admin:role:permissionList",
-						"admin:permission:list"
-					],
-					"title": "角色管理"
-				},
-				"name": "role",
-				"page": "/sys/role"
-			}
-		],
-		"meta": {
-			"icon": "sys",
-			"title": "会员管理"
-		},
-		"name": "sysManage",
-		"alwaysShow": true
-	},
-	{
-		"redirect": "noredirect",
-		"name": "sysLog",
-		"path": "/log",
-		"meta": {
-			"icon": "log",
-			"title": "日志管理"
-		},
-		"alwaysShow": true,
-		"children": [
-			{
-				"path": "logininfor",
-				"name": "logininfor",
-				"page": "/log/logininfor",
-				"meta": {
-					"title": "登陆日志",
-					"icon": "logininfor",
-					"noCache": true,
-					"perms": [
-						"log:logininfor:list",
-						"log:logininfor:create",
-						"log:logininfor:delete",
-						"log:logininfor:update"
-					]
-				}
-			}
-		]
-	},
-	{
-		"redirect": "noredirect",
-		"path": "/profile",
-		"hidden": true,
-		"children": [
-			{
-				"path": "password",
-				"meta": {
-					"noCache": true,
-					"title": "修改密码"
-				},
-				"name": "password",
-				"page": "/profile/password"
-			}
-		],
-		"alwaysShow": true
-	},
-	{
-		"redirect": "/404",
-		"path": "*",
-		"hidden": true
-	}
+
+    {
+        "redirect": "noredirect",
+        "path": "/tools",
+        "children": [{
+            "path": "generator",
+            "meta": {
+                "noCache": true,
+                "perms": [
+                    ""
+                ],
+                "title": "代码生成器"
+            },
+            "name": "tools",
+            "page": "/tools/gen"
+        }],
+        "meta": {
+            "icon": "tools",
+            "title": "实用工具"
+        },
+        "name": "toolsManage",
+        "alwaysShow": true
+    }, {
+        "redirect": "noredirect",
+        "path": "/sys",
+        "children": [{
+            "path": "admin",
+            "meta": {
+                "noCache": true,
+                "icon": "admin",
+                "perms": [
+                    "admin:admin:list",
+                    "admin:admin:create",
+                    "admin:admin:update",
+                    "admin:admin:delete"
+                ],
+                "title": "会员"
+            },
+            "name": "admin",
+            "page": "/sys/admin"
+        }, {
+            "path": "role",
+            "meta": {
+                "noCache": true,
+                "icon": "role",
+                "perms": [
+                    "admin:role:list",
+                    "admin:role:create",
+                    "admin:role:delete",
+                    "admin:role:update",
+                    "admin:role:permissionList",
+                    "admin:permission:list"
+                ],
+                "title": "角色管理"
+            },
+            "name": "role",
+            "page": "/sys/role"
+        }],
+        "meta": {
+            "icon": "sys",
+            "title": "会员管理"
+        },
+        "name": "sysManage",
+        "alwaysShow": true
+    },
+    {
+        "redirect": "noredirect",
+        "name": "sysLog",
+        "path": "/log",
+        "meta": {
+            "icon": "log",
+            "title": "日志管理"
+        },
+        "alwaysShow": true,
+        "children": [{
+            "path": "logininfor",
+            "name": "logininfor",
+            "page": "/log/logininfor",
+            "meta": {
+                "title": "登陆日志",
+                "icon": "logininfor",
+                "noCache": true,
+                "perms": [
+                    "log:logininfor:list",
+                    "log:logininfor:create",
+                    "log:logininfor:delete",
+                    "log:logininfor:update"
+                ]
+            }
+        }]
+    },
+    {
+        "redirect": "noredirect",
+        "path": "/profile",
+        "hidden": true,
+        "children": [{
+            "path": "password",
+            "meta": {
+                "noCache": true,
+                "title": "修改密码"
+            },
+            "name": "password",
+            "page": "/profile/password"
+        }],
+        "alwaysShow": true
+    },
+    {
+        "redirect": "/404",
+        "path": "*",
+        "hidden": true
+    }
 ]

+ 132 - 130
unimall-admin/src/store/modules/user.js

@@ -2,146 +2,148 @@ import { loginByUsername, logout, getUserInfo } from '@/api/login'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 
 const user = {
-  state: {
-    user: '',
-    status: '',
-    code: '',
-    token: getToken(),
-    name: '',
-    avatar: '',
-    introduction: '',
-    roles: [],
-    perms: [],
-    setting: {
-      articlePlatform: []
-    }
-  },
-
-  mutations: {
-    SET_CODE: (state, code) => {
-      state.code = code
-    },
-    SET_TOKEN: (state, token) => {
-      state.token = token
-    },
-    SET_INTRODUCTION: (state, introduction) => {
-      state.introduction = introduction
-    },
-    SET_SETTING: (state, setting) => {
-      state.setting = setting
-    },
-    SET_STATUS: (state, status) => {
-      state.status = status
-    },
-    SET_NAME: (state, name) => {
-      state.name = name
+    state: {
+        user: '',
+        status: '',
+        code: '',
+        token: getToken(),
+        name: '',
+        avatar: '',
+        introduction: '',
+        roles: [],
+        perms: [],
+        setting: {
+            articlePlatform: []
+        }
     },
-    SET_AVATAR: (state, avatar) => {
-      state.avatar = avatar
-    },
-    SET_ROLES: (state, roles) => {
-      state.roles = roles
-    },
-    SET_PERMS: (state, perms) => {
-      state.perms = perms
-    }
-  },
 
-  actions: {
-    // 用户名登录
-    LoginByUsername({ commit }, userInfo) {
-      const username = userInfo.username.trim()
-      return new Promise((resolve, reject) => {
-        loginByUsername(username, userInfo.password, userInfo.verifyCode).then(response => {
-          const token = response.data.data
-          commit('SET_TOKEN', token)
-          setToken(token)
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
+    mutations: {
+        SET_CODE: (state, code) => {
+            state.code = code
+        },
+        SET_TOKEN: (state, token) => {
+            state.token = token
+        },
+        SET_INTRODUCTION: (state, introduction) => {
+            state.introduction = introduction
+        },
+        SET_SETTING: (state, setting) => {
+            state.setting = setting
+        },
+        SET_STATUS: (state, status) => {
+            state.status = status
+        },
+        SET_NAME: (state, name) => {
+            state.name = name
+        },
+        SET_AVATAR: (state, avatar) => {
+            state.avatar = avatar
+        },
+        SET_ROLES: (state, roles) => {
+            state.roles = roles
+        },
+        SET_PERMS: (state, perms) => {
+            state.perms = perms
+        }
     },
 
-    // 获取用户信息
-    GetUserInfo({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        getUserInfo(state.token).then(response => {
-          const data = response.data.data
+    actions: {
+        // 用户名登录
+        LoginByUsername({ commit }, userInfo) {
+            const username = userInfo.username.trim()
+            return new Promise((resolve, reject) => {
+                loginByUsername(username, userInfo.password, userInfo.verifyCode).then(response => {
+                    const token = response.data.data
+                    commit('SET_TOKEN', token)
+                    setToken(token)
+                    resolve()
+                }).catch(error => {
+                    reject(error)
+                })
+            })
+        },
 
-          if (data.perms && data.perms.length > 0) { // 验证返回的perms是否是一个非空数组
-            commit('SET_PERMS', data.perms)
-          } else {
-            reject('getInfo: perms must be a non-null array !')
-          }
+        // 获取用户信息
+        GetUserInfo({ commit, state }) {
+            return new Promise((resolve, reject) => {
+                getUserInfo(state.token).then(response => {
+                    debugger
+                    const data = response.data.data
 
-          commit('SET_ROLES', data.roles)
-          commit('SET_NAME', data.name)
-          commit('SET_AVATAR', data.avatar)
-          commit('SET_INTRODUCTION', data.introduction)
-          resolve(response)
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
+                    if (data.perms && data.perms.length > 0) { // 验证返回的perms是否是一个非空数组
+                        commit('SET_PERMS', data.perms)
+                    } else {
+                        reject('getInfo: perms must be a non-null array !')
+                    }
+                    localStorage.setItem('user', data.username)
+                    commit('SET_ROLES', data.roles)
+                    commit('SET_NAME', data.name)
+                    commit('SET_AVATAR', data.avatar)
+                    commit('SET_INTRODUCTION', data.introduction)
+                    resolve(response)
+                }).catch(error => {
+                    reject(error)
+                })
+            })
+        },
 
-    // 第三方验证登录
-    // LoginByThirdparty({ commit, state }, code) {
-    //   return new Promise((resolve, reject) => {
-    //     commit('SET_CODE', code)
-    //     loginByThirdparty(state.status, state.email, state.code).then(response => {
-    //       commit('SET_TOKEN', response.data.token)
-    //       setToken(response.data.token)
-    //       resolve()
-    //     }).catch(error => {
-    //       reject(error)
-    //     })
-    //   })
-    // },
+        // 第三方验证登录
+        // LoginByThirdparty({ commit, state }, code) {
+        //   return new Promise((resolve, reject) => {
+        //     commit('SET_CODE', code)
+        //     loginByThirdparty(state.status, state.email, state.code).then(response => {
+        //       commit('SET_TOKEN', response.data.token)
+        //       setToken(response.data.token)
+        //       resolve()
+        //     }).catch(error => {
+        //       reject(error)
+        //     })
+        //   })
+        // },
 
-    // 登出
-    LogOut({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        logout(state.token).then(() => {
-          commit('SET_TOKEN', '')
-          commit('SET_ROLES', [])
-          commit('SET_PERMS', [])
-          removeToken()
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
+        // 登出
+        LogOut({ commit, state }) {
+            return new Promise((resolve, reject) => {
+                logout(state.token).then(() => {
+                    commit('SET_TOKEN', '')
+                    commit('SET_ROLES', [])
+                    commit('SET_PERMS', [])
+                    removeToken()
+                    localStorage.clear()
+                    resolve()
+                }).catch(error => {
+                    reject(error)
+                })
+            })
+        },
 
-    // 前端 登出
-    FedLogOut({ commit }) {
-      return new Promise(resolve => {
-        commit('SET_TOKEN', '')
-        removeToken()
-        resolve()
-      })
-    },
+        // 前端 登出
+        FedLogOut({ commit }) {
+            return new Promise(resolve => {
+                commit('SET_TOKEN', '')
+                removeToken()
+                resolve()
+            })
+        },
 
-    // 动态修改权限
-    ChangeRoles({ commit, dispatch }, role) {
-      return new Promise(resolve => {
-        commit('SET_TOKEN', role)
-        setToken(role)
-        getUserInfo(role).then(response => {
-          const data = response.data
-          commit('SET_ROLES', data.roles)
-          commit('SET_PERMS', data.perms)
-          commit('SET_NAME', data.name)
-          commit('SET_AVATAR', data.avatar)
-          commit('SET_INTRODUCTION', data.introduction)
-          dispatch('GenerateRoutes', data) // 动态修改权限后 重绘侧边菜单
-          resolve()
-        })
-      })
+        // 动态修改权限
+        ChangeRoles({ commit, dispatch }, role) {
+            return new Promise(resolve => {
+                commit('SET_TOKEN', role)
+                setToken(role)
+                getUserInfo(role).then(response => {
+                    const data = response.data
+                    commit('SET_ROLES', data.roles)
+                    commit('SET_PERMS', data.perms)
+                    commit('SET_NAME', data.name)
+                    commit('SET_AVATAR', data.avatar)
+                    commit('SET_INTRODUCTION', data.introduction)
+                    dispatch('GenerateRoutes', data) // 动态修改权限后 重绘侧边菜单
+                    resolve()
+                })
+            })
+        }
     }
-  }
 }
 
-export default user
+export default user

+ 34 - 37
unimall-admin/src/views/gubi/info/index.vue

@@ -665,6 +665,8 @@ export default {
     getList() { // 接口方法
       debugger
       this.loading = true
+      this.sum = 0
+      this.num = 0
       // this.$api.amys.shopGroup.list().then(res => {
       //   if (res.data && res.status == "00000") {
       //     this.arrList = this.resFormat(res.data) //搜索一级分类
@@ -691,30 +693,29 @@ export default {
       //   // this.total = response.data.data.count
       //   // this.loading = false;
       // })
-      listInfo().then(response => {
-          // this.makeData(response.data.data)
-          this.first = response.data.data.items
-          this.arrList = this.resFormat(this.first) // 搜索一级分类
-          this.loading = false;
-          listSecond({
-            page: 1,
-            limit: 100,
-            typeId: this.first[0].id,
-      },).then(response => {
+      listInfo({ page: 1,
+        limit: 1000 }).then(response => {
+        // this.makeData(response.data.data)
+        this.first = response.data.data.items
+        this.arrList = this.resFormat(this.first) // 搜索一级分类
+        this.loading = false
+        listSecond({
+          page: 1,
+          limit: 1000,
+          typeId: this.first[0].id
+        }, ).then(response => {
           // this.makeData(response.data.data)
           this.second = response.data.data.items
           listThree({
             page: 1,
-            limit: 100,
-            secondId: this.second[0].id,
-      },).then(response => {
+            limit: 1000,
+            secondId: this.second[0].id
+          }, ).then(response => {
           // this.makeData(response.data.data)
-          this.tertiary = response.data.data.items
-         
-        });
-         
-        });
-        });
+            this.tertiary = response.data.data.items
+          })
+        })
+      })
     },
     makeData(val) {
       for (let i = 0; i < val.length; i++) {
@@ -750,38 +751,34 @@ export default {
         this.selectOneType = this.arrList[index]
         console.log(this.selectOneType)
         listSecond({
-            page: 1,
-            limit: 100,
-            typeId: this.selectOneType.id,
-      },).then(response => {
+          page: 1,
+          limit: 100,
+          typeId: this.selectOneType.id
+        }, ).then(response => {
           // this.makeData(response.data.data)
           this.sum = 0
           this.second = response.data.data.items
           listThree({
             page: 1,
             limit: 100,
-            secondId: this.second[0].id,
-      },).then(response => {
+            secondId: this.second[0].id
+          }, ).then(response => {
           // this.makeData(response.data.data)
-          this.tertiary = response.data.data.items
-         
-        });
-         
-        });
+            this.tertiary = response.data.data.items
+          })
+        })
         // console.log(this.first, '一级分类')
-
       } else {
         this.sum = index
         this.selectTwoType = this.second[index]
         listThree({
-            page: 1,
-            limit: 100,
-            secondId: this.selectTwoType.id,
-      },).then(response => {
+          page: 1,
+          limit: 100,
+          secondId: this.selectTwoType.id
+        }, ).then(response => {
           // this.makeData(response.data.data)
           this.tertiary = response.data.data.items
-         
-        });
+        })
       }
       // this.listType()
     },

+ 126 - 129
unimall-admin/src/views/gubi/priceHis/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+    <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
       <!-- <el-form-item label="" prop="companyId">
         <el-input
           v-model="queryParams.companyId"
@@ -20,12 +20,14 @@
         />
       </el-form-item> -->
       <el-form-item label="时间" prop="collection">
-        <el-date-picker clearable size="small" style="width: 200px"
+        <el-date-picker
           v-model="queryParams.collection"
+          clearable
+          size="small"
+          style="width: 200px"
           type="date"
           value-format="yyyy-MM-dd"
-          placeholder="选择时间">
-        </el-date-picker>
+          placeholder="选择时间"/>
       </el-form-item>
       <el-form-item label="价钱" prop="price">
         <el-input
@@ -35,8 +37,8 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-     </el-form-item>
-         <!-- <el-form-item label="状态" prop="status">
+      </el-form-item>
+      <!-- <el-form-item label="状态" prop="status">
         <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
           <el-option label="请选择字典生成" value="" />
         </el-select>
@@ -88,50 +90,50 @@
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
-        type="primary"
-        size="mini"
-        @click="sx"
-      >筛选</el-button>
+          type="primary"
+          size="mini"
+          @click="sx"
+        >筛选</el-button>
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
+          v-permission="['gubi:priceHis:add']"
           type="primary"
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-permission="['gubi:priceHis:add']"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
+          v-permission="['gubi:priceHis:edit']"
+          :disabled="single"
           type="success"
           icon="el-icon-edit"
           size="mini"
-          :disabled="single"
           @click="handleUpdate"
-          v-permission="['gubi:priceHis:edit']"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
+          v-permission="['gubi:priceHis:remove']"
+          :disabled="multiple"
           type="danger"
           icon="el-icon-delete"
           size="mini"
-          :disabled="multiple"
           @click="handleDelete"
-          v-permission="['gubi:priceHis:remove']"
         >删除</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
+          v-permission="['gubi:priceHis:export']"
           type="warning"
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-permission="['gubi:priceHis:export']"
         >导出</el-button>
       </el-col>
     </el-row>
@@ -141,6 +143,7 @@
       <!-- <el-table-column label="" align="center" prop="id" />
       <el-table-column label="" align="center" prop="companyId" /> -->
       <!-- <el-table-column label="分值id" align="center" prop="orderId" /> -->
+      <el-table-column label="分类" align="center" prop="strFlag" />
       <el-table-column label="时间" align="center" prop="collection" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.collection).split(" ")[0] }}</span>
@@ -164,23 +167,23 @@
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
+            v-permission="['gubi:priceHis:edit']"
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-permission="['gubi:priceHis:edit']"
           >修改</el-button>
           <el-button
+            v-permission="['gubi:priceHis:remove']"
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-permission="['gubi:priceHis:remove']"
           >删除</el-button>
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -200,45 +203,44 @@
         </el-form-item> -->
         <el-form-item label="一级分类" prop="">
           <!-- <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div> -->
-          <el-select v-model="value1" filterable placeholder="请选择" @change="type1" style="width: 100%">
+          <el-select v-model="value1" filterable placeholder="请选择" style="width: 100%" @change="type1">
             <el-option
               v-for="item in first"
               :key="item.id"
               :label="item.typeName"
-              :value="item.id">
-            </el-option>
+              :value="item.id"/>
           </el-select>
         </el-form-item>
         <el-form-item label="二级分类" prop="">
           <!-- <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div> -->
-          <el-select v-model="value2" filterable placeholder="请选择" @change="type2" style="width: 100%">
+          <el-select v-model="value2" filterable placeholder="请选择" style="width: 100%" @change="type2">
             <el-option
               v-for="item in second"
               :key="item.id"
               :label="item.secondName"
-              :value="item.id">
-            </el-option>
+              :value="item.id"/>
           </el-select>
         </el-form-item>
         <el-form-item label="三级分类" prop="">
           <!-- <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div> -->
-          <el-select v-model="value3" filterable placeholder="请选择" @change="type33" style="width: 100%">
+          <el-select v-model="value3" filterable placeholder="请选择" style="width: 100%" @change="type33">
             <el-option
               v-for="item in tertiary"
               :key="item.id"
               :label="item.typeId"
-              :value="item.id">
-            </el-option>
+              :value="item.id"/>
           </el-select>
         </el-form-item>
-    
+
         <el-form-item label="时间" prop="collection">
-          <el-date-picker clearable size="small" style="width: 100%"
+          <el-date-picker
             v-model="form.collection"
+            clearable
+            size="small"
+            style="width: 100%"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择时间">
-          </el-date-picker>
+            placeholder="选择时间"/>
         </el-form-item>
         <el-form-item label="价钱(万元)" prop="price">
           <el-input v-model="form.price" placeholder="请输入价钱" />
@@ -289,7 +291,7 @@
       </div>
     </el-dialog> -->
     <el-dialog :visible.sync="dialogFormVisible1" title="分类">
-      
+
       <!-- <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"/> -->
       <div>
         <div style="margin-bottom:20px">一级分类</div>
@@ -298,8 +300,7 @@
             v-for="item in first"
             :key="item.id"
             :label="item.typeName"
-            :value="item.id">
-          </el-option>
+            :value="item.id"/>
         </el-select>
       </div>
       <div style="margin-top:20px">
@@ -309,8 +310,7 @@
             v-for="item in second"
             :key="item.id"
             :label="item.secondName"
-            :value="item.id">
-          </el-option>
+            :value="item.id"/>
         </el-select>
       </div>
       <div style="margin-top:20px">
@@ -320,8 +320,7 @@
             v-for="item in tertiary"
             :key="item.id"
             :label="item.typeId"
-            :value="item.id">
-          </el-option>
+            :value="item.id"/>
         </el-select>
       </div>
       <div slot="footer" class="dialog-footer">
@@ -336,25 +335,25 @@
 import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo, clearCache } from '@/api/gubi/info'
 import { listThree, getThree, delThree, addThree, updateThree, exportThree } from '@/api/gubi/three'
 import { listSecond, getSecond, delSecond, addSecond, updateSecond, exportSecond } from '@/api/gubi/second'
-import { listPriceHis, getPriceHis, delPriceHis, addPriceHis, updatePriceHis, exportPriceHis } from "@/api/gubi/priceHis";
-import { listTransaction, getTransaction, delTransaction, addTransaction, updateTransaction, exportTransaction, typeList } from "@/api/gubi/transaction";
+import { listPriceHis, getPriceHis, delPriceHis, addPriceHis, updatePriceHis, exportPriceHis } from '@/api/gubi/priceHis'
+import { listTransaction, getTransaction, delTransaction, addTransaction, updateTransaction, exportTransaction, typeList } from '@/api/gubi/transaction'
 export default {
   data() {
     return {
       first: [],
-      second:[],
-      tertiary:[],
+      second: [],
+      tertiary: [],
       value1: '',
-        value2: '',
-        value3: '',
-      dialogFormVisible1:false,
+      value2: '',
+      value3: '',
+      dialogFormVisible1: false,
       defaultProps: {
         children: 'children',
         label: 'typeName'
       },
       data: [],
       dialogFormVisible: false,
-      orderName: "",
+      orderName: '',
       // 遮罩层
       loading: true,
       // 选中数组
@@ -368,7 +367,7 @@ export default {
       // 价格历史表格数据
       priceHisList: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -391,48 +390,46 @@ export default {
       // 表单校验
       rules: {
         deleteFlag: [
-          { required: true, message: "0:否(默认) 1:是不能为空", trigger: "blur" }
-        ],      }
-    };
+          { required: true, message: '0:否(默认) 1:是不能为空', trigger: 'blur' }
+        ] }
+    }
   },
   created() {
-    this.getList();
+    this.getList()
   },
   methods: {
     typeConfirm1() {
       this.dialogFormVisible1 = false
       this.handleQuery()
     },
-    type1(e){
+    type1(e) {
       this.value2=''
       this.value3=''
       console.log(e)
-    listSecond({
-            page: 1,
-            limit: 100,
-            typeId: e,
-      },).then(response => {
+      listSecond({
+        page: 1,
+        limit: 100,
+        typeId: e
+      }, ).then(response => {
         this.second = response.data.data.items
-
-      });
+      })
     },
-    type2(e){
+    type2(e) {
       console.log(e)
       this.value3=''
       listThree({
-            page: 1,
-            limit: 100,
-            secondId: e,
-      },).then(response => {
-          this.tertiary = response.data.data.items
-         
-        });
+        page: 1,
+        limit: 100,
+        secondId: e
+      }, ).then(response => {
+        this.tertiary = response.data.data.items
+      })
     },
-    type3(e){
+    type3(e) {
       console.log(e)
       this.queryParams.orderId = e
     },
-    type33(e){
+    type33(e) {
       console.log(e)
       this.form.orderId = e
     },
@@ -440,10 +437,10 @@ export default {
       this.dialogFormVisible1 = true
     },
     handleNodeClick(data) {
-      console.log(data);
+      console.log(data)
       this.form.orderId = data.id
       this.orderName = data.typeName
-      this.urlPath = data.urlPath.split(",")
+      this.urlPath = data.urlPath.split(',')
     },
     typeConfirm() {
       this.dialogFormVisible = false
@@ -453,15 +450,15 @@ export default {
     },
     /** 查询价格历史列表 */
     getList() {
-      this.loading = true;
+      this.loading = true
       listInfo().then(response => {
-          this.first = response.data.data.items
-        });
+        this.first = response.data.data.items
+      })
       listPriceHis(this.queryParams).then(response => {
         this.priceHisList = response.data.data.items
         this.total = response.data.data.count
-        this.loading = false;
-      });
+        this.loading = false
+      })
       // typeList().then(response => {
       //   this.makeData(response.data.data)
       // });
@@ -488,8 +485,8 @@ export default {
     // },
     // 取消按钮
     cancel() {
-      this.open = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
     // 表单重置
     reset() {
@@ -499,26 +496,26 @@ export default {
         orderId: undefined,
         collection: undefined,
         price: undefined,
-        status: "0",
+        status: '0',
         deleteFlag: undefined,
         gmtCreate: undefined,
         gmtUpdate: undefined,
         userId: undefined,
         adminId: undefined
-      };
-      this.resetForm("form");
+      }
+      this.resetForm('form')
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.queryParams.orderId = '';
-      this.resetForm("queryForm");
+      this.queryParams.orderId = ''
+      this.resetForm('queryForm')
 
-      this.handleQuery();
+      this.handleQuery()
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
@@ -528,76 +525,76 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加价格历史";
+      this.reset()
+      this.open = true
+      this.title = '添加价格历史'
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
-      this.reset();
+      this.reset()
       const id = row.id || this.ids.join(',')
       getPriceHis(id).then(response => {
         this.form = response.data.data
-        this.form.collection = new Date(response.data.data.collection).toLocaleString().replace(/\//g, '-').split(" ")[0]
-        this.open = true;
-        this.title = "修改价格历史";
-      });
+        this.form.collection = new Date(response.data.data.collection).toLocaleString().replace(/\//g, '-').split(' ')[0]
+        this.open = true
+        this.title = '修改价格历史'
+      })
     },
     /** 提交按钮 */
     submitForm: function() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.id != undefined) {
             updatePriceHis(this.form).then(response => {
               if (response.data) {
-                this.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
+                this.msgSuccess('修改成功')
+                this.open = false
+                this.getList()
               } else {
-                this.msgError(response.msg);
+                this.msgError(response.msg)
               }
-            });
+            })
           } else {
             addPriceHis(this.form).then(response => {
               if (response.data) {
-                this.msgSuccess("新增成功");
-                this.open = false;
-                this.getList();
+                this.msgSuccess('新增成功')
+                this.open = false
+                this.getList()
               } else {
-                this.msgError(response.msg);
+                this.msgError(response.msg)
               }
-            });
+            })
           }
         }
-      });
+      })
     },
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids.join(',')
-      this.$confirm('是否确认删除价格历史编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delPriceHis(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(function() {});
+      this.$confirm('是否确认删除价格历史编号为"' + ids + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(function() {
+        return delPriceHis(ids)
+      }).then(() => {
+        this.getList()
+        this.msgSuccess('删除成功')
+      }).catch(function() {})
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有价格历史数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportPriceHis(queryParams);
-        }).then(response => {
-          this.download(response.data.data);
-        }).catch(function() {});
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有价格历史数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(function() {
+        return exportPriceHis(queryParams)
+      }).then(response => {
+        this.download(response.data.data)
+      }).catch(function() {})
     }
   }
-};
-</script>
+}
+</script>

+ 63 - 58
unimall-admin/src/views/gubi/transaction/index.vue

@@ -27,16 +27,16 @@
           size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <!-- <el-form-item label="分值" prop="grade">
+      <el-form-item label="名称" prop="grade">
         <el-input
           v-model="queryParams.grade"
-          placeholder="请输入分值"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item> -->
-      <el-form-item label="时间" prop="collection">
+      </el-form-item>
+      <!-- <el-form-item label="时间" prop="collection">
         <el-date-picker
           v-model="queryParams.collection"
           clearable
@@ -61,7 +61,7 @@
           clearable
           size="small"
           @keyup.enter.native="handleQuery" />
-      </el-form-item>
+      </el-form-item> -->
       <!-- <el-form-item label="状态" prop="status">
         <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
           <el-option label="请选择字典生成" value="" />
@@ -163,14 +163,15 @@
       <!-- <el-table-column label="" align="center" prop="id" />
       <el-table-column label="" align="center" prop="companyId" /> -->
       <!-- <el-table-column label="分值id" align="center" prop="orderId" /> -->
+      <el-table-column label="分类" align="center" prop="strFlag" width="300"/>
       <el-table-column label="编号" align="center" prop="number" />
-      <el-table-column label="分值" align="center" prop="grade" />
-      <el-table-column label="时间" align="center" prop="collection" width="180">
+      <el-table-column label="名称" align="center" prop="grade" />
+      <el-table-column label="时间" align="center" prop="collection">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.collection) }}</span>
+          <span>{{ parseTime(scope.row.collection).split(' ')[0] }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="价钱(万元)" align="center" prop="price" width="120" />
+      <el-table-column label="价钱(万元)" align="center" prop="price" />
       <el-table-column label="状态" align="center" prop="status" />
       <el-table-column align="center" property="urlPath" label="图片">
         <template slot-scope="scope">
@@ -211,8 +212,8 @@
     <pagination
       v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryParams.page"
+      :limit.sync="queryParams.limit"
       @pagination="getList" />
 
     <!-- 添加或修改交易记录对话框 -->
@@ -220,35 +221,32 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="一级分类" prop="">
           <!-- <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div> -->
-          <el-select v-model="value1" filterable placeholder="请选择" @change="type1" style="width: 100%">
+          <el-select v-model="value1" filterable placeholder="请选择" style="width: 100%" @change="type1">
             <el-option
               v-for="item in first"
               :key="item.id"
               :label="item.typeName"
-              :value="item.id">
-            </el-option>
+              :value="item.id"/>
           </el-select>
         </el-form-item>
         <el-form-item label="二级分类" prop="">
           <!-- <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div> -->
-          <el-select v-model="value2" filterable placeholder="请选择" @change="type2" style="width: 100%">
+          <el-select v-model="value2" filterable placeholder="请选择" style="width: 100%" @change="type2">
             <el-option
               v-for="item in second"
               :key="item.id"
               :label="item.secondName"
-              :value="item.id">
-            </el-option>
+              :value="item.id"/>
           </el-select>
         </el-form-item>
         <el-form-item label="三级分类" prop="">
           <!-- <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div> -->
-          <el-select v-model="value3" filterable placeholder="请选择" @change="type33" style="width: 100%">
+          <el-select v-model="value3" filterable placeholder="请选择" style="width: 100%" @change="type33">
             <el-option
               v-for="item in tertiary"
               :key="item.id"
               :label="item.typeId"
-              :value="item.id">
-            </el-option>
+              :value="item.id"/>
           </el-select>
         </el-form-item>
         <el-form-item label="名称" prop="grade">
@@ -323,7 +321,7 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-    <el-dialog :visible.sync="dialogFormVisible" title="分值">
+    <el-dialog :visible.sync="dialogFormVisible" title="名称">
       <el-form :model="form">
         <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"/>
       </el-form>
@@ -340,8 +338,7 @@
             v-for="item in first"
             :key="item.id"
             :label="item.typeName"
-            :value="item.id">
-          </el-option>
+            :value="item.id"/>
         </el-select>
       </div>
       <div style="margin-top:20px">
@@ -351,8 +348,7 @@
             v-for="item in second"
             :key="item.id"
             :label="item.secondName"
-            :value="item.id">
-          </el-option>
+            :value="item.id"/>
         </el-select>
       </div>
       <div style="margin-top:20px">
@@ -362,8 +358,7 @@
             v-for="item in tertiary"
             :key="item.id"
             :label="item.typeId"
-            :value="item.id">
-          </el-option>
+            :value="item.id"/>
         </el-select>
       </div>
       <div slot="footer" class="dialog-footer">
@@ -385,11 +380,11 @@ export default {
   data() {
     return {
       first: [],
-      second:[],
-      tertiary:[],
+      second: [],
+      tertiary: [],
       value1: '',
-        value2: '',
-        value3: '',
+      value2: '',
+      value3: '',
       dialogFormVisible1: false,
       imgsFileList: [],
       uploadPath,
@@ -420,8 +415,8 @@ export default {
       open: false,
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
+        page: 1,
+        limit: 10,
         companyId: undefined,
         orderId: undefined,
         number: undefined,
@@ -513,45 +508,44 @@ export default {
     selectType() {
       this.dialogFormVisible = true
     },
-    type1(e){
+    type1(e) {
       this.value2=''
       this.value3=''
       console.log(e)
-    listSecond({
-            page: 1,
-            limit: 100,
-            typeId: e,
-      },).then(response => {
+      listSecond({
+        page: 1,
+        limit: 100,
+        typeId: e
+      }, ).then(response => {
         this.second = response.data.data.items
-
-      });
+      })
     },
-    type2(e){
+    type2(e) {
       console.log(e)
       this.value3=''
       listThree({
-            page: 1,
-            limit: 100,
-            secondId: e,
-      },).then(response => {
-          this.tertiary = response.data.data.items
-         
-        });
+        page: 1,
+        limit: 100,
+        secondId: e
+      }, ).then(response => {
+        this.tertiary = response.data.data.items
+      })
     },
-    type3(e){
+    type3(e) {
       console.log(e)
       this.queryParams.orderId = e
     },
-    type33(e){
+    type33(e) {
       console.log(e)
       this.form.orderId = e
     },
     /** 查询交易记录列表 */
     getList() {
       this.loading = true
-      listInfo().then(response => {
-          this.first = response.data.data.items
-        });
+      listInfo({ page: 1,
+        limit: 1000 }).then(response => {
+        this.first = response.data.data.items
+      })
       listTransaction(this.queryParams).then(response => {
         this.transactionList = response.data.data.items
         for (let i = 0; i < this.transactionList.length; i++) {
@@ -564,7 +558,6 @@ export default {
         this.total = response.data.data.count
         this.loading = false
       })
-
     },
     // 取消按钮
     cancel() {
@@ -589,16 +582,20 @@ export default {
         userId: undefined,
         adminId: undefined
       }
+      this.value1 = ''
+      this.value2 = ''
+      this.value3 = ''
+      this.imgsFileList = []
       this.resetForm('form')
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1
+      this.queryParams.page = 1
       this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.queryParams.orderId = '';
+      this.queryParams.orderId = ''
       this.resetForm('queryForm')
       this.handleQuery()
     },
@@ -617,12 +614,16 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      this.imgsFileList = []
       const id = row.id || this.ids.join(',')
       getTransaction(id).then(response => {
         this.form = response.data.data
         if (this.form.urlPath) {
           this.form.urlPath = this.form.urlPath.split(',')
+          this.imgsFileList.push(
+            {
+              url: this.form.urlPath
+            }
+          )
         } else {
           this.form.urlPath = []
         }
@@ -637,6 +638,10 @@ export default {
         if (valid) {
           console.log()
           this.form.urlPath = this.form.urlPath.toString()
+          if (!this.form.orderId) {
+            this.msgError('三级分类不能为空!')
+            return
+          }
           if (this.form.id != undefined) {
             updateTransaction(this.form).then(response => {
               if (response.data) {

+ 1 - 5
unimall-admin/src/views/sys/admin.vue

@@ -28,11 +28,7 @@
 
       <el-table-column align="center" label="管理员名称" prop="username" />
 
-      <el-table-column align="center" label="管理员头像" prop="avatar">
-        <template slot-scope="scope">
-          <img v-if="scope.row.avatar" :src="scope.row.avatar" width="40" >
-        </template>
-      </el-table-column>
+      <el-table-column align="center" label="电话" prop="phone"/>
 
       <el-table-column align="center" label="管理员角色" prop="roleIds">
         <template slot-scope="scope">

+ 1 - 1
unimall-admin/src/views/sys/role.vue

@@ -31,7 +31,7 @@
         <template slot-scope="scope">
           <el-button v-permission="['admin:role:update']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
           <el-button v-permission="['admin:role:delete']" type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button>
-          <el-button v-permission="['admin:role:permissionList']" type="primary" size="mini" @click="handlePermission(scope.row)">授权</el-button>
+          <!-- <el-button v-permission="['admin:role:permissionList']" type="primary" size="mini" @click="handlePermission(scope.row)">授权</el-button> -->
         </template>
       </el-table-column>
     </el-table>

+ 10 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeThree.java

@@ -143,6 +143,16 @@ public class GubiTypeThree extends SuperDO {
     @TableField("admin_id")
     private Long adminId;
 
+    /**
+     *
+     */
+    @TableField(exist = false)
+    private String strFlag;
+    /**
+     *
+     */
+    @TableField(exist = false)
+    private String idstr;
 
     @Override
     public String toString() {

+ 78 - 25
yinyuan/components/yunmiao-jobSelect/yunmiao-jobSelect.vue

@@ -9,8 +9,9 @@
 			<view class="search-warp" v-if="showAction">
 				<scroll-view scroll-y :style="{'height': scrollHeight+'px'}" class="item-container">
 					<view class="thumb-box" v-for="(item, index) in searchList" :key="index" @click="selval(item)">
+						<!-- {{item}} -->
 						<view :class="[value==item[valueName]? 'item-active' : '']">
-							<text>{{item.pname}}-{{item[labelName]}}</text>
+							<text>{{item.secondName}}</text>
 						</view>
 						<u-icon v-if="value==item[valueName]" name="checkbox-mark" :color="iconColor" size="28">
 						</u-icon>
@@ -19,18 +20,18 @@
 			</view>
 			<view class="u-menu-wrap">
 				<scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="scrollTop">
-					<view v-for="(item,index) in list" :key="index" class="u-tab-item"
+					<view v-for="(item,index) in first" :key="index" class="u-tab-item"
 						:class="[current==index ? 'u-tab-item-active' : '']" :data-current="index"
-						@tap.stop="swichMenu(index)">
+						@tap.stop="swichMenu(index,item)">
 						<text class="u-line-2">{{item[labelName]}}</text>
 					</view>
 				</scroll-view>
-				<block v-for="(item,index) in list" :key="index">
+				<block v-for="(item,index) in first" :key="index">
 					<scroll-view scroll-y class="right-box" v-if="current==index">
 						<view class="page-view">
 							<view class="class-item">
 								<view class="item-container">
-									<view class="thumb-box" v-for="(item1, index1) in item.children" :key="index1"
+									<view class="thumb-box" v-for="(item1, index1) in second" :key="index1"
 										@click="selval(item1)">
 										<view :class="[value==item1[valueName] ? 'item-active' : '']"
 											class="img-content">
@@ -38,7 +39,7 @@
 												class="img">
 											</image>
 											<text class="right-text"
-												style="margin-left: 20rpx;">{{item1[labelName]}}</text>
+												style="margin-left: 20rpx;">{{item1.secondName}}</text>
 										</view>
 										<!-- <u-icon v-if="value==item1[valueName]" name="checkbox-mark" :color="iconColor"
 											size="28">
@@ -81,10 +82,24 @@
 				default: () => {
 					return [];
 				}
+			},
+			typeOneData: {
+				type: Array,
+				default: () => {
+					return [];
+				}
+			},
+			typeTwoData: {
+				type: Array,
+				default: () => {
+					return [];
+				}
 			}
 		},
 		data() {
 			return {
+				first: JSON.parse(JSON.stringify(this.typeOneData)),
+				second: JSON.parse(JSON.stringify(this.typeTwoData)),
 				showModel: true,
 				list: JSON.parse(JSON.stringify(this.listData)),
 				scrollTop: 0, //tab标题的滚动条位置
@@ -105,6 +120,18 @@
 					this.list = JSON.parse(JSON.stringify(newName))
 				},
 				deep: true,
+			},
+			typeOneData: {
+				handler(newName, oldName) {
+					this.first = JSON.parse(JSON.stringify(newName))
+				},
+				deep: true,
+			},
+			typeTwoData: {
+				handler(newName, oldName) {
+					this.second = JSON.parse(JSON.stringify(newName))
+				},
+				deep: true,
 			}
 		},
 		created() {
@@ -140,16 +167,35 @@
 				this.$emit('confirem', item);
 			},
 			// 点击左边的栏目切换
-			async swichMenu(index) {
-				if (index == this.current) return;
-				this.current = index;
-				// 如果为0,意味着尚未初始化
-				if (this.menuHeight == 0 || this.menuItemHeight == 0) {
-					await this.getElRect('menu-scroll-view', 'menuHeight');
-					await this.getElRect('u-tab-item', 'menuItemHeight');
-				}
-				// 将菜单菜单活动item垂直居中
-				this.scrollTop = index * this.menuItemHeight + this.menuItemHeight / 2 - this.menuHeight / 2;
+			async swichMenu(index, val) {
+				this.$request.baseRequest('admin.gubi.gubiTypeSecond', 'list', {
+						page: 1,
+						limit: 1000,
+						typeId: val.id
+					},
+					failres => {
+						console.log('res+++++', failres.errmsg)
+						this.$refs.uToast.show({
+							type: 'error',
+							message: failres.errmsg,
+						})
+						uni.hideLoading()
+					}).then(res => {
+
+					console.log(res.data.items)
+					this.second = res.data.items
+					if (index == this.current) return;
+					this.current = index;
+					// 如果为0,意味着尚未初始化
+					if (this.menuHeight == 0 || this.menuItemHeight == 0) {
+						this.getElRect('menu-scroll-view', 'menuHeight');
+						this.getElRect('u-tab-item', 'menuItemHeight');
+					}
+					// 将菜单菜单活动item垂直居中
+					this.scrollTop = index * this.menuItemHeight + this.menuItemHeight / 2 - this.menuHeight /
+						2;
+				})
+
 			},
 			// 获取一个目标元素的高度
 			getElRect(elClass, dataVal) {
@@ -178,14 +224,20 @@
 			},
 			toSearch() {
 				let arr = [];
-				this.list.map((item, index) => {
-					item.children.map((it, ix) => {
-						if (it[this.labelName].indexOf(this.keyword) >= 0) {
-							it['pname'] = item[this.labelName];
-							arr.push(it);
-						}
-					})
+				// this.list.map((item, index) => {
+				this.second.map((it, ix) => {
+					console.log(123)
+
+					console.log(it, ix)
+					console.log(it.secondName.indexOf(this.keyword))
+					if (it.secondName.indexOf(this.keyword) > -1 && this.keyword) {
+						// it['pname'] = item[this.secondName];
+						arr.push(it);
+					}
 				})
+
+				// })
+				console.log('arr', arr)
 				this.searchList = arr;
 			}
 		}
@@ -222,12 +274,13 @@
 		background-color: #FFFFFF;
 		position: absolute;
 		z-index: 10;
-		top: 200rpx;
+		// top: 200rpx;
 		left: 0;
 		width: 100%;
 	}
 
 	.u-menu-wrap {
+		padding-bottom: 100rpx;
 		flex: 1;
 		display: flex;
 		overflow: hidden;
@@ -275,7 +328,7 @@
 
 	.right-box {
 		background-color: white;
-		height: 93vh;
+		height: 100vh;
 		overflow: hidden;
 	}
 

+ 1 - 1
yinyuan/config/index.js

@@ -1,6 +1,6 @@
 const dev = {
 	baseUrlNew: 'http://121.5.163.150:8181',
-	// baseUrlNew: 'http://192.168.110.67:8081',
+	// baseUrlNew: 'http://192.168.110.82:8181',
 	// baseUrlNew: 'https://api.thesunbelt.shop',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false

+ 23 - 17
yinyuan/index.html

@@ -1,20 +1,26 @@
 <!DOCTYPE html>
 <html lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <script>
-      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
-        CSS.supports('top: constant(a)'))
-      document.write(
-        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
-        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
-    </script>
-    <title></title>
-    <!--preload-links-->
-    <!--app-context-->
-  </head>
-  <body>
-    <div id="app"><!--app-html--></div>
-    <script type="module" src="/main.js"></script>
-  </body>
+	<head>
+		<meta charset="UTF-8" />
+		<script src="https://cdn.jsdelivr.net/npm/eruda"></script>
+		<script>
+			eruda.init();
+		</script>
+		<script>
+			// var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+			// 	CSS.supports('top: constant(a)'))
+			// document.write(
+			// 	'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+			// 	(coverSupport ? ', viewport-fit=cover' : '') + '" />')
+		</script>
+		<title></title>
+		<!--preload-links-->
+		<!--app-context-->
+	</head>
+	<body>
+		<div id="app">
+			<!--app-html-->
+		</div>
+		<script type="module" src="/main.js"></script>
+	</body>
 </html>

+ 4 - 1
yinyuan/manifest.json

@@ -68,5 +68,8 @@
     "uniStatistics" : {
         "enable" : false
     },
-    "vueVersion" : "2"
+    "vueVersion" : "2",
+    "h5" : {
+        "template" : ""
+    }
 }

+ 0 - 6
yinyuan/pages/index/index.vue

@@ -125,17 +125,11 @@
 						})
 						uni.hideLoading()
 					}).then(res => {
-					// if (res.errno == 200) {
 					uni.hideLoading()
 					console.log(11)
 					console.log(res.data.items)
 					this.typeTwoData = res.data.items
-					// this.makeData(res.data)
-					// }
-
 				})
-				// this.makeData(res.data)
-				// }
 
 			})
 			// this.$request.baseRequest('admin.gubi.gubiTypeInfo', 'listInfo', failres => {

+ 55 - 18
yinyuan/pages/index/price.vue

@@ -6,19 +6,19 @@
 				</u-subsection>
 			</view>
 			<view class="row2" v-if="curNow!=2">
-				<text>{{type1}}</text><text>/</text><text>{{type2}}</text><text>/</text><text>{{type3}}</text>
+				<text>{{type}}</text>
 			</view>
 			<view class="row3" v-if="curNow==0">
-				<u-tabs :list="list1" @click="click" keyName="typeName" current='1'></u-tabs>
+				<u-tabs :list="list1" @click="click" keyName="typeId" :current='current' @change='tabChange'></u-tabs>
 			</view>
 		</view>
-		<view class="content2" v-if="curNow==0">
+		<view class="content2" v-if="curNow==0&&isSHowOther">
 			<view class="title">
 				价格趋势图
 			</view>
 			<qiun-data-charts type="line" :opts="opts" :chartData="chartData" :ontouch="true" />
 		</view>
-		<view class="content3" v-if="curNow==0">
+		<view class="content3" v-if="curNow==0&&isSHowOther">
 			<view class="title">
 				价格历史记录
 			</view>
@@ -45,8 +45,8 @@
 				</view>
 			</mescroll-body>
 		</view>
-		<mescroll-body v-if="curNow==1" ref="mescrollRef" @init="mescrollInit" @up="upCallback" :down="downOption"
-			:up="upOption">
+		<mescroll-body v-if="curNow==1&&isSHowOther" ref="mescrollRef" @init="mescrollInit" @up="upCallback"
+			:down="downOption" :up="upOption">
 			<view class="jyjl">
 				以下为近期成交数据
 			</view>
@@ -195,22 +195,50 @@
 		mixins: [MescrollMixin], // 使用mixin
 		onLoad() {
 			this.info = uni.getStorageSync("selectInfo")
-			this.list1 = this.info.children
-			if (this.info.children.length != 0) {
-				this.nowItem = this.info
-				this.orderId = this.info.children[1].id
-				this.type1 = this.info.series
-				this.type2 = this.info.secondName
-				this.type3 = this.info.children[1].typeId
-				// for (let i = 0; i < this.info.children.length; i++) {
+			// this.list1 = this.info.children
+			// if (this.info.children.length != 0) {
+			this.nowItem = this.info
+			// 	this.type1 = this.info.series
+			// 	this.type2 = this.info.secondName
+			// 	this.type3 = this.info.children[1].typeId
+			// 	// for (let i = 0; i < this.info.children.length; i++) {
 
-				// }
-			}
+			// 	// }
+			// }
+			this.$request.baseRequest('admin.gubi.gubiTypeThree', 'list', {
+					page: 1,
+					limit: 1000,
+					secondId: this.info.id
+				},
+				failres => {
+					console.log('res+++++', failres.errmsg)
+					this.$refs.uToast.show({
+						type: 'error',
+						message: failres.errmsg,
+					})
+					uni.hideLoading()
+				}).then(res => {
+				uni.hideLoading()
+				console.log(11)
+				console.log(res.data.items)
+				this.list1 = res.data.items
+				for (let i = 0; i < this.list1.length; i++) {
+					if (this.list1[i].typeId == '45') {
+						this.type = this.list1[i].strFlag
+						this.orderId = this.list1[i].id
+						this.isSHowOther = true
+					}
+				}
+				// this.typeTwoData = res.data.items
+			})
 
 
 		},
 		data() {
 			return {
+				current: 1,
+				isSHowOther: false,
+				type: '',
 				selectSrc: '',
 				show: false,
 				x: [],
@@ -298,9 +326,18 @@
 			sectionChange(index) {
 				this.curNow = index;
 			},
+			tabChange(val) {
+				console.log(111)
+				this.current = val.index;
+				console.log(val.index)
+			},
 			click(item) {
 				this.orderId = item.id
-				this.type3 = item.typeId
+				for (let i = 0; i < this.list1.length; i++) {
+					if (this.list1[i].typeId == item.typeId) {
+						this.type = this.list1[i].strFlag
+					}
+				}
 				this.mescroll.resetUpScroll()
 			},
 			makeData(val) {
@@ -487,7 +524,7 @@
 	}
 
 	.price-img {
-		width: 200rpx;
+		width: 340rpx;
 	}
 
 	.right-row {

+ 3 - 4
yinyuan/pages/login/login.vue

@@ -70,13 +70,12 @@
 				})
 				this.$request.baseRequest('admin', 'login', this.userInfo, failres => {
 					console.log('res+++++', failres.errmsg)
-					this.$refs.uToast.show({
-						type: 'error',
-						message: failres.errmsg,
+					uni.showToast({
+						mask: true,
+						title: failres.errmsg
 					})
 					uni.hideLoading()
 				}).then(res => {
-					console.log(res)
 					if (res.errno == 200) {
 						uni.hideLoading()
 						uni.setStorageSync('userInfo', this.userInfo)

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است