Browse Source

提交代码

xgwangman 5 years ago
parent
commit
65d8cc288e
47 changed files with 746 additions and 390 deletions
  1. 2 1
      .env
  2. 8 4
      src/App.vue
  3. 8 1
      src/assets/css/common.css
  4. BIN
      src/assets/images/dingdan.png
  5. 0 1
      src/assets/images/dingdan.svg
  6. BIN
      src/assets/images/frut.jpg
  7. BIN
      src/assets/images/gailan.png
  8. 0 0
      src/assets/images/gailan.svg
  9. 0 0
      src/assets/images/huobban.svg
  10. BIN
      src/assets/images/logo-white.png
  11. BIN
      src/assets/images/logo_1.png
  12. BIN
      src/assets/images/mingxi.png
  13. 0 1
      src/assets/images/mingxi.svg
  14. 0 1
      src/assets/images/riqi.svg
  15. BIN
      src/assets/images/shoujihao.png
  16. 0 1
      src/assets/images/shoujihao.svg
  17. BIN
      src/assets/images/xinxi.png
  18. 0 1
      src/assets/images/xinxi.svg
  19. BIN
      src/assets/images/yongjin.png
  20. 0 1
      src/assets/images/yongjin.svg
  21. BIN
      src/assets/images/youxiang.png
  22. 0 1
      src/assets/images/youxiang.svg
  23. 1 1
      src/assets/js/date.js
  24. 1 1
      src/components/LeftMenu.vue
  25. 10 6
      src/components/Login.vue
  26. 12 5
      src/components/tableLists.vue
  27. 2 1
      src/plugins/request.js
  28. 4 1
      src/router.js
  29. 175 53
      src/views/order/components/details.vue
  30. 14 1
      src/views/order/orderDetail.vue
  31. 88 27
      src/views/order/orderList.vue
  32. 165 128
      src/views/sales/commissionList.vue
  33. 14 8
      src/views/sales/components/details.vue
  34. 87 61
      src/views/sales/partnerDetail.vue
  35. 5 5
      src/views/sales/partnerList.vue
  36. 2 2
      src/views/sales/settleList.vue
  37. 5 1
      src/views/sales/withdrawDetail.vue
  38. 109 16
      src/views/sales/withdrawList.vue
  39. 1 13
      src/views/system/auth.vue
  40. 1 1
      src/views/system/components/AssignRequest.vue
  41. 1 1
      src/views/system/components/AssignUser.vue
  42. 1 1
      src/views/system/components/AssignUserGroup.vue
  43. 4 1
      src/views/system/menu.vue
  44. 0 7
      src/views/system/request.vue
  45. 7 12
      src/views/system/user.vue
  46. 14 19
      src/views/system/userGroup.vue
  47. 5 5
      vue.config.js

+ 2 - 1
.env

@@ -1,7 +1,8 @@
 VUE_APP_ADMIN_TOKEN_NAME = 'admin_token'
 VUE_APP_API_URL_PREFIX34 = 'https//cadmin-service-demo.baiy.org/api/admin/'
-VUE_APP_API_URL_PREFIX = 'http://192.168.20.58:8001/api/admin/'
+VUE_APP_API_URL_PREFIX56 = 'http://192.168.20.214:8001/api/admin/'
 VUE_APP_API_URL_PREFIX12 = 'http://kf-qmx-test.jianyu360.cn/api/admin/'
+VUE_APP_API_URL_PREFIX = 'http://web-qmx_admin.jianyu360.cn/api/admin/'
 VUE_APP_API_ACTION_NAME = '_action'
 VUE_APP_API_TOKEN_NAME = '_token'
 VUE_APP_INDEX_URL = '/'

+ 8 - 4
src/App.vue

@@ -37,13 +37,17 @@
                             </Row>
                         </Header>
                         <Content style="margin:15px">
-                            <router-view/>
+                            <!-- <router-view/> -->
+                            <keep-alive>
+                                <router-view v-if="$route.meta.keepAlive"></router-view>
+                            </keep-alive>
+                            <router-view v-if="!$route.meta.keepAlive"></router-view>
                         </Content>
                     </Layout>
                 </Layout>
             </div>
             <userSetting ref="userSetting"></userSetting>
-            <div class="foot">©2015-2019 <a href="https://www.jianyu360.com/" target="_blank">jianyu360.com</a> 版权所有 | <a href="#" target="_blank">京ICP备14030217号-3</a></div>
+            <div class="foot">©2015-2019 <a href="https://www.jianyu360.com/" target="_blank">jianyu360.com</a> 版权所有 | <a style="cursor:auto">京ICP备14030217号-3</a></div>
         </div>
     </div>
 </template>
@@ -125,6 +129,7 @@
             logout() {
                 this.$request("/logout").success(() => {
                     this.$store.dispatch('logout');
+                    window.location.href = 'http://' + window.location.host
                     setTitle(this.$route)
                 }).get();
             },
