Parcourir la source

平台资金账单、商家对账、商家对账页面接口对接完成

hzj18279462576@163.com il y a 1 an
Parent
commit
b46e2e82bd

+ 2 - 2
config/index.js

@@ -23,8 +23,8 @@ module.exports = {
     // 代理列表, 是否开启代理通过[./dev.env.js]配置
     proxyTable: devEnv.OPEN_PROXY === false ? {} : {
       '/proxyApi': {
-        // target: 'https://mxys.chuanghai-tech.com/sqx_fast/', // 线上
-        target: 'https://mxys.chuanghai-tech.com/wm-test/wm-api',// 测试
+        target: 'https://mxys.chuanghai-tech.com/sqx_fast/', // 线上
+        // target: 'https://mxys.chuanghai-tech.com/wm-test/wm-api',// 测试
         // target: 'http://iyfpk3.natappfree.cc/sqx_fast',// 开发
         changeOrigin: true,
         pathRewrite: {

+ 364 - 364
src/assets/scss/_base.scss

@@ -1,364 +1,364 @@
-*,
-*:before,
-*:after {
-  box-sizing: border-box;
-}
-body {
-  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
-  font-size: 14px;
-  line-height: 1.15;
-  color: #303133;
-  background-color: #fff;
-}
-a {
-  color: mix(#fff, $--color-primary, 20%);
-  text-decoration: none;
-  &:focus,
-  &:hover {
-    color: $--color-primary;
-    text-decoration: underline;
-  }
-}
-img {
-  vertical-align: middle;
-}
-
-
-/* Utils
------------------------------- */
-.clearfix:before,
-.clearfix:after {
-  content: " ";
-  display: table;
-}
-.clearfix:after {
-  clear: both;
-}
-
-
-/* Animation
------------------------------- */
-.fade-enter-active,
-.fade-leave-active {
-  transition: opacity .5s;
-}
-.fade-enter,
-.fade-leave-to {
-  opacity: 0;
-}
-
-
-/* Reset element-ui
------------------------------- */
-.site-wrapper {
-  .el-pagination {
-    margin-top: 15px;
-    text-align: right;
-  }
-}
-
-
-/* Layout
------------------------------- */
-.site-wrapper {
-  position: relative;
-  min-width: 1180px;
-}
-
-
-/* Sidebar fold
------------------------------- */
-.site-sidebar--fold {
-  .site-navbar__header,
-  .site-navbar__brand,
-  .site-sidebar,
-  .site-sidebar__inner,
-  .el-menu.site-sidebar__menu {
-    width: 64px;
-  }
-  .site-navbar__body,
-  .site-content__wrapper {
-    margin-left: 64px;
-  }
-  .site-navbar__brand {
-    &-lg {
-      display: none;
-    }
-    &-mini {
-      display: inline-block;
-    }
-  }
-  .site-sidebar,
-  .site-sidebar__inner {
-    overflow: initial;
-  }
-  .site-sidebar__menu-icon {
-    margin-right: 0;
-    font-size: 20px;
-  }
-  .site-content--tabs > .el-tabs > .el-tabs__header {
-    left: 64px;
-  }
-}
-// animation
-.site-navbar__header,
-.site-navbar__brand,
-.site-navbar__body,
-.site-sidebar,
-.site-sidebar__inner,
-.site-sidebar__menu.el-menu,
-.site-sidebar__menu-icon,
-.site-content__wrapper,
-.site-content--tabs > .el-tabs .el-tabs__header {
-  transition: inline-block .3s, left .3s, width .3s, margin-left .3s, font-size .3s;
-}
-
-
-/* Navbar
------------------------------- */
-.site-navbar {
-  position: fixed;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-  height: 50px;
-  box-shadow: 0 2px 4px rgba(0, 0, 0, .08);
-  background-color: $navbar--background-color;
-
-  &--inverse {
-    .site-navbar__body {
-      background-color: transparent;
-    }
-    .el-menu {
-      > .el-menu-item,
-      > .el-submenu > .el-submenu__title {
-        color: #fff;
-        &:focus,
-        &:hover {
-          color: #fff;
-          background-color: mix(#000, $navbar--background-color, 15%);
-        }
-      }
-      > .el-menu-item.is-active,
-      > .el-submenu.is-active > .el-submenu__title {
-        border-bottom-color: mix(#fff, $navbar--background-color, 85%);
-      }
-      .el-menu-item i,
-      .el-submenu__title i,
-      .el-dropdown {
-        color: #fff;
-      }
-    }
-    .el-menu--popup-bottom-start {
-      background-color: $navbar--background-color;
-    }
-  }
-
-  &__header {
-    position: relative;
-    float: left;
-    width: 230px;
-    height: 50px;
-    overflow: hidden;
-  }
-  &__brand {
-    display: table-cell;
-    vertical-align: middle;
-    width: 230px;
-    height: 50px;
-    margin: 0;
-    line-height: 50px;
-    font-size: 18px;
-    text-align: center;
-    text-transform: uppercase;
-    white-space: nowrap;
-    color: #fff;
-
-    &-lg,
-    &-mini {
-      margin: 0 5px;
-      color: #fff;
-      &:focus,
-      &:hover {
-        color: #fff;
-        text-decoration: none;
-      }
-    }
-    &-mini {
-      display: none;
-    }
-  }
-  &__switch {
-    font-size: 18px;
-    border-bottom: none !important;
-  }
-  &__avatar {
-    border-bottom: none !important;
-    * {
-      vertical-align: inherit;
-    }
-    .el-dropdown-link {
-      > img {
-        width: 36px;
-        height: auto;
-        margin-right: 5px;
-        border-radius: 100%;
-        vertical-align: middle;
-      }
-    }
-  }
-  &__body {
-    position: relative;
-    margin-left: 230px;
-    padding-right: 15px;
-    background-color: #fff;
-  }
-  &__menu {
-    float: left;
-    background-color: transparent;
-    border-bottom: 0;
-
-    &--right {
-      float: right;
-    }
-    a:focus,
-    a:hover {
-      text-decoration: none;
-    }
-    .el-menu-item,
-    .el-submenu > .el-submenu__title {
-      height: 50px;
-      line-height: 50px;
-    }
-    .el-submenu > .el-menu {
-      top: 55px;
-    }
-    .el-badge {
-      display: inline;
-      z-index: 2;
-      &__content {
-        line-height: 16px;
-      }
-    }
-  }
-}
-
-
-/* Sidebar
------------------------------- */
-.site-sidebar {
-  position: fixed;
-  top: 50px;
-  left: 0;
-  bottom: 0;
-  z-index: 1020;
-  width: 230px;
-  overflow: hidden;
-
-  &--dark,
-  &--dark-popper {
-    background-color: $sidebar--background-color-dark;
-    .site-sidebar__menu.el-menu,
-    > .el-menu--popup {
-      background-color: $sidebar--background-color-dark;
-      .el-menu-item,
-      .el-submenu > .el-submenu__title {
-        color: $sidebar--color-text-dark;
-        &:focus,
-        &:hover {
-          color: mix(#fff, $sidebar--color-text-dark, 50%);
-          background-color: mix(#293749, $sidebar--background-color-dark, 65%);
-        }
-      }
-      .el-menu,
-      .el-submenu.is-opened {
-        background-color: mix(#000, $sidebar--background-color-dark, 15%);
-      }
-      .el-menu-item.is-active,
-      .el-submenu.is-active > .el-submenu__title {
-        color: mix(#4f9dec, $sidebar--color-text-dark, 100%);
-      }
-    }
-  }
-  &__inner {
-    position: relative;
-    z-index: 1;
-    width: 250px;
-    height: 100%;
-    padding-bottom: 15px;
-    overflow-y: scroll;
-  }
-  &__menu.el-menu {
-    width: 230px;
-    border-right: 0;
-  }
-  &__menu-icon {
-    width: 24px;
-    margin-right: 5px;
-    text-align: center;
-    font-size: 18px;
-    color: inherit !important;
-  }
-}
-
-
-/* Content
------------------------------- */
-.site-content {
-  position: relative;
-  padding: 15px;
-
-  &__wrapper {
-    position: relative;
-    padding-top: 50px;
-    margin-left: 230px;
-    min-height: 100%;
-    background: $content--background-color;
-  }
-  &--tabs {
-    padding: 55px 0 0;
-  }
-  > .el-tabs {
-    > .el-tabs__header {
-      position: fixed;
-      top: 50px;
-      left: 230px;
-      right: 0;
-      z-index: 930;
-      padding: 0 55px 0 15px;
-      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .12), 0 0 6px 0 rgba(0, 0, 0, .04);
-      background-color: #fff;
-      > .el-tabs__nav-wrap {
-        margin-bottom: 0;
-        &:after {
-          display: none;
-        }
-      }
-    }
-    > .el-tabs__content {
-      padding: 0 15px 15px;
-      > .site-tabs__tools {
-        position: fixed;
-        top: 50px;
-        right: 0;
-        z-index: 931;
-        height: 40px;
-        padding: 0 12px;
-        font-size: 16px;
-        line-height: 40px;
-        background-color: $content--background-color;
-        cursor: pointer;
-        .el-icon--right {
-          margin-left: 0;
-        }
-      }
-    }
-  }
-}
-.el-table__expand-icon {
-  display: inline-block;
-  width: 14px;
-  vertical-align: middle;
-  margin-right: 5px;
-}
+*,
+*:before,
+*:after {
+  box-sizing: border-box;
+}
+body {
+  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
+  font-size: 14px;
+  line-height: 1.15;
+  color: #303133;
+  background-color: #fff;
+}
+a {
+  color: mix(#fff, $--color-primary, 20%);
+  text-decoration: none;
+  &:focus,
+  &:hover {
+    color: $--color-primary;
+    text-decoration: underline;
+  }
+}
+img {
+  vertical-align: middle;
+}
+
+
+/* Utils
+------------------------------ */
+.clearfix:before,
+.clearfix:after {
+  content: " ";
+  display: table;
+}
+.clearfix:after {
+  clear: both;
+}
+
+
+/* Animation
+------------------------------ */
+.fade-enter-active,
+.fade-leave-active {
+  transition: opacity .5s;
+}
+.fade-enter,
+.fade-leave-to {
+  opacity: 0;
+}
+
+
+/* Reset element-ui
+------------------------------ */
+.site-wrapper {
+  .el-pagination {
+    margin-top: 15px;
+    text-align: right;
+  }
+}
+
+
+/* Layout
+------------------------------ */
+.site-wrapper {
+  position: relative;
+  min-width: 1180px;
+}
+
+
+/* Sidebar fold
+------------------------------ */
+.site-sidebar--fold {
+  .site-navbar__header,
+  .site-navbar__brand,
+  .site-sidebar,
+  .site-sidebar__inner,
+  .el-menu.site-sidebar__menu {
+    width: 64px;
+  }
+  .site-navbar__body,
+  .site-content__wrapper {
+    margin-left: 64px;
+  }
+  .site-navbar__brand {
+    &-lg {
+      display: none;
+    }
+    &-mini {
+      display: inline-block;
+    }
+  }
+  .site-sidebar,
+  .site-sidebar__inner {
+    overflow: initial;
+  }
+  .site-sidebar__menu-icon {
+    margin-right: 0;
+    font-size: 20px;
+  }
+  .site-content--tabs > .el-tabs > .el-tabs__header {
+    left: 64px;
+  }
+}
+// animation
+.site-navbar__header,
+.site-navbar__brand,
+.site-navbar__body,
+.site-sidebar,
+.site-sidebar__inner,
+.site-sidebar__menu.el-menu,
+.site-sidebar__menu-icon,
+.site-content__wrapper,
+.site-content--tabs > .el-tabs .el-tabs__header {
+  transition: inline-block .3s, left .3s, width .3s, margin-left .3s, font-size .3s;
+}
+
+
+/* Navbar
+------------------------------ */
+.site-navbar {
+  position: fixed;
+  top: 0;
+  right: 0;
+  left: 0;
+  z-index: 1030;
+  height: 50px;
+  box-shadow: 0 2px 4px rgba(0, 0, 0, .08);
+  background-color: $navbar--background-color;
+
+  &--inverse {
+    .site-navbar__body {
+      background-color: transparent;
+    }
+    .el-menu {
+      > .el-menu-item,
+      > .el-submenu > .el-submenu__title {
+        color: #fff;
+        &:focus,
+        &:hover {
+          color: #fff;
+          background-color: mix(#000, $navbar--background-color, 15%);
+        }
+      }
+      > .el-menu-item.is-active,
+      > .el-submenu.is-active > .el-submenu__title {
+        border-bottom-color: mix(#fff, $navbar--background-color, 85%);
+      }
+      .el-menu-item i,
+      .el-submenu__title i,
+      .el-dropdown {
+        color: #fff;
+      }
+    }
+    .el-menu--popup-bottom-start {
+      background-color: $navbar--background-color;
+    }
+  }
+
+  &__header {
+    position: relative;
+    float: left;
+    width: 230px;
+    height: 50px;
+    overflow: hidden;
+  }
+  &__brand {
+    display: table-cell;
+    vertical-align: middle;
+    width: 230px;
+    height: 50px;
+    margin: 0;
+    line-height: 50px;
+    font-size: 18px;
+    text-align: center;
+    text-transform: uppercase;
+    white-space: nowrap;
+    color: #fff;
+
+    &-lg,
+    &-mini {
+      margin: 0 5px;
+      color: #fff;
+      &:focus,
+      &:hover {
+        color: #fff;
+        text-decoration: none;
+      }
+    }
+    &-mini {
+      display: none;
+    }
+  }
+  &__switch {
+    font-size: 18px;
+    border-bottom: none !important;
+  }
+  &__avatar {
+    border-bottom: none !important;
+    * {
+      vertical-align: inherit;
+    }
+    .el-dropdown-link {
+      > img {
+        width: 36px;
+        height: auto;
+        margin-right: 5px;
+        border-radius: 100%;
+        vertical-align: middle;
+      }
+    }
+  }
+  &__body {
+    position: relative;
+    margin-left: 230px;
+    padding-right: 15px;
+    background-color: #fff;
+  }
+  &__menu {
+    float: left;
+    background-color: transparent;
+    border-bottom: 0;
+
+    &--right {
+      float: right;
+    }
+    a:focus,
+    a:hover {
+      text-decoration: none;
+    }
+    .el-menu-item,
+    .el-submenu > .el-submenu__title {
+      height: 50px;
+      line-height: 50px;
+    }
+    .el-submenu > .el-menu {
+      top: 55px;
+    }
+    .el-badge {
+      display: inline;
+      z-index: 2;
+      &__content {
+        line-height: 16px;
+      }
+    }
+  }
+}
+
+
+/* Sidebar
+------------------------------ */
+.site-sidebar {
+  position: fixed;
+  top: 50px;
+  left: 0;
+  bottom: 0;
+  z-index: 1020;
+  width: 230px;
+  overflow: hidden;
+
+  &--dark,
+  &--dark-popper {
+    background-color: $sidebar--background-color-dark;
+    .site-sidebar__menu.el-menu,
+    > .el-menu--popup {
+      background-color: $sidebar--background-color-dark;
+      .el-menu-item,
+      .el-submenu > .el-submenu__title {
+        color: $sidebar--color-text-dark;
+        &:focus,
+        &:hover {
+          color: mix(#fff, $sidebar--color-text-dark, 50%);
+          background-color: mix(#293749, $sidebar--background-color-dark, 65%);
+        }
+      }
+      .el-menu,
+      .el-submenu.is-opened {
+        background-color: mix(#000, $sidebar--background-color-dark, 15%);
+      }
+      .el-menu-item.is-active,
+      .el-submenu.is-active > .el-submenu__title {
+        color: mix(#4f9dec, $sidebar--color-text-dark, 100%);
+      }
+    }
+  }
+  &__inner {
+    position: relative;
+    z-index: 1;
+    width: 250px;
+    height: 100%;
+    padding-bottom: 15px;
+    overflow-y: scroll;
+  }
+  &__menu.el-menu {
+    width: 230px;
+    border-right: 0;
+  }
+  &__menu-icon {
+    width: 24px;
+    margin-right: 5px;
+    text-align: center;
+    font-size: 18px;
+    color: inherit !important;
+  }
+}
+
+
+/* Content
+------------------------------ */
+.site-content {
+  position: relative;
+  padding: 15px;
+
+  &__wrapper {
+    position: relative;
+    padding-top: 50px;
+    margin-left: 230px;
+    min-height: 100%;
+    background: $content--background-color;
+  }
+  &--tabs {
+    padding: 55px 0 0;
+  }
+  > .el-tabs {
+    > .el-tabs__header {
+      position: fixed;
+      top: 50px;
+      left: 230px;
+      right: 0;
+      z-index: 930;
+      padding: 0 55px 0 15px;
+      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .12), 0 0 6px 0 rgba(0, 0, 0, .04);
+      background-color: #fff;
+      > .el-tabs__nav-wrap {
+        margin-bottom: 0;
+        &:after {
+          display: none;
+        }
+      }
+    }
+    > .el-tabs__content {
+      padding: 0 15px 15px;
+      > .site-tabs__tools {
+        position: fixed;
+        top: 50px;
+        right: 0;
+        z-index: 931;
+        height: 40px;
+        padding: 0 12px;
+        font-size: 16px;
+        line-height: 40px;
+        background-color: $content--background-color;
+        cursor: pointer;
+        .el-icon--right {
+          margin-left: 0;
+        }
+      }
+    }
+  }
+}
+.el-table__expand-icon {
+  display: inline-block;
+  width: 14px;
+  vertical-align: middle;
+  margin-right: 5px;
+}

+ 2 - 2
src/main.js

@@ -31,8 +31,8 @@ Vue.use(Viewer, {
     zIndex: 99999 // 设置图片预览组件的层级,确保能在其他组件之上
   }
 });
-// Vue.prototype.Tupiantou ='https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload'//线上
-Vue.prototype.Tupiantou ="https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/alioss/upload"; //线下
+Vue.prototype.Tupiantou ='https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload'//线上
+// Vue.prototype.Tupiantou ="https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/alioss/upload"; //线下
 Vue.prototype.Tupian = function(img) {
   return "https://mxys.chuanghai-tech.com/wmfile" + img;
 }; //全局图片请求头

+ 7 - 4
src/utils/httpRequest.js

@@ -71,8 +71,8 @@ http.adornUrl = actionName => {
   // return 'http://iyfpk3.natappfree.cc/sqx_fast/' + actionName; // 开发
   // return 'https://www.daweilinli.com/sqx_fast/' + actionName
   // return 'http://192.168.0.131:8171/sqx_fast/' + actionName
-  // return 'https://mxys.chuanghai-tech.com/sqx_fast/' + actionName; //  线上
-  return "https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/" + actionName;// 测试
+  return 'https://mxys.chuanghai-tech.com/sqx_fast/' + actionName; //  线上
+  // return "https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/" + actionName;// 测试
 };
 
 http.adornUrl2 = actionName => {
@@ -84,8 +84,8 @@ http.adornWss = actionName => {
   // 非生产环境 && 开启代理, 接口前缀统一使用[/proxyApi/]前缀做代理拦截!
   // return (process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY ? '/proxyApi/' : window.SITE_CONFIG.baseUrl) + actionName
   // return 'wss://www.daweilinli.com/wss/' + actionName
-  // return 'wss://mxys.chuanghai-tech.com/wss/' + actionName
-  return "wss://mxys.chuanghai-tech.com/wss-test/" + actionName;
+  return 'wss://mxys.chuanghai-tech.com/wss/' + actionName
+  // return "wss://mxys.chuanghai-tech.com/wss-test/" + actionName;
 };
 /**
  * get请求参数处理
@@ -116,7 +116,10 @@ http.adornParams = (params = {}, openDefultParams = false) => {
         }
       });
       b = arr;
+      // console.log(arr,'加密后的参数');
+
       var acc = Object.fromEntries(b); //数值还原
+      // console.log(acc,'加密后的参数');
       var returnItem = openDefultParams ? merge(defaults, acc) : acc; //线上
       // console.log(urlSafeBase64Encode(encrypt('5564')),'gggg2')
       return returnItem;

+ 1 - 1
src/views/common/home.vue

@@ -1466,7 +1466,7 @@ export default {
       month = month + 1;
       month = month.toString().padStart(2, "0");
       date = date.toString().padStart(2, "0");
-      var defaultDate = `${year}-${month}-${date} ${hh}:${mm}:${ss}`;
+      var defaultDate = `${year}-${month}-${date}`;
       return defaultDate;
       this.$set(this.info, "stockDate", defaultDate);
     },

+ 83 - 51
src/views/financeBill/paltBill.vue

@@ -37,13 +37,13 @@
         >查询
       </el-button>
       <el-button
-          style="margin:10px;"
-          size="mini"
-          type="primary"
-          icon="document"
-          @click="cleans"
-          >重置
-        </el-button>
+        style="margin:10px;"
+        size="mini"
+        type="primary"
+        icon="document"
+        @click="cleans"
+        >重置
+      </el-button>
       <el-button
         style="margin-left:15px;"
         size="mini"
@@ -53,6 +53,10 @@
         >导出Excel
       </el-button>
     </div>
+    <div style="color: orange;">
+      * 提示:平台3月24期初金额=3月23期末余额<br>
+      期初金额+收入-商家提现金额(已转账) -骑手提现金额(已转账)=期末金额
+    </div>
     <el-table v-loading="tableDataLoading" :data="duanxinData.list">
       <el-table-column fixed prop="complaintId" label="编号" width="80">
         <template slot-scope="scope">
@@ -68,11 +72,7 @@
         label="收入(元)"
         align="center"
       ></el-table-column>
-      <el-table-column
-        prop="revenueCount"
-        label="收入笔数"
-        align="center"
-      >
+      <el-table-column prop="revenueCount" label="收入笔数" align="center">
         <template slot-scope="scope">
           <div
             style="color: #4f9dec;cursor: pointer;"
@@ -82,7 +82,11 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="platformRates" label="平台抽成手续费" align="center">
+      <el-table-column
+        prop="platformRates"
+        label="平台抽成手续费"
+        align="center"
+      >
       </el-table-column>
       <el-table-column
         prop="shopPayouts"
@@ -95,7 +99,11 @@
         align="center"
       >
       </el-table-column>
-      <el-table-column prop="shopPayoutsCount" label="商家提现笔数" align="center">
+      <el-table-column
+        prop="shopPayoutsCount"
+        label="商家提现笔数"
+        align="center"
+      >
         <template slot-scope="scope">
           <div
             style="color: #4f9dec;cursor: pointer;"
@@ -105,11 +113,23 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="riderPayouts" label="骑手提现(元)" align="center">
+      <el-table-column
+        prop="riderPayouts"
+        label="骑手提现(元)"
+        align="center"
+      >
       </el-table-column>
-      <el-table-column prop="riderPayoutsRates" label="骑手提现手续费" align="center">
+      <el-table-column
+        prop="riderPayoutsRates"
+        label="骑手提现手续费"
+        align="center"
+      >
       </el-table-column>
-      <el-table-column prop="riderPayoutsCount" label="骑手提现笔数" align="center">
+      <el-table-column
+        prop="riderPayoutsCount"
+        label="骑手提现笔数"
+        align="center"
+      >
         <template slot-scope="scope">
           <div
             style="color: #4f9dec;cursor: pointer;"
@@ -214,17 +234,17 @@ export default {
       filename: "",
       state: "",
 
-      statesnum2:[
-        {label:"待导出",value:0},
-        {label:"导出完成",value:1},
-        {label:"导出失败",value:2},
+      statesnum2: [
+        { label: "待导出", value: 0 },
+        { label: "导出完成", value: 1 },
+        { label: "导出失败", value: 2 }
       ],
       duanxinData: [],
 
-       // 导出限制
-       exportTitle: "导出错误",
+      // 导出限制
+      exportTitle: "导出错误",
       exportVisible: false,
-      exportFlag: 1, //1 超出限制  2导出中
+      exportFlag: 1 //1 超出限制  2导出中
     };
   },
   methods: {
@@ -281,8 +301,8 @@ export default {
     },
     // 查询
     select() {
-      if(this.state==null){
-        this.state=''
+      if (this.state == null) {
+        this.state = "";
       }
       this.page = 1;
       this.limit = 10;
@@ -292,9 +312,9 @@ export default {
     cleans() {
       // this.filename = "";
       this.page = 1;
-      this.startTime=""
-      this.endTime=""
-      this.dataSelect()
+      this.startTime = "";
+      this.endTime = "";
+      this.dataSelect();
     },
     refresh() {
       this.dataSelect();
@@ -308,7 +328,7 @@ export default {
       // 	  this.startTime = this.info.stockDate
       //   }
       this.tableDataLoading = true;
-      var userId = this.$cookie.get('userId')
+      var userId = this.$cookie.get("userId");
       this.$http({
         url: this.$http.adornUrl("reconciliation/platformBill"),
         method: "post",
@@ -316,7 +336,7 @@ export default {
           page: this.page,
           limit: this.limit,
           startDate: this.startTime, //开始时间
-          endDate: this.endTime, //结束时间
+          endDate: this.endTime //结束时间
         })
       }).then(({ data }) => {
         // console.log(data,'平台资金账单数据');
@@ -324,20 +344,20 @@ export default {
           this.tableDataLoading = false;
           let returnData = data.data;
           this.duanxinData = returnData;
-          console.log(data.data,'平台资金账单数据');
+          // console.log(data.data, "平台资金账单数据");
         }
       });
     },
     // 下载文件
-    downFile(row){
-      var userId = this.$cookie.get('userId')
+    downFile(row) {
+      var userId = this.$cookie.get("userId");
       this.$http({
         url: this.$http.adornUrl("admin/export/readBuffer"),
         method: "get",
         responseType: "blob",
         params: this.$http.adornParams({
-          filename:row.fileName,// 文件名称
-          userId:userId,
+          filename: row.fileName, // 文件名称
+          userId: userId
         })
       }).then(({ data }) => {
         console.log(data, "导出");
@@ -381,7 +401,7 @@ export default {
           params: this.$http.adornParams({
             userId: userId,
             startDate: this.startTime, //开始时间
-            endDate: this.endTime, //结束时间
+            endDate: this.endTime //结束时间
           })
         }).then(({ data }) => {
           console.log(data, "导出");
@@ -413,34 +433,46 @@ export default {
     },
 
     // 退款笔数跳转
-    refundsNum(row){
-      console.log(row,'退款笔数跳转');
-      this.$router.push({ name: 'mission', params: { type:'platform',refund: 14,dayId:row.dayId } });
+    refundsNum(row) {
+      console.log(row, "退款笔数跳转");
+      this.$router.push({
+        name: "mission",
+        params: { type: "platform", refund: 14, dayId: row.dayId }
+      });
     },
     // 骑手提现笔数跳转
-    riderNum(row){
-      console.log(row,'骑手提现笔数跳转');
-      this.$router.push({ name: 'financeListRun', params: { type:'platform',refund: 1,dayId:row.dayId } });
+    riderNum(row) {
+      console.log(row, "骑手提现笔数跳转");
+      this.$router.push({
+        name: "financeListRun",
+        params: { type: "platform", refund: 1, dayId: row.dayId }
+      });
     },
     // 商家提现笔数跳转
-    merchantNum(row){
-      console.log(row,'商家提现笔数跳转');
-      this.$router.push({ name: 'financeList', params: { type:'platform',refund: 1,dayId:row.dayId } });
+    merchantNum(row) {
+      console.log(row, "商家提现笔数跳转");
+      this.$router.push({
+        name: "financeList",
+        params: { type: "platform", refund: 1, dayId: row.dayId }
+      });
     },
     //
-    incomeNum(row){
-      console.log(row,'收入笔数跳转');
-      this.$router.push({ name: 'mission', params: { type:'platform',refund: 15,dayId:row.dayId } });
+    incomeNum(row) {
+      console.log(row, "收入笔数跳转");
+      this.$router.push({
+        name: "mission",
+        params: { type: "platform", refund: 15, dayId: row.dayId }
+      });
     }
   },
 
   mounted() {
     this.dataSelect();
-  },
+  }
 };
 </script>
 
-<style  scoped="scoped">
+<style scoped="scoped">
 /* 导出限制 */
 .el-tabs >>> .export {
   width: 500px;

+ 7 - 1
src/views/financeBill/riderBill.vue

@@ -91,6 +91,10 @@
         >导出Excel
       </el-button>
     </div>
+    <div style="color: orange;">
+      * 提示:骑手3月24期初金额=3月23期末余额<br>
+      期初金额+收入-提现金额-提现手续费+骑手赠送余额=期末金额
+    </div>
     <el-table v-loading="tableDataLoading" :data="duanxinData.list">
       <el-table-column fixed prop="complaintId" label="编号" width="80">
         <template slot-scope="scope">
@@ -367,11 +371,13 @@ export default {
           endDate: this.endTime, //结束时间
         })
       }).then(({ data }) => {
+        // console.log(data,'骑手');
+
         if (data && data.code === 0) {
           this.tableDataLoading = false;
           let returnData = data.data;
           this.duanxinData = returnData;
-          console.log(data.data,'骑手对账');
+          // console.log(data.data,'骑手对账');
         }
       });
     },

+ 17 - 4
src/views/financeBill/shopBill.vue

@@ -75,6 +75,10 @@
         >导出Excel
       </el-button>
     </div>
+    <div style="color: orange;">
+      * 提示:商家3月24期初金额=3月23期末余额<br>
+      期初金额+收入 -提现金额-提现手续费=期末金额
+    </div>
     <el-table v-loading="tableDataLoading" :data="duanxinData.list">
       <el-table-column fixed prop="complaintId" label="编号" width="80">
         <template slot-scope="scope">
@@ -133,7 +137,7 @@
       </el-table-column>
       <el-table-column prop="endMoney" label="期末金额(元)" align="center">
       </el-table-column>
-      <el-table-column prop="endMoney" label="账户余额(元)" align="center">
+      <el-table-column prop="shopBalance" label="账户余额(元)" align="center">
       </el-table-column>
       <el-table-column prop="totalIncome" label="总收益(元)" align="center">
       </el-table-column>
@@ -324,7 +328,14 @@ export default {
     },
     // 获取派单数据列表
     dataSelect() {
-      console.log(this.state);
+      console.log({
+          page: this.page,
+          limit: this.limit,
+          shopName:this.shopName,// 文件名称
+          shopPhone:this.shopPhone,
+          startDate: this.startTime, //开始时间
+          endDate: this.endTime, //结束时间
+        });
       // if (this.endTime == '') {
       // 	  this.endTime = this.info2.stockDate2
       //   }
@@ -345,11 +356,13 @@ export default {
           endDate: this.endTime, //结束时间
         })
       }).then(({ data }) => {
+        console.log(data,'商家');
+
         if (data && data.code === 0) {
           this.tableDataLoading = false;
           let returnData = data.data;
           this.duanxinData = returnData;
-          console.log(data.data,'商家对账');
+          // console.log(data.data,'商家对账');
         }
       });
     },
@@ -442,7 +455,7 @@ export default {
 
     // 收入笔数跳转
     incomeNum(row){
-      console.log(row,'收入笔数跳转');
+      // console.log(row,{params:{type:'shop',flag:'day',dayId:row.dayId}, query: { shopId: row.shopId }},'收入笔数跳转');
       this.$router.push({ name: 'shopDatas',params:{type:'shop',flag:'day',dayId:row.dayId}, query: { shopId: row.shopId } });
     },
     // 提现笔数跳转

+ 1 - 1
src/views/main-sidebar.vue

@@ -128,7 +128,7 @@ export default {
   methods: {
     // 路由操作
     routeHandle(route) {
-      // console.log(route);
+      console.log(route);
 
       if (route.meta.isTab) {
         // tab选中, 不存在先添加

+ 105 - 9
src/views/mission/mission.vue

@@ -674,6 +674,15 @@
               style="margin: 3px;"
               >转单</el-button
             >
+            <el-button
+              size="mini"
+              type="primary"
+              v-if="scope.row.orderTypeExtra == 2"
+              :disabled="!isAuth('mission:qishoumingxi')"
+              @click="riderDetail(scope.row)"
+              style="margin: 3px;"
+              >骑手明细</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -1030,6 +1039,38 @@
       </div>
     </el-dialog>
 
+    <!-- 骑手明细 -->
+    <el-dialog
+      custom-class="riderDetail"
+      title="本单骑手记录"
+      :visible.sync="dialogFormVisibleQS"
+      center
+    >
+      <el-table v-loading="tableDataLoadingQS" :data="riderData">
+        <el-table-column type="index" label="序号" width="80">
+        </el-table-column>
+        <el-table-column prop="userName" label="骑手姓名">
+        </el-table-column>
+        <el-table-column prop="userPhone" label="骑手手机号">
+        </el-table-column>
+        <el-table-column prop="payTime" label="订单支付时间"></el-table-column>
+        <el-table-column prop="receveTime" label="接单时间"></el-table-column>
+        <el-table-column prop="stationName" label="所在站点"></el-table-column>
+      </el-table>
+      <div style="text-align: center;margin-top: 10px;">
+        <el-pagination
+          @size-change="handleSizeChangeQS"
+          @current-change="handleCurrentChangeQS"
+          :page-sizes="[10, 20, 30, 40]"
+          :page-size="limitQS"
+          :current-page="pageQS"
+          layout="total,sizes, prev, pager, next,jumper"
+          :total="totalCountQS"
+        >
+        </el-pagination>
+      </div>
+    </el-dialog>
+
     <!-- 打印小票明细 -->
     <el-dialog
       custom-class="detail"
@@ -1344,7 +1385,16 @@ export default {
       detailData: {},
       detailId: "",
       detailLimit: 10,
-      detailPage: 1
+      detailPage: 1,
+
+      // 骑手明细
+      dialogFormVisibleQS: false,
+      tableDataLoadingQS: false,
+      riderData: [],
+      orderIdQS: "",
+      pageQS: 1,
+      limitQS: 10,
+      totalCountQS: 8
     };
   },
   methods: {
@@ -1843,6 +1893,7 @@ export default {
             }
           }
           this.totalMoney = this.totalMoney.toFixed(2);
+          console.log(data.data.totalCount,'此时间段暂无数据');
           if (!data.data.totalCount) {
             this.$message({
               message: "此时间段暂无数据",
@@ -2114,12 +2165,21 @@ export default {
             }
           });
         } else {
-          this.$message({
-            message: data.msg,
-            type: "warning",
-            duration: 1500,
-            onClose: () => {}
-          });
+          if(data.msg=='订单状态发生变更,请刷新后重试!'){
+            this.$message({
+              message: '当前订单状态不支持转单',
+              type: "warning",
+              duration: 1500,
+              onClose: () => {}
+            });
+          }else{
+            this.$message({
+              message: data.msg,
+              type: "warning",
+              duration: 1500,
+              onClose: () => {}
+            });
+          }
         }
       });
     },
@@ -2188,6 +2248,37 @@ export default {
       this.detailClick();
     },
 
+    // 骑手明细  (-------------------------------------------------------)
+    riderListData(){
+      this.dialogFormVisibleQS = true;
+      this.$http({
+        url: this.$http.adornUrl("admin/transferRecord/queryTransferRecords"),
+        method: "get",
+        params: this.$http.adornParams({
+          page: this.pageQS,
+          limit: this.limitQS,
+          orderId: this.orderIdQS
+        })
+      }).then(({ data }) => {
+        console.log(data, "骑手明细");
+        this.tableDataLoadingQS = false;
+        this.riderData=data.data.list
+        this.totalCountQS=data.data.totalCount
+      });
+    },
+    riderDetail(row) {
+      this.orderIdQS = row.orderId
+      this.riderListData()
+    },
+    handleSizeChangeQS(val) {
+      this.limitQS = val;
+      this.riderListData()
+    },
+    handleCurrentChangeQS(val) {
+      this.pageQS = val;
+      this.riderListData()
+    },
+
     // 导出
     // exportBtn() {
     //   var userId = this.$cookie.get('userId')
@@ -2305,7 +2396,7 @@ export default {
       this.exportVisible = false;
     },
     getPath() {
-      console.log("监控路由获取参数", this.$route.params.refund);
+      console.log("监控路由获取参数", this.$route.params);
       if (this.$route.params.type == "platform") {
         console.log(this.$route.params, "平台-钩子中获取参数");
         if (this.$route.params.refund == 14) {
@@ -2350,7 +2441,7 @@ export default {
           .subtract(6, "day")
           .format("YYYY-MM-DD");
         this.payEndTime = dayjs().format("YYYY-MM-DD");
-        this.taskdataSelect();
+        // this.taskdataSelect();
       }
     }
   },
@@ -2462,4 +2553,9 @@ export default {
   display: flex;
   flex-direction: row-reverse;
 }
+
+/* 打印小票明细 */
+.el-tabs >>> .riderDetail {
+  width: 900px;
+}
 </style>

Fichier diff supprimé car celui-ci est trop grand
+ 810 - 682
src/views/shopsList/shopDatas.vue


+ 298 - 264
src/views/sysmission/missionAdd.vue

@@ -1,290 +1,324 @@
 <template>
   <div class="components-container main-cont">
     <div style="position: relative;">
-		<span>任务标题:</span>
-		<el-input style="width: 200px;" placeholder="请输入任务标题" v-model="title" autosize></el-input>&nbsp;&nbsp;&nbsp;&nbsp;
-		<span>任务分类:</span>
-		<el-select v-model="classifyId" placeholder="请选择任务分类" style="width:200px;">
-			<el-option v-for="(item,index) in artiCletypes" :key="item.index" :label="item.classifyName" :value="item.id">
-			</el-option>
-		</el-select>&nbsp;&nbsp;&nbsp;&nbsp;
-		<span>幸运值:</span>
-		<el-input style="width:200px;" placeholder="请输入幸运值" type="number" v-model="luckyValue" autosize></el-input>&nbsp;&nbsp;
-		<div style="display: flex;align-items: center;margin: 2% 0;">
-			<span style="margin-right: 5px;">标题图片:</span>
-			<el-upload
-				v-model="titlePicture"
-				:class="{hide:hideUpload}"
-				  :action="Tupiantou"
-				  :limit=1
-				  :on-success="handleUploadSuccess"
-				  list-type="picture-card"
-				  :on-remove="handleRemove"
-				  :on-change="handleChange"
-				>
-				<i class="el-icon-plus"></i>
-			</el-upload>
-		</div>
-		<div style="position: absolute;right:0;top:5px;">
-			<el-button style='margin:0 0 20px 20px;' size="mini" type="primary" icon="document" @click="artiReleass">发布任务
-			</el-button>
-		</div>
+      <span>任务标题:</span>
+      <el-input
+        style="width: 200px;"
+        placeholder="请输入任务标题"
+        v-model="title"
+        autosize
+      ></el-input
+      >&nbsp;&nbsp;&nbsp;&nbsp;
+      <span>任务分类:</span>
+      <el-select
+        v-model="classifyId"
+        placeholder="请选择任务分类"
+        style="width:200px;"
+      >
+        <el-option
+          v-for="(item, index) in artiCletypes"
+          :key="item.index"
+          :label="item.classifyName"
+          :value="item.id"
+        >
+        </el-option> </el-select
+      >&nbsp;&nbsp;&nbsp;&nbsp;
+      <span>幸运值:</span>
+      <el-input
+        style="width:200px;"
+        placeholder="请输入幸运值"
+        type="number"
+        v-model="luckyValue"
+        autosize
+      ></el-input
+      >&nbsp;&nbsp;
+      <div style="display: flex;align-items: center;margin: 2% 0;">
+        <span style="margin-right: 5px;">标题图片:</span>
+        <el-upload
+          v-model="titlePicture"
+          :class="{ hide: hideUpload }"
+          :action="Tupiantou"
+          :limit="1"
+          :on-success="handleUploadSuccess"
+          list-type="picture-card"
+          :on-remove="handleRemove"
+          :on-change="handleChange"
+        >
+          <i class="el-icon-plus"></i>
+        </el-upload>
+      </div>
+      <div style="position: absolute;right:0;top:5px;">
+        <el-button
+          style="margin:0 0 20px 20px;"
+          size="mini"
+          type="primary"
+          icon="document"
+          @click="artiReleass"
+          >发布任务
+        </el-button>
+      </div>
     </div>
     <div class="tinymce-content">
-      <textarea id="tinymceId" :value="content" class="tinymce-textarea"/>
+      <textarea id="tinymceId" :value="content" class="tinymce-textarea" />
     </div>
   </div>
 </template>
 
 <script>
-    import load from './tinymce-components/dynamicLoadScript'
-    import toolbar from './tinymce-components/toolbar'
-    import plugins from './tinymce-components/plugins'
+import load from "./tinymce-components/dynamicLoadScript";
+import toolbar from "./tinymce-components/toolbar";
+import plugins from "./tinymce-components/plugins";
 
-    const tinymceCDN = 'https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js'
+const tinymceCDN =
+  "https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js";
 
-    export default {
-        name: 'Tinymce',
-        data() {
-            return {
-                classifyId: '',
-                title: '',
-                luckyValue: '',
-				titlePicture:'',
-				isShow: false,
-				hideUpload: false,
-				limit:1,
-                hasChange: false,
-                hasInit: false,
-                tinymceId: 'tinymceId',
-                height: 235,
-                toolbar: [],
-                menubar: 'file edit insert view format table',
-                languageTypeList: {
-                    'en': 'en',
-                    'zh': 'zh_CN'
-                },
-				artiCletypes: [],
-                // 富文本内容
-                content: ''
-            }
-        },
-        watch: {
-            content(val) {
-                if (!this.hasChange && this.hasInit) {
-                    this.$nextTick(() => window.tinymce.get(this.tinymceId).setContent(val || ''))
-                }
-            }
-        },
-        methods: {
-			handleChange(file, fileList){
-				this.hideUpload = fileList.length >= this.limit;
-			},
-			handleRemove(file, fileList) {
-				this.hideUpload = fileList.length >= this.limit;
-			},
-			//上传成功
-			handleUploadSuccess(file,fileList) {
-			  this.titlePicture= file.data
-			},
-			// 添加任务
-			artiReleass(){
-				if (this.title == '') {
-				    this.$notify({
-				        title: '提示',
-				        duration: 1800,
-				        message: '请输入任务标题',
-				        type: 'warning'
-				    });
-				    return
-				}
-				if (this.classifyId == '') {
-				    this.$notify({
-				        title: '提示',
-				        duration: 1800,
-				        message: '请选择任务分类',
-				        type: 'warning'
-				    });
-				    return
-				}
-				if (this.luckyValue == '') {
-				    this.$notify({
-				        title: '提示',
-				        duration: 1800,
-				        message: '请选择任务幸运值',
-				        type: 'warning'
-				    });
-				    return
-				}
-				if (this.content == '') {
-				    this.$notify({
-				        title: '提示',
-				        duration: 1800,
-				        message: '请选择任务内容',
-				        type: 'warning'
-				    });
-				    return
-				}
-				this.$http({
-				  url: this.$http.adornUrl('helpTaskPlatform/saveHelpTaskPlatform'),
-				  method: 'post',
-				  data: this.$http.adornData({
-				    'title':this.title,
-				    'classifyId':this.classifyId,
-				    'content':this.content,
-				    'luckyValue':this.luckyValue,
-				    'titlePicture':this.titlePicture
-				  })
-				}).then(({data}) => {
-					this.dialogFormVisible = false
-				    this.$message({
-				      message: '添加成功',
-				      type: 'success',
-				      duration: 1500,
-				      onClose: () => {
-				        this.$router.push({path: '/missionsye'});
-				      }
-				    })
-				})
-			},
-            init() {
-                load(tinymceCDN, (err) => {
-                    if (err) {
-                        this.$message.error(err.message)
-                        return
-                    }
-                    this.initTinymce()
-                })
-            },
+export default {
+  name: "Tinymce",
+  data() {
+    return {
+      classifyId: "",
+      title: "",
+      luckyValue: "",
+      titlePicture: "",
+      isShow: false,
+      hideUpload: false,
+      limit: 1,
+      hasChange: false,
+      hasInit: false,
+      tinymceId: "tinymceId",
+      height: 235,
+      toolbar: [],
+      menubar: "file edit insert view format table",
+      languageTypeList: {
+        en: "en",
+        zh: "zh_CN"
+      },
+      artiCletypes: [],
+      // 富文本内容
+      content: ""
+    };
+  },
+  watch: {
+    content(val) {
+      if (!this.hasChange && this.hasInit) {
+        this.$nextTick(() =>
+          window.tinymce.get(this.tinymceId).setContent(val || "")
+        );
+      }
+    }
+  },
+  methods: {
+    handleChange(file, fileList) {
+      this.hideUpload = fileList.length >= this.limit;
+    },
+    handleRemove(file, fileList) {
+      this.hideUpload = fileList.length >= this.limit;
+    },
+    //上传成功
+    handleUploadSuccess(file, fileList) {
+      this.titlePicture = file.data;
+    },
+    // 添加任务
+    artiReleass() {
+      if (this.title == "") {
+        this.$notify({
+          title: "提示",
+          duration: 1800,
+          message: "请输入任务标题",
+          type: "warning"
+        });
+        return;
+      }
+      if (this.classifyId == "") {
+        this.$notify({
+          title: "提示",
+          duration: 1800,
+          message: "请选择任务分类",
+          type: "warning"
+        });
+        return;
+      }
+      if (this.luckyValue == "") {
+        this.$notify({
+          title: "提示",
+          duration: 1800,
+          message: "请选择任务幸运值",
+          type: "warning"
+        });
+        return;
+      }
+      if (this.content == "") {
+        this.$notify({
+          title: "提示",
+          duration: 1800,
+          message: "请选择任务内容",
+          type: "warning"
+        });
+        return;
+      }
+      this.$http({
+        url: this.$http.adornUrl("helpTaskPlatform/saveHelpTaskPlatform"),
+        method: "post",
+        data: this.$http.adornData({
+          title: this.title,
+          classifyId: this.classifyId,
+          content: this.content,
+          luckyValue: this.luckyValue,
+          titlePicture: this.titlePicture
+        })
+      }).then(({ data }) => {
+        this.dialogFormVisible = false;
+        this.$message({
+          message: "添加成功",
+          type: "success",
+          duration: 1500,
+          onClose: () => {
+            this.$router.push({ path: "/missionsye" });
+          }
+        });
+      });
+    },
+    init() {
+      load(tinymceCDN, err => {
+        if (err) {
+          this.$message.error(err.message);
+          return;
+        }
+        this.initTinymce();
+      });
+    },
 
-            initTinymce() {
-                const _this = this
-                window.tinymce.init({
-                    selector: `#${this.tinymceId}`,
-                    images_upload_handler: function (blobInfo, success, failure) {
-                        var xhr, formData;
+    initTinymce() {
+      const _this = this;
+      window.tinymce.init({
+        selector: `#${this.tinymceId}`,
+        images_upload_handler: function(blobInfo, success, failure) {
+          var xhr, formData;
 
-                        xhr = new XMLHttpRequest();
-                        xhr.withCredentials = false;
-                        xhr.open('POST', "https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload");
-                        xhr.onload = function () {
-                            var json;
+          xhr = new XMLHttpRequest();
+          xhr.withCredentials = false;
+          xhr.open(
+            "POST",
+            "https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload"
+          );
+          xhr.onload = function() {
+            var json;
 
-                            if (xhr.status != 200) {
-                                failure('HTTP Error: ' + xhr.status);
-                                return;
-                            }
-                            json =JSON.parse(xhr.responseText);
-                            if (json == "" || json == null) {
-                                failure('Invalid JSON: ' + xhr.responseText);
-                                return;
-                            }
-                            success(json.data);
-                        };
-                        formData = new FormData();
-                        formData.append('file', blobInfo.blob(), blobInfo.filename());
-                        xhr.send(formData);
-                    },
-                    language: this.languageTypeList['zh'],
-                    height: this.height,
-                    body_class: 'panel-body ',
-                    object_resizing: false,
-                    toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,
-                    plugins,
-                    menubar: this.menubar,
-                    end_container_on_empty_block: true,
-                    powerpaste_word_import: 'clean',
-                    code_dialog_height: 450,
-                    code_dialog_width: 1000,
-                    advlist_bullet_styles: 'square',
-                    advlist_number_styles: 'default',
-                    imagetools_cors_hosts: ['www.tinymce.com', 'codepen.io'],
-                    default_link_target: '_blank',
-                    link_title: false,
-                    // Image
-                    imagetools_toolbar: 'rotateleft rotateright | flipv fliph | editimage imageoptions',
-                    nonbreaking_force_tab: true, // inserting nonbreaking space &nbsp; need Nonbreaking Space Plugin
-                    init_instance_callback: editor => {
-                        if (_this.content) {
-                            editor.setContent(_this.content)
-                        }
-                        _this.hasInit = true
-                        editor.on('NodeChange Change KeyUp SetContent', () => {
-                            this.hasChange = true
-                            this.content = editor.getContent()
-                        })
-                    },
-                    setup(editor) {
-                        editor.on('FullscreenStateChanged', (e) => {
-                            _this.fullscreen = e.state
-                        })
-                    }
-                })
-            },
-            destroyTinymce() {
-                const tinymce = window.tinymce.get(this.tinymceId)
-                if (this.fullscreen) {
-                    tinymce.execCommand('mceFullScreen')
-                }
-                if (tinymce) {
-                    tinymce.destroy()
-                }
-            },
-			// 获取分类
-			classifySelect () {
-			  this.tableDataLoading = true
-			  this.$http({
-				url: this.$http.adornUrl('platformClassify/selectClassifyList'),
-				method: 'get',
-				params: this.$http.adornParams({
-				})
-			  }).then(({data}) => {
-					this.tableDataLoading = false
-					let returnData = data.data;
-					this.artiCletypes = returnData
-			  })
-			},
-        },
-        mounted() {
-            this.init()
-			this.classifySelect()
-        },
-        beforeDestroy() {
-            this.destroyTinymce()
-        },
-        activated() {
-            if (window.tinymce) {
-                this.initTinymce()
+            if (xhr.status != 200) {
+              failure("HTTP Error: " + xhr.status);
+              return;
             }
+            json = JSON.parse(xhr.responseText);
+            if (json == "" || json == null) {
+              failure("Invalid JSON: " + xhr.responseText);
+              return;
+            }
+            success(json.data);
+          };
+          formData = new FormData();
+          formData.append("file", blobInfo.blob(), blobInfo.filename());
+          xhr.send(formData);
+        },
+        language: this.languageTypeList["zh"],
+        height: this.height,
+        body_class: "panel-body ",
+        object_resizing: false,
+        toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,
+        plugins,
+        menubar: this.menubar,
+        end_container_on_empty_block: true,
+        powerpaste_word_import: "clean",
+        code_dialog_height: 450,
+        code_dialog_width: 1000,
+        advlist_bullet_styles: "square",
+        advlist_number_styles: "default",
+        imagetools_cors_hosts: ["www.tinymce.com", "codepen.io"],
+        default_link_target: "_blank",
+        link_title: false,
+        // Image
+        imagetools_toolbar:
+          "rotateleft rotateright | flipv fliph | editimage imageoptions",
+        nonbreaking_force_tab: true, // inserting nonbreaking space &nbsp; need Nonbreaking Space Plugin
+        init_instance_callback: editor => {
+          if (_this.content) {
+            editor.setContent(_this.content);
+          }
+          _this.hasInit = true;
+          editor.on("NodeChange Change KeyUp SetContent", () => {
+            this.hasChange = true;
+            this.content = editor.getContent();
+          });
         },
-        deactivated() {
-            this.destroyTinymce()
+        setup(editor) {
+          editor.on("FullscreenStateChanged", e => {
+            _this.fullscreen = e.state;
+          });
         }
+      });
+    },
+    destroyTinymce() {
+      const tinymce = window.tinymce.get(this.tinymceId);
+      if (this.fullscreen) {
+        tinymce.execCommand("mceFullScreen");
+      }
+      if (tinymce) {
+        tinymce.destroy();
+      }
+    },
+    // 获取分类
+    classifySelect() {
+      this.tableDataLoading = true;
+      this.$http({
+        url: this.$http.adornUrl("platformClassify/selectClassifyList"),
+        method: "get",
+        params: this.$http.adornParams({})
+      }).then(({ data }) => {
+        this.tableDataLoading = false;
+        let returnData = data.data;
+        this.artiCletypes = returnData;
+      });
     }
+  },
+  mounted() {
+    this.init();
+    this.classifySelect();
+  },
+  beforeDestroy() {
+    this.destroyTinymce();
+  },
+  activated() {
+    if (window.tinymce) {
+      this.initTinymce();
+    }
+  },
+  deactivated() {
+    this.destroyTinymce();
+  }
+};
 </script>
 
 <style>
-  .main-cont {
-    max-width: 100%;
-    min-width: 80%;
-	padding-bottom:5%;
-	background-color: #fff;
-  }
+.main-cont {
+  max-width: 100%;
+  min-width: 80%;
+  padding-bottom: 5%;
+  background-color: #fff;
+}
 
-  .tinymce-container {
-    position: relative;
-    line-height: normal;
-  }
+.tinymce-container {
+  position: relative;
+  line-height: normal;
+}
 
-  .tinymce-container >>> .mce-fullscreen {
-    z-index: 10000;
-  }
+.tinymce-container >>> .mce-fullscreen {
+  z-index: 10000;
+}
 
-  .tinymce-textarea {
-    visibility: hidden;
-    z-index: -1;
-  }
- .hide .el-upload--picture-card {
-     display: none;
- }
+.tinymce-textarea {
+  visibility: hidden;
+  z-index: -1;
+}
+.hide .el-upload--picture-card {
+  display: none;
+}
 </style>

+ 39 - 39
static/plugins/ueditor-1.4.3.3/dialogs/anchor/anchor.html

@@ -1,40 +1,40 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-        <title></title>
-        <style type="text/css">
-            *{color: #838383;margin: 0;padding: 0}
-            html,body {font-size: 12px;overflow: hidden; }
-            .content{padding:5px 0 0 15px;}
-            input{width:210px;height:21px;line-height:21px;margin-left: 4px;}
-        </style>
-    </head>
-    <body>
-        <div class="content">
-            <span><var id="lang_input_anchorName"></var></span><input id="anchorName"  value="" />
-        </div>
-        <script type="text/javascript" src="../internal.js"></script>
-        <script type="text/javascript">
-            var anchorInput = $G('anchorName'),
-                node = editor.selection.getRange().getClosedNode();
-            if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
-                anchorInput.value = node;
-            }
-            anchorInput.onkeydown = function(evt){
-                evt = evt || window.event;
-                if(evt.keyCode == 13){
-                    editor.execCommand('anchor', anchorInput.value);
-                    dialog.close();
-                    domUtils.preventDefault(evt)
-                }
-            };
-            dialog.onok = function (){
-                editor.execCommand('anchor', anchorInput.value);
-                dialog.close();
-            };
-            $focus(anchorInput);
-        </script>
-    </body>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+    "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+        <title></title>
+        <style type="text/css">
+            *{color: #838383;margin: 0;padding: 0}
+            html,body {font-size: 12px;overflow: hidden; }
+            .content{padding:5px 0 0 15px;}
+            input{width:210px;height:21px;line-height:21px;margin-left: 4px;}
+        </style>
+    </head>
+    <body>
+        <div class="content">
+            <span><var id="lang_input_anchorName"></var></span><input id="anchorName"  value="" />
+        </div>
+        <script type="text/javascript" src="../internal.js"></script>
+        <script type="text/javascript">
+            var anchorInput = $G('anchorName'),
+                node = editor.selection.getRange().getClosedNode();
+            if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
+                anchorInput.value = node;
+            }
+            anchorInput.onkeydown = function(evt){
+                evt = evt || window.event;
+                if(evt.keyCode == 13){
+                    editor.execCommand('anchor', anchorInput.value);
+                    dialog.close();
+                    domUtils.preventDefault(evt)
+                }
+            };
+            dialog.onok = function (){
+                editor.execCommand('anchor', anchorInput.value);
+                dialog.close();
+            };
+            $focus(anchorInput);
+        </script>
+    </body>
 </html>