544782275@qq.com 3 years ago
parent
commit
b56a75227c
100 changed files with 1016 additions and 4 deletions
  1. 2 4
      .gitignore
  2. BIN
      public/assets/addons/shopro/audio/notice.wav
  3. 1014 0
      public/assets/addons/shopro/chat.html
  4. BIN
      public/assets/addons/shopro/img/activity/free_shipping.png
  5. BIN
      public/assets/addons/shopro/img/activity/full_discount.png
  6. BIN
      public/assets/addons/shopro/img/activity/full_reduce.png
  7. BIN
      public/assets/addons/shopro/img/activity/groupon.png
  8. BIN
      public/assets/addons/shopro/img/activity/seckill.png
  9. BIN
      public/assets/addons/shopro/img/category/edit.png
  10. BIN
      public/assets/addons/shopro/img/category/img-1.png
  11. BIN
      public/assets/addons/shopro/img/category/img-2.png
  12. BIN
      public/assets/addons/shopro/img/category/img-3.png
  13. BIN
      public/assets/addons/shopro/img/category/img-4.png
  14. BIN
      public/assets/addons/shopro/img/category/selected.png
  15. BIN
      public/assets/addons/shopro/img/chat/chat-icon.png
  16. BIN
      public/assets/addons/shopro/img/chat/commonWords.png
  17. BIN
      public/assets/addons/shopro/img/chat/default.png
  18. BIN
      public/assets/addons/shopro/img/chat/expression.png
  19. BIN
      public/assets/addons/shopro/img/chat/file.png
  20. BIN
      public/assets/addons/shopro/img/chat/goods.png
  21. BIN
      public/assets/addons/shopro/img/chat/menu.gif
  22. BIN
      public/assets/addons/shopro/img/chat/user-default.png
  23. BIN
      public/assets/addons/shopro/img/commission/icon-right.png
  24. BIN
      public/assets/addons/shopro/img/commission/move.png
  25. BIN
      public/assets/addons/shopro/img/commission/upgrade-config.png
  26. BIN
      public/assets/addons/shopro/img/config/App-icon.png
  27. BIN
      public/assets/addons/shopro/img/config/alipay-icon.png
  28. BIN
      public/assets/addons/shopro/img/config/apple-icon.png
  29. BIN
      public/assets/addons/shopro/img/config/chat-icon.png
  30. BIN
      public/assets/addons/shopro/img/config/h5-icon.png
  31. BIN
      public/assets/addons/shopro/img/config/order-icon.png
  32. BIN
      public/assets/addons/shopro/img/config/score-icon.png
  33. BIN
      public/assets/addons/shopro/img/config/services-icon.png
  34. BIN
      public/assets/addons/shopro/img/config/share-icon.png
  35. BIN
      public/assets/addons/shopro/img/config/shopro-icon.png
  36. BIN
      public/assets/addons/shopro/img/config/store-icon.png
  37. BIN
      public/assets/addons/shopro/img/config/user-icon.png
  38. BIN
      public/assets/addons/shopro/img/config/wallet-icon.png
  39. BIN
      public/assets/addons/shopro/img/config/wechat-icon.png
  40. BIN
      public/assets/addons/shopro/img/config/withdraw-icon.png
  41. BIN
      public/assets/addons/shopro/img/config/wxMiniProgram-icon.png
  42. BIN
      public/assets/addons/shopro/img/config/wxOfficialAccount-icon.png
  43. BIN
      public/assets/addons/shopro/img/dashboard/aftersale-icon.png
  44. BIN
      public/assets/addons/shopro/img/dashboard/aftersale.png
  45. BIN
      public/assets/addons/shopro/img/dashboard/neworderArr-icon.png
  46. BIN
      public/assets/addons/shopro/img/dashboard/neworderArr.png
  47. BIN
      public/assets/addons/shopro/img/dashboard/noSent-icon.png
  48. BIN
      public/assets/addons/shopro/img/dashboard/noSent.png
  49. BIN
      public/assets/addons/shopro/img/dashboard/payAmount-icon.png
  50. BIN
      public/assets/addons/shopro/img/dashboard/payAmount.png
  51. BIN
      public/assets/addons/shopro/img/dashboard/payOrder-icon.png
  52. BIN
      public/assets/addons/shopro/img/dashboard/payOrder.png
  53. BIN
      public/assets/addons/shopro/img/dashboard/refund-icon.png
  54. BIN
      public/assets/addons/shopro/img/dashboard/refund.png
  55. BIN
      public/assets/addons/shopro/img/decorate/App.png
  56. BIN
      public/assets/addons/shopro/img/decorate/H5.png
  57. BIN
      public/assets/addons/shopro/img/decorate/adv.png
  58. BIN
      public/assets/addons/shopro/img/decorate/adv_01.png
  59. BIN
      public/assets/addons/shopro/img/decorate/adv_02.png
  60. BIN
      public/assets/addons/shopro/img/decorate/adv_03.png
  61. BIN
      public/assets/addons/shopro/img/decorate/adv_04.png
  62. BIN
      public/assets/addons/shopro/img/decorate/adv_05.png
  63. BIN
      public/assets/addons/shopro/img/decorate/adv_06.png
  64. BIN
      public/assets/addons/shopro/img/decorate/adv_07.png
  65. BIN
      public/assets/addons/shopro/img/decorate/adv_bg.png
  66. BIN
      public/assets/addons/shopro/img/decorate/banner.png
  67. BIN
      public/assets/addons/shopro/img/decorate/banner_bg.png
  68. BIN
      public/assets/addons/shopro/img/decorate/cart.png
  69. BIN
      public/assets/addons/shopro/img/decorate/category_tabs.png
  70. BIN
      public/assets/addons/shopro/img/decorate/code_1.png
  71. BIN
      public/assets/addons/shopro/img/decorate/copy-btn.png
  72. BIN
      public/assets/addons/shopro/img/decorate/coupon.png
  73. BIN
      public/assets/addons/shopro/img/decorate/coupon_bg1.png
  74. BIN
      public/assets/addons/shopro/img/decorate/coupon_bg2.png
  75. BIN
      public/assets/addons/shopro/img/decorate/coupons_bg_01.png
  76. BIN
      public/assets/addons/shopro/img/decorate/coupons_bg_02.png
  77. BIN
      public/assets/addons/shopro/img/decorate/decorate-btn.png
  78. BIN
      public/assets/addons/shopro/img/decorate/delete-btn.png
  79. BIN
      public/assets/addons/shopro/img/decorate/down-btn.png
  80. BIN
      public/assets/addons/shopro/img/decorate/edit-btn.png
  81. BIN
      public/assets/addons/shopro/img/decorate/float-button.png
  82. BIN
      public/assets/addons/shopro/img/decorate/float-button_bg.png
  83. BIN
      public/assets/addons/shopro/img/decorate/goods-group.png
  84. BIN
      public/assets/addons/shopro/img/decorate/goods-group_bg_01.png
  85. BIN
      public/assets/addons/shopro/img/decorate/goods-group_bg_02.png
  86. BIN
      public/assets/addons/shopro/img/decorate/goods-list.png
  87. BIN
      public/assets/addons/shopro/img/decorate/goods-list_bg_01.png
  88. BIN
      public/assets/addons/shopro/img/decorate/goods-list_bg_02.png
  89. BIN
      public/assets/addons/shopro/img/decorate/grid-list.png
  90. BIN
      public/assets/addons/shopro/img/decorate/grid-list_bg.png
  91. BIN
      public/assets/addons/shopro/img/decorate/groupon-card1.png
  92. BIN
      public/assets/addons/shopro/img/decorate/groupon-card11.png
  93. BIN
      public/assets/addons/shopro/img/decorate/groupon-card2.png
  94. BIN
      public/assets/addons/shopro/img/decorate/groupon-title.png
  95. BIN
      public/assets/addons/shopro/img/decorate/groupon.png
  96. BIN
      public/assets/addons/shopro/img/decorate/groupon_bg_01.png
  97. BIN
      public/assets/addons/shopro/img/decorate/groupon_bg_02.png
  98. BIN
      public/assets/addons/shopro/img/decorate/groupon_fire.png
  99. BIN
      public/assets/addons/shopro/img/decorate/image-default.png
  100. BIN
      public/assets/addons/shopro/img/decorate/image-default2.png