@@ -136,8 +141,7 @@
             }
         },
         watch: {
-            '$route' (to, from) {
-                console.log(to.path)
+            '$route' (to) {
                 if (to.path == '/sales/partnerList/partnerDetail') {
                     return
                 } else if (to.path == '/sales/settleList/settleDetail') {

+ 8 - 1
src/assets/css/common.css

@@ -280,7 +280,11 @@ textarea:-ms-input-placeholder {
   font-size: 14px;
 }
 .ivu-table td.table-info-settle {
-    color: #f4516c;
+  color: #f4516c;
+}
+.ivu-table td.table-info-money {
+  color: #36a3f7;
+  cursor: pointer;
 }
 .ivu-btn {
   font-size: 14px;
@@ -290,4 +294,7 @@ textarea:-ms-input-placeholder {
 }
 .ivu-tree ul {
   font-size: 14px;
+}
+.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu), .ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):hover, .ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu), .ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu):hover {
+  background: none;
 }

BIN
src/assets/images/dingdan.png


+ 0 - 1
src/assets/images/dingdan.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596157729223" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4568" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50"><defs><style type="text/css"></style></defs><path d="M416.256 896H230.4c-17.408 0-32.256-14.336-32.256-32.256V165.376c0-17.408 14.336-32.256 32.256-32.256h564.736c17.408 0 32.256 14.336 32.256 32.256v250.88c0 17.92 14.336 32.256 32.256 32.256s32.256-14.336 32.256-32.256v-250.88c0-52.736-43.008-96.256-96.256-96.256H230.4c-52.736 0-96.256 43.008-96.256 96.256v698.88c0 52.736 43.008 96.256 96.256 96.256h185.856c17.92 0 32.256-14.336 32.256-32.256s-14.848-32.256-32.256-32.256z" p-id="4569" fill="#8a8a8a"></path><path d="M716.8 276.992c0-17.92-14.336-32.256-32.256-32.256H335.872c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h348.672c17.92-0.512 32.256-14.848 32.256-32.256z m0 146.944c0-17.92-14.336-32.256-32.256-32.256H335.872c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h348.672c17.92-0.512 32.256-14.848 32.256-32.256z m-380.928 120.32c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h218.112c17.92 0 32.256-14.336 32.256-32.256s-14.336-32.256-32.256-32.256H335.872zM864.256 768H768v-37.376c37.376-13.312 64-48.64 64-90.624 0-52.736-43.008-96.256-96.256-96.256S640 587.264 640 640c0 41.472 26.624 77.312 64 90.624v37.376h-96.256c-52.736 0-96.256 43.008-96.256 96.256v32.256c0 35.328 28.672 64 64 64H896c35.328 0 64-28.672 64-64v-32.256c0-53.248-43.008-96.256-95.744-96.256z m-128-159.744c17.408 0 32.256 14.336 32.256 32.256 0 17.408-14.336 32.256-32.256 32.256s-32.256-14.336-32.256-32.256 14.336-32.256 32.256-32.256zM896 896h-320v-32.256c0-17.408 14.336-32.256 32.256-32.256h256c17.408 0 32.256 14.336 32.256 32.256v32.256z" p-id="4570" fill="#8a8a8a"></path></svg>

BIN
src/assets/images/frut.jpg


BIN
src/assets/images/gailan.png


File diff suppressed because it is too large
+ 0 - 0
src/assets/images/gailan.svg


File diff suppressed because it is too large
+ 0 - 0
src/assets/images/huobban.svg


BIN
src/assets/images/logo-white.png


BIN
src/assets/images/logo_1.png


BIN
src/assets/images/mingxi.png


+ 0 - 1
src/assets/images/mingxi.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596158025201" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5834" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20"><defs><style type="text/css"></style></defs><path d="M214.528 87.04h594.944c36.352 0 63.488 27.648 63.488 64v722.432c0 36.352-27.648 63.488-63.488 63.488H214.528c-36.352 0-64-27.648-64-63.488V151.04c0-36.352 27.648-64 64-64z m0 64v722.432h594.944V151.04H214.528zM486.4 380.416c16.896 0 29.696 12.8 29.696 29.696s-12.8 29.696-29.696 29.696H427.008v74.24c0 16.896-12.8 29.696-29.696 29.696s-29.696-12.8-29.696-29.696V439.808H308.224c-16.896 0-29.696-12.8-29.696-29.696s12.8-29.696 29.696-29.696h59.392v-25.6l-72.192-76.8c-10.752-12.8-10.752-31.744 0-44.544 10.752-12.8 29.696-12.8 40.448 0l61.44 66.048 61.44-66.048c10.752-12.8 29.696-12.8 40.448 0 10.752 12.8 10.752 31.744 0 44.544L424.96 354.816v25.6h61.44z m259.072 6.144c0 16.896-10.752 29.696-20.992 29.696h-131.584c-12.8 0-20.992-12.8-20.992-29.696s10.752-29.696 20.992-29.696h131.584c10.752 0 20.992 12.8 20.992 29.696z m0-133.632c0 16.896-10.752 29.696-20.992 29.696h-131.584c-12.8 0-20.992-12.8-20.992-29.696s10.752-29.696 20.992-29.696h131.584c10.752 0 20.992 12.8 20.992 29.696z m0 261.12c0 16.896-10.752 29.696-20.992 29.696h-131.584c-12.8 0-20.992-12.8-20.992-29.696s10.752-29.696 20.992-29.696h131.584c10.752 0 20.992 12.8 20.992 29.696z m0 125.44c0 16.896-10.752 29.696-25.6 29.696H303.616c-14.848 0-25.6-12.8-25.6-29.696s10.752-29.696 25.6-29.696h416.256c13.312 0 25.6 14.848 25.6 29.696z m0 127.488c0 16.896-10.752 29.696-25.6 29.696H303.616c-14.848 0-25.6-12.8-25.6-29.696s10.752-29.696 25.6-29.696h416.256c13.312 0 25.6 12.8 25.6 29.696z" p-id="5835" fill="#8a8a8a"></path></svg>

+ 0 - 1
src/assets/images/riqi.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596157676415" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4329" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50"><defs><style type="text/css"></style></defs><path d="M854.016 192H757.76v-32.256c0-17.92-14.336-32.256-32.256-32.256s-32.256 14.336-32.256 32.256v32.256h-363.52v-32.256c0-17.92-14.336-32.256-32.256-32.256S266.24 142.336 266.24 160.256v32.256H170.496C117.76 192.512 74.24 235.52 74.24 288.768v512c0 52.736 43.008 96.256 96.256 96.256h683.52c52.736 0 96.256-43.008 96.256-96.256v-512c-0.512-53.76-43.52-96.768-96.256-96.768zM170.496 256H266.24v32.256c0 17.92 14.336 32.256 32.256 32.256s32.256-14.336 32.256-32.256V256h363.52v32.256c0 17.92 14.336 32.256 32.256 32.256s32.256-14.336 32.256-32.256V256H855.04c17.408 0 32.256 14.336 32.256 32.256V384H138.24V288.256c0-17.92 14.336-32.256 32.256-32.256z m683.52 576H170.496c-17.408 0-32.256-14.336-32.256-32.256V448h747.52v352.256c0 17.408-14.336 31.744-31.744 31.744z" p-id="4330" fill="#8a8a8a"></path><path d="M640 608.256H384c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h256c17.92 0 32.256-14.336 32.256-32.256s-14.336-32.256-32.256-32.256z" p-id="4331" fill="#8a8a8a"></path></svg>

BIN
src/assets/images/shoujihao.png


+ 0 - 1
src/assets/images/shoujihao.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596157895413" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4807" width="32" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M757.76 64H266.24c-52.736 0-96.256 43.008-96.256 96.256v704c0 52.736 43.008 96.256 96.256 96.256h491.52c52.736 0 96.256-43.008 96.256-96.256V160.256c0-53.248-43.52-96.256-96.256-96.256z m32.256 800.256c0 17.408-14.336 32.256-32.256 32.256H266.24c-17.408 0-32.256-14.336-32.256-32.256V160.256c0-17.408 14.336-32.256 32.256-32.256h491.52c17.408 0 32.256 14.336 32.256 32.256v704z" p-id="4808" fill="#8a8a8a"></path><path d="M608.256 192H416.256c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h192c17.92 0 32.256-14.336 32.256-32.256s-14.848-32.256-32.256-32.256zM512 736.256c-26.624 0-48.128 21.504-48.128 48.128s21.504 48.128 48.128 48.128 48.128-21.504 48.128-48.128-21.504-48.128-48.128-48.128z" p-id="4809" fill="#8a8a8a"></path></svg>

BIN
src/assets/images/xinxi.png


+ 0 - 1
src/assets/images/xinxi.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596158008601" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5581" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20"><defs><style type="text/css"></style></defs><path d="M864.256 128H160.256C107.52 128 64 171.008 64 224.256v576c0 52.736 43.008 96.256 96.256 96.256h704c52.736 0 96.256-43.008 96.256-96.256V224.256c-0.512-53.248-43.52-96.256-96.256-96.256z m31.744 672.256c0 17.408-14.336 32.256-32.256 32.256H160.256c-17.408 0-32.256-14.336-32.256-32.256V224.256c0-17.408 14.336-32.256 32.256-32.256h704c17.408 0 32.256 14.336 32.256 32.256v576z" p-id="5582" fill="#8a8a8a"></path><path d="M757.248 520.704c16.896-19.456 26.624-45.056 26.624-72.704 0-61.952-50.176-112.128-112.128-112.128s-112.128 50.176-112.128 112.128c0 27.648 10.24 53.248 26.624 72.704-45.056 28.16-74.752 78.336-74.752 135.168 0 17.92 14.336 32.256 32.256 32.256s32.256-14.336 32.256-32.256c0-52.736 43.008-96.256 96.256-96.256s96.256 43.008 96.256 96.256c0 17.92 14.336 32.256 32.256 32.256s32.256-14.336 32.256-32.256c-1.024-56.832-30.72-107.008-75.776-135.168z m-133.12-72.704c0-26.624 21.504-48.128 48.128-48.128s48.128 21.504 48.128 48.128-21.504 48.128-48.128 48.128-48.128-21.504-48.128-48.128zM384 352.256H256c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h128c17.92 0 32.256-14.336 32.256-32.256s-14.336-32.256-32.256-32.256z m0 128H256c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h128c17.92 0 32.256-14.336 32.256-32.256 0-18.432-14.336-32.256-32.256-32.256z m0 128H256c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h128c17.92 0 32.256-14.336 32.256-32.256s-14.336-32.256-32.256-32.256z" p-id="5583" fill="#8a8a8a"></path></svg>

BIN
src/assets/images/yongjin.png


+ 0 - 1
src/assets/images/yongjin.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596157572278" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3995" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50"><defs><style type="text/css"></style></defs><path d="M924.672 337.408c-22.528-53.248-54.784-101.376-95.744-142.336s-89.088-73.216-142.336-95.744c-55.296-23.552-114.176-35.328-174.592-35.328s-119.296 11.776-174.592 35.328c-53.248 22.528-101.376 54.784-142.336 95.744S121.856 284.16 99.328 337.408c-23.552 55.296-35.328 114.176-35.328 174.592s11.776 119.296 35.328 174.592c22.528 53.248 54.784 101.376 95.744 142.336s89.088 73.216 142.336 95.744c55.296 23.552 114.176 35.328 174.592 35.328s119.296-11.776 174.592-35.328c53.248-22.528 101.376-54.784 142.336-95.744s73.216-89.088 95.744-142.336c23.552-55.296 35.328-114.176 35.328-174.592s-11.776-119.296-35.328-174.592zM783.36 783.36c-72.704 72.704-168.96 112.64-271.36 112.64s-199.168-39.936-271.36-112.64-112.64-168.96-112.64-271.36 39.936-199.168 112.64-271.36c72.704-72.704 168.96-112.64 271.36-112.64s199.168 39.936 271.36 112.64 112.64 168.96 112.64 271.36-39.936 199.168-112.64 271.36z" p-id="3996" fill="#8a8a8a"></path><path d="M655.872 496.128c17.92 0 32.256-14.336 32.256-32.256s-14.336-32.256-32.256-32.256h-98.304l105.472-105.472c12.288-12.288 12.288-32.768 0-45.056-12.288-12.288-32.768-12.288-45.056 0L512 387.072 406.528 281.6c-12.288-12.288-32.768-12.288-45.056 0-12.288 12.288-12.288 32.768 0 45.056l104.96 104.96H368.128c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h112.128v64H368.128c-17.92 0-32.256 14.336-32.256 32.256s14.336 32.256 32.256 32.256h112.128v96.256c0 17.92 14.336 32.256 32.256 32.256s32.256-14.336 32.256-32.256V624.64h112.128c17.92 0 32.256-14.336 32.256-32.256s-14.336-32.256-32.256-32.256h-112.128V496.128h111.104z" p-id="3997" fill="#8a8a8a"></path></svg>

BIN
src/assets/images/youxiang.png


+ 0 - 1
src/assets/images/youxiang.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1596157917463" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5088" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M864.256 138.24H160.256C107.52 138.24 64 181.248 64 234.496v555.52c0 52.736 43.008 96.256 96.256 96.256h704c52.736 0 96.256-43.008 96.256-96.256V234.496c-0.512-53.248-43.52-96.256-96.256-96.256z m31.744 651.776c0 17.408-14.336 32.256-32.256 32.256H160.256c-17.408 0-32.256-14.336-32.256-32.256V234.496c0-17.408 14.336-32.256 32.256-32.256h704c17.408 0 32.256 14.336 32.256 32.256v555.52z" p-id="5089" fill="#8a8a8a"></path><path d="M747.52 281.088l-235.52 199.168-235.52-199.168c-13.312-11.264-33.792-9.728-45.056 3.584-11.264 13.312-9.728 33.792 3.584 45.056l256 216.576c0.512 0.512 0.512 0.512 1.024 0.512l0.512 0.512c0.512 0 0.512 0.512 1.024 0.512 0.512 0.512 1.024 1.024 2.048 1.024l0.512 0.512c0.512 0 0.512 0.512 1.024 0.512 0 0 0.512 0 0.512 0.512 0.512 0 1.024 0.512 1.536 0.512h0.512c0.512 0 1.024 0.512 1.024 0.512h0.512c0.512 0 1.024 0.512 1.024 0.512h0.512c1.536 0.512 3.072 1.024 4.608 1.024 1.024 0 2.048 0.512 3.072 0.512H514.56c1.024 0 2.048 0 3.072-0.512 1.536-0.512 3.072-0.512 4.608-1.024h0.512c0.512 0 1.024-0.512 1.024-0.512h0.512c0.512 0 1.024-0.512 1.024-0.512h0.512c0.512 0 1.024-0.512 1.536-0.512 0 0 0.512 0 0.512-0.512 0.512 0 0.512-0.512 1.024-0.512l0.512-0.512c0.512-0.512 1.024-0.512 1.536-1.024 0 0 0.512 0 0.512-0.512 0.512 0 0.512-0.512 1.024-0.512l0.512-0.512c0.512 0 0.512-0.512 1.024-0.512l256-216.576c13.312-11.264 15.36-31.744 3.584-45.056-12.8-12.8-32.768-14.336-46.08-3.072z" p-id="5090" fill="#8a8a8a"></path></svg>

+ 1 - 1
src/assets/js/date.js

@@ -12,7 +12,7 @@ export function ChangeDate (time){
 }
 
 export function ChangeDate1 (time){
-    var d = new Date(time);
+    var d = new Date(time * 1000);
     var Y = d.getFullYear() + '年';
     var M = (d.getMonth()+1 < 10 ? '0'+(d.getMonth()+1) : d.getMonth()+1) + '月';
     var D = (d.getDate() < 10 ? '0'+d.getDate() : d.getDate()) + '日';

+ 1 - 1
src/components/LeftMenu.vue

@@ -95,9 +95,9 @@
         },
         methods: {
             goto(menuId) {
+                localStorage.removeItem('offPage')
                 if (menuId === "site-name") {
                     // return this.$router.push('/');
-                    return window.open('')
                 }
                 this.pageMenus.forEach(({url, id}) => {
                     if (id === menuId) {

+ 10 - 6
src/components/Login.vue

@@ -20,7 +20,7 @@
                             <Checkbox v-model="single">&nbsp;记住密码</Checkbox>
                         </FormItem>
                         <FormItem style="width:200px;margin: 80px auto">
-                            <Button size="large" type="primary" long @click="handleSubmit('form')">登 录</Button>
+                            <Button size="large" long @click="handleSubmit('form')">登 录</Button>
                         </FormItem>
                     </Form>
                 </div>
@@ -52,12 +52,19 @@
             }
         },
         created () {
-            let userData = JSON.parse(localStorage.getItem('user'))
+            let userData = JSON.parse(decodeURIComponent(window.atob(localStorage.getItem('user'))))
             if (userData) {
                 this.form.username = userData.username
                 this.form.password = userData.password
                 this.single = true
             }
+            let _this = this;
+            document.onkeydown = function() {
+                let key = window.event.keyCode;
+                if (key == 13) {
+                    _this.handleSubmit('form');
+                }
+            }
         },
         methods: {
             handleSubmit(name) {
@@ -69,7 +76,7 @@
                     this.$request("/login").data($this.form).success((r) => {
                         // 存储用户信息
                         if (this.single) {
-                            localStorage.setItem('user',JSON.stringify($this.form))
+                            localStorage.setItem('user',window.btoa(window.encodeURIComponent(JSON.stringify($this.form))))
                         } else {
                             localStorage.removeItem('user')
                         }
@@ -118,9 +125,6 @@
             }
             button {
                 height: 50px;
-                background: none;
-                color: #1e1e1e;
-                border-color: #cdcdcd;
             }
             .remember {
                 color: #aea79f;

+ 12 - 5
src/components/tableLists.vue

@@ -112,6 +112,10 @@
             }
         },
         created() {
+            let pages = localStorage.getItem('offPage')
+            if (pages) {
+                this.page = Number(pages)
+            }
             if (this.autoLoad) {
                 this.load();
             }
@@ -119,6 +123,7 @@
         methods: {
             changePage: function (page) {
                 this.page = page;
+                localStorage.setItem('offPage',page)
                 this.load();
             },
             pageSizeChange: function (size) {
@@ -156,12 +161,14 @@
                 this.load();
             },
             reset (isPage) {
-                if (!isPage) {
-                    this.page = 1;
+                if (!this.sear.keyword) {
+                    if (!isPage) {
+                        this.page = 1;
+                    }
+                    this.$emit('loading', true);
+                    this.$emit('emptyFilter', true);
+                    this.load();
                 }
-                this.$emit('loading', true);
-                this.$emit('emptyFilter', true);
-                this.load();
             }
         },
     }

+ 2 - 1
src/plugins/request.js

@@ -140,7 +140,8 @@ class ActionRequest {
                     this['_error']
                 )
             },
-            error: () => {
+            error: (res) => {
+                console.log(res)
                 this.vue.$Notice.error({ title: '对不起您请求的数据不存在或者返回异常', duration: 5 })
             },
             complete: () => {

+ 4 - 1
src/router.js

@@ -59,7 +59,10 @@ routeComponent.keys().forEach(fileName => {
 
 Vue.use(Router);
 
-const router = new Router({routes});
+const router = new Router({
+    mode: 'history',
+    routes
+});
 
 const originalPush = Router.prototype.push
 Router.prototype.push = function push(location) {// 解决路由重复报错的问题

+ 175 - 53
src/views/order/components/details.vue

@@ -5,9 +5,9 @@
             <div class="cont">
                 <div class="tit">订单信息</div>
                 <div class="classfity">
-                    <span>订单编号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.order_code}}</span>
-                    <span>订单时间: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.create_time}}</span>
-                    <span>产品类型: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.product_type}}</span>
+                    <span>订单编号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails?orDetails.order_code:''}}</span>
+                    <span>订单时间: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails?orDetails.create_time:''}}</span>
+                    <span>产品类型: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails?orDetails.product_type:''}}</span>
                 </div>
             </div>
             <Divider />
@@ -17,12 +17,14 @@
                 <div class="tit">课程信息</div>
                 <div class="classfity">
                     <!-- 线上课程 -->
-                    <span>课程名称: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{strCourse.s_name}}</span>
+                    <span>课程名称: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{{strCourse.s_name?strCourse.s_name:''}}</i></span>
                     <span v-if="orderType == 0">课程时长: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{strCourse.s_courseDate}}</span>
                     <span v-if="orderType == 0">有效周期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{strCourse.l_endtime}}到期</span>
-                    <!-- 线下课程 -->
+                    <!-- 线下课程(招投标课程) -->
                     <span v-if="orderType == 1">课程地点: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{strCourse.s_address}}</span>
-                    <span v-if="orderType == 1">课程时间: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{strCourse.l_starttime}}-{{strCourse.l_endtime}}</span>
+                    <span v-if="orderType == 1">课程时间: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="strCourse">{{l_starttime?l_starttime:''}}-{{l_endtime?l_endtime:''}}</i>
+                    </span>
                     <span v-if="orderType == 1">联系人单位: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.company}}</span>
                     <span v-if="orderType == 1">联系人姓名: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.name}}</span>
                     <span v-if="orderType == 1">联系人邮箱: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.name}}</span>
@@ -36,8 +38,8 @@
             <div class="cont">
                 <div class="tit">报告信息</div>
                 <div class="classfity">
-                    <span>报告名称: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2019-2020年大数据中心市场研究报告</span>
-                    <span>邮箱地址: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;149837146@qq.com</span>
+                    <span>报告名称: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.reportName}}</i></span>
+                    <span>邮箱地址: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.user_mail}}</i></span>
                 </div>
             </div>
             <Divider />
@@ -47,19 +49,21 @@
             <div class="cont">
                 <div class="tit">导出信息</div>
                 <div class="classfity">
-                    <span>筛选日期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.startime}} - {{book.endtime}}</span>
-                    <span>区域: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{String(book.area)}}</span>
-                    <span style="display:flex">行业: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i style="width:80%">{{String(book.industry)}}</i></span>
-                    <span style="display:flex">关键词: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i style="width:80%">{{String(book.keywords)}}</i></span>
-                    <span>金额: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.minprice}}万元 - {{book.maxprice}}万元</span>
-                    <span>信息类型: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.subtype}}</span>
-                    <span>采购单位: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{String(book.buyer)}}</span>
-                    <span>中标单位: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{String(book.winner)}}</span>
-                    <span>数据规格: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.data_spec}}</span>
-                    <span>数据数量: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.data_count}}条</span>
-                    <span>邮箱地址: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.user_mail}}</span>
-                    <span>手机号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.user_phone}}</span>
-                    <span>下载链接: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a :href="orDetails.download_url">点击下载</a></span>
+                    <span>筛选日期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book.startime}} - {{book.endtime}}</i></span>
+                    <span>区域: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{{String(book.area)}}</i></span>
+                    <span>行业: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{{String(book.industry)}}</i></span>
+                    <span>关键词: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{{String(book.keywordsArr)}}</i></span>
+                    <span>金额: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="book">{{book.minprice || 0}}万元 - {{book.maxprice || 0}}万元</i>
+                    </span>
+                    <span>信息类型: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book.subtype}}</i></span>
+                    <span>采购单位: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{String(book.buyer)}}</i></span>
+                    <span>中标单位: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{String(book.winner)}}</i></span>
+                    <span>数据规格: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.data_spec}}</i></span>
+                    <span>数据数量: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.data_count}}条</i></span>
+                    <span>邮箱地址: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.user_mail}}</i></span>
+                    <span>手机号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.user_phone}}</i></span>
+                    <span>下载链接: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails"><a :href="orDetails?orDetails.download_url:''">点击下载</a></i></span>
                 </div>
             </div>
             <Divider />
@@ -69,25 +73,52 @@
             <div class="cont">
                 <div class="tit">订阅信息</div>
                 <div class="classfity">
-                    <span>订购区域: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.subscription_area}}</span>
-                    <span>订购行业: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.industry_str}}</span>
-                    <span>订购周期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{book.effective_date}}</span>
+                    <span>订购区域: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book?book.subscription_area:''}}</i></span>
+                    <span>订购行业: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book.industry_str}}</i></span>
+                    <span>订购周期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book?book.effective_date:''}}</i></span>
                 </div>
             </div>
             <Divider />
         </div>
+        <!-- 企业商机管理 -->
+        <div class="infor-card" v-if="orderType == 6">
+            <div class="cont">
+                <div class="tit">管理信息</div>
+                <div class="classfity">
+                    <span>企业信息: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book?book.entname:''}}</i></span>
+                    <span>管理员: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book"></i></span>
+                    <span>手机号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book"></i></span>
+                    <span>使用产品人数: &nbsp;<i v-if="book">{{book?book.personnum:''}}</i></span>
+                    <span>行业: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book?book.industry:''}}</i></span>
+                    <span>使用周期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book">{{book?book.cycle:''}}年</i></span>
+                    <span>有效周期: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="book"></i></span>
+                </div>
+            </div>
+            <Divider />
+        </div>
+        <!-- 支付信息 -->
         <div class="infor-card">
             <div class="cont">
                 <div class="tit">支付信息</div>
                 <div class="classfity">
-                    <span>支付单号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orders.transaction_id}}</span>
-                    <span>支付时间: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.pay_time}}</span>
-                    <span v-if="orderType == 1">支付方式: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.pay_way == 'wx_pc'?'微信':'支付宝'}}</span>
-                    <span v-else>支付方式: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.pay_way}}</span>
-                    <span v-if="orderType == 1">实付数量: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.original_price}}</span><!-- 线下课程 -->
-                    <span v-if="orderType == 8">实付金额: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;¥{{(orDetails.pay_money/100).toLocaleString('en-US')}}</span><!-- VIP订阅 -->
-                    <span v-if="orderType == 1">支付状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.order_status | orderPay}}</span>
-                    <span v-else>支付状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.order_status}}</span>
+                    <span>支付单号: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orders">{{orders.transaction_id}}</i></span>
+                    <span>支付时间: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.pay_time}}</i></span>
+                    <span v-if="orderType == 1">支付方式: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails">{{orDetails.pay_way == 'wx_pc'?'微信':'支付宝'}}</i>
+                    </span>
+                    <span v-else>支付方式: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="orDetails">{{orDetails.pay_way}}</i></span>
+                    <span v-if="orderType == 1">实付数量: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails">{{orDetails.original_price}}</i>
+                    </span><!-- 线下课程 -->
+                    <span v-if="orderType == 8">实付金额: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails">{{orDetails.pay_money?('¥'+orDetails.pay_money/100).toLocaleString('en-US'):''}}</i>
+                    </span><!-- VIP订阅 -->
+                    <span v-if="orderType == 1">支付状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i :class="orDetails.order_status | orderColr" v-if="orDetails">{{orDetails.order_status | orderPay}}</i>
+                    </span>
+                    <span v-else>支付状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i :class="orDetails.order_status | orderWord" v-if="orDetails">{{orDetails.order_status}}</i>
+                    </span>
                 </div>
             </div>
             <Divider />
@@ -97,8 +128,8 @@
             <div class="cont">
                 <div class="tit">优惠信息</div>
                 <div class="classfity" v-if="strCourse.s_discountPlan">
-                    <span>每单立减: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;¥{{strCourse.s_discountPlan[0].price}}</span>
-                    <span>多人立减: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;¥{{strCourse.discountMoney}}</span>
+                    <span>每单立减: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="strCourse">¥{{strCourse.s_discountPlan[0].price || 0}}</i></span>
+                    <span>多人立减: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i v-if="strCourse">¥{{strCourse.discountMoney || 0}}</i></span>
                 </div>
             </div>
             <Divider />
@@ -106,16 +137,32 @@
         <div class="infor-card">
             <div class="cont">
                 <div class="tit">发票信息</div>