+ 2 - 4
.gitignore

@@ -1,11 +1,9 @@
 /nbproject/
 /runtime/*
 
-/public/assets/libs/
-/public/assets/addons/*
-/public/uploads/*
+
 .idea
-composer.lock
+
 *.log
 *.css.map
 !.gitkeep

BIN
public/assets/addons/shopro/audio/notice.wav


+ 1014 - 0
public/assets/addons/shopro/chat.html

@@ -0,0 +1,1014 @@
+<style>
+    #shopro-kefu-container .el-dialog {
+        width: 900px;
+    }
+
+    #shopro-kefu-container .el-dialog__body,
+    #shopro-kefu-container .el-dialog__header {
+        padding: 0 !important;
+    }
+
+    #shopro-kefu-container .el-dialog__header {
+        background: #FBFBFB;
+    }
+
+    #shopro-kefu-container .el-image {
+        width: 100%;
+        height: 100%;
+        border-radius: 19px;
+    }
+
+    #shopro-kefu-container .image-slot {
+        width: 100%;
+        height: 100%;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+    }
+
+    .ellipsis-item {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-line-clamp: 1;
+        -webkit-box-orient: vertical;
+    }
+
+    .shopro-chat-goods-title {
+        width: 144px;
+    }
+
+    .display-flex {
+        display: flex;
+    }
+
+    .scrollbar-containering::-webkit-scrollbar {
+        width: 6px;
+        background: #F4F4F4;
+    }
+
+    .scrollbar-containering::-webkit-scrollbar-thumb {
+        width: 6px;
+        background: #e6e6e6;
+        height: 20px;
+        border-radius: 3px;
+    }
+
+    .el-textarea__inner::-webkit-scrollbar {
+        width: 4px;
+        background: #F4F4F4;
+    }
+
+    .el-textarea__inner::-webkit-scrollbar-thumb {
+        width: 4px;
+        background: #e6e6e6;
+        height: 20px;
+        border-radius: 3px;
+    }
+
+
+    .shopro-kefu-container-shake {
+        animation: shopro-shake 1s;
+        -o-animation: shopro-shake 1s;
+        -webkit-animation: shopro-shake 1s;
+        -moz-animation: shopro-shake 1s;
+    }
+
+    @keyframes shopro-shake {
+
+        0%,
+        100% {
+            -webkit-transform: translateX(0);
+        }
+
+        10%,
+        30%,
+        50%,
+        70%,
+        90% {
+            -webkit-transform: translateX(-5px);
+        }
+
+        20%,
+        40%,
+        60%,
+        80% {
+            -webkit-transform: translateX(5px);
+        }
+    }
+
+    @keyframes dyeing {
+        0% {
+            -moz-box-shadow: 0 0 0 0 rgba(119, 97, 251, 0.5);
+            box-shadow: 0 0 0 0 rgba(119, 97, 251, 0.5);
+        }
+
+        70% {
+            -moz-box-shadow: 0 0 0 10px rgba(119, 97, 251, 0);
+            box-shadow: 0 0 0 10px rgba(119, 97, 251, 0);
+        }
+
+        100% {
+            -moz-box-shadow: 0 0 0 0 rgba(119, 97, 251, 0);
+            ;
+            box-shadow: 0 0 0 0 rgba(119, 97, 251, 0);
+            ;
+        }
+    }
+
+    #shopro-kefu-button {
+        position: absolute;
+        top: 80%;
+        right: 20px;
+        width: 50px;
+        height: 50px;
+        z-index: 2000;
+        cursor: pointer;
+        border-radius: 25px;
+        background: #7761FB url(/assets/addons/shopro/img/chat/menu.gif) center no-repeat;
+        background-size: 30px 27px;
+        animation: dyeing 2s infinite;
+    }
+
+    .shopro-kefu-title {
+        display: flex;
+        align-items: center;
+        /* justify-content: space-between; */
+        padding: 0 18px;
+        height: 50px;
+        border-bottom: 1px solid #e6e6e6;
+    }
+
+    .shopro-kefu-title-avatar {
+        width: 28px;
+        height: 28px;
+        border: 1px solid #E6E6E6;
+        border-radius: 14px;
+        margin-right: 12px
+    }
+
+    .shopro-kefu-title-name {
+        margin-right: 16px;
+        color: #534C70;
+        font-size: 14px;
+    }
+
+    .shopro-kefu-title-line {
+        width: 80px
+    }
+
+    .shopro-kefu-content {
+        height: 657px;
+        display: flex;
+    }
+
+    .chater-left {
+        height: 100%;
+        width: 303px;
+        border-right: 1px solid #F4F4F4;
+        display: flex;
+        flex-direction: column;
+    }
+
+    .chater-header {
+        display: flex;
+        width: 300px;
+        height: 38px;
+        border-bottom: 1px solid #F4F4F4;
+    }
+
+    .chater-header-item {
+        width: 100px;
+        height: 38px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        cursor: pointer;
+        font-size: 12px;
+    }
+
+    .chater-header-item-active {
+        width: 84px;
+        height: 26px;
+        background: rgba(157, 96, 255, 0.2);
+        border-radius: 18px;
+        line-height: 26px;
+        text-align: center;
+        font-size: 12px;
+        color: #7438D5;
+    }
+
+    .chater-header-container {
+        flex: 1;
+        overflow: auto;
+        background: #F9F9F9;
+    }
+
+    .chater-header-list {
+        padding: 8px 10px 13px 0px;
+        border-bottom: 1px solid #F4F4F4;
+        cursor: pointer;
+        background: #fff;
+    }
+
+    .chater-header-list:hover {
+        /* background: #EBDFFF; */
+    }
+
+    .chater-header-list:hover .chater-el-icon-close i {
+        display: block;
+    }
+
+    .chater-header-list-active,
+    .chater-header-list-offline-active {
+        background: #EBDFFF;
+    }
+
+    .offline-status {
+        margin: 0 6px;
+        flex-shrink: 0;
+    }
+
+    .offline-status .line-status-offline {
+        color: #ED655F;
+    }
+
+    .offline-status .line-status-online {
+        color: #7438D5;
+    }
+
+    .chater-el-icon-close {
+        font-size: 10px;
+        width: 22px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+    }
+
+    .chater-el-icon-close i {
+        display: none;
+    }
+
+    .chater-el-icon-close:hover {
+        color: #A268FF;
+    }
+
+    .chater-header-list-image {
+        width: 40px;
+        height: 40px;
+        background: #C4C4C4;
+        border: 1px solid #E6E6E6;
+        margin-right: 10px;
+        border-radius: 20px;
+    }
+
+    .chater-header-list-image img {
+        width: 100%;
+        height: 100%;
+        border-radius: 20px;
+    }
+
+    .chater-header-list-message {
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+    }
+
+    .chater-header-list-message-1 {
+        display: flex;
+        justify-content: space-between;
+        line-height: 14px;
+        margin-bottom: 6px
+    }
+
+    .chater-header-list-message-2 {
+        line-height: 12px;
+        font-size: 12px;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+    }
+
+    .chater-right {
+        flex: 1;
+        position: relative;
+    }
+
+    .shopro-chat-container {
+        height: 517px;
+        padding: 20px;
+        overflow: auto;
+    }
+
+    .shopro-chat-container-item {
+        display: flex;
+        margin-bottom: 42px;
+    }
+
+    .shopro-chat-container-item-system {
+        width: 100%;
+    }
+
+    .shopro-chat-container-item-image {
+        width: 38px;
+        height: 38px;
+        border: 1px solid #E6E6E6;
+        border-radius: 19px;
+        margin-right: 14px
+    }
+
+    .shopro-chat-container-item-image-1 {
+        width: 38px;
+        height: 38px;
+        border: 1px solid #E6E6E6;
+        border-radius: 19px;
+        margin-left: 14px
+    }
+
+    .shopro-chat-container-item-message {
+        background: #F6F6F6;
+        border-radius: 6px 6px 6px 0px;
+        max-width: 432px;
+    }
+
+    .shopro-chat-container-item-message-1 {
+        max-width: 432px;
+        border-radius: 6px 6px 0px 6px;
+        color: #444;
+        background: #ECE1FF;
+    }
+
+    .shopro-chat-container-item-message-text {
+        padding: 10px;
+        line-height: 18px;
+    }
+
+    .shopro-chat-container-item-message-text img {
+        width: 100%;
+    }
+
+    .shopro-send-container {
+        width: 100%;
+        height: 140px;
+        padding: 0 24px 0 16px;
+        border-top: 1px solid #e6e6e6;
+    }
+
+    .shopro-send-tip-container {
+        height: 42px;
+        display: flex;
+        align-items: center;
+    }
+
+    .shopro-send-tip-item {
+        width: 18px;
+        height: 18px;
+        margin-right: 12px;
+        cursor: pointer;
+    }
+
+    .shopro-send-textarea {
+        height: 44px;
+        overflow: auto;
+    }
+
+    .shopro-send-textarea::-webkit-scrollbar {
+        width: 6px;
+    }
+
+    .shopro-send-textarea::-webkit-scrollbar-thumb {
+        width: 6px;
+        background: #ccc;
+        height: 20px;
+        border-radius: 3px;
+    }
+
+    .shopro-send-textarea textarea {
+        height: 44px;
+        width: 554px !important;
+        border: none;
+        margin: 0px;
+    }
+
+    .shopro-send-textarea textarea:focus {
+        border: none !important;
+    }
+
+    .shopro-send-button-container {
+        padding: 12px 0;
+        height: 64px
+    }
+
+    .shopro-send-button {
+        width: 78px;
+        height: 30px;
+        line-height: 30px;
+        text-align: center;
+        font-size: 13px;
+        color: #fff;
+        background: #7438D5;
+        border-radius: 4px;
+        float: right;
+        cursor: pointer;
+    }
+
+
+    #inputFile {
+        display: none;
+    }
+
+    .shopro-chat-goods-item {
+        min-width: 240px;
+        height: 60px;
+        /* background: #FFFFFF; */
+        /* border: 1px solid #E6E6E6; */
+        border-radius: 4px;
+        padding: 8px;
+        display: flex;
+        align-items: center;
+    }
+
+    .shopro-chat-goods-image {
+        width: 44px;
+        height: 44px;
+        border: 1px solid #E6E6E6;
+        border-radius: 3px;
+        margin-right: 10px;
+    }
+
+    .shopro-chat-goods-image .el-image,
+    .shopro-chat-image {
+        position: relative;
+        border-radius: 3px !important;
+    }
+
+    .shopro-chat-goods-message {
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        flex: 1;
+        height: 100%;
+    }
+
+    .shopro-chat-goods-bodys {
+        justify-content: space-between;
+        height: 20px;
+    }
+
+    .customer-service {
+        color: #fff;
+        justify-content: flex-end;
+    }
+
+    .customer-user {
+        color: #444;
+        justify-content: flex-start;
+    }
+
+    .customer-system {
+        justify-content: center;
+    }
+
+    .shopro-chat-system {
+        height: 30px;
+        line-height: 30px;
+        padding: 0 10px;
+        border-radius: 10px;
+        background: #f9f9f9;
+    }
+
+    .shopro-chat-emoji-container {
+        display: flex;
+        flex-wrap: wrap;
+        height: 150px;
+        overflow: auto;
+        padding: 10px 10px 5px;
+    }
+
+    .shopro-chat-emoji-image {
+        width: 24px;
+        height: 24px;
+        /* border: 1px solid #E6E6E6; */
+        border-radius: 3px;
+        margin-right: 10px;
+        margin-bottom: 5px;
+    }
+
+    .shopro-chat-emoji-image:nth-of-type(6n) {
+        margin-right: 0px;
+    }
+
+    .shopro-send-pre,
+    .shopro-send-pre:focus,
+    .shopro-send-pre:default {
+        border: none !important;
+        outline: none;
+        background: none;
+        height: 44px;
+        padding: 0;
+    }
+
+    .message-dot {
+        padding: 4px 7px;
+        border-radius: 10px;
+        text-align: center;
+        background: #F15847;
+        color: #fff;
+    }
+
+    .common-words-item,
+    .common-words-item-tip {
+        cursor: pointer;
+        height: 30px;
+        line-height: 30px;
+        padding: 0 12px;
+        border-bottom: 1px solid #e6e6e6;
+        color: #666;
+    }
+
+    .common-words-item-tip {
+        height: 40px;
+        line-height: 40px;
+        border-bottom: none;
+    }
+
+    .common-words-item:hover {
+        background: #F7F7FC;
+    }
+
+    .no-more-data {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-bottom: 22px;
+    }
+
+    .shopro-chat-order-item {
+        cursor: pointer;
+    }
+
+    .shopro-chat-order-title {
+        height: 30px;
+        line-height: 30px;
+        border-bottom: 1px solid #e6e6e6;
+        padding: 0 10px;
+    }
+
+    #shopro-kefu-container .el-dialog__headerbtn {
+        height: 50px;
+        top: 0;
+    }
+
+    .shopro-kefu-title-line input,
+    .shopro-kefu-title-line .el-input__inner {
+        border: none;
+        background-color: #FBFBFB;
+        color: inherit;
+    }
+
+    #shopro-kefu-button .message-dot {
+        width: 14px;
+        height: 14px;
+        border-radius: 7px;
+        float: right;
+    }
+
+    .el-popover {
+        padding: 0;
+    }
+
+    .el-popover-common-words {
+        max-height: 150px;
+        overflow-y: auto;
+        font-size: 12px;
+    }
+
+    .emoji {
+        width: 20px !important;
+        height: 20px !important;
+        margin: 0 2px;
+    }
+
+    .el-icon-loading {
+        color: #7438D5;
+        font-size: 20px;
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        margin-left: -10px;
+        margin-top: -10px;
+    }
+
+    .shopro-chat-container-item-message .el-icon-loading {
+        color: #999;
+    }
+
+    .transfer-item {
+        width: 160px;
+        background: #fff;
+        font-size: 12px;
+    }
+
+    .transfer-item .el-input__inner {
+        padding: 0 10px;
+    }
+
+    .el-dialog__wrapper {
+        overflow: hidden;
+    }
+
+    .specific-createtime {
+        width: 100%;
+        display: flex;
+        justify-content: center;
+        margin-bottom: 6px;
+    }
+
+    .specific-createtime .createtime-item {
+        width: 160px;
+        border-radius: 10px;
+        height: 20px;
+        line-height: 20px;
+        background: #f6f6f6;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        color: #777;
+    }
+
+    label {
+        margin-bottom: 0;
+    }
+
+    .error-tip-popover.el-popover {
+        padding: 12px 16px;
+        border: 1px solid #e6e6e6;
+    }
+
+    .error-tip-popover.el-popper[x-placement^=left] .popper__arrow {
+        border-left-color: #e6e6e6;
+    }
+
+    .kefu-access-status {
+        position: absolute;
+        top: 20px;
+        left: 16px;
+        width: 565px;
+        height: 42px;
+        background: #FFFCF7;
+        box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.1);
+        border-radius: 4px;
+        padding: 0 16px;
+        font-size: 14px;
+        color: #F0AF41;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        z-index: 100;
+    }
+
+    .kefu-access-status-left i {
+        margin-right: 8px;
+    }
+
+    .shopro-nosend-container {
+        padding: 16px;
+        font-size: 17px;
+        color: #D1D1D1;
+    }
+
+    #shopro-kefu-container .shopro-chat-container-icon {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        flex-direction: column;
+    }
+
+    #shopro-kefu-container .shopro-chat-container-icon .el-image {
+        width: 146px;
+        height: 146px;
+    }
+
+    .shopro-chat-container-tip {
+        font-size: 16px;
+        color: #999999;
+        margin-top: 30px;
+    }
+</style>
+
+<script type="text/x-template" id="chatTemp" style="position: relative;">
+
+    <div id="shopro-kefu-container" class="">
+        <el-popover
+        popper-class="error-tip-popover"
+        placement="left"
+        width="264"
+        trigger="manual"
+        v-model="errorTipVisible">
+        <div>客服连接失败,请点击 <span style="cursor: pointer;color: #7438D5;" @click="linkWebSocket(passvalue.wsUri, passvalue.token, passvalue.expire_time, passvalue.customer_service_id)">重新连接</span><i style="margin-left:10px;cursor: pointer" class="el-icon-close" @click="closeErrorTipVisible"></i></div>
+        <div slot="reference" id="shopro-kefu-button" ref="shoproKefuButtonRef" v-show="isButtonShow" @mousedown="moveKefu" @click="openDialog()">
+            <div v-if="kefuButtonvisible && !dialogVisible" class="message-dot"></div>
+        </div>
+      </el-popover>
+
+        <el-dialog :visible.sync="dialogVisible" :before-close="handleClose" :custom-class="shoproKefuShake?'shopro-kefu-container-shake':''" v-dialogDrag>
+            <span slot="title">
+                <div class="shopro-kefu-title" ref="shoproKefuTitleRef" v-if="adminData.customer_service" @click.stop="closerightShowId">
+                    <img class="shopro-kefu-title-avatar" :src="adminData.customer_service.avatar?Fast.api.cdnurl(adminData.customer_service.avatar):'/assets/addons/shopro/img/chat/default.png'">
+                    <div class="shopro-kefu-title-name">客服-{{adminData.customer_service.name}}</div>
+                    <div class="shopro-kefu-title-line" v-if="relink==1">
+                        <el-select v-model="lineStatus" size="mini" placeholder="" @change="changeLineStatus" :style="{color:lineStatus=='online'?'#7438D5':(lineStatus=='offline'?'#ED655F':'#666666')}">
+                            <el-option v-for="line in lineOptions" :key="line.value" :label="line.label" :value="line.value">
+                                <span :style="{color: line.color}">{{ line.label }}</span>
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <div v-if="relink==0">
+                        网络断开中,请点击 <span style="cursor: pointer;color: #7438D5;" @click="linkWebSocket(passvalue.wsUri, passvalue.token, passvalue.expire_time, passvalue.customer_service_id)">重新连接</span>
+                    </div>
+                </div>
+            </span>
+            <div class="shopro-kefu-content" @click.stop="closerightShowId">
+                    <div class="chater-left">
+                        <div class="chater-header">
+                            <div class="chater-header-item"
+                                v-for="(chater,chaterIndex) in liaoData" @click="changeGroup(chaterIndex)">
+                                <span v-if="groupIndex!=chaterIndex">{{chater.title}}</span>
+                                <div class="chater-header-item-active" v-if="groupIndex==chaterIndex">{{chater.title}}</div>
+                            </div>
+                        </div>
+                        <div class="chater-header-container scrollbar-containering">
+                            <div class="chater-header-list" v-if="openGroupList.length>0"
+                                v-for="(group,gIndex) in openGroupList" :class="[(user_offline.includes(group.session_id) && isChatingId==group.session_id)?'chater-header-list-offline-active':'',((user_offline.includes(group.session_id) && isChatingId!=group.session_id)) ?'chater-header-list-offline':'',((!user_offline.includes(group.session_id)) && isChatingId==group.session_id)?'chater-header-list-active':'']" @click.stop="selectChating(group.session_id,gIndex,true,group)"
+                                @contextmenu.prevent="show($event,group.session_id,gIndex)">
+                                <div class="display-flex">
+                                    <div class="chater-el-icon-close" @click.stop="deleteChating(group.session_id,gIndex,true)">
+                                        <i class="el-icon-close"></i>
+                                    </div>
+                                    <div class="chater-header-list-image">
+                                        <img :src="group.avatar?Fast.api.cdnurl(group.avatar):'/assets/addons/shopro/img/chat/user-default.png'" />
+                                    </div>
+                                    <div class="chater-header-list-message">
+                                        <div class="chater-header-list-message-1">
+                                            <div class="display-flex" style="flex:1">
+                                                <div class="ellipsis-item">{{group.nickname}}</div>
+                                                <div class="offline-status">
+                                                    <span v-if="user_offline.includes(group.session_id)" class="line-status-offline">离线</span>
+                                                    <span v-else class="line-status-online">在线</span>
+                                                </div>
+                                            </div>
+                                            <div style="font-size:12px;flex-shrink: 0;" v-if="group.last_message">
+                                            {{timeFilter(group.last_message.createtime*1000)}}
+                                            </div>
+                                        </div>
+                                        <div class="chater-header-list-message-2">
+                                            <div class="display-flex">
+                                                <!-- <div v-if="user_offline.includes(group.session_id)" class="offline-status">{{user_offline.includes(group.session_id)?'离线':''}}</div> -->
+                                                <div v-if="group.last_message">
+                                                    <div v-if="group.last_message.message_type=='text'">
+                                                        [文本]
+                                                    </div>
+                                                    <div v-if="group.last_message.message_type=='image'">[图片]</div>
+                                                    <div v-if="group.last_message.message_type=='goods'">[商品]</div>
+                                                    <div v-if="group.last_message.message_type=='order'">[订单]</div>
+                                                </div>
+                                            </div>
+                                            <div class="message-dot" v-if="group.message_unread_num">{{group.message_unread_num>99?'99+':group.message_unread_num}}</div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <!-- 右键 -->
+                                <div :style="{position:'fixed',top:rightShowPosition.top,left:rightShowPosition.left,zIndex:1}" v-if="rightShowId==group.session_id">
+                                    <el-select class="transfer-item" v-model="transferAdminList" placeholder="请选择转接客服人员" @change="transferKfu" size="small">
+                                        <el-option
+                                          v-for="item in changeKefuList"
+                                          :key="item.id"
+                                          :label="item.name"
+                                          :value="item.id">
+                                        </el-option>
+                                      </el-select>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="chater-right">
+                        <!-- 弹出提示 -->
+                        <div v-if="kefuAccessStatus" class="kefu-access-status">
+                            <div class="kefu-access-status-left">
+                              <i class="el-icon-warning"></i>
+                                {{kefuAccessTip}}  
+                            </div>
+                            <i class="el-icon-close" @click="closeKefuAccessStatus"></i>
+                        </div>
+                        <div v-show="!isChatingId" class="shopro-chat-container scrollbar-containering shopro-chat-container-icon">
+                            <el-image src="/assets/addons/shopro/img/chat/chat-icon.png" fit="contain">
+                                <div slot="error" class="image-slot">
+                                    <i class="el-icon-picture-outline"></i>
+                                </div>
+                            </el-image>
+                            <div class="shopro-chat-container-tip">
+                                暂时没有会话哦!
+                            </div>
+                        </div>
+                        <div v-show="isChatingId" class="shopro-chat-container scrollbar-containering" ref="shoproChatContainerRef">
+                        <div class="no-more-data" v-if="message_num<10">没有更多数据了</div>
+                            <template v-if="isChatingId">
+                                <div class="shopro-chat-container-item" 
+                                :class="[specific.sender_identify=='customer_service'?'customer-service':'customer-user',specific.message_type=='system'?'customer-system':'']"
+                                v-for="(specific,specificindex) in specificChatMessage" style="flex-direction: column;">
+                                    <template v-if="specific.message_type=='system'">
+                                        <div class="shopro-chat-system">{{specific.message}}<div>
+                                    </template>	
+                                    <template v-if="specific.sender_identify=='user' && specific.message_type!='system'">
+                                        <template>
+                                            <div class="specific-createtime" v-if="specificindex>0 && specific.createtime-specificChatMessage[specificindex-1].createtime>300">
+                                                <div class="createtime-item">
+                                                    {{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
+                                                </div>
+                                            </div>
+                                            <div class="specific-createtime" v-if="specificindex==0 && specific.createtime">
+                                                <div class="createtime-item">
+                                                    {{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
+                                                </div>
+                                            </div>
+                                        </template>
+                                        <div class="display-flex">
+                                            <div class="shopro-chat-container-item-image">
+                                                <el-image v-if="specific.identify"
+                                                :src="specific.identify.avatar?Fast.api.cdnurl(specific.identify.avatar):'/assets/addons/shopro/img/chat/user-default.png'"
+                                                fit="cover">
+                                                    <div slot="error" class="image-slot">
+                                                        <i class="el-icon-picture-outline"></i>
+                                                    </div>
+                                                </el-image>
+                                            </div>
+                                            <div class="shopro-chat-container-item-message">
+                                                <!--type='text' -->
+                                                <div class="shopro-chat-container-item-message-text" v-if="specific.message_type=='text'" v-html="specific.message"></div>	
+                                                <!--type='image' -->
+                                                <div class="shopro-chat-container-item-message-text shopro-chat-image" :style="{width:!specific.hidden?'30px':''}" v-if="specific.message_type=='image'">
+                                                    <i v-if="!specific.hidden" class="el-icon-loading"></i>
+                                                    <el-image ref="imageRef" lazy :src="Fast.api.cdnurl(specific.message)" fit="contain" @load="getimageload(specificindex)" @error="imagerror(specificindex)">
+                                                        <div slot="error" class="image-slot">
+                                                        <i class="el-icon-picture-outline"></i>
+                                                        </div>
+                                                    </el-image>
+                                                </div>
+                                                <!--type='goods' -->
+                                                <div class="shopro-chat-goods-item" v-if="specific.message_type=='goods'" @click="openGoods(specific.message.id)">
+                                                    <div class="shopro-chat-goods-image">
+                                                        <el-image
+                                                        :src="Fast.api.cdnurl(specific.message.image)"
+                                                        fit="contain">
+                                                            <div slot="error" class="image-slot">
+                                                                <i class="el-icon-picture-outline"></i>
+                                                            </div>
+                                                        </el-image>
+                                                    </div>
+                                                    <div class="shopro-chat-goods-message">
+                                                        <div class="display-flex">
+                                                            <div style="margin-right:10px;">{{specific.message.id}}</div>
+                                                            <div class="shopro-chat-goods-title ellipsis-item">{{specific.message.title}}</div>
+                                                        </div>
+                                                        <div class="shopro-chat-goods-bodys display-flex">
+                                                            <div>¥{{specific.message.price}}</div>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                                <!--type='order' -->
+                                                <div class="shopro-chat-order-item" v-if="specific.message_type=='order'" @click="openOrder(specific.message.id)">
+                                                    <div class="shopro-chat-order-title">订单号:{{specific.message.order_sn}}</div>
+                                                    <div class="shopro-chat-goods-item">
+                                                        <div class="shopro-chat-goods-image">
+                                                            <el-image
+                                                            :src="Fast.api.cdnurl(specific.message.image)"
+                                                            fit="contain">
+                                                                <div slot="error" class="image-slot">
+                                                                    <i class="el-icon-picture-outline"></i>
+                                                                </div>
+                                                            </el-image>
+                                                        </div>
+                                                        <div class="shopro-chat-goods-message">
+                                                            <div class="display-flex">
+                                                                <div style="margin-right:10px">{{specific.message.id}}</div>
+                                                                <div class="shopro-chat-goods-title ellipsis-item">{{specific.message.title}}</div>
+                                                            </div>
+                                                            <div class="shopro-chat-goods-bodys display-flex">
+                                                                <div>¥{{specific.message.price}}</div>
+                                                                <div class="shopro-chat-goods-stock">x{{specific.message.num}}</div>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </template>
+                                    <template v-if="specific.sender_identify=='customer_service' && specific.message_type!='system'">
+                                        <div class="specific-createtime" v-if="specificindex>0 && specific.createtime-specificChatMessage[specificindex-1].createtime>300">
+                                                <div class="createtime-item">
+                                                    {{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
+                                                </div>
+                                            </div>
+                                            <div class="specific-createtime" v-if="specificindex==0 && specific.createtime">
+                                                <div class="createtime-item">
+                                                    {{Moment(specific.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
+                                                </div>
+                                            </div>
+                                        <div class="display-flex" style="justify-content: flex-end;">
+                                        <div class="shopro-chat-container-item-message-1">
+                                        <!--type='text' -->
+                                        <div class="shopro-chat-container-item-message-text" v-if="specific.message_type=='text'" v-html="specific.message"></div>	
+                                        <!--type='image' -->
+                                        <div class="shopro-chat-container-item-message-text shopro-chat-image" :style="{width:!specific.hidden?'30px':''}" v-if="specific.message_type=='image' && specific.message">
+                                            <i v-if="!specific.hidden" class="el-icon-loading"></i>
+                                            <el-image ref="imageRef" lazy :src="Fast.api.cdnurl(specific.message)" fit="contain" @load="getimageload(specificindex)" @error="imagerror(specificindex)">
+                                                <div slot="error" class="image-slot">
+                                                <i class="el-icon-picture-outline"></i>
+                                                </div>
+                                            </el-image>
+                                        </div>
+                                        <div class="shopro-chat-goods-item" v-if="specific.message_type=='goods'" @click="openGoods(specific.message.id)">
+                                                <div class="shopro-chat-goods-image">
+                                                    <el-image
+                                                    :src="Fast.api.cdnurl(specific.message.image)"
+                                                    fit="contain">
+                                                        <div slot="error" class="image-slot">
+                                                            <i class="el-icon-picture-outline"></i>
+                                                        </div>
+                                                    </el-image>
+                                                </div>
+                                                <div class="shopro-chat-goods-message">
+                                                    <div class="display-flex">
+                                                        <div style="margin-right:10px">{{specific.message.id}}</div>
+                                                        <div class="shopro-chat-goods-title ellipsis-item">{{specific.message.title}}</div>
+                                                    </div>
+                                                    <div class="shopro-chat-goods-bodys display-flex">
+                                                        <div>¥{{specific.message.price}}</div>
+                                                    </div>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="shopro-chat-container-item-image-1">
+                                            <el-image v-if="specific.identify"
+                                            :src="specific.identify.avatar?Fast.api.cdnurl(specific.identify.avatar):'/assets/addons/shopro/img/chat/default.png'"
+                                            fit="cover">
+                                                <div slot="error" class="image-slot">
+                                                    <i class="el-icon-picture-outline"></i>
+                                                </div>
+                                            </el-image>
+                                        </div>
+                                    </div>
+                                    </template>
+                                </div>
+                            </template>
+                        </div>
+                        <div class="shopro-send-container shopro-nosend-container" v-show="isChatingId && kefuAccessStatusSend">
+                            暂时无法与之会话
+                        </div>
+                        <div class="shopro-send-container" v-show="isChatingId && !kefuAccessStatusSend">
+                            <div class="shopro-send-tip-container">
+                            <el-popover placement="top-start" width="222" v-model="emojivisible">
+                                    <div class="scrollbar-containering shopro-chat-emoji-container" style="">
+                                        <div class="shopro-chat-emoji-image" v-for="emoji in emoji_list" @click="selectEmoji(emoji)">
+                                            <el-image
+                                            :src="'/assets/addons/shopro/img/emoji/'+emoji.file"
+                                            fit="contain">
+                                                <div slot="error" class="image-slot">
+                                                    <i class="el-icon-picture-outline"></i>
+                                                </div>
+                                            </el-image>
+                                        </div>
+                                    </div>
+                                    <img class="shopro-send-tip-item" slot="reference" src="/assets/addons/shopro/img/chat/expression.png" />
+                                </el-popover>
+                                <el-popover placement="top-start" width="180" v-model="commonWordsvisible">
+                                    <div>
+                                        <div class="common-words-item" v-if="commonWordsList.length==0">赶紧去配置常用语吧~</div>
+                                        <div class="scrollbar-containering el-popover-common-words"  v-if="commonWordsList.length>0">
+                                            <div class="common-words-item ellipsis-item" v-for="(words,wordsIndex) in commonWordsList" @click="selectCommonWords(wordsIndex)">{{words.name}}</div>
+                                        </div>
+                                    </div>
+                                    <img class="shopro-send-tip-item" slot="reference" src="/assets/addons/shopro/img/chat/commonWords.png" />
+                                </el-popover>
+                                <img class="shopro-send-tip-item" style="margin-top: 4px;" @click="selectGoods()" src="/assets/addons/shopro/img/chat/goods.png" />
+                                <div class="shopro-send-tip-item">
+                                    <label for="inputFile">
+                                    <img class="shopro-send-tip-item" src="/assets/addons/shopro/img/chat/file.png" />
+                                    </label>
+                                    <input id="inputFile" type="file" @change="addfile" ref="inputFileRef" multiple accept="image/png,image/jpeg,image/gif,image/jpg"/>
+                                </div>
+                            </div>
+                            <div class="shopro-send-textarea scrollbar-containering">
+                                <div class="shopro-send-pre" v-model="sendMessage" contenteditable @keyup.enter.stop="successMessage(event)"></div>
+                            </div>
+                            <div class="shopro-send-button-container">
+                                <div class="shopro-send-button" @click="successMessage()">发送</div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </el-dialog>
+    </div>
+</script>

BIN
public/assets/addons/shopro/img/activity/free_shipping.png


BIN
public/assets/addons/shopro/img/activity/full_discount.png


BIN
public/assets/addons/shopro/img/activity/full_reduce.png


BIN
public/assets/addons/shopro/img/activity/groupon.png


BIN
public/assets/addons/shopro/img/activity/seckill.png


BIN
public/assets/addons/shopro/img/category/edit.png


BIN
public/assets/addons/shopro/img/category/img-1.png


BIN
public/assets/addons/shopro/img/category/img-2.png


BIN
public/assets/addons/shopro/img/category/img-3.png


BIN
public/assets/addons/shopro/img/category/img-4.png


BIN
public/assets/addons/shopro/img/category/selected.png


BIN
public/assets/addons/shopro/img/chat/chat-icon.png


BIN
public/assets/addons/shopro/img/chat/commonWords.png


BIN
public/assets/addons/shopro/img/chat/default.png


BIN
public/assets/addons/shopro/img/chat/expression.png


BIN
public/assets/addons/shopro/img/chat/file.png


BIN
public/assets/addons/shopro/img/chat/goods.png


BIN
public/assets/addons/shopro/img/chat/menu.gif


BIN
public/assets/addons/shopro/img/chat/user-default.png


BIN
public/assets/addons/shopro/img/commission/icon-right.png


BIN
public/assets/addons/shopro/img/commission/move.png


BIN
public/assets/addons/shopro/img/commission/upgrade-config.png


BIN
public/assets/addons/shopro/img/config/App-icon.png


BIN
public/assets/addons/shopro/img/config/alipay-icon.png


BIN
public/assets/addons/shopro/img/config/apple-icon.png


BIN
public/assets/addons/shopro/img/config/chat-icon.png


BIN
public/assets/addons/shopro/img/config/h5-icon.png


BIN
public/assets/addons/shopro/img/config/order-icon.png


BIN
public/assets/addons/shopro/img/config/score-icon.png


BIN
public/assets/addons/shopro/img/config/services-icon.png


BIN
public/assets/addons/shopro/img/config/share-icon.png


BIN
public/assets/addons/shopro/img/config/shopro-icon.png


BIN
public/assets/addons/shopro/img/config/store-icon.png


BIN
public/assets/addons/shopro/img/config/user-icon.png


BIN
public/assets/addons/shopro/img/config/wallet-icon.png


BIN
public/assets/addons/shopro/img/config/wechat-icon.png


BIN
public/assets/addons/shopro/img/config/withdraw-icon.png


BIN
public/assets/addons/shopro/img/config/wxMiniProgram-icon.png


BIN
public/assets/addons/shopro/img/config/wxOfficialAccount-icon.png


BIN
public/assets/addons/shopro/img/dashboard/aftersale-icon.png


BIN
public/assets/addons/shopro/img/dashboard/aftersale.png


BIN
public/assets/addons/shopro/img/dashboard/neworderArr-icon.png


BIN
public/assets/addons/shopro/img/dashboard/neworderArr.png


BIN
public/assets/addons/shopro/img/dashboard/noSent-icon.png


BIN
public/assets/addons/shopro/img/dashboard/noSent.png


BIN
public/assets/addons/shopro/img/dashboard/payAmount-icon.png


BIN
public/assets/addons/shopro/img/dashboard/payAmount.png


BIN
public/assets/addons/shopro/img/dashboard/payOrder-icon.png


BIN
public/assets/addons/shopro/img/dashboard/payOrder.png


BIN
public/assets/addons/shopro/img/dashboard/refund-icon.png


BIN
public/assets/addons/shopro/img/dashboard/refund.png


BIN
public/assets/addons/shopro/img/decorate/App.png


BIN
public/assets/addons/shopro/img/decorate/H5.png


BIN
public/assets/addons/shopro/img/decorate/adv.png


BIN
public/assets/addons/shopro/img/decorate/adv_01.png


BIN
public/assets/addons/shopro/img/decorate/adv_02.png


BIN
public/assets/addons/shopro/img/decorate/adv_03.png


BIN
public/assets/addons/shopro/img/decorate/adv_04.png


BIN
public/assets/addons/shopro/img/decorate/adv_05.png


BIN
public/assets/addons/shopro/img/decorate/adv_06.png


BIN
public/assets/addons/shopro/img/decorate/adv_07.png


BIN
public/assets/addons/shopro/img/decorate/adv_bg.png


BIN
public/assets/addons/shopro/img/decorate/banner.png


BIN
public/assets/addons/shopro/img/decorate/banner_bg.png


BIN
public/assets/addons/shopro/img/decorate/cart.png


BIN
public/assets/addons/shopro/img/decorate/category_tabs.png


BIN
public/assets/addons/shopro/img/decorate/code_1.png


BIN
public/assets/addons/shopro/img/decorate/copy-btn.png


BIN
public/assets/addons/shopro/img/decorate/coupon.png


BIN
public/assets/addons/shopro/img/decorate/coupon_bg1.png


BIN
public/assets/addons/shopro/img/decorate/coupon_bg2.png


BIN
public/assets/addons/shopro/img/decorate/coupons_bg_01.png


BIN
public/assets/addons/shopro/img/decorate/coupons_bg_02.png


BIN
public/assets/addons/shopro/img/decorate/decorate-btn.png


BIN
public/assets/addons/shopro/img/decorate/delete-btn.png


BIN
public/assets/addons/shopro/img/decorate/down-btn.png


BIN
public/assets/addons/shopro/img/decorate/edit-btn.png


BIN
public/assets/addons/shopro/img/decorate/float-button.png


BIN
public/assets/addons/shopro/img/decorate/float-button_bg.png


BIN
public/assets/addons/shopro/img/decorate/goods-group.png


BIN
public/assets/addons/shopro/img/decorate/goods-group_bg_01.png


BIN
public/assets/addons/shopro/img/decorate/goods-group_bg_02.png


BIN
public/assets/addons/shopro/img/decorate/goods-list.png


BIN
public/assets/addons/shopro/img/decorate/goods-list_bg_01.png


BIN
public/assets/addons/shopro/img/decorate/goods-list_bg_02.png


BIN
public/assets/addons/shopro/img/decorate/grid-list.png


BIN
public/assets/addons/shopro/img/decorate/grid-list_bg.png


BIN
public/assets/addons/shopro/img/decorate/groupon-card1.png


BIN
public/assets/addons/shopro/img/decorate/groupon-card11.png


BIN
public/assets/addons/shopro/img/decorate/groupon-card2.png


BIN
public/assets/addons/shopro/img/decorate/groupon-title.png


BIN
public/assets/addons/shopro/img/decorate/groupon.png


BIN
public/assets/addons/shopro/img/decorate/groupon_bg_01.png


BIN
public/assets/addons/shopro/img/decorate/groupon_bg_02.png


BIN
public/assets/addons/shopro/img/decorate/groupon_fire.png


BIN
public/assets/addons/shopro/img/decorate/image-default.png


BIN
public/assets/addons/shopro/img/decorate/image-default2.png


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