-                <div class="classfity" v-if="orDetails.invoice">
-                    <span>发票类型: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orderType == 1 ? orDetails.invoice.invoice_type : '普通发票(电子发票)'}}</span>
-                    <span>发票内容: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.invoice.invoice_content}}</span>
-                    <span>发票抬头: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.invoice.invoice_rise}}</span>
-                    <span>开票单位名称: &nbsp;{{orDetails.invoice.company_name}}</span>
-                    <span>纳税人识别号: &nbsp;{{orDetails.invoice.taxpayer_identnum || orDetails.invoice.apply_tinumber}}</span>
-                    <span>邮箱地址: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.invoice.mail || orDetails.invoice.email}}</span>
-                    <span v-if="orderType == 1">发票状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.applybill_status | invoiceStas}}</span>
-                    <span v-else>发票状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{orDetails.applybill_status}}</span>
-                    <span>发票查看: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a :href="orDetails.invoice.url" target="_blank">点击查看</a></span>
+                <div class="classfity">
+                    <span>发票类型: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails && orDetails.applybill_status == '已申请' || orDetails.applybill_status == 1">{{(orderType == 1 ? orDetails.invoice?orDetails.invoice.invoice_type:'--' : '普通发票(电子发票)')}}</i>
+                        <i v-else>--</i>
+                    </span>
+                    <span>发票内容: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails">{{orDetails.invoice?orDetails.invoice.invoice_content:'--'}}</i>
+                    </span>
+                    <span>发票抬头: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails">{{orderType == 1?orDetails.invoice?orDetails.invoice.invoice_rise:'--':orDetails.invoice?orDetails.invoice.invoice_type:'--'}}</i>
+                    </span>
+                    <span v-if="orDetails.invoice?orDetails.invoice.invoice_rise=='单位' || orDetails.invoice.invoice_type=='单位':''">开票单位名称: &nbsp;<i v-if="orDetails">{{orDetails.invoice?orDetails.invoice.company_name:'--'}}</i></span>
+                    <span v-if="orDetails.invoice?orDetails.invoice.invoice_rise=='单位':'' || orDetails.invoice?orDetails.invoice.invoice_type=='单位':''">纳税人识别号: &nbsp;<i v-if="orDetails">{{orDetails.invoice?orDetails.invoice.taxpayer_identnum || orDetails.invoice.apply_tinumber:'--'}}</i></span>
+                    <span>邮箱地址: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails">{{orDetails.invoice?orDetails.invoice.mail || orDetails.invoice.email:'--'}}</i>
+                    </span>
+                    <span v-if="orderType == 1">发票状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i :class="orDetails.applybill_status | invoiceColor" v-if="orDetails">{{orDetails.applybill_status | invoiceStas}}</i>
+                    </span>
+                    <span v-else>发票状态: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i :class="orDetails.applybill_status | applyClor" v-if="orDetails">{{orDetails.applybill_status}}</i>
+                    </span>
+                    <span>发票查看: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <i v-if="orDetails && orDetails.applybill_status == '已申请' || orDetails.applybill_status == 1"><a :href="orDetails.invoice?orDetails.invoice.url:'*'" target="_blank">点击查看</a></i>
+                        <i v-else>--</i>
+                    </span>
                 </div>
             </div>
             <Divider />
@@ -138,9 +185,17 @@ export default {
             this.orders = r.data
             this.orDetails = r.data.res;
             this.book = r.data.filterData;
+            // if (this.book && this.book.keywords) {
+            //     this.book.keywords.forEach(e => {
+            //         this.arr.push(e.keyword)
+            //         this.keyMsg = this.arr.join(",")
+            //     });
+            // }
             this.strCourse = r.data.resCourse;
-            this.strCourse.l_starttime = ChangeDate1(this.strCourse.l_starttime);
-            this.strCourse.l_endtime = ChangeDate1(this.strCourse.l_endtime);
+            if (this.strCourse) {
+                this.l_starttime = ChangeDate1(this.strCourse.l_starttime);
+                this.l_endtime = ChangeDate1(this.strCourse.l_endtime);
+            }
         }).get()
     },
     filters: {
@@ -153,14 +208,62 @@ export default {
                 return '已申请'
             }
         },
-        orderPay(val) {
+        invoiceColor (val) {
             if (val == -2) {
+                return 'color1'
+            } else if (val == 0) {
+                return 'color2'
+            } else if (val == 1) {
+                return 'color3'
+            }
+        },
+        applyClor (val) {
+            if (val == '已冲红') {
+                return 'color1'
+            } else if (val == '未申请') {
+                return 'color2'
+            } else if (val == '已申请') {
+                return 'color3'
+            }
+        },
+        orderPay(val) {
+            if (val == -3) {
+                return '已退款'
+            } else if (val == -2) {
                 return '已取消'
+            } else if (val == -1) {
+                return '逻辑删除'
             } else if (val == 0) {
                 return '未支付'
             } else if (val == 1) {
                 return '已支付'
             }
+        },
+        orderColr(val) {
+            if (val == -3) {
+                return 'color1'
+            } else if (val == -2) {
+                return 'color1'
+            } else if (val == -1) {
+                return 'color1'
+            } else if (val == 0) {
+                return 'color2'
+            } else if (val == 1) {
+                return 'color3'
+            }
+        },
+        orderWord(val) {
+            if (val == '已退款') {
+                return 'color1'
+            } else if (val == '已取消') {
+                return 'color2'
+            } else if (val == '逻辑删除') {
+                return 'color1'
+            } else if (val == '未支付') {
+                return 'color1'
+            } else if (val == '已支付') {
+                return 'color3'
+            }
         }
     },
     data () {
@@ -169,7 +272,8 @@ export default {
             orDetails: [],
             book: [],
             strCourse: [],
-            offCourse: []
+            l_starttime: '',
+            l_endtime: ''
         }
     }
 }
@@ -184,21 +288,39 @@ export default {
             display: flex;
             flex-direction: initial;
             .tit {
-                width: 64px;
+                width: 80px;
                 font-size: 16px;
                 font-weight: 700;
-                line-height: 30px;
+                line-height: 34px;
                 margin-right: 50px;
                 color: #1e1e1e;
             }
             .classfity {
-                width: 486px;
+                width: 470px;
                 display: flex;
                 flex-direction: column;
                 justify-content: center;
-                font-size: 13px;
+                font-size: 16px;
                 color: #333;
-                line-height: 30px;
+                line-height: 34px;
+                span {
+                    display: flex;
+                   i {
+                        width: 70%;
+                    }
+                    .no-line {
+                        color: #999;
+                    }
+                }
+                .color1 {
+                    color: #f4516c;
+                }
+                .color2 {
+                    color: #ffb822;
+                }
+                .color3 {
+                    color: #34bfa3;
+                }
             }
         }
     }

+ 14 - 1
src/views/order/orderDetail.vue

@@ -2,7 +2,7 @@
     <div class="with-detail">
         <h1>订单管理</h1>
         <div class="det">
-            <div slot="title" class="right-fund">查看订单</div>
+            <div slot="title" class="right-fund">查看订单<Button class="btn" @click="$router.go(-1)">返回</Button></div>
             <Divider />
             <v-detail :orderType="proStatus"></v-detail>
         </div>
@@ -30,9 +30,18 @@ export default {
             case '历史数据':
                 this.proStatus = '3'
                 break;
+            case '数据导出':
+                this.proStatus = '3'
+                break;
+            case '企业商机管理':
+                this.proStatus = '6'
+                break;
             case 'VIP订阅':
                 this.proStatus = '8'
                 break;
+            case '超级订阅':
+                this.proStatus = '8'
+                break;
         }
         if (str.par) {
             sessionStorage.setItem('info',1)
@@ -60,6 +69,10 @@ export default {
         color: #575962;
         padding-left: 100px;
         margin-top: 14px;
+        .btn {
+            float: right;
+            margin-right: 30px;
+        }
     }
 }
 </style>

+ 88 - 27
src/views/order/orderList.vue

@@ -40,7 +40,10 @@
                 v-model="dataVal1"
                 placeholder="起始时间" 
                 style="width: 172px" 
+                :options="options1"
                 @on-change="handleChange1"
+                @on-ok="confirmed1"
+                @on-open-change="opened1"
             ></DatePicker>
             <DatePicker 
                 type="datetime" 
@@ -48,16 +51,19 @@
                 v-model="dataVal2"
                 placeholder="截止时间" 
                 style="width: 172px;margin-left:2px" 
+                :options="options2"
                 @on-change="handleChange2"
+                @on-ok="confirmed2"
+                @on-open-change="opened2"
             ></DatePicker>
         </FormItem>
-        <FormItem label="实付金额:" :label-width="70" style="margin-right: 40px">
+        <FormItem label="实付金额:" :label-width="70" style="margin-right: 30px">
             <Input style="width: 73px" type="text" size="large" v-model="filter.payMoneyMin" :placeholder="place" clearable/>
             <Input style="width: 73px;margin-left: 2px" type="text" size="large" v-model="filter.payMoneyMax" placeholder="最大金额" clearable/>
         </FormItem>
       </template>
       <template slot="filterRight">
-          <Input prefix="md-search" type="text" size="large" v-model="sear.keyword" placeholder="搜索..." clearable class="ser-ipt"/>
+          <Input prefix="md-search" type="text" size="large" v-model="sear.keyword" placeholder="搜索订单编号" clearable class="ser-ipt"/>
       </template>
       <Table 
         size="large" 
@@ -89,7 +95,7 @@
             size="small" 
             type="error" 
             @click="refund(row.order_code)"
-            :disabled="row.order_status == -3"
+            :disabled="row.order_status != 1"
           >退款</Button>
         </template>
       </Table>
@@ -106,7 +112,7 @@
   </div>
 </template>
 <script>
-import { ChangeDate2 } from '../../assets/js/date.js'
+import { ChangeDate,ChangeDate2 } from '../../assets/js/date.js'
 export default {
     methods: {
         load (val) {
@@ -116,14 +122,13 @@ export default {
             if (val) {
                 this.filter.keyword = ''
                 this.filter.productType = ''
+                this.filter.orderType = ''
                 this.filter.orderStatus = ''
                 this.filter.invoiceStatus = ''
                 this.filter.payMoneyMin = ''
                 this.filter.payMoneyMax = ''
-                this.filter.orderTimeEnd = ''
-                this.filter.orderTimeEnd = ''
-                this.dataValue1 = ''
-                this.dataValue2 = ''
+                this.dataVal1 = ''
+                this.dataVal2 = ''
             }
         },
         handleChange1 (date) {
@@ -132,6 +137,46 @@ export default {
         handleChange2 (date) {
             this.filter.orderTimeEnd = date
         },
+        confirmed1 () {
+            if (this.filter.orderTimeStart && this.filter.orderTimeEnd) {
+                if (this.filter.orderTimeStart > this.filter.orderTimeEnd) {
+                    this.dataVal1 = ''
+                    this.filter.orderTimeStart = ''
+                    this.$Notice.warning({
+                        title: '警告提示',
+                        desc: "起始时间应小于截止时间",
+                        duration: 5
+                    })
+                }
+            }
+        },
+        confirmed2 () {
+            if (this.filter.orderTimeStart && this.filter.orderTimeEnd) {
+                if (this.filter.orderTimeStart > this.filter.orderTimeEnd) {
+                    this.dataVal2 = ''
+                    this.filter.orderTimeEnd = ''
+                    this.$Notice.warning({
+                        title: '警告提示',
+                        desc: "截止时间应大于起始时间",
+                        duration: 5
+                    })
+                }
+            }
+        },
+        opened1 (val) {
+            if (val) {
+                return
+            } else {
+                this.confirmed1()
+            }
+        },
+        opened2 (val) {
+            if (val) {
+                return
+            } else {
+                this.confirmed2()
+            }
+        },
         refund (code) {
             this.models.tShow = true
             this.models.reCode = code
@@ -156,6 +201,7 @@ export default {
             lis: '',
             loading: false,
             place: '最小金额',
+            pro: '',
             models: {
                 tShow: false,
                 cause: '',
@@ -163,11 +209,12 @@ export default {
             },
             proType: [
                 {v: '', n: '全部'},
-                {v: '0', n: 'VIP订阅'},
+                {v: '0', n: '超级订阅'},
                 {v: '1', n: '数据报告'},
                 {v: '2', n: '历史数据'},
                 {v: '3', n: '招投标课程'},
                 {v: '4', n: '线上课程'},
+                {v: '5', n: '企业商机管理'}
             ],
             orderTips: [
                 {v: '', n: '全部'},
@@ -178,8 +225,9 @@ export default {
                 {v: '', n: '全部'},
                 {v: '-3', n: '已退款'},
                 {v: '-2', n: '已取消'},
-                {v: '0', n: '未付款'},
-                {v: '1', n: '已付款'}
+                {v: '-1', n: '逻辑删除'},
+                {v: '0', n: '未支付'},
+                {v: '1', n: '已支付'}
             ],
             invoiceSta: [
                 {v: '', n: '全部'},
@@ -203,6 +251,20 @@ export default {
             },
             dataVal1: '',
             dataVal2: '',
+            options1: {
+                disabledDate: (function(date) {
+                    var timeEnd = ChangeDate(this.filter.orderTimeEnd)
+                    var p_time = new Date(timeEnd).getTime()
+                    return date && date.valueOf() > p_time;
+                }).bind(this)
+            },
+            options2: {
+                disabledDate: (function(date) {
+                    var timeStart = ChangeDate(this.filter.orderTimeStart)
+                    var p_time = new Date(timeStart).getTime()
+                    return date && date.valueOf() < p_time;
+                }).bind(this)
+            },
             columns: [
                 {
                     title: '订单编号',
@@ -216,10 +278,10 @@ export default {
                 },
                 {
                     title: '订单类型',
-                    key: 'filter',
+                    key: 'dis_word',
                     align: 'center',
                     render: (h, {row}) => {
-                        let word = JSON.parse(row.filter).disWord
+                        let word = row.dis_word
                         return h('span', word ? '分销' : '直销')
                     }
                 },
@@ -246,12 +308,11 @@ export default {
                         case -3 :
                             return h('div', {
                                 style: {
-                                    color: '#ffb822'
+                                    color: '#f4516c'
                                 }
                             }, [
                                 h('span','已退款')
                             ])
-                            break;
                         case -2 :
                             return h('div', {
                                 style: {
@@ -260,25 +321,30 @@ export default {
                             }, [
                                 h('span','已取消')
                             ])
-                            break;
+                        case -1 :
+                            return h('div', {
+                                style: {
+                                    color: '#f4516c'
+                                }
+                            }, [
+                                h('span','逻辑删除')
+                            ])
                         case 0 :
                             return h('div', {
                                 style: {
                                     color: '#f4516c'
                                 }
                             }, [
-                                h('span','未付款')
+                                h('span','未付')
                             ])
-                            break;
                         case 1 :
                             return h('div', {
                                 style: {
                                     color: '#34bfa3'
                                 }
                             }, [
-                                h('span', '已付')
+                                h('span', '已付')
                             ])
-                            break;
                         }
                     }
                 },
@@ -309,7 +375,7 @@ export default {
                             if (row.applybill_status == 1) {
                                 return h('div', {
                                     style:{
-                                        color: '#f4516c'
+                                        color: '#34bfa3'
                                     }
                                 }, [
                                     h('span','已申请')
@@ -332,12 +398,7 @@ export default {
                     align: 'center'
                 },
             ],
-            list: [],
-            current: {
-                show: false,
-                data: {},
-                tips: ''
-            }
+            list: []
         }
     },
 }

+ 165 - 128
src/views/sales/commissionList.vue

@@ -34,9 +34,10 @@
                 placeholder="起始时间" 
                 format="yyyy-MM-dd HH:mm:ss"
                 style="width: 172px"
+                :options="options1"
                 @on-change="handleChange1"
-                clearable
-                @on-clear="handleClear"
+                @on-ok="confirmed1"
+                @on-open-change="opened1"
             ></DatePicker>
             <DatePicker 
                 type="datetime" 
@@ -45,12 +46,15 @@
                 placeholder="截止时间" 
                 format="yyyy-MM-dd HH:mm:ss"
                 style="width:172px; margin-left:2px"
+                :options="options2"
                 @on-change="handleChange2"
+                @on-ok="confirmed2"
+                @on-open-change="opened2"
             ></DatePicker>
         </FormItem>
       </template>
       <template slot="filterRight">
-          <Input prefix="md-search" type="text" size="large" v-model="sear.keyword" placeholder="搜索..." clearable class="ser-ipt"/>
+          <Input prefix="md-search" type="text" size="large" v-model="sear.keyword" placeholder="搜索单号或手机号" clearable class="ser-ipt"/>
       </template>
       <Table size="large" ellipsis :loading="loading" ref="selection" :columns="columns" :data="list.lists" stripe>
         <template slot-scope="{ row }" slot="type">
@@ -65,148 +69,181 @@
           <Button 
             size="small" 
             type="primary" 
-            :to="{path:'/order/orderList/orderDetail',query:{id:row.product_name}}"
+            :to="{path:'/order/orderList/orderDetail',query:{id:row.order_id,proType:row.product_name}}"
           >订单</Button>
         </template>
       </Table>
       <template slot="options">
-        <div style="color:#d7d7d7;font-size:14px">共计{{list.total}}条佣金记录</div>
+        <div style="color:#d7d7d7;font-size:14px">共计{{list.total?list.total:'0'}}条佣金记录</div>
       </template>
     </table-lists>
   </div>
 </template>
 <script>
-    import _ from 'lodash'
-    import marked from 'marked'
-
-    export default {
-        computed: {
-            product () {
-                return this.requestType.map((item) => {
-                    return { v: item.type, n: item.name }
-                })
-            },
-            // currentTypeDescription () {
-            //     let description = "";
-            //     this.requestType.forEach((item)=>{
-            //         if (item.type === this.current.data.type){
-            //             description = item.description
-            //         }
-            //     })
-            //     return marked(description)
-            // }
+import { ChangeDate } from '../../assets/js/date.js'
+export default {
+    methods: {
+        load (val) {
+            this.loading = val
         },
-        methods: {
-            load (val) {
-                this.loading = val
-            },
-            emptyFilter (val) {
-                if (val) {
-                    this.filter.keyword = ''
-                    this.filter.product = ''
-                    this.filter.salesMin = ''
-                    this.filter.salesMax = ''
-                    this.filter.commissionMin = ''
-                    this.filter.commissionMax = ''
+        emptyFilter (val) {
+            if (val) {
+                this.filter.keyword = ''
+                this.filter.product = ''
+                this.filter.salesMin = ''
+                this.filter.salesMax = ''
+                this.filter.commissionMin = ''
+                this.filter.commissionMax = ''
+                this.filter.orderTimeMin = ''
+                this.filter.orderTimeMax = ''
+                this.dataValue1=''
+                this.dataValue2=''
+            }
+        },
+        handleChange1 (date) {
+            this.filter.orderTimeMin = date
+        },
+        handleChange2 (date) {
+            this.filter.orderTimeMax = date
+        },
+        confirmed1 () {
+            if (this.filter.orderTimeMin && this.filter.orderTimeMax) {
+                if (this.filter.orderTimeMin > this.filter.orderTimeMax) {
+                    this.dataVal1 = ''
                     this.filter.orderTimeMin = ''
+                    this.$Notice.warning({
+                        title: '警告提示',
+                        desc: "起始时间应小于截止时间",
+                        duration: 5
+                    })
+                }
+            }
+        },
+        confirmed2 () {
+            if (this.filter.orderTimeMin && this.filter.orderTimeMax) {
+                if (this.filter.orderTimeMin > this.filter.orderTimeMax) {
+                    this.dataVal2 = ''
                     this.filter.orderTimeMax = ''
-                    this.dataValue1=''
-                    this.dataValue2=''
+                    this.$Notice.warning({
+                        title: '警告提示',
+                        desc: "截止时间应大于起始时间",
+                        duration: 5
+                    })
                 }
-            },
-            handleChange1 (date) {
-                this.filter.orderTimeMin = date
-            },
-            handleChange2 (date) {
-                this.filter.orderTimeMax = date
-            },
-            handleClear (val) {
-                this.filter.orderTimeMin = ''
             }
         },
-        data () {
-            return {
-              lis: '',
-              loading: false,
-              dataValue1: '',
-              dataValue2: '',
-              requestType: [
-                  {type: '', name: '全部'},
-                  {type: '1', name: 'VIP订阅'},
-                  {type: '2', name: '数据导出'},
-                  {type: '3', name: '数据报告'}
-              ],
-              filter: {
-                //   keyword: '',
-                  product: '',
-                  salesMin: '',
-                  salesMax: '',
-                  commissionMin: '',
-                  commissionMax: '',
-                  orderTimeMin: '',
-                  orderTimeMax: ''
-              },
-              sear: {
-                keyword: '',
-              },
-              columns: [
-                  {
-                      title: '佣金单号',
-                      key: 'code',
-                      align: 'center'
-                  },
-                  {
-                      title: '手机号',
-                      key: 'phone',
-                      align: 'center'
-                  },
-                  {
-                      title: '订单日期',
-                      key: 'createtime',
-                      width: '170',
-                      align: 'center'
-                  },
-                  {
-                      title: '产品名称',
-                      key: 'product_name',
-                      align: 'center'
-                  },
-                  {
-                      title: '销售金额',
-                      key: 'sale_money',
-                      align: 'center',
-                      render: (h, {row}) => {
-                        return h('span','¥' + parseFloat(row.sale_money/100).toLocaleString('en-US'))
-                      }
-                  },
-                  {
-                      title: '佣金比例',
-                      key: 'commission_rate',
-                      align: 'center'
-                  },
-                  {
-                      title: '佣金金额',
-                      key: 'commission',
-                      align: 'center',
-                      render: (h, {row}) => {
-                        return h('span','¥' + parseFloat(row.commission/100).toLocaleString('en-US'))
-                      }
-                  },
-                  {
-                      title: '操作',
-                      slot: 'op',
-                      align: 'center'
-                  },
-              ],
-              list: [],
-              current: {
-                  show: false,
-                  data: {},
-                  tips: ''
-              }
+        opened1 (val) {
+            if (val) {
+                return
+            } else {
+                this.confirmed1()
             }
         },
-    }
+        opened2 (val) {
+            if (val) {
+                return
+            } else {
+                this.confirmed2()
+            }
+        },
+    },
+    data () {
+        return {
+            lis: '',
+            loading: false,
+            dataValue1: '',
+            dataValue2: '',
+            product: [
+                {v: '', n: '全部'},
+                {v: '1', n: '超级订阅'},
+                {v: '2', n: '数据导出'},
+                {v: '3', n: '数据报告'}
+            ],
+            filter: {
+            //   keyword: '',
+                product: '',
+                salesMin: '',
+                salesMax: '',
+                commissionMin: '',
+                commissionMax: '',
+                orderTimeMin: '',
+                orderTimeMax: ''
+            },
+            sear: {
+                keyword: '',
+            },
+            options1: {
+                disabledDate: (function(date) {
+                    var timeEnd = ChangeDate(this.filter.orderTimeMax)
+                    var p_time = new Date(timeEnd).getTime()
+                    return date && date.valueOf() > p_time;
+                }).bind(this)
+            },
+            options2: {
+                disabledDate: (function(date) {
+                    var timeStart = ChangeDate(this.filter.orderTimeMin)
+                    var p_time = new Date(timeStart).getTime()
+                    return date && date.valueOf() < p_time;
+                }).bind(this)
+            },
+            columns: [
+                {
+                    title: '佣金单号',
+                    key: 'code',
+                    align: 'center'
+                },
+                {
+                    title: '手机号',
+                    key: 'phone',
+                    align: 'center'
+                },
+                {
+                    title: '订单日期',
+                    key: 'createtime',
+                    width: '170',
+                    align: 'center'
+                },
+                {
+                    title: '产品名称',
+                    key: 'product_name',
+                    align: 'center'
+                },
+                {
+                    title: '销售金额',
+                    key: 'sale_money',
+                    align: 'center',
+                    render: (h, {row}) => {
+                    return h('span','¥' + parseFloat(row.sale_money/100).toLocaleString('en-US'))
+                    }
+                },
+                {
+                    title: '佣金比例',
+                    key: 'commission_rate',
+                    align: 'center'
+                },
+                {
+                    title: '佣金金额',
+                    key: 'commission',
+                    align: 'center',
+                    render: (h, {row}) => {
+                    return h('span','¥' + parseFloat(row.commission/100).toLocaleString('en-US'))
+                    }
+                },
+                {
+                    title: '操作',
+                    slot: 'op',
+                    align: 'center'
+                },
+            ],
+            list: [],
+            current: {
+                show: false,
+                data: {},
+                tips: ''
+            }
+        }
+    },
+}
 </script>
 
 <style lang="scss" scoped>

+ 14 - 8
src/views/sales/components/details.vue

@@ -32,7 +32,7 @@
             <Divider />
             <div class="con">
                 <span>提现金额</span>
-                <span class="spa2">¥{{details.money}}</span>
+                <span class="spa2">¥{{(details.money/100).toLocaleString('en-US')}}</span>
             </div>
             <Divider />
             <div class="con">
@@ -47,7 +47,7 @@
             <Divider />
             <div class="con">
                 <span>当前状态</span>
-                <span class="spa2">{{details.cashout_status | casStatus}}</span>
+                <span class="spa2" :class="details.cashout_status == 0 ? 'color1' : 'color2'">{{details.cashout_status | casStatus}}</span>
             </div>
             <Divider />
         </div>
@@ -65,27 +65,27 @@
             <Divider />
             <div class="con">
                 <span>销售金额</span>
-                <span class="spa2">¥{{settleDet.sale_cash}}</span>
+                <span class="spa2">¥{{(settleDet.sale_cash/100).toLocaleString('en-US')}}</span>
             </div>
             <Divider />
             <div class="con">
                 <span>佣金金额</span>
-                <span class="spa2">¥{{settleDet.commission}}</span>
+                <span class="spa2">¥{{(settleDet.commission/100).toLocaleString('en-US')}}</span>
             </div>
             <Divider />
             <div class="con">
                 <span>个税金额</span>
-                <span class="spa2">¥{{settleDet.tax_cash}}</span>
+                <span class="spa2">¥{{(settleDet.tax_cash/100).toLocaleString('en-US')}}</span>
             </div>
             <Divider />
             <div class="con">
                 <span>认证金额</span>
-                <span class="spa2">¥{{settleDet.auth_cash}}</span>
+                <span class="spa2">¥{{(settleDet.auth_cash/100).toLocaleString('en-US')}}</span>
             </div>
             <Divider />
             <div class="con">
                 <span>提现金额</span>
-                <span class="spa2">¥{{settleDet.can_cash}}</span>
+                <span class="spa2">¥{{(settleDet.can_cash/100).toLocaleString('en-US')}}</span>
             </div>
             <Divider />
             <!-- <div class="con">
@@ -159,7 +159,7 @@ export default {
         width: 500px;
         .con {
             padding: 5px 30px;
-            font-size: 14px;
+            font-size: 16px;
             span {
                 display: inline-block;
                 width: 50%;
@@ -168,6 +168,12 @@ export default {
                 text-align: right;
                 
             }
+            .color1 {
+                color: #f4516c;
+            }
+            .color2 {
+                color: #34bfa3;
+            }
         }
     }
 }

+ 87 - 61
src/views/sales/partnerDetail.vue

@@ -6,7 +6,7 @@
                 <Card>
                     <div slot="title" class="top-tit">
                         <div class="avatr">
-                            <img :src="parDetail.headImg" alt="">
+                            <img :src="parDetail.headImg" onerror="../../assets/images/login_logo.png">
                         </div>
                         <div class="names">{{parDetail.name}}</div>
                         <div class="msg1"><span>{{parDetail.phone}}</span></div>
@@ -14,7 +14,7 @@
                     </div>
                     <div class="bot-tit">
                         <div class="over-view" @click="tabClick(1)" :class="{active:infor === 1}"><span>概览</span></div>
-                        <div class="basic" @click="tabClick(2)" :class="{active:infor === 2}"><span>基本信息<i>已认证</i></span></div>
+                        <div class="basic" @click="tabClick(2)" :class="{active:infor === 2}"><span>基本信息<i :class="parDetail.auth_status | authColor">{{parDetail.auth_status | authStatus}}</i></span></div>
                         <div class="fund" @click="tabClick(3)" :class="{active:infor === 3}"><span>资金明细</span></div>
                     </div>
                 </Card>
@@ -25,7 +25,7 @@
                     <div class="msg-card">
                         <Card>
                             <div class="add-time">
-                                <div class="time1"><img src="../../assets/images/riqi.svg" />加入日期</div>
+                                <div class="time1"><img src="../../assets/images/riqi.png" />加入日期</div>
                                 <div class="time2">{{parDetail.createtime}}</div>
                             </div>
                         </Card>
@@ -37,19 +37,19 @@
                         </Card>
                         <Card>
                             <div class="add-time">
-                                <div class="time1"><img src="../../assets/images/yongjin.svg" />累计销售额</div>
+                                <div class="time1"><img src="../../assets/images/yongjin.png" />累计销售额</div>
                                 <div class="time2">¥{{(parDetail.dis_sales/100).toLocaleString('en-US')}}</div>
                             </div>
                         </Card>
                         <Card>
                             <div class="add-time">
-                                <div class="time1"><img src="../../assets/images/dingdan.svg" />累计销售订单</div>
+                                <div class="time1"><img src="../../assets/images/dingdan.png" />累计销售订单</div>
                                 <div class="time2">{{parDetail.dis_order}}</div>
                             </div>
                         </Card>
                         <Card>
                             <div class="add-time">
-                                <div class="time1"><img src="../../assets/images/yongjin.svg" />累计佣金</div>
+                                <div class="time1"><img src="../../assets/images/yongjin.png" />累计佣金</div>
                                 <div class="time2">¥{{(parDetail.dis_commission/100).toLocaleString('en-US')}}</div>
                             </div>
                         </Card>
@@ -57,12 +57,12 @@
                     <Table 
                         size="large"
                         ellipsis 
-                        ref="selection" 
                         :loading="loading" 
                         :columns="column1" 
                         :data="datas1" 
                         stripe 
                         style="margin-top: 30px"
+                        v-if="infor == 1"
                     ></Table>
                 </Card>
                 <Card v-else-if="infor == 2">
@@ -99,7 +99,7 @@
                         <Divider />
                         <div class="con" v-if="types == '2'">
                             <span class="spa1">营业执照</span>
-                            <img @click="fruit" :src="parDetail.license"/>
+                            <img class="imgs" @click="fruit" :src="parDetail.license"/>
                         </div>
                         <Divider v-if="types == '2'" />
                     </div>
@@ -109,26 +109,29 @@
                     <Table 
                         size="large"
                         ellipsis 
-                        ref="selection" 
                         :loading="loading" 
                         :columns="column2" 
                         :data="datas2" 
                         stripe 
-                        @on-row-click="rowClick"
                         style="margin-top: 10px"
-                    ></Table>
+                        v-if="infor == 3"
+                    >
+                        <template slot-scope="{ row }" slot="_code">
+                            <div @click="rowsClick(row)">{{row.code}}</div>
+                        </template>
+                    </Table>
                 </Card>
             </Col>
         </Row>
         <Modal v-model="preview">
-            <img src="../../assets/images/frut.jpg">
-            <div slot="footer"></div>
+            <img :src="parDetail.license">
+            <div slot="footer" style="display:none"></div>
         </Modal>
     </div>
 </template>
 
 <script>
-import { ChangeDate, ChangeDate2 } from '../../assets/js/date'
+import { ChangeDate } from '../../assets/js/date'
 export default {
     created () {
         let rout = this.$route.query
@@ -161,7 +164,7 @@ export default {
                 atr.push(new Date(e.createtime).getTime())
             })
             atr.sort(this.sortNum)
-            atr.forEach((v,i) => {
+            atr.forEach((v) => {
                 r.data.forEach(res => {
                     let ar = new Date(res.createtime).getTime()
                     if (ar === v) {
@@ -181,44 +184,67 @@ export default {
         },
         tabClick(index) {
             this.infor = index
+            if (index != 3) {
+                sessionStorage.removeItem('info')
+            }
         },
         fruit() {
             this.preview = true
         },
-        rowClick (data) {
-            if (data.type == '佣金') {
+        rowsClick (arr) {
+            if (arr.type == '佣金') {
                 this.$router.push({
                     path:'/order/orderList/orderDetail',
                     query:{
-                        id:data.order_id,
-                        proType:data.product_name,
+                        id: arr.order_id,
+                        proType: arr.product_name,
                         par: 1
                     }
                 })
-            } else if (data.type == '提现') {
+            } else if (arr.type == '提现') {
                 this.$router.push({
                     path:'/sales/withdrawList/withdrawDetail',
                     query:{
-                        id:data.id,
-                        uid:data.uid,
-                        peType:data.ptype,
-                        deType:'tixian',
+                        id: arr.id,
+                        uid: arr.uid,
+                        peType: String(arr.ptype),
+                        deType: 'tixian',
                         par: 1
                     }
                 })
-            } else if (data.type == '结算') {
+            } else if (arr.type == '结算') {
                 this.$router.push({
                     path:'/sales/settleList/settleDetail',
                     query:{
-                        id:data.id,
-                        uid:data.uid,
-                        deType:'jiesuan',
+                        id: arr.id,
+                        uid: arr.uid,
+                        deType: 'jiesuan',
                         par: 1
                     }
                 })
             }
         }
     },
+    filters: {
+        authStatus (val) {
+            if (val == -1) {
+                return '未通过'
+            } else if (val == 0) {
+                return '未认证'
+            } else if (val == 1) {
+                return '已认证'
+            }
+        },
+        authColor (val) {
+            if (val == -1) {
+                return 'color1'
+            } else if (val == 0) {
+                return 'color2'
+            } else if (val == 1) {
+                return 'color3'
+            }
+        },
+    },
     data () {
         return {
             loading: false,
@@ -267,7 +293,8 @@ export default {
             column2: [
                   {
                       title: '订单号',
-                      key: 'code',
+                      slot: '_code',
+                      className: 'table-info-money',
                       align: 'center'
                   },
                   {
@@ -296,7 +323,6 @@ export default {
 
 <style lang="scss" scoped>
 .partner-detail {
-    // padding-left: 20px;
     .par-row {
         background:#Fff;
         padding:20px 0 20px 15px;
@@ -313,7 +339,7 @@ export default {
                 padding: 28px 0;
             }
             .ivu-card-body {
-                padding: 0px;
+                padding: 0px!important;
             }
         }
     }
@@ -328,7 +354,7 @@ export default {
             border: 2px solid #f4f5f8;
             border-radius: 63px;
             overflow: hidden;
-            margin: 28px 0;
+            margin: 20px 0 28px 0;
             display: flex;
             justify-content: center;
             align-items: center;
@@ -338,28 +364,26 @@ export default {
             font-size: 16px;
             font-weight: 700;
             color: #1b1c1e;
-            margin-bottom: 15px;
+            margin-bottom: 20px;
         }
         .msg1 {
             width: 100%;
-            // padding: 0 30px;
             span {
-            display: block;
-            width: 100%;
-            height: 32px;
-            line-height: 20px;
-            color: #7b7e8a;
-            background: url(../../assets/images/shoujihao.svg) no-repeat 6px top; 
-            background-size: 20px 20px;
-            padding-left: 40px;
-            // margin-left: 10px;
-            word-break:break-all;
+                display: block;
+                width: 100%;
+                height: 32px;
+                line-height: 20px;
+                color: #7b7e8a;
+                background: url(../../assets/images/shoujihao.png) no-repeat 6px top; 
+                background-size: 20px 20px;
+                padding-left: 40px;
+                word-break:break-all;
             }
         }
         .msg2 {
             span {
-            background: url(../../assets/images/youxiang.svg) no-repeat 6px top;
-            background-size: 20px 20px;
+                background: url(../../assets/images/youxiang.png) no-repeat 6px top;
+                background-size: 20px 20px;
             }
         }
     }
@@ -389,28 +413,36 @@ export default {
         }
         .over-view {
             span {
-                background: url(../../assets/images/gailan.svg) no-repeat 6px center;
+                background: url(../../assets/images/gailan.png) no-repeat 6px center;
             }
         }
         .basic {
             span {
-                background: url(../../assets/images/xinxi.svg) no-repeat 6px center; 
+                background: url(../../assets/images/xinxi.png) no-repeat 6px center; 
             }
             i {
                 display: inline-block;
                 width: 70px;
                 color: #70b603;
                 text-align: right;
-                // margin-left: 40px;
+            }
+            .color1 {
+                color: #f4516c;
+            }
+            .color2 {
+                color: #ffb822;
+            }
+            .color3 {
+                color: #34bfa3;
             }
         }
         .fund {
             span {
-                background: url(../../assets/images/mingxi.svg) no-repeat 6px center;
+                background: url(../../assets/images/mingxi.png) no-repeat 6px center;
             }
         }
         .active {
-            background:rgba(247, 248, 250, 1);
+            background:rgba(54,163,247, 0.2);
         }
     }
     .right-fund {
@@ -459,7 +491,7 @@ export default {
         width: 500px;
         .con {
             padding: 5px 30px;
-            font-size: 14px;
+            font-size: 15px;
             span {
                 display: inline-block;
                 width: 50%;
@@ -471,20 +503,14 @@ export default {
             .spa1 {
                 float: left;
             }
-            img {
+            .imgs {
                 float: right;
                 width: 192px;
-                height: 197px;
+                min-height: 197px;
                 margin-bottom: 30px;
+                cursor: pointer;
             }
         }
     }
-    // .find-btn {
-    //     background: none;
-    //     color:#36a3f7;
-    //     &:focus {
-    //         box-shadow: none;
-    //     }
-    // }
 }
 </style>

+ 5 - 5
src/views/sales/partnerList.vue

@@ -26,18 +26,17 @@
             <Input style="width: 73px" type="text" size="large" v-model="filter.commissionMin" placeholder="最小金额" clearable/>
             <Input style="width: 73px;margin-left: 2px" type="text" size="large" v-model="filter.commissionMax" placeholder="最大金额" clearable/>
         </FormItem>
-        <FormItem label="累计单数:" :label-width="70" style="margin-right: 80px">
+        <FormItem label="累计单数:" :label-width="70" style="margin-right: 40px">
             <Input style="width: 73px" type="text" size="large" v-model="filter.orderMin" placeholder="最小单数" clearable/>
             <Input style="width: 73px;margin-left: 2px" type="text" size="large" v-model="filter.orderMax" placeholder="最大单数" clearable/>
         </FormItem>
       </template>
       <template slot="filterRight">
-          <Input prefix="md-search" type="text" size="large" v-model="sear.keyword" placeholder="搜索..." clearable class="ser-ipt"/>
+          <Input prefix="md-search" type="text" size="large" v-model="sear.keyword" placeholder="搜索名称或手机号" clearable class="ser-ipt"/>
       </template>
       <Table size="large" ellipsis :loading="loading" :columns="columns" :data="list.lists" stripe>
         <template slot-scope="{ row }" slot="type">
           <div>{{row.type == '1'?'个人':'企业'}}</div>
-          <!-- <field-map :value="row.type" :map="type"></field-map> -->
         </template>
         <template slot-scope="{ row }" slot="_action">
           <Tooltip :content="row.call" :max-width="500">
@@ -53,7 +52,7 @@
         </template>
       </Table>
       <template slot="options">
-        <div style="color:#d7d7d7;font-size:14px">共计{{list.total}}位剑鱼伙伴</div>
+        <div style="color:#d7d7d7;font-size:14px">共计{{list.total ? list.total : '0'}}位剑鱼伙伴</div>
       </template>
     </table-lists>
   </div>
@@ -65,8 +64,9 @@ export default {
       this.loading = val
     },
     emptyFilter (val) {
+      console.log(val)
       if (val) {
-        this.filter.keyword = ''
+        // this.filter.keyword = ''
         this.filter.type = ''
         this.filter.salesMin = ''
         this.filter.salesMax = ''

+ 2 - 2
src/views/sales/settleList.vue

@@ -12,7 +12,7 @@
         @loading="load"
     >
       <template slot="filterRight">
-          <Input prefix="md-search" type="text" size="large" v-model="filter.keyword" placeholder="搜索..." clearable class="ser-ipt"/>
+          <Input prefix="md-search" type="text" size="large" v-model="filter.keyword" placeholder="搜索单号或手机号" clearable class="ser-ipt"/>
       </template>
       <Table 
         size="large"
@@ -27,7 +27,7 @@
       >
       </Table>
       <template slot="options">
-        <div style="color:#d7d7d7;font-size:14px">共计{{list.total}}条结算记录</div>
+        <div style="color:#d7d7d7;font-size:14px">共计{{list.total ? list.total : '0'}}条结算记录</div>
       </template>
     </table-lists>
   </div>

+ 5 - 1
src/views/sales/withdrawDetail.vue

@@ -2,7 +2,7 @@
     <div class="with-detail">
         <h1>{{$route.query.deType == "tixian" ? "提现" : "结算"}}列表</h1>
         <div class="det">
-            <div slot="title" class="right-fund">查看详情</div>
+            <div slot="title" class="right-fund">查看详情<Button class="btn" @click="$router.go(-1)">返回</Button></div>
             <Divider />
             <w-detail :deType="$route.query.deType" :peType="$route.query.peType"></w-detail>
         </div>
@@ -33,5 +33,9 @@ export default {
         padding-left: 100px;
         margin-top: 14px;
     }
+    .btn {
+        float: right;
+        margin-right: 30px;
+    }
 }
 </style>

+ 109 - 16
src/views/sales/withdrawList.vue

@@ -20,12 +20,14 @@
         <FormItem label="提现时间:" :label-width="70" style="margin-right: 40px">
             <DatePicker 
                 type="datetime" 
-                :value="dataValue"
                 size="large"
                 placeholder="起始时间" 
                 format="yyyy-MM-dd HH:mm:ss"
                 style="width: 172px" 
                 @on-change="handleChange1"
+                :options="options1"
+                @on-ok="confirmed1"
+                @on-open-change="opened1"
             ></DatePicker>
             <DatePicker 
                 type="datetime" 
@@ -34,13 +36,16 @@
                 format="yyyy-MM-dd HH:mm:ss"
                 style="width: 172px;margin-left:2px" 
                 @on-change="handleChange2"
+                :options="options2"
+                @on-ok="confirmed2"
+                @on-open-change="opened2"
             ></DatePicker>
         </FormItem>
         <Button type="primary" size="large" @click="exportd">导出结果</Button>
-        <Button type="primary" size="large" @click="finished('批量')" style="margin-left:30px">批量完成</Button>
+        <Button type="primary" size="large" @click="batchFinish" style="margin-left:30px">批量完成</Button>
       </template>
       <template slot="filterRight">
-          <Input prefix="md-search" type="text" size="large" v-model="filter.keyword" placeholder="搜索..." clearable class="ser-ipt"/>
+          <Input prefix="md-search" type="text" size="large" v-model="filter.keyword" placeholder="搜索单号或手机号" clearable class="ser-ipt"/>
       </template>
       <Table 
         size="large"
@@ -63,24 +68,28 @@
             size="small" 
             type="primary" 
             style="margin-right:5px"
-            :to="{path:'/sales/withdrawList/withdrawDetail',query:{id:row.id, uid:row.uid, deType:'tixian', peType:row.type}}"
+            :to="{path:'/sales/withdrawList/withdrawDetail',query:{id:row.id, uid:row.uid, deType:'tixian', peType:String(row.type)}}"
           >查看</Button>
           <Button 
             size="small" 
             type="success" 
-            @click="finished('',row.id)"
+            @click="finished(row.id)"
             :disabled="row.cashout_status == 1? true : false"
           >完成</Button>
         </template>
       </Table>
       <template slot="options">
-        <div style="color:#d7d7d7;font-size:14px">共计{{list.total}}条提现记录</div>
+          <div style="color:#d7d7d7;font-size:14px">已选择{{seleData.length}}条提现记录,共计{{list.total ? list.total : '0'}}条提现记录</div>
       </template>
     </table-lists>
   </div>
 </template>
 <script>
+import { ChangeDate } from '../../assets/js/date.js'
 export default {
+    created() {
+        this.$route.meta.keepAlive = false
+    },
     methods: {
         load (val) {
             this.loading = val
@@ -89,19 +98,64 @@ export default {
             this.$refs.tableLists.reload(true)
         },
         handleChange1 (date) {
-            console.log(this.dataValue)
             this.filter.cashStartTime = date
         },
         handleChange2 (date) {
-            console.log(date)
             this.filter.cashEndTime = date
         },
+        confirmed1 () {
+            if (this.filter.cashStartTime && this.filter.cashEndTime) {
+                if (this.filter.cashStartTime > this.filter.cashEndTime) {
+                    this.dataVal1 = ''
+                    this.filter.cashStartTime = ''
+                    this.$Notice.warning({
+                        title: '警告提示',
+                        desc: "起始时间应小于截止时间",
+                        duration: 5
+                    })
+                }
+            }
+        },
+        confirmed2 () {
+            if (this.filter.cashStartTime && this.filter.cashEndTime) {
+                if (this.filter.cashStartTime > this.filter.cashEndTime) {
+                    this.dataVal2 = ''
+                    this.filter.cashEndTime = ''
+                    this.$Notice.warning({
+                        title: '警告提示',
+                        desc: "截止时间应大于起始时间",
+                        duration: 5
+                    })
+                }
+            }
+        },
+        opened1 (val) {
+            if (val) {
+                return
+            } else {
+                this.confirmed1()
+            }
+        },
+        opened2 (val) {
+            if (val) {
+                return
+            } else {
+                this.confirmed2()
+            }
+        },
         seleChange (selection) {
             this.seleData = selection
         },
         exportd() {
             let arr = []
-            if (this.seleData.length !=0) {
+            this.seleData.forEach(v => {
+                if (v.cashout_status == 1) {
+                    this.casStatus = false
+                } else {
+                    this.casStatus = true
+                }
+            })
+            if (this.seleData.length !=0 && this.casStatus) {
                 this.$Modal.confirm({
                     title: "确定导出结果吗?",
                     onOk: () => {
@@ -112,34 +166,58 @@ export default {
                             ids: String(arr)
                         }).success((res) => {
                             window.location.href = res.data
+                            this.reload()
                         }).get()
                     }
                 })
+            } else if (!this.casStatus) {
+                this.$Modal.warning({
+                    title: "所选项有已完成内容"
+                })
             } else {
                 this.$Modal.warning({
                     title: "至少选择一项内容"
                 })
             }
         },
-        batched (val,tips,data) {
+        batched (val) {
             this.$request('/sales/withdrawList/batchFinish').data({ 
-                ids: tips ? val : data
+                ids: val
             }).showSuccessTip().success(() => {
                 this.reload()
             }).post()
         },
-        finished (tips,data) {
+        finished (data) {
+            this.$Modal.confirm({
+                title: "确定要完成所选内容",
+                onOk: () => {
+                    this.batched(data)
+                }
+            })
+        },
+        batchFinish () {
             let arr = []
-            if (this.seleData.length !=0 || !tips) {
+            this.seleData.forEach(v => {
+                if (v.cashout_status == 1) {
+                    this.casStatus = false
+                } else {
+                    this.casStatus = true
+                }
+            })
+            if (this.seleData.length !=0 && this.casStatus) {
                 this.$Modal.confirm({
-                    title: "确定" + tips + "完成所选内容",
+                    title: "确定要批量完成所选内容",
                     onOk: () => {
                         this.seleData.forEach(v => {
                             arr.push(v.id)
                         });
-                        this.batched(String(arr),tips,data)
+                        this.batched(String(arr))
                     }
                 })
+            } else if (!this.casStatus) {
+                this.$Modal.warning({
+                    title: "所选项有已完成内容"
+                })
             } else {
                 this.$Modal.warning({
                     title: "至少选择一项内容"
@@ -162,7 +240,7 @@ export default {
         return {
             lis: '',
             loading: false,
-            dataValue: '',
+            casStatus: true,
             withType: [
                 {v: '', n: '全部'},
                 {v: '0', n: '已申请'},
@@ -174,6 +252,21 @@ export default {
                 cashStartTime: '',
                 cashEndTime: ''
             },
+            options1: {
+                disabledDate: (function(date) {
+                    var timeEnd = ChangeDate(this.filter.cashEndTime)
+                    console.log(timeEnd)
+                    var p_time = new Date(timeEnd).getTime()
+                    return date && date.valueOf() > p_time;
+                }).bind(this)
+            },
+            options2: {
+                disabledDate: (function(date) {
+                    var timeStart = ChangeDate(this.filter.cashStartTime)
+                    var p_time = new Date(timeStart).getTime()
+                    return date && date.valueOf() < p_time;
+                }).bind(this)
+            },
             seleData: [],
             columns: [
                 {

+ 1 - 13
src/views/system/auth.vue

@@ -85,7 +85,6 @@
             },
             edit(row) {
                 this.current.data = _.cloneDeep(row);
-                console.log(_.cloneDeep(row))
                 this.current.show = true;
             },
             remove(row) {
@@ -127,13 +126,6 @@
                     keyword: "",
                 },
                 columns: [
-                    {
-                        title: '序号',
-                        type: 'ID',
-                        key: 'id',
-                        width: 70,
-                        align: 'center'
-                    },
                     {
                         title: '名称',
                         key: 'name',
@@ -143,25 +135,21 @@
                     {
                         title: '创建时间',
                         key: 'create_time',
-                        align: 'center',
-                        // width: 200
+                        align: 'center'
                     },
                     {
                         title: '请求',
                         slot: '_request',
-                        // width: 140,
                         align: 'center',
                     },
                     {
                         title: '用户',
                         slot: '_userGroup',
-                        // width: 140,
                         align: 'center',
                     },
                     {
                         title: '菜单',
                         slot: '_menu',
-                        // width: 140,
                         align: 'center',
                     },
                     {

+ 1 - 1
src/views/system/components/AssignRequest.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <table-lists ref="tableLists" v-model="data" :filter="filter" :filterReset="0" requestApi="/system/auth/getRequest">
+        <table-lists style="min-height:auto" ref="tableLists" v-model="data" :filter="filter" :filterReset="0" requestApi="/system/auth/getRequest">
             <template slot="filterContent">
                 <FormItem>
                     <Input type="text" size="large" v-model="filter.keyword" placeholder="搜索关键词"/>

+ 1 - 1
src/views/system/components/AssignUser.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <table-lists ref="tableLists" v-model="data" :filter="filter" requestApi="/system/userGroup/getUser">
+        <table-lists style="min-height:auto" ref="tableLists" v-model="data" :filter="filter" :filterReset="0" requestApi="/system/userGroup/getUser">
             <template slot="filterContent">
                 <FormItem>
                     <Input type="text" size="large" v-model="filter.keyword" placeholder="搜索关键词"/>

+ 1 - 1
src/views/system/components/AssignUserGroup.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <table-lists ref="tableLists" v-model="data" :filter="filter" requestApi="/system/auth/getUserGroup">
+        <table-lists style="min-height:auto" ref="tableLists" v-model="data" :filter="filter" :filterReset="0" requestApi="/system/auth/getUserGroup">
             <template slot="filterContent">
                 <FormItem>
                     <Input type="text" size="large" v-model="filter.keyword" placeholder="搜索关键词"/>

+ 4 - 1
src/views/system/menu.vue

@@ -33,7 +33,10 @@
                             <Icon v-if="current.icon" :type="current.icon" size="24" style="margin-right: 10px">
                                 {{current.icon}}
                             </Icon>
-                            <span v-if="current.icon" style="margin-right: 10px">{{current.icon}}</span>
+                            <span v-if="current.icon" style="margin-right: 10px">
+                                {{current.icon}}
+                                <Icon @click="current.icon = ''" type="ios-close-circle-outline" size="16" style="display:inline-block;height: 40px;margin-right:10px;cursor:pointer;" v-if="current.icon" />
+                            </span>
                             <Button @click="iconSelect()">选择</Button>
                         </FormItem>
                         <FormItem label="描述">

+ 0 - 7
src/views/system/request.vue

@@ -148,13 +148,6 @@
                   type: ''
               },
               columns: [
-                  {
-                      title: '序号',
-                      type: 'ID',
-                      key: 'id',
-                      width: 70,
-                      align: 'center'
-                  },
                   {
                       title: '名称',
                       key: 'name',

+ 7 - 12
src/views/system/user.vue

@@ -39,8 +39,8 @@
                 </template>
                 <template slot-scope="{ row }" slot="op">
                     <Button size="small" type="primary" @click="edit(row)" style="margin-right: 5px" v-if="list.updateAuth">编辑</Button>
-                    <!-- <Button v-if="row.id" size="small" type="error" @click="remove(row)">删除</Button> -->
-                    <Button size="small" type="error" @click="remove(row)" v-if="list.delAuth">删除</Button>
+                    <Button v-if="row.id" size="small" type="error" @click="remove(row)">删除</Button>
+                    <!-- <Button size="small" type="error" @click="remove(row)" :disabled="!list.delAuth">删除</Button> -->
                 </template>
             </Table>
         </table-lists>
@@ -114,16 +114,11 @@
                     keyword: ""
                 },
                 columns: [
-                    {
-                        title: '序号',
-                        type: 'ID',
-                        key: 'id',
-                        width: 70,
-                        align: 'center'
-                    },
                     {
                         title: '用户名',
-                        key: 'username'
+                        key: 'username',
+                        width: 150,
+                        align: 'center'
                     },
                     {
                         title: '最后登录IP',
@@ -134,13 +129,13 @@
                         title: '最后登录时间',
                         key: 'last_login_time',
                         align: 'center',
-                        width: 170
+                        width: 220
                     },
                     {
                         title: '创建时间',
                         key: 'create_time',
                         align: 'center',
-                        width: 170
+                        width: 220
                     },
                     {
                         title: '状态',

+ 14 - 19
src/views/system/userGroup.vue

@@ -7,6 +7,7 @@
             :filterType="2" 
             :filterReset="0" 
             requestApi="/system/userGroup/lists" 
+            @emptyFilter="emptyFilter"
             @loading="load"
         >
             <template slot="filterContent">
@@ -34,8 +35,8 @@
                 </template>
                 <template slot-scope="{ row }" slot="op">
                     <Button size="small" type="primary" @click="edit(row)" style="margin-right: 5px" v-if="list.updateAuth">编辑</Button>
-                    <!-- <Button v-if="row.id" size="small" type="error" @click="remove(row)">删除</Button> -->
-                    <Button v-if="list.delAuth" size="small" type="error" @click="remove(row)">删除</Button>
+                    <Button v-if="row.id" size="small" type="error" @click="remove(row)">删除</Button>
+                    <!-- <Button size="small" type="error" @click="remove(row)" :disabled="!list.delAuth">删除</Button> -->
                 </template>
             </Table>
         </table-lists>
@@ -68,6 +69,11 @@
             load (val) {
                 this.loading = val
             },
+            emptyFilter (val) {
+                if (val) {
+                    this.filter.keyword = ''
+                }
+            },
             add() {
                 this.current.data = {};
                 this.current.show = true;
@@ -113,13 +119,6 @@
                     keyword: ""
                 },
                 columns: [
-                    {
-                        title: '序号',
-                        type: 'ID',
-                        key: 'id',
-                        width: 70,
-                        align: 'center'
-                    },
                     {
                         title: '名称',
                         key: 'name',
@@ -128,27 +127,23 @@
                     },
                     {
                         title: '更新时间',
-                        key: 'create_time',
-                        align: 'center',
-                        // width: 150
+                        key: 'update_time',
+                        align: 'center'
                     },
                     {
                         title: '创建时间',
-                        key: 'update_time',
-                        align: 'center',
-                        // width: 150
+                        key: 'create_time',
+                        align: 'center'
                     },
                     {
                         title: '权限',
                         slot: '_auth',
-                        align: 'center',
-                        // width: 120
+                        align: 'center'
                     },
                     {
                         title: '用户',
                         slot: '_user',
-                        align: 'center',
-                        // width: 120
+                        align: 'center'
                     },
                     {
                         title: '操作',

+ 5 - 5
vue.config.js

@@ -1,18 +1,18 @@
 module.exports = {
-  publicPath: './',
+  publicPath: '/',
   outputDir: "dist",
   productionSourceMap: false,
   // devServer: {
   //   port: '8080',
   //   open: true,
   //   disableHostCheck: true,
-  //   proxy: {
-  //     '/api/admin/': {
+    // proxy: {
+    //   '/': {
   //       target: 'http://kf-qmx-test.jianyu360.cn',
   //       changeOrigin: true,
-  //       ws: true,
+  //       ws: false,
   //       pathRewrite: {
-  //         '^/api/admin/': ''
+  //         '^/': ''
   //       }
   //     }
   //   }

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