浏览代码

Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui

# Conflicts:
#	manager/src/views/promotion/coupon/coupon.vue
#	seller/src/views/promotion/coupon/coupon.vue
Chopper 5 年之前
父节点
当前提交
35af0f2744
共有 69 个文件被更改,包括 1595 次插入1500 次删除
  1. 8 0
      buyer/build/webpack.base.conf.js
  2. 1 1
      buyer/src/components/coupon/Coupon.vue
  3. 1 1
      buyer/src/components/drawer/Drawer.vue
  4. 2 2
      buyer/src/components/goodsDetail/ShowGoodsDetail.vue
  5. 15 13
      buyer/src/components/header/Header.vue
  6. 17 21
      buyer/src/components/nav/GoodsClassNav.vue
  7. 8 8
      buyer/src/config/index.js
  8. 2 2
      buyer/src/pages/Cart.vue
  9. 1 1
      buyer/src/pages/GoodsDetail.vue
  10. 2 2
      buyer/src/pages/GoodsList.vue
  11. 2 2
      buyer/src/pages/Merchant.vue
  12. 1 1
      buyer/src/pages/couponCenter.vue
  13. 2 2
      buyer/src/pages/home/memberCenter/CommentList.vue
  14. 1 1
      buyer/src/pages/home/memberCenter/ComplainDetail.vue
  15. 2 2
      buyer/src/pages/home/memberCenter/ComplainList.vue
  16. 2 2
      buyer/src/pages/home/memberCenter/evaluation/EvalDetail.vue
  17. 1 1
      buyer/src/pages/payment/Pay.vue
  18. 3 2
      manager/src/api/index.js
  19. 2 1
      manager/src/views/distribution/distributionOrder.vue
  20. 10 4
      manager/src/views/goods/goods-info/goods.vue
  21. 1 0
      manager/src/views/goods/goods-manage/category.vue
  22. 40 17
      manager/src/views/goods/goods-manage/parameter.vue
  23. 1 1
      manager/src/views/goods/goods-review/index.vue
  24. 2 2
      manager/src/views/home/home.vue
  25. 0 127
      manager/src/views/lili-components/multiple-region.vue
  26. 1 1
      manager/src/views/lili-dialog/template/marketing.vue
  27. 4 4
      manager/src/views/member/list/index.vue
  28. 19 19
      manager/src/views/member/list/memberDetail.vue
  29. 1 1
      manager/src/views/my-components/lili/upload-pic-thumb.vue
  30. 4 6
      manager/src/views/order/after-order/afterSaleOrder.vue
  31. 20 8
      manager/src/views/order/after-order/afterSaleOrderDetail.vue
  32. 94 37
      manager/src/views/order/flow/paymentLog.vue
  33. 16 1
      manager/src/views/order/order/orderList.vue
  34. 38 48
      manager/src/views/page/article-manage/articleList.vue
  35. 0 2
      manager/src/views/promotion/coupon/coupon.vue
  36. 1 1
      manager/src/views/promotion/coupon/couponInfo.vue
  37. 17 49
      manager/src/views/promotion/coupon/couponPublish.vue
  38. 1 1
      manager/src/views/promotion/pointsGoods/editPointsGoods.vue
  39. 3 10
      manager/src/views/promotion/pointsGoodsCategory/pointsGoodsCategory.vue
  40. 1 0
      manager/src/views/seller/bill/accountStatementBill.vue
  41. 25 25
      manager/src/views/seller/bill/bill.vue
  42. 9 0
      manager/src/views/seller/shop/shopAuditList.vue
  43. 10 1
      manager/src/views/seller/shop/shopList.vue
  44. 1 1
      manager/src/views/statistics/goods.vue
  45. 305 354
      manager/src/views/sys/app-version/appVersion.vue
  46. 1 1
      manager/src/views/sys/message/sms.vue
  47. 6 6
      manager/src/views/sys/message/smsSign.vue
  48. 1 1
      seller/src/api/distribution.js
  49. 4 4
      seller/src/config/index.js
  50. 15 1
      seller/src/libs/routerJson.js
  51. 2 1
      seller/src/store/modules/app.js
  52. 200 0
      seller/src/views/distribution/distributionOrder.vue
  53. 4 3
      seller/src/views/goods/goods-seller/draftGoods.vue
  54. 16 10
      seller/src/views/goods/goods-seller/goods.vue
  55. 26 28
      seller/src/views/goods/goods-seller/goodsOperation.vue
  56. 0 4
      seller/src/views/goods/goods-seller/goodsStock.vue
  57. 7 7
      seller/src/views/home/home.vue
  58. 76 24
      seller/src/views/lili-components/multiple-region.vue
  59. 0 1
      seller/src/views/main-components/header.vue
  60. 3 2
      seller/src/views/member/memberComment.vue
  61. 5 0
      seller/src/views/my-components/lili/upload-pic-thumb.vue
  62. 2 2
      seller/src/views/order/after-order/orderComplaintDetail.vue
  63. 2 2
      seller/src/views/promotion/coupon/coupon.vue
  64. 14 62
      seller/src/views/promotion/coupon/couponPublish.vue
  65. 13 58
      seller/src/views/promotion/pintuan/newPintuan.vue
  66. 8 18
      seller/src/views/promotion/pintuan/pintuanGoods.vue
  67. 490 475
      seller/src/views/shop/ship/shipTemplate.vue
  68. 2 4
      seller/src/views/statistics/order.vue
  69. 1 1
      seller/src/views/statistics/order/orderStatistics.vue

+ 8 - 0
buyer/build/webpack.base.conf.js

@@ -85,6 +85,14 @@ module.exports = {
           limit: 10000,
           name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
         }
+      },
+      {
+        test: /\.(cur)(\?.*)?$/,
+        loader: 'url-loader',
+        options: {
+          limit: 10000,
+          name: utils.assetsPath('cur/[name].[hash:7].[ext]')
+        }
       }
     ]
   },

+ 1 - 1
buyer/src/components/coupon/Coupon.vue

@@ -6,7 +6,7 @@
         <div class="c-left">
           <div>
             <span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
-            <span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.discount}}</span>折</span>
+            <span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.couponDiscount}}</span>折</span>
             <span class="describe">满{{item.consumeThreshold}}元可用</span>
           </div>
           <p>使用范围:{{useScope(item.scopeType, item.storeName)}}</p>

+ 1 - 1
buyer/src/components/drawer/Drawer.vue

@@ -38,7 +38,7 @@
             <div class="c-left">
               <div>
                 <span v-if="coupon.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{coupon.price | unitPrice}}</span></span>
-                <span v-if="coupon.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{coupon.discount}}</span>折</span>
+                <span v-if="coupon.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{coupon.couponDiscount}}</span>折</span>
                 <span class="describe">满{{coupon.consumeThreshold}}元可用</span>
               </div>
               <p>使用范围:{{useScope(coupon.scopeType, coupon.storeName)}}</p>

+ 2 - 2
buyer/src/components/goodsDetail/ShowGoodsDetail.vue

@@ -56,8 +56,8 @@
                       <Rate disabled :value="Number(item.descriptionScore)" allow-half class="remarks-star"></Rate>
                     </p>
                     <p class="remarks-content">{{item.content}}</p>
-                    <div class="comment-img" v-if="item.haveImage">
-                      <div v-for="(img, imgIndex) in item.image.split(',')"
+                    <div class="comment-img" v-if="item.images">
+                      <div v-for="(img, imgIndex) in item.images.split(',')"
                        @click="previewImg(img, item)"
                        :class="{borderColor:img === item.previewImg}"
                        :key="imgIndex">

+ 15 - 13
buyer/src/components/header/Header.vue

@@ -53,16 +53,19 @@
         </li>
         <li class="hover-color" @click="goUserCenter('/home/MyOrder')"><span class="nav-item">我的订单</span></li>
         <li class="hover-color" @click="goUserCenter('/home/MyTracks')"><span class="nav-item">我的足迹</span></li>
-        <li v-if="$route.name !== 'Cart'" style="position:relative;" @mouseenter="getCartList">
+        <li v-if="$route.name !== 'Cart'" style="position:relative;" >
           <i class="cart-badge" v-show="Number(cartNum)">{{cartNum < 100 ? cartNum : '99'}}</i>
           <Dropdown placement="bottom-start">
-            <router-link to="cart" target="_blank">
-              <Icon
-                size="18"
-                class="cart-icon"
-                type="ios-cart-outline"
-              ></Icon>
-              购物车
+            <router-link to="cart" target="_blank" >
+              <span @mouseenter="getCartList">
+                <Icon
+                  size="18"
+                  class="cart-icon"
+                  type="ios-cart-outline"
+                ></Icon>
+                购物车
+              </span>
+              
             </router-link>
 
             <DropdownMenu slot="list">
@@ -115,7 +118,7 @@
 
 <script>
 import storage from '@/plugins/storage.js';
-import {cartGoodsAll, cartCount} from '@/api/cart.js'
+import {cartGoodsAll} from '@/api/cart.js'
 export default {
   name: 'M-Header',
   created () {
@@ -211,12 +214,11 @@ export default {
     },
     getCartList () { // 获取购物车列表
       if (this.userInfo.username) {
-        cartCount().then(res => {
-          this.$store.commit('SET_CARTNUM', res.result)
-          this.Cookies.setItem('cartNum', res.result)
-        })
+          
         cartGoodsAll().then(res => {
           this.shoppingCart = res.result.skuList
+          this.$store.commit('SET_CARTNUM', this.shoppingCart.length)
+          this.Cookies.setItem('cartNum', this.shoppingCart.length)
         })
       }
     }

+ 17 - 21
buyer/src/components/nav/GoodsClassNav.vue

@@ -31,7 +31,7 @@
       <template v-else>
         <div style="font-size:14px">全部结果</div>
         <Icon type="ios-arrow-forward" />
-        <div>{{params.keyword}}</div>
+        <div style="font-weight:bold;" class="mr_10">{{params.keyword}}</div>
       </template>
       <!-- 所选分类 -->
       <a
@@ -41,8 +41,7 @@
         :key="index"
         :title="item.name"
       >
-        <span>{{ item.type }}:</span><span>{{ item.name }}</span
-        ><Icon type="md-close" />
+        <span>{{ item.type }}:</span><span>{{ item.name }}</span><Icon type="md-close" />
       </a>
     </div>
 
@@ -190,23 +189,21 @@ export default {
     selectedItem: {
       // 监听已选条件,来调用列表接口
       handler (val) {
+        console.log(val);
         let classification = [];
-        if (val.length) {
-          val.forEach((item) => {
-            if (item.type === '品牌') {
-              this.params.brandId = this.brandIds.join('@');
-            } else {
-              const nameArr = item.name.split('、');
-              nameArr.forEach((name) => {
-                classification.push(item.type + '_' + name);
-              });
-            }
-          });
-          this.params.prop = classification.join('@');
-        } else {
-          this.params.prop = ''
-          this.params.brandId = ''
-        }
+        this.params.brandId = ''
+        this.params.prop = ''
+        val.forEach((item) => {
+          if (item.type === '品牌') {
+            this.params.brandId = this.brandIds.join('@');
+          } else {
+            const nameArr = item.name.split('、');
+            nameArr.forEach((name) => {
+              classification.push(item.type + '_' + name);
+            });
+          }
+        });
+        this.params.prop = classification.join('@');
         this.getFilterList(this.params);
         this.$emit('getParams', this.params);
       },
@@ -251,7 +248,7 @@ export default {
         this.$set(this.tabBar, 'second', second)
       }
     },
-    cateClick (item, index) {
+    cateClick (item, index) {  // 点选分类
       switch (index) {
         case 1:
           this.$router.push({
@@ -299,7 +296,6 @@ export default {
 
           brands.forEach((val) => {
             if (val.name === item) this.brandIds.push(val.value);
-            console.log(this.brandIds);
           });
         }
       }

+ 8 - 8
buyer/src/config/index.js

@@ -17,15 +17,15 @@ export default {
    * @description api请求基础路径
    */
   api_dev: {
-    common: 'http://192.168.0.100:8890',
-    buyer: 'http://192.168.0.100:8888',
-    seller: 'http://192.168.0.100:8889',
-    manager: 'http://192.168.0.100:8887'
+    // common: 'http://192.168.0.103:8890',
+    // buyer: 'http://192.168.0.103:8888',
+    // seller: 'http://192.168.0.103:8889',
+    // manager: 'http://192.168.0.103:8887'
 
-    // common: 'https://common-api.pickmall.cn',
-    // buyer: 'https://buyer-api.pickmall.cn',
-    // seller: 'https://store-api.pickmall.cn',
-    // manager: 'https://admin-api.pickmall.cn'
+    common: 'https://common-api.pickmall.cn',
+    buyer: 'https://buyer-api.pickmall.cn',
+    seller: 'https://store-api.pickmall.cn',
+    manager: 'https://admin-api.pickmall.cn'
   },
   api_prod: {
     common: 'https://common-api.pickmall.cn',

+ 2 - 2
buyer/src/pages/Cart.vue

@@ -50,7 +50,7 @@
               <div v-if="couponAvailable === index">
                 <div class="coupon-item" v-for="(item, index) in shop.couponList" :key="index">
                   <span v-if="item.couponType === 'PRICE'">¥{{ item.price }}</span>
-                  <span v-if="item.couponType === 'DISCOUNT'">{{ item.discount }}折</span>
+                  <span v-if="item.couponType === 'DISCOUNT'">{{ item.couponDiscount }}折</span>
                   <span>满{{item.consumeThreshold}}元可用</span>
                   <Button class="coupon-btn" size="small" type="primary" @click="receiveShopCoupon(item)" :disabled="item.disabled">{{ item.disabled ? "已领取" : "领取" }}</Button>
                 </div>
@@ -119,7 +119,7 @@
             <div class="ml_20 total-price">
               总价(不含运费):<span>{{ priceDetailDTO.billPrice | unitPrice("¥") }}</span>
             </div>
-            <div class="pay ml_20" @click="pay">去支付</div>
+            <div class="pay ml_20" @click="pay">去结算</div>
           </div>
         </div>
       </div>

+ 1 - 1
buyer/src/pages/GoodsDetail.vue

@@ -11,7 +11,7 @@
           <BreadcrumbItem v-for="(item, index) in categoryBar" :to="goGoodsList(index)" target="_blank" :key="index">{{item.name}}</BreadcrumbItem>
         </Breadcrumb>
         <div class="store-collect">
-          <span class="mr_10"><router-link :to="'Merchant?id='+goodsMsg.data.storeId">{{goodsMsg.data.storeName}}</router-link></span>
+          <span class="mr_10"><router-link :to="'Merchant?id=' + goodsMsg.data.storeId">{{goodsMsg.data.storeName}}</router-link></span>
           <span @click="collect" ><Icon type="ios-heart" :color="storeCollected ? '#ed3f14' : '#666'" />{{storeCollected?'已收藏店铺':'收藏店铺'}}</span>
         </div>
       </div>

+ 2 - 2
buyer/src/pages/GoodsList.vue

@@ -157,11 +157,11 @@ export default {
       window.open(routeUrl.href, '_blank');
     },
     changePageNum (val) {
-      this.params.pageNumber = val - 1;
+      this.params.pageNumber = val;
       this.getGoodsList();
     },
     changePageSize (val) {
-      this.params.pageNumber = 0;
+      this.params.pageNumber = 1;
       this.params.pageSize = val;
       this.getGoodsList();
     },

+ 2 - 2
buyer/src/pages/Merchant.vue

@@ -146,11 +146,11 @@ export default {
       this.getGoodsList()
     },
     changePageNum (val) {
-      this.params.pageNumber = val - 1;
+      this.params.pageNumber = val;
       this.getGoodsList();
     },
     changePageSize (val) {
-      this.params.pageNumber = 0;
+      this.params.pageNumber = 1;
       this.params.pageSize = val;
       this.getGoodsList();
     },

+ 1 - 1
buyer/src/pages/couponCenter.vue

@@ -19,7 +19,7 @@
             <div class="c-left">
               <div>
                 <span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
-                <span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.discount}}</span>折</span>
+                <span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.couponDiscount}}</span>折</span>
                 <span class="describe">满{{item.consumeThreshold}}元可用</span>
               </div>
               <p>使用范围:{{useScope(item.scopeType, item.storeName)}}</p>

+ 2 - 2
buyer/src/pages/home/memberCenter/CommentList.vue

@@ -22,10 +22,10 @@
           </div>
           <Row class="order-item-view">
             <i-col span="12" class="item-view-name">
-              <div class="order-img">
+              <div class="order-img hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
                 <img :src="item.goodsImage" alt="" />
               </div>
-              <div class="order-name">
+              <div class="order-name hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
                 {{item.goodsName}}
               </div>
               <div>

+ 1 - 1
buyer/src/pages/home/memberCenter/ComplainDetail.vue

@@ -13,7 +13,7 @@
     <table cellspacing="0" cellpadding='0' border="1">
       <tr>
         <td>投诉商品</td>
-        <td><img :src="detail.goodsImage" width="60" alt=""> &nbsp;{{ detail.goodsName }}</td>
+        <td class="hover-color" @click="linkTo(`/goodsDetail?goodsId=${detail.goodsId}&skuId=${detail.skuId}`)"><img :src="detail.goodsImage" width="60" alt=""> &nbsp;{{ detail.goodsName }}</td>
       </tr>
       <tr>
         <td>投诉主题</td>

+ 2 - 2
buyer/src/pages/home/memberCenter/ComplainList.vue

@@ -23,10 +23,10 @@
           </div>
           <Row class="order-item-view">
             <i-col span="12" class="item-view-name">
-              <div class="order-img">
+              <div class="order-img hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
                 <img :src="item.goodsImage" alt="" />
               </div>
-              <div class="order-name">
+              <div class="order-name hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
                 {{item.goodsName}}
               </div>
               <div>

+ 2 - 2
buyer/src/pages/home/memberCenter/evaluation/EvalDetail.vue

@@ -35,8 +35,8 @@
             <Input type="textarea" maxlength="500" readonly show-word-limit :rows="4" v-model="orderGoods.content" />
           </div>
           <div style="display:flex;align-items:center;">
-            <template v-if="orderGoods.image">
-              <div class="demo-upload-list"  v-for="(img, index) in orderGoods.image.split(',')" :key="index">
+            <template v-if="orderGoods.images">
+              <div class="demo-upload-list"  v-for="(img, index) in orderGoods.images.split(',')" :key="index">
                 <img :src="img">
                 <div class="demo-upload-list-cover">
                   <Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>

+ 1 - 1
buyer/src/pages/payment/Pay.vue

@@ -113,7 +113,7 @@
                         <div class="c-left">
                         <div>
                             <span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
-                            <span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.discount}}</span>折</span>
+                            <span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.couponDiscount}}</span>折</span>
                             <span class="describe">满{{item.consumeThreshold}}元可用</span>
                         </div>
                         <p>使用范围:{{useScope(item.scopeType)}}</p>

+ 3 - 2
manager/src/api/index.js

@@ -8,13 +8,14 @@ import {
   getRequestWithNoToken,
   putRequestWithNoForm,
   postRequestWithNoForm,
-  commonUrl,
   managerUrl
 } from "@/libs/axios";
 import config from "@/config";
 
+let commonUrl = (process.env.NODE_ENV === 'development' ? config.api_dev.common : config.api_prod.common)
+
 // 文件上传接口
-export const uploadFile = commonUrl + "/common/upload/file";
+export const uploadFile = commonUrl+ "/common/upload/file";
 // 验证码渲染图片接口
 export const drawCodeImage = commonUrl + "/common/captcha/draw/";
 // 获取菜单

+ 2 - 1
manager/src/views/distribution/distributionOrder.vue

@@ -202,6 +202,7 @@
           this.loading = false;
           if (res.success) {
             this.data = res.result.records;
+
             this.total = res.result.total;
           }
         });
@@ -239,7 +240,7 @@
     }
   };
 </script>
-<style lang="scss">
+<style lang="scss" >
   @import "@/styles/table-common.scss";
 </style>
 

+ 10 - 4
manager/src/views/goods/goods-info/goods.vue

@@ -56,16 +56,22 @@
             >
 
               <!-- 商品栏目格式化 -->
-              <template slot="goodsSlot" slot-scope="scope">
+              <template slot="goodsSlot" slot-scope="{row}">
                 <div style="margin: 5px 0px;height: 80px; display: flex;">
                   <div style="">
-                    <img :src="scope.row.original" style="height: 60px;margin-top: 1px;width: 60px">
+                    <img :src="row.original" style="height: 60px;margin-top: 1px;width: 60px">
                   </div>
 
                   <div style="margin-left: 13px;">
-                    <div class="div-zoom" >
-                      <a>{{scope.row.goodsName}}</a>
+                    <div class="div-zoom">
+                      <a @click="linkTo(row.id,row.skuId)">{{row.goodsName}}</a>
                     </div>
+                    <Poptip trigger="hover" title="扫码在手机中查看" transfer>
+                      <div slot="content">
+                        <vue-qr :text="wapLinkTo(row.id,row.skuId)"  :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
+                      </div>
+                      <img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
+                    </Poptip>
                   </div>
                 </div>
 

+ 1 - 0
manager/src/views/goods/goods-manage/category.vue

@@ -244,6 +244,7 @@ export default {
     //弹出品牌关联框
     brandOperation(v) {
       getCategoryBrandListData(v.id).then((res) => {
+        console.warn(res)
         this.categoryId = v.id;
         this.modalBrandTitle = "品牌关联";
         this.brandForm.categoryBrands = res.result.map((item) => item.id);

+ 40 - 17
manager/src/views/goods/goods-manage/parameter.vue

@@ -31,9 +31,7 @@
           </p>
           <template v-if="group.params && group.params.length > 0">
             <div v-for="param in group.params" :key="param.param_id" class="params">
-              <span>{{ param.paramName }} 【{{
-                  param.paramType | paramTypeFilter
-                }}】</span>
+              <span>{{ param.paramName }}</span>
 
               <span>
                 <i-button type="text" @click="handleEditParams(group, param)">编辑</i-button>
@@ -56,19 +54,30 @@
           <FormItem label="参数名称" prop="paramName">
             <Input v-model="paramForm.paramName" style="width: 100%" />
           </FormItem>
-          <FormItem label="参数类型" prop="paramType">
-            <Select :loading="userLoading" v-model="paramForm.paramType">
-              <Option :value="1" :key="1">输入项</Option>
-              <Option :value="2" :key="2">选择项</Option>
-            </Select>
-          </FormItem>
           <FormItem label="可选值" prop="options">
-            <i-input v-model="paramForm.options" type="textarea" :rows="3" placeholder="请输入可选值,选择项实用逗号分隔"></i-input>
+            <Select
+              v-model="paramForm.options"
+              placeholder="输入后回车添加"
+              multiple
+              filterable
+              allow-create
+              :popper-append-to-body="false"
+              popper-class="spec-values-popper"
+              style="width: 100%; text-align: left; margin-right: 10px"
+            >
+              <Option
+                v-for="item in ops"
+                :value="item"
+                :key="item"
+                :label="item"
+              >
+                {{item}}
+              </Option>
+            </Select>
           </FormItem>
-
           <FormItem label="选项" prop="specName3">
-            <Checkbox :value="Number" v-model="paramForm.required">必填</Checkbox>
-            <Checkbox v-model="paramForm.isIndex">可索引</Checkbox>
+            <Checkbox label=1 v-model="paramForm.required">必填</Checkbox>
+            <Checkbox label=1 v-model="paramForm.isIndex">可索引</Checkbox>
           </FormItem>
         </Form>
 
@@ -127,6 +136,10 @@ export default {
       paramId: "",
       //参数表单
       paramForm: {},
+      /** 参数值 **/
+      ops:{
+        options: []
+      },
       paramGroupForm: {},
       /** 添加、编辑参数 规格 */
       formValidate: {
@@ -170,14 +183,15 @@ export default {
     handleEditParams(group, param) {
       this.paramForm = {
         paramName: param.paramName,
-        paramType: param.paramType,
-        options: param.options,
-        required: param.required,
-        isIndex: param.isIndex,
+        options:  param.options.split(","),
+        required: param.required==1?true:false,
+        isIndex: param.isIndex==1?true:false,
         groupId: group.groupId,
         categoryId: this.categoryId,
         id: param.id,
       };
+      console.warn(this.paramForm.options)
+      this.ops = this.paramForm.options
       this.modalType = 1;
       this.modalTitle = "修改参数";
       this.dialogParamsVisible = true;
@@ -194,7 +208,14 @@ export default {
       this.dialogParamsGroupVisible = true;
     },
     handleAddParamsGroup() {
+      this.paramGroupForm = {
+
+      };
+      this.ops = {
+
+      };
       (this.paramGroupForm.categoryId = this.categoryId), (this.modalType = 0);
+
       this.modalTitle = "添加参数组";
       this.dialogParamsGroupVisible = true;
     },
@@ -212,6 +233,7 @@ export default {
               }
             });
           } else {
+            console.warn(this.paramGroupForm)
             updateParamsGroup(this.paramGroupForm).then((res) => {
               this.submitLoading = false;
               if (res.success) {
@@ -242,6 +264,7 @@ export default {
               }
             });
           } else {
+            console.warn(this.paramForm.isIndex)
             this.paramForm.isIndex = Number(this.paramForm.isIndex);
             this.paramForm.required = Number(this.paramForm.required);
             updateGoodsParams(this.paramForm).then((res) => {

+ 1 - 1
manager/src/views/goods/goods-review/index.vue

@@ -53,7 +53,7 @@
         <div class="right-container">
           <div class="border-b">{{ infoData.goodsName }}</div>
           <div class="border-b">
-            <div class="div-height"> 店铺名称:{{ infoData.sellerName }}</div>
+            <div class="div-height"> 店铺名称:{{ infoData.storeName }}</div>
             <div class="div-height"> 订单号:{{ infoData.orderNo }}</div>
           </div>
 

+ 2 - 2
manager/src/views/home/home.vue

@@ -72,11 +72,11 @@
           <div class="counts">{{$store.state.notices.refund|| 0}}</div>
           <div>待审核售后</div>
         </div>
-        <div class="todo-item" @click="navigateTo('distribution')">
+        <div class="todo-item" >
           <div class="counts">{{$store.state.notices.distributionCash|| 0}}</div>
           <div>待审核分销提现</div>
         </div>
-        <div class="todo-item" @click="navigateTo('billList')">
+        <div class="todo-item" @click="navigateTo('accountStatementBill')">
           <div class="counts">{{$store.state.notices.waitPayBill|| 0}}</div>
           <div>待审核分账</div>
         </div>

+ 0 - 127
manager/src/views/lili-components/multiple-region.vue

@@ -1,127 +0,0 @@
-<template>
-  <Modal :mask-closable="false" :value="switched" v-model="switched" title="选择地址" @on-ok="submit" @on-cancel="cancel">
-    <div class="flex">
-      <Spin size="large" fix v-if="spinShow"></Spin>
-      <Tree ref="tree" class="tree" :data="data" expand-node show-checkbox multiple></Tree>
-    </div>
-  </Modal>
-</template>
-<script>
-import { getAllCity } from "@/api/index";
-export default {
-  data() {
-    return {
-      switched: false, // 控制模态框显隐
-      spinShow: false, // 加载状态
-      data: [], // 地区数据
-      selectedWay: [], // 选择的地区
-      callBackData: "", // 打开组件的回显数据
-    };
-  },
-  mounted() {
-    this.init();
-  },
-  methods: {
-    cancel() {
-      this.switched = false;
-      // this.$emit("close",true)
-    },
-    open(val) {
-      if (val) {
-        this.callBackData = val;
-        this.data = JSON.parse(JSON.stringify(this.data));
-        val.areaId.split(",").forEach((ids) => {
-          this.data.forEach((item) => {
-            if (item.id == ids) {
-              item.selected = true;
-
-            }
-            item.children &&
-              item.children.forEach((child) => {
-                if (child.id == ids) {
-                  child.checked = true;
-                }
-              });
-          });
-        });
-
-        console.log(this.data);
-      }
-
-      this.switched = true;
-    },
-
-    submit() {
-      // 筛选出省市
-      let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
-      let sort = [];
-      list.forEach((item) => {
-        item.selectedList = [];
-        if (item.level == "province") {
-          sort.push({
-            ...item,
-          });
-        }
-        sort.forEach((sortItem, sortIndex) => {
-          if (item.level != "province" && sortItem.id == item.parentId) {
-            sortItem.selectedList.push({
-              ...item,
-            });
-          }
-        });
-      });
-
-      this.$emit(
-        "selected",
-        list.filter((item) => {
-          return item.level == "province";
-        })
-      );
-
-      this.cancel();
-    },
-
-    init() {
-      getAllCity().then((res) => {
-        if (res.result) {
-          res.result.forEach((item) => {
-            item.children.forEach((child) => {
-              child.title = child.name;
-            });
-
-            let data = {
-              title: item.name,
-
-              ...item,
-            };
-            this.data.push(data);
-            this.selectedWay.push({ name: data.title, id: data.id });
-          });
-        }
-      });
-    },
-  },
-};
-</script>
-<style scoped lang="scss">
-.flex {
-  display: flex;
-  position: relative;
-}
-.tree {
-  flex: 2;
-}
-.form {
-  flex: 8;
-}
-.button-list {
-  margin-left: 80px;
-  > * {
-    margin: 0 4px;
-  }
-}
-/deep/ .ivu-modal-body {
-  height: 400px !important;
-  overflow: auto;
-}
-</style>

+ 1 - 1
manager/src/views/lili-dialog/template/marketing.vue

@@ -147,7 +147,7 @@ export default {
               {
                 style: {},
               },
-              this.$options.filters.unitPrice(params.row.price)
+              this.$options.filters.unitPrice(params.row.price, '¥')
             );
           },
         },

+ 4 - 4
manager/src/views/member/list/index.vue

@@ -40,11 +40,11 @@
         <FormItem label="手机号码" prop="mobile" style="width: 90%;">
           <Input v-model="addMemberForm.mobile" maxlength="11" placeholder="请输入手机号码" />
         </FormItem>
-        <FormItem label="会员名称" prop="username" style="width: 90%">
+        <FormItem label="会员名称" prop="uname" style="width: 90%">
           <Input v-model="addMemberForm.username" maxlength="15" placeholder="请输入会员名称" />
         </FormItem>
 
-        <FormItem label="会员密码" prop="password" style="width: 90%">
+        <FormItem label="会员密码" prop="pwd" style="width: 90%">
           <Input type="password" password v-model="addMemberForm.password" maxlength="20" placeholder="请输入会员密码" />
         </FormItem>
       </Form>
@@ -165,8 +165,8 @@ export default {
             message: "请输入正确的手机号",
           },
         ],
-        username: [{ required: true, message: "请输入会员名称" }],
-        password: [{ required: true, message: "请输入密码" }],
+        uname: [{ required: true, message: "请输入会员名称" }],
+        pwd: [{ required: true, message: "请输入密码" }],
       },
       ruleValidate: {}, //修改验证
       submitLoading: false, // 添加或编辑提交状态

+ 19 - 19
manager/src/views/member/list/memberDetail.vue

@@ -231,21 +231,21 @@
         </TabPane>
         <TabPane label="TA的余额" name="wallet">
           <div class="pointsTitle" style="justify-content: flex-start; text-align: left;">
-            <div style="width: 120px;">
+            <div style="min-width: 120px; margin-right:20px">
               <div class="points-top-title">
                 余额
               </div>
 
               <div class="points-top-text">
-                {{memberWalletInfo.memberDeposit?memberWalletInfo.memberDeposit:0 | unitPrice('¥')}}
+                {{memberWalletInfo.memberWallet?memberWalletInfo.memberWallet:0 | unitPrice('¥')}}
               </div>
             </div>
-            <div style="width: 120px;">
+            <div style="min-width: 120px;">
               <div class="points-top-title">
                 冻结余额
               </div>
               <div class="points-top-text">
-                {{memberWalletInfo.frozenDeposit?memberWalletInfo.frozenDeposit:0 | unitPrice('¥')}}
+                {{memberWalletInfo.memberFrozenWallet?memberWalletInfo.memberFrozenWallet:0 | unitPrice('¥')}}
               </div>
             </div>
           </div>
@@ -750,23 +750,23 @@
             minWidth: 120,
           },
           {
-            title: "业务类型",
-            key: "serviceType",
-            width: 150,
-            render: (h, params) => {
-              if (params.row.serviceType == "BALANCE_WITHDRAWAL") {
-                return h('div', [h('span', {}, '余额提现'),]);
-              } else if (params.row.serviceType == "BALANCE_PAY") {
-                return h('div', [h('span', {}, '余额支付'),]);
-              } else if (params.row.serviceType == "BALANCE_REFUND") {
-                return h('div', [h('span', {}, '余额退款'),]);
-              } else if (params.row.serviceType == "BALANCE_RECHARGE") {
-                return h('div', [h('span', {}, '余额充值'),]);
-              } else if (params.row.serviceType == "BALANCE_COMMISSION") {
-                return h('div', [h('span', {}, '佣金提成'),]);
-              }
+          title: "业务类型",
+          key: "serviceType",
+          width: 200,
+          render: (h, params) => {
+            if (params.row.serviceType == "WALLET_WITHDRAWAL") {
+              return h("div", [h("span", {}, "余额提现")]);
+            } else if (params.row.serviceType == "WALLET_PAY") {
+              return h("div", [h("span", {}, "余额支付")]);
+            } else if (params.row.serviceType == "WALLET_REFUND") {
+              return h("div", [h("span", {}, "余额退款")]);
+            } else if (params.row.serviceType == "WALLET_RECHARGE") {
+              return h("div", [h("span", {}, "余额充值")]);
+            } else {
+              return h("div", [h("span", {}, "佣金提成")]);
             }
           },
+        },
           {
             title: "变动金额",
             key: "money",

+ 1 - 1
manager/src/views/my-components/lili/upload-pic-thumb.vue

@@ -9,7 +9,7 @@
       @end="onEnd"
     >
       <div class="upload-list" v-for="(item, index) in uploadList" :key="index">
-        <div v-if="item.status == 'finished'">
+        <div v-if="item.status == 'finished'" style="height:60px;">
           <img :src="item.url" />
           <div class="upload-list-cover">
             <Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>

+ 4 - 6
manager/src/views/order/after-order/afterSaleOrder.vue

@@ -29,10 +29,8 @@
                   <Option value="PASS">通过售后</Option>
                   <Option value="REFUSE">拒绝售后</Option>
                   <Option value="BUYER_RETURN">买家退货,待卖家收货</Option>
-                  <Option value="SELLER_RE_DELIVERY">商家换货/补发</Option>
                   <Option value="SELLER_CONFIRM">卖家确认收货</Option>
                   <Option value="SELLER_TERMINATION">卖家终止售后</Option>
-                  <Option value="BUYER_CONFIRM">买家确认收货</Option>
                   <Option value="BUYER_CANCEL">买家取消售后</Option>
                   <Option value="COMPLETE">完成售后</Option>
                 </Select>
@@ -48,10 +46,10 @@
                   style="width: 200px"
                 ></DatePicker>
               </Form-item>
-              <Form-item label="商家名称" prop="sellerName">
+              <Form-item label="商家名称" prop="storeName">
                 <Input
                   type="text"
-                  v-model="searchForm.sellerName"
+                  v-model="searchForm.storeName"
                   placeholder="请输入商家名称"
                   clearable
                   style="width: 200px"
@@ -149,7 +147,7 @@
           orderSn: "",
           memberName: "",
           serviceStatus: "",
-          sellerName:"",
+          storeName:"",
           sn: "",
 
         },
@@ -157,7 +155,7 @@
         form: {
           // 添加或编辑表单对象初始化数据
           sn: "",
-          sellerName: "",
+          storeName: "",
           startTime: "",
           endTime: "",
           billPrice: "",

+ 20 - 8
manager/src/views/order/after-order/afterSaleOrderDetail.vue

@@ -63,14 +63,13 @@
             </div>
 
             <div class="div-form-default" v-if="afterSaleInfo.serviceStatus=='APPLY'">
-              <h3>商家处理意见</h3>
+              <h3>处理意见</h3>
               <dl>
                 <dt>商家</dt>
                 <dd>
                   <div class="div-content">
                     {{afterSaleInfo.storeName}}
                   </div>
-
                 </dd>
               </dl>
               <dl>
@@ -86,9 +85,18 @@
                       </Radio>
                     </RadioGroup>
                   </div>
-
                 </dd>
               </dl>
+              <dl>
+                  <dt>申请退款金额</dt>
+                  <dd>{{ afterSaleInfo.applyRefundPrice | unitPrice('¥') }}</dd>
+                </dl>
+                <dl>
+                  <dt>实际退款金额</dt>
+                  <dd>
+                    <Input v-model="params.actualRefundPrice" style="width:260px"/>
+                  </dd>
+                </dl>
               <dl>
                 <dt>备注信息</dt>
                 <dd>
@@ -169,7 +177,7 @@
 
             </div>
             <!--"-->
-            <div class="div-form-default" v-if="afterSaleInfo.afterSaleAllowOperationVO.refund">
+            <div class="div-form-default" v-if="afterSaleInfo.afterSaleAllowOperationVO && afterSaleInfo.afterSaleAllowOperationVO.refund">
               <h3>平台退款</h3>
 
               <dl>
@@ -438,10 +446,10 @@ export default {
           this.afterSaleInfo = res.result;
           this.afterSaleImage = (res.result.afterSaleImage || "").split(",");
           //退货地址去掉逗号
-          this.afterSaleInfo.mconsigneeAddressPath = this.afterSaleInfo.mconsigneeAddressPath.replaceAll(
-            ",",
-            " "
-          );
+          if (this.afterSaleInfo.mconsigneeAddressPath)
+          this.afterSaleInfo.mconsigneeAddressPath = this.afterSaleInfo.mconsigneeAddressPath.replaceAll(","," ");
+
+          this.$set(this.params,'actualRefundPrice', this.afterSaleInfo.applyRefundPrice)
         }
       });
     },
@@ -538,6 +546,10 @@ export default {
         this.$Message.error("请输入备注信息");
         return;
       }
+      if (this.params.actualRefundPrice == "") {
+        this.$Message.error("请输入退款金额");
+        return;
+      }
       API_Order.afterSaleSellerReview(this.sn, this.params).then((res) => {
         this.submitLoading = false;
         if (res.success) {

+ 94 - 37
manager/src/views/order/flow/paymentLog.vue

@@ -2,35 +2,41 @@
   <div class="search">
     <Row>
       <Col>
-        <Card>
-          <Row @keydown.enter.native="handleSearch">
-            <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
-              <Form-item label="订单号" prop="sn">
-                <Input type="text" v-model="searchForm.sn" placeholder="订单/交易号" clearable style="width: 200px"/>
-              </Form-item>
-              <Form-item label="付款状态" prop="orderStatus">
-                <Select v-model="searchForm.payStatus" placeholder="请选择" clearable style="width: 200px">
-                  <Option value="UNPAID">未付款</Option>
-                  <Option value="PAID">已付款</Option>
-                </Select>
-              </Form-item>
-              <Form-item label="支付时间">
-                <DatePicker v-model="searchForm" type="datetimerange" format="yyyy-MM-dd" clearable
-                            @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker>
-              </Form-item>
-              <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
-            </Form>
-          </Row>
-          <Row class="padding-row">
-            <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"
-                   @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
-          </Row>
-          <Row type="flex" justify="end" class="page">
-            <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize"
-                  @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
-                  size="small" show-total show-elevator show-sizer></Page>
-          </Row>
-        </Card>
+      <Card>
+        <Row @keydown.enter.native="handleSearch">
+          <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
+            <Form-item label="订单号" prop="sn">
+              <Input type="text" v-model="searchForm.sn" placeholder="订单/交易号" clearable style="width: 200px" />
+            </Form-item>
+            <Form-item label="付款状态" prop="orderStatus">
+              <Select v-model="searchForm.payStatus" placeholder="请选择" clearable style="width: 200px">
+                <Option value="UNPAID">未付款</Option>
+                <Option value="PAID">已付款</Option>
+              </Select>
+            </Form-item>
+            <Form-item label="支付方式" prop="orderStatus">
+              <Select v-model="searchForm.paymentMethod" placeholder="请选择" clearable style="width: 200px">
+                <Option value="WECHAT">微信</Option>
+                <Option value="ALIPAY">支付宝</Option>
+                <Option value="WALLET">余额</Option>
+                <Option value="BANK_TRANSFER">银行转账</Option>
+                <Option value="">暂未付款</Option>
+              </Select>
+            </Form-item>
+            <Form-item label="支付时间">
+              <DatePicker v-model="searchForm" type="datetimerange" format="yyyy-MM-dd" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker>
+            </Form-item>
+            <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
+          </Form>
+        </Row>
+        <Row class="padding-row">
+          <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
+        </Row>
+        <Row type="flex" justify="end" class="page">
+          <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
+            size="small" show-total show-elevator show-sizer></Page>
+        </Row>
+      </Card>
       </Col>
     </Row>
   </div>
@@ -68,16 +74,57 @@ export default {
         {
           title: "支付方式",
           key: "paymentMethod",
-          width: 100,
+          width: 120,
+          align: "center",
           render: (h, params) => {
             if (params.row.paymentMethod === "WECHAT") {
-              return h("div", [h("span", {}, "微信")]);
+              return h("div", [
+                h(
+                  "Tag",
+                  {
+                    props: {
+                      color: "green",
+                    },
+                  },
+                  "微信"
+                ),
+              ]);
             } else if (params.row.paymentMethod === "ALIPAY") {
-              return h("div", [h("span", {}, "支付宝")]);
+              return h("div", [
+                h(
+                  "Tag",
+                  {
+                    props: {
+                      color: "blue",
+                    },
+                  },
+                  "支付宝"
+                ),
+              ]);
             } else if (params.row.paymentMethod === "WALLET") {
-              return h("div", [h("span", {}, "余额支付")]);
+              return h("div", [
+                h(
+                  "Tag",
+                  {
+                    props: {},
+                  },
+                  "余额支付"
+                ),
+              ]);
             } else if (params.row.paymentMethod === "BANK_TRANSFER") {
-              return h("div", [h("span", {}, "银行转帐")]);
+              return h("div", [
+                h(
+                  "Tag",
+                  {
+                    props: {
+                      color: "orange",
+                    },
+                  },
+                  "银行转帐"
+                ),
+              ]);
+            } else {
+              return h("div", [h("Tag", {}, "暂未付款")]);
             }
           },
         },
@@ -85,19 +132,24 @@ export default {
           title: "第三方流水",
           key: "receivableNo",
           minWidth: 130,
+          render: (h, params) => {
+            return h("div", [
+              h("span", {}, params.row.receivableNo || "暂无流水号"),
+            ]);
+          },
         },
         {
           title: "客户端",
           key: "clientType",
           width: 130,
           render: (h, params) => {
-            if (params.row.clientType === "WECHAT_MP") {
+            if (params.row.clientType === "WECHAT_MP" || params.row.clientType === '小程序') {
               return h("div", [h("span", {}, "小程序")]);
             } else if (params.row.clientType === "APP") {
               return h("div", [h("span", {}, "APP")]);
             } else if (params.row.clientType === "PC") {
               return h("div", [h("span", {}, "PC网页")]);
-            } else if (params.row.clientType === "H5") {
+            } else if (params.row.clientType === "H5" || params.row.clientType === 'wap') {
               return h("div", [h("span", {}, "移动端")]);
             }
           },
@@ -106,6 +158,11 @@ export default {
           title: "支付时间",
           key: "paymentTime",
           width: 200,
+          render: (h, params) => {
+            return h("div", [
+              h("span", {}, params.row.paymentTime || "暂无支付时间"),
+            ]);
+          },
         },
         {
           title: "订单金额",
@@ -204,7 +261,7 @@ export default {
       });
       this.total = this.data.length;
       this.loading = false;
-    }
+    },
   },
   mounted() {
     this.init();

+ 16 - 1
manager/src/views/order/order/orderList.vue

@@ -93,6 +93,20 @@ export default {
           title: "订单来源",
           key: "clientType",
           width: 95,
+          render: (h, params) => {
+            if (params.row.clientType == "H5") {
+              return h("div",{},"移动端");
+            }else if(params.row.clientType == "PC") {
+              return h("div",{},"PC端");
+            }else if(params.row.clientType == "WECHAT_MP") {
+              return h("div",{},"小程序端");
+            }else if(params.row.clientType == "APP") {
+              return h("div",{},"移动应用端");
+            }
+            else{
+               return h("div",{},params.row.clientType);
+            }
+          },
         },
         {
           title: "买家名称",
@@ -251,7 +265,8 @@ export default {
     confirmPrice(v) {
       this.$Modal.confirm({
         title: "提示",
-        content: "<p>您确定要收款吗?线下收款涉及库存变更,需异步进行,等待约一分钟刷新列表查看</p>",
+        content:
+          "<p>您确定要收款吗?线下收款涉及库存变更,需异步进行,等待约一分钟刷新列表查看</p>",
         onOk: () => {
           API_Order.orderPay(v.sn).then((res) => {
             if (res.success) {

+ 38 - 48
manager/src/views/page/article-manage/articleList.vue

@@ -41,38 +41,38 @@
           </Page>
         </Row>
 
-          <Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="1100">
-            <Form ref="form" :model="form" :label-width="100">
-              <FormItem label="文章标题" prop="title">
-                <Input v-model="form.title" clearable style="width: 40%" />
-              </FormItem>
-              <FormItem label="文章分类" prop="categoryId">
-                <Select v-model="treeValue" placeholder="请选择" clearable style="width: 180px">
-                  <Option :value="treeValue" style="display: none">{{
+        <Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="1100">
+          <Form ref="form" :model="form" :label-width="100">
+            <FormItem label="文章标题" prop="title">
+              <Input v-model="form.title" clearable style="width: 40%" />
+            </FormItem>
+            <FormItem label="文章分类" prop="categoryId">
+              <Select v-model="treeValue" placeholder="请选择" clearable style="width: 180px">
+                <Option :value="treeValue" style="display: none">{{
                         treeValue
                       }}
-                  </Option>
-                  <Tree :data="treeData" @on-select-change="handleCheckChange"></Tree>
-                </Select>
-              </FormItem>
-              <FormItem label="文章排序" prop="sort">
-                <Input type="number" v-model="form.sort" clearable style="width: 10%" />
-              </FormItem>
-              <FormItem class="form-item-view-el" label="文章内容" prop="content">
-                <editor v-model="form.content"></editor>
-              </FormItem>
-              <FormItem label="是否展示" prop="openStatus">
-                <i-switch size="large" v-model="form.openStatus" :true-value="open" :false-value="close">
-                  <span slot="open">展示</span>
-                  <span slot="close">隐藏</span>
-                </i-switch>
-              </FormItem>
-            </Form>
-            <div slot="footer">
-              <Button type="text" @click="modalVisible = false">取消</Button>
-              <Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
-            </div>
-          </Modal>
+                </Option>
+                <Tree :data="treeData" @on-select-change="handleCheckChange"></Tree>
+              </Select>
+            </FormItem>
+            <FormItem label="文章排序" prop="sort">
+              <Input type="number" v-model="form.sort" clearable style="width: 10%" />
+            </FormItem>
+            <FormItem class="form-item-view-el" label="文章内容" prop="content">
+              <editor v-model="form.content"></editor>
+            </FormItem>
+            <FormItem label="是否展示" prop="openStatus">
+              <i-switch size="large" v-model="form.openStatus" :true-value="open" :false-value="close">
+                <span slot="open">展示</span>
+                <span slot="close">隐藏</span>
+              </i-switch>
+            </FormItem>
+          </Form>
+          <div slot="footer">
+            <Button type="text" @click="modalVisible = false">取消</Button>
+            <Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
+          </div>
+        </Modal>
       </Card>
       </Col>
 
@@ -123,6 +123,7 @@ export default {
       searchTreeValue: "", // 切换
       form: {
         // 添加或编辑表单对象初始化数据
+        openStatus:false,
         title: "",
         categoryId: "",
         sort: 1,
@@ -347,7 +348,7 @@ export default {
             level: 0,
             children: [],
             id: "0",
-            categoryId: 0
+            categoryId: 0,
           });
         }
       });
@@ -379,13 +380,7 @@ export default {
           //为了在是否展示一列展示开关 需要改一下数据类型,最终提交再次更改
           this.data = [];
           if (res.result.records.length > 0) {
-            res.result.records.forEach((item) => {
-              if (item.openStatus == "OPEN") {
-                item.openStatus = true;
-              } else {
-                item.openStatus = false;
-              }
-            })
+
             this.data = res.result.records;
           }
         }
@@ -395,11 +390,7 @@ export default {
     },
 
     handleSubmit() {
-      if (this.form.openStatus) {
-        this.form.openStatus = "OPEN";
-      } else {
-        this.form.openStatus = "CLOSE";
-      }
+
       this.$refs.form.validate((valid) => {
         if (valid) {
           this.submitLoading = true;
@@ -412,6 +403,7 @@ export default {
                 this.$Message.success("操作成功");
                 this.getDataList();
                 this.modalVisible = false;
+
               }
             });
           } else {
@@ -422,6 +414,8 @@ export default {
                 this.$Message.success("操作成功");
                 this.getDataList();
                 this.modalVisible = false;
+
+
               }
             });
           }
@@ -449,11 +443,7 @@ export default {
           this.form.content = res.result.content;
           this.form.title = res.result.title;
           this.form.sort = res.result.sort;
-          if (res.result.openStatus == "OPEN") {
-            this.form.openStatus = true;
-          } else {
-            this.form.openStatus = false;
-          }
+            this.form.openStatus = res.result.openStatus
         }
       });
     },

+ 0 - 2
manager/src/views/promotion/coupon/coupon.vue

@@ -174,7 +174,6 @@ export default {
         {
           title: "领取数量/总数量",
           key: "publishNum",
-          width: 150,
           render: (h, params) => {
             return h(
               "div", params.row.receivedNum + "/" + params.row.publishNum)
@@ -214,7 +213,6 @@ export default {
         },
         {
           title: "活动时间",
-          minWidth: 120,
           render: (h, params) => {
             return h("div", {
               domProps:

+ 1 - 1
manager/src/views/promotion/coupon/couponInfo.vue

@@ -14,7 +14,7 @@
               }}</span>
             </FormItem>
             <FormItem label="面额">
-              <span class="goods-category-name"> ¥{{ form.price }}</span>
+              <span class="goods-category-name"> ¥{{ form.price | unitPrice }}</span>
             </FormItem>
             <FormItem label="活动说明">
               <span class="goods-category-name">{{ form.description }}</span>

+ 17 - 49
manager/src/views/promotion/coupon/couponPublish.vue

@@ -49,11 +49,15 @@
             <FormItem label="领取限制" prop="couponLimitNum">
               <Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px" />
             </FormItem>
-            <FormItem label="有效期" prop="startTime">
-              <DatePicker type="datetime" v-model="form.startTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :options="options" clearable style="width: 200px">
-              </DatePicker>
-              -
-              <DatePicker type="datetime" v-model="form.endTime" format="yyyy-MM-dd HH:mm:ss" :options="options" placeholder="请选择" clearable style="width: 200px">
+            <FormItem label="有效期" prop="rangeTime">
+              <DatePicker
+                type="datetimerange"
+                v-model="form.rangeTime"
+                format="yyyy-MM-dd HH:mm:ss"
+                placeholder="请选择"
+                :options="options"
+                style="width: 260px"
+              >
               </DatePicker>
             </FormItem>
             <FormItem label="使用范围" prop="scopeType">
@@ -135,20 +139,6 @@ export default {
         callback();
       }
     };
-    const isLtEndDate = (rule, value, callback) => {
-      if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
-        callback(new Error());
-      } else {
-        callback();
-      }
-    };
-    const isGtStartDate = (rule, value, callback) => {
-      if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
-        callback(new Error());
-      } else {
-        callback();
-      }
-    };
     return {
       modalType: 0, // 是否编辑
       form: {
@@ -186,34 +176,11 @@ export default {
           { required: true, message: "请输入面额" },
           { validator: checkPrice },
         ],
+        rangeTime: [{ required: true, message: "请选择优惠券有效期" }],
         consumeThreshold: [
           { required: true, message: "请输入消费门槛" },
           { validator: checkWeight },
         ],
-        startTime: [
-          {
-            required: true,
-            type: "date",
-            message: "请选择开始时间",
-          },
-          {
-            trigger: "change",
-            message: "开始时间要小于结束时间",
-            validator: isLtEndDate,
-          },
-        ],
-        endTime: [
-          {
-            required: true,
-            type: "date",
-            message: "请选择结束时间",
-          },
-          {
-            trigger: "change",
-            message: "结束时间要大于开始时间",
-            validator: isGtStartDate,
-          },
-        ],
         couponDiscount: [
           { required: true, message: "请输入折扣" },
           {
@@ -337,6 +304,8 @@ export default {
           next(this.goodsCategoryList, []);
           data.scopeIdGoods = prevCascader;
         }
+        data.rangeTime = [];
+        data.rangeTime.push(new Date(data.startTime), new Date(data.endTime));
         this.form = data;
       });
     },
@@ -345,15 +314,14 @@ export default {
       this.$refs.form.validate((valid) => {
         if (valid) {
           const params = JSON.parse(JSON.stringify(this.form));
-          const strat = this.$options.filters.unixToDate(
-            this.form.startTime / 1000
+          params.startTime = this.$options.filters.unixToDate(
+            this.form.rangeTime[0] / 1000
           );
-          const end = this.$options.filters.unixToDate(
-            this.form.endTime / 1000
+          params.endTime = this.$options.filters.unixToDate(
+            this.form.rangeTime[1] / 1000
           );
+          delete params.rangeTime
           let scopeId = [];
-          params.startTime = strat;
-          params.endTime = end;
 
           if (
             params.scopeType == "PORTION_GOODS" &&

+ 1 - 1
manager/src/views/promotion/pointsGoods/editPointsGoods.vue

@@ -15,7 +15,7 @@
               <div>{{ form.goodsSku.sellerName }}</div>
             </FormItem>
             <FormItem label="商品价格" prop="goodsPrice">
-              <div>{{ form.goodsSku.price }}</div>
+              <div>{{ form.goodsSku.price | unitPrice('¥') }}</div>
             </FormItem>
             <FormItem label="库存" prop="quantity">
               <div>{{ form.goodsSku.quantity }}</div>

+ 3 - 10
manager/src/views/promotion/pointsGoodsCategory/pointsGoodsCategory.vue

@@ -17,16 +17,9 @@
       primary-key="id"
     >
       <template slot="action" slot-scope="scope">
-        <Dropdown transfer="true" trigger="click">
-          <Button type="primary" size="small">
-            操作
-            <Icon type="ios-arrow-down"></Icon>
-          </Button>
-          <DropdownMenu slot="list">
-            <DropdownItem @click.native="edit(scope.row)">编辑</DropdownItem>
-            <DropdownItem @click.native="remove(scope.row)">删除</DropdownItem>
-          </DropdownMenu>
-        </Dropdown>
+        <Button @click.native="edit(scope.row)" style="margin-right:10px;" size="small">编辑</Button>
+        <Button @click.native="remove(scope.row)" type="primary" size="small">删除</Button>
+
       </template>
     </tree-table>
 

+ 1 - 0
manager/src/views/seller/bill/accountStatementBill.vue

@@ -12,6 +12,7 @@
               <DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd HH:mm:ss" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px">
               </DatePicker>
             </Form-item>
+
             <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
           </Form>
         </Row>

+ 25 - 25
manager/src/views/seller/bill/bill.vue

@@ -6,18 +6,20 @@
         <Row @keydown.enter.native="handleSearch">
           <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
             <Form-item label="账单编号" prop="sn">
-              <Input
-                type="text"
-                v-model="searchForm.sn"
-                placeholder="请输入账单编号"
-                clearable
-                style="width: 200px"
-              />
+              <Input type="text" v-model="searchForm.sn" placeholder="请输入账单编号" clearable style="width: 200px" />
             </Form-item>
             <Form-item label="出帐时间" prop="createTime">
               <DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd HH:mm:ss" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px">
               </DatePicker>
             </Form-item>
+            <Form-item label="筛选状态">
+              <Select v-model="searchForm.billStatus" style="width:160px">
+                <Option value="">全部</Option>
+                <Option value="OUT">已出账</Option>
+                <Option value="CHECK">已核对</Option>
+                <Option value="COMPLETE">已完成</Option>
+              </Select>
+            </Form-item>
             <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
           </Form>
         </Row>
@@ -26,14 +28,11 @@
           <Button @click="delAll">批量删除</Button>
         </Row>
         <Row>
-          <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"
-                 @on-sort-change="changeSort"
-                 @on-selection-change="changeSelect">
+          <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
           </Table>
         </Row>
         <Row type="flex" justify="end" class="page">
-          <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize"
-                @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
+          <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
             size="small" show-total show-elevator show-sizer></Page>
         </Row>
       </Card>
@@ -88,6 +87,7 @@ export default {
         order: "desc", // 默认排序方式
         startDate: "", // 起始时间
         endDate: "", // 终止时间
+        billStatus:"" //状态
       },
       selectDate: null, // 选择一个时间段
       form: {
@@ -114,7 +114,7 @@ export default {
           title: "账单号",
           key: "sn",
           minWidth: 200,
-          tooltip: true
+          tooltip: true,
         },
         {
           title: "生成时间",
@@ -126,14 +126,14 @@ export default {
           key: "startTime",
           width: 200,
           render: (h, params) => {
-            return h('div', params.row.startTime +"~"+params.row.endTime)
-          }
+            return h("div", params.row.startTime + "~" + params.row.endTime);
+          },
         },
         {
           title: "店铺名称",
           key: "storeName",
           minWidth: 120,
-          tooltip: true
+          tooltip: true,
         },
 
         {
@@ -152,16 +152,16 @@ export default {
           key: "billStatus",
           width: 100,
           render: (h, params) => {
-            if(params.row.billStatus == 'OUT'){
-              return h('div', '已出账')
-            } else if (params.row.billStatus == 'CHECK') {
-              return h('div', '已对账')
-            } else if (params.row.billStatus == 'EXAMINE') {
-              return h('div', '已审核')
-            }else{
-              return h('div', '已付款')
+            if (params.row.billStatus == "OUT") {
+              return h("div", "已出账");
+            } else if (params.row.billStatus == "CHECK") {
+              return h("div", "已对账");
+            } else if (params.row.billStatus == "EXAMINE") {
+              return h("div", "已审核");
+            } else {
+              return h("div", "已付款");
             }
-          }
+          },
         },
         {
           title: "操作",

+ 9 - 0
manager/src/views/seller/shop/shopAuditList.vue

@@ -99,6 +99,15 @@
             key: "storeAddressPath",
             width: 300,
             sortable: false,
+            render: (h, params) => {
+            return h(
+              "Tag",
+              {
+
+              },
+              params.row.storeAddressPath ||  "暂未填写"
+            );
+          },
           },
           {
             title: "是否自营",

+ 10 - 1
manager/src/views/seller/shop/shopList.vue

@@ -111,7 +111,16 @@ export default {
           title: "店铺地址",
           key: "storeAddressPath",
           width: 300,
-          tooltip: true
+          tooltip: true,
+          render: (h, params) => {
+            return h(
+              "Tag",
+              {
+
+              },
+              params.row.storeAddressPath ||  "暂未填写"
+            );
+          },
         },
         {
           title: "是否自营",

+ 1 - 1
manager/src/views/statistics/goods.vue

@@ -54,7 +54,7 @@ export default {
           render: (h, params) => {
             return h(
               "div",
-              this.$options.filters.unitPrice(params.row.price)
+              this.$options.filters.unitPrice(params.row.price, '¥')
             );
           },
         },

+ 305 - 354
manager/src/views/sys/app-version/appVersion.vue

@@ -2,84 +2,46 @@
   <div class="search">
     <Row>
       <Col>
-        <Card>
-          <Row @keydown.enter.native="handleSearch">
-            <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
-              <Form-item label="系统类型" prop="orderSn">
-                <Select
-                  v-model="searchForm.type"
-                  placeholder="请选择系统类型"
-                  clearable
-                  style="width: 200px"
-                >
-                  <Option value="IOS">苹果</Option>
-                  <Option value="ANDROID">安卓</Option>
-                </Select>
-              </Form-item>
-              <Form-item style="margin-left:-35px;" class="br">
-                <Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
-              </Form-item>
-            </Form>
-          </Row>
-          <Row class="operation" style="margin-top: 20px">
-            <Button @click="addAppVersion" type="primary">添加</Button>
-          </Row>
-          <Row class="padding-row">
-            <Table
-              :loading="loading"
-              border
-              :columns="columns"
-              :data="data"
-              ref="table"
-              sortable="custom"
-              @on-sort-change="changeSort"
-              @on-selection-change="changeSelect"
-            ></Table>
-          </Row>
-          <Row type="flex" justify="end" class="page">
-            <Page
-              :current="searchForm.pageNumber"
-              :total="total"
-              :page-size="searchForm.pageSize"
-              @on-change="changePage"
-              @on-page-size-change="changePageSize"
-              :page-size-opts="[10, 20, 50]"
-              size="small"
-              show-total
-              show-elevator
-              show-sizer
-            ></Page>
-          </Row>
-        </Card>
+      <Card>
+        <Row @keydown.enter.native="handleSearch">
+          <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
+            <Form-item label="系统类型" prop="orderSn">
+              <Select v-model="searchForm.type" placeholder="请选择系统类型" clearable style="width: 200px">
+                <Option value="IOS">苹果</Option>
+                <Option value="ANDROID">安卓</Option>
+              </Select>
+            </Form-item>
+            <Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
+          </Form>
+        </Row>
+        <Row class="operation" style="margin-top: 20px">
+          <Button @click="addAppVersion" type="primary">添加</Button>
+        </Row>
+        <Row class="padding-row">
+          <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
+        </Row>
+        <Row type="flex" justify="end" class="page">
+          <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
+            size="small" show-total show-elevator show-sizer></Page>
+        </Row>
+      </Card>
       </Col>
     </Row>
-    <Modal
-      :title="modalTitle"
-      v-model="modalVisible"
-      :mask-closable="false"
-      :width="1000"
-    >
+    <Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="1000">
       <Form ref="form" :model="form" :label-width="100" :rules="formValidate">
         <FormItem label="版本名称" prop="versionName">
-          <Input v-model="form.versionName" maxlength="15" clearable style="width: 40%"/>
+          <Input v-model="form.versionName" maxlength="15" clearable style="width: 40%" />
         </FormItem>
         <FormItem label="版本号" prop="version">
-          <Input v-model="form.version" maxlength="15" clearable style="width: 40%"/>
+          <Input v-model="form.version" maxlength="15" clearable style="width: 40%" />
         </FormItem>
         <FormItem label="更新时间" prop="versionUpdateDate">
-          <DatePicker
-            v-model="form.versionUpdateDate"
-            type="datetime"
-            format="yyyy-MM-dd HH:mm:ss"
-            clearable
-            placeholder="请选择"
-            style="width: 200px"
-          ></DatePicker>
+          <DatePicker v-model="form.versionUpdateDate" type="datetime" format="yyyy-MM-dd HH:mm:ss" clearable placeholder="请选择" style="width: 200px"></DatePicker>
         </FormItem>
         <FormItem label="强制更新">
           <RadioGroup type="button" button-style="solid" v-model="form.forceUpdate">
-            <Radio label="1">强制更新</Radio>
-            <Radio label="0">非强制更新</Radio>
+            <Radio :label="true">强制更新</Radio>
+            <Radio :label="false">非强制更新</Radio>
           </RadioGroup>
         </FormItem>
         <FormItem label="类型">
@@ -89,10 +51,10 @@
           </RadioGroup>
         </FormItem>
         <FormItem label="下载地址" prop="downloadUrl">
-          <Input v-model="form.downloadUrl" maxlength="100" clearable style="width: 40%"/>
+          <Input v-model="form.downloadUrl" maxlength="100" clearable style="width: 40%" />
         </FormItem>
         <FormItem class="form-item-view-el" label="更新内容" prop="content">
-          <editor v-model="form.content"></editor>
+             <Input v-model="form.content" :rows="6" maxlength="100" show-word-limit type="textarea" placeholder="Enter something..."  />
         </FormItem>
       </Form>
       <div slot="footer">
@@ -102,11 +64,7 @@
     </Modal>
     <div>
       <!-- 查看版本信息 -->
-      <Modal
-        :title="queryModalTitle"
-        v-model="queryModalVisible"
-        :width="700"
-      >
+      <Modal :title="queryModalTitle" v-model="queryModalVisible" :width="700">
         <Form>
           <div class="div-version">
             <FormItem label="版本名称:">
@@ -150,315 +108,308 @@
 </template>
 
 <script>
-  import * as API_Setting from "@/api/setting";
-  import editor from "@/views/my-components/lili/editor";
+import * as API_Setting from "@/api/setting";
 
+export default {
+  name: "orderList",
+  components: {
 
-  export default {
-    name: "orderList",
-    components: {
-      editor
-    },
-    data() {
-      return {
-        queryModalVisible: false, // 版本信息modal
-        queryModalTitle: "查看更新信息", // modal标题
-        loading: true, // 表单加载状态
-        modalVisible: false, // 添加app版本模态框
-        modalTitle: "", // 添加app版本标题
-        modalType: 0, // 新增、编辑标识
-        searchForm: {
-          // 搜索框初始化对象
-          pageNumber: 1, // 当前页数
-          pageSize: 10, // 页面大小
-          sort: "createTime", // 默认排序字段
-          order: "desc", // 默认排序方式
-          type: ""
-        },
-        form: {
-          // 添加或编辑表单对象初始化数据
-          versionName: "",
-          version: "",
-          forceUpdate: 1,
-          type: "IOS",
-          downloadUrl: "",
-          content: "",
-          versionUpdateDate: ""
+  },
+  data() {
+    return {
+      queryModalVisible: false, // 版本信息modal
+      queryModalTitle: "查看更新信息", // modal标题
+      loading: true, // 表单加载状态
+      modalVisible: false, // 添加app版本模态框
+      modalTitle: "", // 添加app版本标题
+      modalType: 0, // 新增、编辑标识
+      searchForm: {
+        // 搜索框初始化对象
+        pageNumber: 1, // 当前页数
+        pageSize: 10, // 页面大小
+        sort: "createTime", // 默认排序字段
+        order: "desc", // 默认排序方式
+        type: "",
+      },
+      form: {
+        // 添加或编辑表单对象初始化数据
+        versionName: "",
+        version: "",
+        forceUpdate: 1,
+        type: "IOS",
+        downloadUrl: "",
+        content: "",
+        versionUpdateDate: "",
+      },
+      versionUpdateDate: "", // 更新时间
+      // 表单验证规则
+      formValidate: {
+        version: [
+          { required: true, message: "版本号不能为空", trigger: "blur" },
+        ],
+        versionName: [
+          { required: true, message: "版本名称不能为空", trigger: "blur" },
+        ],
+        downloadUrl: [
+          { required: true, message: "下载地址不能为空", trigger: "blur" },
+        ],
+        versionUpdateDate: [{ required: true, message: "更新时间不能为空" }],
+      },
+      submitLoading: false, // 添加或编辑提交状态
+      selectList: [], // 多选数据
+      selectCount: 0, // 多选计数
+      columns: [
+        {
+          title: "版本名称",
+          key: "versionName",
+          minWidth: 100,
         },
-        versionUpdateDate: "", // 更新时间
-        // 表单验证规则
-        formValidate: {
-          version: [
-            {required: true, message: '版本号不能为空', trigger: 'blur'},
-          ],
-          versionName: [
-            {required: true, message: '版本名称不能为空', trigger: 'blur'},
-          ],
-          downloadUrl: [
-            {required: true, message: '下载地址不能为空', trigger: 'blur'},
-          ],
-          versionUpdateDate: [{required: true, message: "更新时间不能为空"}],
-
+        {
+          title: "版本号",
+          key: "version",
+          minWidth: 120,
         },
-        submitLoading: false, // 添加或编辑提交状态
-        selectList: [], // 多选数据
-        selectCount: 0, // 多选计数
-        columns: [
-          {
-            title: "版本名称",
-            key: "versionName",
-            minWidth: 100,
-          },
-          {
-            title: "版本号",
-            key: "version",
-            minWidth: 120,
-          },
-          {
-            title: "强制更新",
-            key: "forceUpdate",
-            width: 100,
-            render: (h, params) => {
-
-              return h(
-                "div",
-                {
-                  props: {
-                    color: params.row.forceUpdate ? "primary" : "default",
-                  },
+        {
+          title: "强制更新",
+          key: "forceUpdate",
+          width: 100,
+          render: (h, params) => {
+            return h(
+              "div",
+              {
+                props: {
+                  color: params.row.forceUpdate ? "primary" : "default",
                 },
-                params.row.forceUpdate == 0 ? "非强制" : "强制"
-              );
-
-
-            }
+              },
+              params.row.forceUpdate == 0 ? "非强制" : "强制"
+            );
           },
-          {
-            title: "类型",
-            key: "type",
-            minWidth: 80,
-            render: (h, params) => {
-              if (params.row.type == "IOS") {
-                return h('div', [h('span', {}, '苹果'),]);
-              } else {
-                return h('div', [h('span', {}, '安卓'),]);
-              }
+        },
+        {
+          title: "类型",
+          key: "type",
+          minWidth: 80,
+          render: (h, params) => {
+            if (params.row.type == "IOS") {
+              return h("div", [h("span", {}, "苹果")]);
+            } else {
+              return h("div", [h("span", {}, "安卓")]);
             }
           },
+        },
 
-          {
-            title: "更新时间",
-            key: "versionUpdateDate",
-            minWidth: 120,
-            sortable: true,
-          },
+        {
+          title: "更新时间",
+          key: "versionUpdateDate",
+          minWidth: 120,
+          sortable: true,
+        },
 
-          {
-            title: "操作",
-            key: "action",
-            align: "center",
-            width: 230,
-            render: (h, params) => {
-              return h("div", [
-                h(
-                  "Button",
-                  {
-                    props: {
-                      type: "info",
-                      size: "small",
-                    },
-                    style: {
-                      marginRight: "5px",
-                    },
-                    on: {
-                      click: () => {
-                        this.detail(params.row);
-                      },
+        {
+          title: "操作",
+          key: "action",
+          align: "center",
+          width: 230,
+          render: (h, params) => {
+            return h("div", [
+              h(
+                "Button",
+                {
+                  props: {
+                    type: "info",
+                    size: "small",
+                  },
+                  style: {
+                    marginRight: "5px",
+                  },
+                  on: {
+                    click: () => {
+                      this.detail(params.row);
                     },
                   },
-                  "查看"
-                ),
-                h(
-                  "Button",
+                },
+                "查看"
+              ),
+              h(
+                "Button",
 
-                  {
-                    props: {
-                      type: "info",
-                      size: "small",
-                      ghost:true
-                    },
-                    style: {
-                      marginRight: "5px",
-                    },
-                    on: {
-                      click: () => {
-                        this.editAppVersion(params.row);
-                      },
-                    },
+                {
+                  props: {
+                    type: "info",
+                    size: "small",
+                    ghost: true,
                   },
-                  "修改"
-                ),
-                h(
-                  "Button",
-                  {
-                    props: {
-                      type: "error",
-                      size: "small",
-                    },
-                    style: {
-                      marginRight: "5px",
+                  style: {
+                    marginRight: "5px",
+                  },
+                  on: {
+                    click: () => {
+                      this.editAppVersion(params.row);
                     },
-                    on: {
-                      click: () => {
-                        this.remove(params.row);
-                      },
+                  },
+                },
+                "修改"
+              ),
+              h(
+                "Button",
+                {
+                  props: {
+                    type: "error",
+                    size: "small",
+                  },
+                  style: {
+                    marginRight: "5px",
+                  },
+                  on: {
+                    click: () => {
+                      this.remove(params.row);
                     },
                   },
-                  "删除"
-                ),
-              ]);
-            },
+                },
+                "删除"
+              ),
+            ]);
           },
-        ],
-        data: [], // 表单数据
-        total: 0, // 表单数据总数
-      };
+        },
+      ],
+      data: [], // 表单数据
+      total: 0, // 表单数据总数
+    };
+  },
+  methods: {
+    init() {
+      this.getData();
     },
-    methods: {
-      init() {
-        this.getData();
-      },
-      changePage(v) {
-        this.searchForm.pageNumber = v;
-        this.getData();
-      },
-      changePageSize(v) {
-        this.searchForm.pageSize = v;
-        this.getData();
-      },
-      handleSearch() {
-        this.searchForm.pageNumber = 1;
-        this.searchForm.pageSize = 10;
-        this.getData();
-      },
-      changeSort(e) {
-        this.searchForm.sort = e.key;
-        this.searchForm.order = e.order;
-        if (e.order === "normal") {
-          this.searchForm.order = "";
-        }
-        this.getData();
-      },
-      changeSelect(e) {
-        this.selectList = e;
-        this.selectCount = e.length;
-      },
-      getData() {
-        this.loading = true;
-        API_Setting.appVersionPage(this.searchForm).then((res) => {
-          this.loading = false;
-          if (res.success) {
-            this.data = res.result.records;
-            this.total = res.result.total;
-          }
-        });
-        this.total = this.data.length;
+    changePage(v) {
+      this.searchForm.pageNumber = v;
+      this.getData();
+    },
+    changePageSize(v) {
+      this.searchForm.pageSize = v;
+      this.getData();
+    },
+    handleSearch() {
+      this.searchForm.pageNumber = 1;
+      this.searchForm.pageSize = 10;
+      this.getData();
+    },
+    changeSort(e) {
+      this.searchForm.sort = e.key;
+      this.searchForm.order = e.order;
+      if (e.order === "normal") {
+        this.searchForm.order = "";
+      }
+      this.getData();
+    },
+    changeSelect(e) {
+      this.selectList = e;
+      this.selectCount = e.length;
+    },
+    getData() {
+      this.loading = true;
+      API_Setting.appVersionPage(this.searchForm).then((res) => {
         this.loading = false;
-      },
-      //添加app版本信息
-      addAppVersion() {
-        this.modalVisible = true;
-        this.modalTitle = "添加APP版本信息"
-        const versionUpdateDate = this.$options.filters.unixToDate(
-          new Date() / 1000
-        );
-        this.form = {
-          forceUpdate: 0,
-          type: "IOS",
-          versionUpdateDate: versionUpdateDate,
-          content: " "
+        if (res.success) {
+          this.data = res.result.records;
+          this.total = res.result.total;
         }
-      },
-      //添加app版本信息
-      editAppVersion(v) {
-        this.modalVisible = true;
-        this.modalTitle = "修改APP版本信息"
-        this.modalType = 1
-        this.form = v
-      },
-      //保存app版本信息
-      saveAppVersion() {
-        this.$refs.form.validate((valid) => {
-          if (valid) {
-            this.submitLoading = true;
-            const versionUpdateDate = this.$options.filters.unixToDate(
-              this.form.versionUpdateDate / 1000
-            );
-            this.form.versionUpdateDate = versionUpdateDate
-            this.form.updateTime = versionUpdateDate
-            if (this.modalType == 0) {
-              // 添加 避免编辑后传入id等数据 记得删除
-              delete this.form.id;
-              API_Setting.addVersion(this.form).then((res) => {
-                this.submitLoading = false;
-                if (res && res.success) {
-                  this.$Message.success("添加成功");
-                  this.modalVisible = false
-                  this.getData();
-                }
-              });
-            } else {
-              API_Setting.editVersion(this.form, this.form.id).then((res) => {
-                this.submitLoading = false;
-                if (res && res.success) {
-                  this.$Message.success("修改成功");
-                  this.modalVisible = false
-                  this.getData();
-                }
-              });
-            }
-
-          }
-        })
-      },
-      remove(v) {
-        this.$Modal.confirm({
-          title: "确认删除",
-          content: "您确认要删除么?",
-          loading: true,
-          onOk: () => {
-            // 删除
-            API_Setting.deleteVersion(v.id).then(res => {
-              this.$Modal.remove();
-              if (res.success) {
-                this.$Message.success("删除成功");
+      });
+      this.total = this.data.length;
+      this.loading = false;
+    },
+    //添加app版本信息
+    addAppVersion() {
+      this.modalVisible = true;
+      this.modalTitle = "添加APP版本信息";
+      const versionUpdateDate = this.$options.filters.unixToDate(
+        new Date() / 1000
+      );
+      this.form = {
+        forceUpdate: 0,
+        type: "IOS",
+        versionUpdateDate: versionUpdateDate,
+        content: " ",
+      };
+    },
+    //添加app版本信息
+    editAppVersion(v) {
+      this.modalVisible = true;
+      this.modalTitle = "修改APP版本信息";
+      this.modalType = 1;
+      this.form = v;
+    },
+    //保存app版本信息
+    saveAppVersion() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.submitLoading = true;
+          const versionUpdateDate = this.$options.filters.unixToDate(
+            this.form.versionUpdateDate / 1000
+          );
+          this.form.versionUpdateDate = versionUpdateDate;
+          this.form.updateTime = versionUpdateDate;
+          if (this.modalType == 0) {
+            // 添加 避免编辑后传入id等数据 记得删除
+            delete this.form.id;
+            API_Setting.addVersion(this.form).then((res) => {
+              this.submitLoading = false;
+              if (res && res.success) {
+                this.$Message.success("添加成功");
+                this.modalVisible = false;
+                this.getData();
+              }
+            });
+          } else {
+            API_Setting.editVersion(this.form, this.form.id).then((res) => {
+              this.submitLoading = false;
+              if (res && res.success) {
+                this.$Message.success("修改成功");
+                this.modalVisible = false;
                 this.getData();
               }
             });
           }
-        });
-      },
-      detail(v) {
-        this.queryModalVisible = true
-        this.form = JSON.parse(JSON.stringify(v))
-        //时间格式化有问题,所以另外单独给时间赋值
-        this.versionUpdateDate = this.form.versionUpdateDate
-      },
+        }
+      });
     },
-    mounted() {
-      this.init();
+    remove(v) {
+      this.$Modal.confirm({
+        title: "确认删除",
+        content: "您确认要删除么?",
+        loading: true,
+        onOk: () => {
+          // 删除
+          API_Setting.deleteVersion(v.id).then((res) => {
+            this.$Modal.remove();
+            if (res.success) {
+              this.$Message.success("删除成功");
+              this.getData();
+            }
+          });
+        },
+      });
     },
-  };
+    detail(v) {
+      this.queryModalVisible = true;
+      this.form = JSON.parse(JSON.stringify(v));
+      //时间格式化有问题,所以另外单独给时间赋值
+      this.versionUpdateDate = this.form.versionUpdateDate;
+    },
+  },
+  mounted() {
+    this.init();
+  },
+};
 </script>
 <style lang="scss" scoped>
-  .ivu-form-item {
-    margin-bottom: 14px;
-    vertical-align: top;
-    zoom: 1;
-  }
-.search-form{
+.ivu-form-item {
+  margin-bottom: 14px;
+  vertical-align: top;
+  zoom: 1;
+}
+.search-form {
   width: 100%;
 }
-  // 建议引入通用样式 可删除下面样式代码
-  @import "@/styles/table-common.scss";
+// 建议引入通用样式 可删除下面样式代码
+@import "@/styles/table-common.scss";
 </style>

+ 1 - 1
manager/src/views/sys/message/sms.vue

@@ -710,7 +710,7 @@ export default {
     //发送短信
     sendSms() {
       this.$refs.smsForm.validate((valid) => {
-        const mobile = JSON.stringify(this.alreadyCheck);
+        const mobile = this.alreadyCheck;
         this.smsForm.mobile = mobile;
         if (valid) {
           API_Setting.sendSms(this.smsForm).then((res) => {

+ 6 - 6
manager/src/views/sys/message/smsSign.vue

@@ -162,8 +162,12 @@
 
   };
 </script>
-<style lang="scss">
-  .sign-name {
+
+<style lang="scss" scoped>
+  // 建议引入通用样式 可删除下面样式代码
+  @import "@/styles/table-common.scss";
+
+   .sign-name {
     margin-top: 5px;
     margin-left: 20px;
     font-size: 16px;
@@ -189,7 +193,3 @@
     margin-left: 100px;
   }
 </style>
-<style lang="scss">
-  // 建议引入通用样式 可删除下面样式代码
-  @import "@/styles/table-common.scss";
-</style>

+ 1 - 1
seller/src/api/distribution.js

@@ -51,7 +51,7 @@ export const getDistributionSetting = (id, params) => {
 
 //获取分销订单列表
 export const getDistributionOrder = (params) => {
-    return getRequest('/distribution/order/getByPage', params)
+    return getRequest('/distributionOrder', params)
 }
 
 

+ 4 - 4
seller/src/config/index.js

@@ -22,10 +22,10 @@ export default {
     buyer: 'https://buyer-api.pickmall.cn',
     seller: 'https://store-api.pickmall.cn',
     manager: 'https://admin-api.pickmall.cn'
-    // common: 'http://192.168.0.100:8890',
-    // buyer: 'http://192.168.0.100:8888',
-    // seller: 'http://192.168.0.100:8889',
-    // manager: 'http://192.168.0.100:8887'
+    // common: 'http://192.168.0.103:8890',
+    // buyer: 'http://192.168.0.103:8888',
+    // seller: 'http://192.168.0.103:8889',
+    // manager: 'http://192.168.0.103:8887'
   },
   api_prod: {
     common: 'https://common-api.pickmall.cn',

+ 15 - 1
seller/src/libs/routerJson.js

@@ -145,7 +145,7 @@ export const result = [
             url: "",
             children: null,
             permTypes: []
-          } 
+          }
         ]
       },
       {
@@ -454,6 +454,20 @@ export const result = [
             url: "",
             permTypes: [],
             children: null
+          },
+          {
+            name: "distributionOrder",
+            showAlways: true,
+            level: 2,
+            type: 0,
+            title: "分销订单",
+            path: "distributionOrder",
+            component: "distribution/distributionOrder",
+            icon: "md-person",
+            isMenu: true,
+            url: "",
+            permTypes: [],
+            children: null
           }
         ]
       }

+ 2 - 1
seller/src/store/modules/app.js

@@ -6,6 +6,7 @@ import Vue from 'vue';
 
 const app = {
     state: {
+        shipTemplates:"",
         styleStore:"", //移动端楼层装修中选择风格存储
         loading: false, // 全局加载动画
         added: false, // 加载路由标识
@@ -30,7 +31,7 @@ const app = {
                 path: '',
                 name: 'home_index'
             }
-        ], 
+        ],
         // 面包屑数组 左侧菜单
         menuList: [],
         routers: [

+ 200 - 0
seller/src/views/distribution/distributionOrder.vue

@@ -0,0 +1,200 @@
+<template>
+  <div class="search">
+    <Row>
+      <Col>
+      <Card>
+        <Row v-show="openSearch" @keydown.enter.native="handleSearch">
+          <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
+            <Form-item label="订单编号" prop="orderSn">
+              <Input type="text" v-model="searchForm.orderSn" placeholder="请输入订单编号" clearable style="width: 200px" />
+            </Form-item>
+            <Form-item label="订单时间">
+              <DatePicker type="daterange" v-model="timeRange" format="yyyy-MM-dd" placeholder="选择时间" style="width: 210px"></DatePicker>
+            </Form-item>
+            <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
+          </Form>
+        </Row>
+
+        <Row class="padding-row">
+          <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"></Table>
+        </Row>
+        <Row type="flex" justify="end" class="page">
+          <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10,20,50]" size="small"
+            show-total show-elevator show-sizer></Page>
+        </Row>
+      </Card>
+      </Col>
+    </Row>
+
+  </div>
+</template>
+
+<script>
+import { getDistributionOrder } from "@/api/distribution";
+import { orderStatusList } from "./dataJson";
+
+export default {
+  name: "distributionOrder",
+  components: {},
+  data() {
+    return {
+      timeRange: [], // 范围时间
+      orderStatusList, // 订单状态列表
+      distributionId: this.$route.query.id, // 分销id
+      openSearch: true, // 显示搜索
+      openTip: true, // 显示提示
+      loading: true, // 表单加载状态
+      searchForm: {
+        // 搜索框初始化对象
+        pageNumber: 1, // 当前页数
+        pageSize: 10, // 页面大小
+      },
+      columns: [
+        {
+          title: "订单编号",
+          key: "orderSn",
+          minWidth: 120,
+          tooltip: true,
+        },
+
+        {
+          title: "实付金额",
+          key: "orderPrice",
+          width: 130,
+          sortable: false,
+          render: (h, params) => {
+            if (params.row.orderPrice == null) {
+              return h("div", this.$options.filters.unitPrice(0, "¥"));
+            } else {
+              return h(
+                "div",
+                this.$options.filters.unitPrice(params.row.orderPrice, "¥")
+              );
+            }
+          },
+        },
+        {
+          title: "退款金额",
+          key: "returnMoney",
+          width: 130,
+          sortable: false,
+          render: (h, params) => {
+            if (params.row.orderPrice == null) {
+              return h("div", this.$options.filters.unitPrice(0, "¥"));
+            } else {
+              return h(
+                "div",
+                this.$options.filters.unitPrice(params.row.returnMoney, "¥")
+              );
+            }
+          },
+        },
+        {
+          title: "商品名称",
+          key: "goodsName",
+          minWidth: 120,
+          tooltip: true,
+        },
+        {
+          title: "状态",
+          key: "distributionOrderStatus",
+          width: 100,
+          sortable: false,
+          render: (h, params) => {
+            if (params.row.distributionOrderStatus == "COMPLETE_CASH") {
+              return h("div", "提现完成");
+            } else if (params.row.distributionOrderStatus == "WAIT_BILL") {
+              return h("div", "待结算");
+            } else if (params.row.distributionOrderStatus == "WAIT_CASH") {
+              return h("div", "待提现");
+            }
+          },
+        },
+
+        {
+          title: "佣金金额",
+          key: "rebateGrade",
+          width: 120,
+          sortable: false,
+          render: (h, params) => {
+            if (params.row.rebateGrade == null) {
+              return h("div", this.$options.filters.unitPrice(0, "¥"));
+            } else {
+              return h(
+                "div",
+                this.$options.filters.unitPrice(params.row.rebateGrade, "¥")
+              );
+            }
+          },
+        },
+        {
+          title: "创建时间",
+          key: "createTime",
+          width: 180,
+          sortable: false,
+        },
+      ],
+      data: [], // 表单数据
+      total: 0, // 表单数据总数
+    };
+  },
+  methods: {
+    init() {
+      this.getDataList();
+    },
+    changePage(v) {
+      this.searchForm.pageNumber = v;
+      this.getDataList();
+    },
+    changePageSize(v) {
+      this.searchForm.pageSize = v;
+      this.getDataList();
+    },
+    handleSearch() {
+      this.searchForm.pageNumber = 1;
+      this.searchForm.pageSize = 10;
+      this.getDataList();
+    },
+
+    getDataList() {
+      this.searchForm.distributionId = this.distributionId;
+      this.loading = true;
+      if (this.timeRange && this.timeRange[0]) {
+        let startTime = this.timeRange[0];
+        let endTime = this.timeRange[1];
+        this.searchForm.startTime = this.$options.filters.unixToDate(
+          startTime / 1000
+        );
+        this.searchForm.endTime = this.$options.filters.unixToDate(
+          endTime / 1000
+        );
+      }
+      console.log(this.searchForm);
+      // 带多条件搜索参数获取表单数据 请自行修改接口
+      getDistributionOrder(this.searchForm).then((res) => {
+        this.loading = false;
+        if (res.success) {
+          this.data = res.result.records;
+
+          this.total = res.result.total;
+        }
+      });
+      this.total = this.data.length;
+      this.loading = false;
+    },
+  },
+  mounted() {
+    this.init();
+  },
+  watch: {
+    $route(e) {
+      this.distributionId = e.query.id ? e.query.id : undefined;
+      this.getDataList();
+    },
+  },
+};
+</script>
+<style lang="scss" >
+@import "@/styles/table-common.scss";
+</style>
+

+ 4 - 3
seller/src/views/goods/goods-seller/draftGoods.vue

@@ -183,13 +183,14 @@ export default {
         {
           title: "商品价格",
           key: "price",
-          minWidth: 120
+          render: (h, params) => {
+            return h('div', this.$options.filters.unitPrice(params.row.price, '¥'))
+          }
         },
 
         {
           title: "商品库存",
           key: "quantity",
-          minWidth: 120
         },
         {
           title: "创建时间",
@@ -200,7 +201,7 @@ export default {
           title: "操作",
           key: "action",
           align: "center",
-          width: 200,
+          width: 150,
           render: (h, params) => {
             return h("div", [
               h(

+ 16 - 10
seller/src/views/goods/goods-seller/goods.vue

@@ -39,16 +39,22 @@
       <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
 
         <!-- 商品栏目格式化 -->
-        <template slot="goodsSlot" slot-scope="scope">
+        <template slot="goodsSlot" slot-scope="{row}">
           <div style="margin-top: 5px;height: 90px; display: flex;">
             <div style="">
-              <img :src="scope.row.original" style="height: 80px;margin-top: 3px;width: 70px">
+              <img :src="row.original" style="height: 80px;margin-top: 3px;width: 70px">
             </div>
 
             <div style="margin-left: 13px;">
               <div class="div-zoom">
-                <a>{{scope.row.goodsName}}</a>
+                <a @click="linkTo(row.id,row.skuId)">{{row.goodsName}}</a>
               </div>
+              <Poptip trigger="hover" title="扫码在手机中查看" transfer>
+                <div slot="content">
+                  <vue-qr :text="wapLinkTo(row.id,row.skuId)"  :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
+                </div>
+                <img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
+              </Poptip>
             </div>
           </div>
 
@@ -76,10 +82,10 @@
       <Form ref="shipTemplateForm" :model="shipTemplateForm" :label-width="120">
         <FormItem class="form-item-view-el" label="运费" prop="freightPayer">
           <RadioGroup type="button" button-style="solid" @on-change="logisticsTemplateUndertakerChange" v-model="shipTemplateForm.freightPayer">
-            <Radio label="BUYER">
-              <span>买家承担运费</span>
-            </Radio>
             <Radio label="STORE">
+              <span>卖家承担运费</span>
+            </Radio>
+            <Radio label="BUYER">
               <span>使用物流规则</span>
             </Radio>
           </RadioGroup>
@@ -120,7 +126,7 @@ export default {
       id: "", //要操作的id
       loading: true, // 表单加载状态
       shipTemplateForm: {
-        freightPayer: "BUYER",
+        freightPayer: "STORE",
       },
       shipTemplateShow: false, //物流模板是否显示
       shipTemplateModal: false, // 物流模板是否显示
@@ -515,7 +521,7 @@ export default {
     },
     //保存运费模板信息
     saveShipTemplate () {
-      if (this.shipTemplateForm.freightPayer == "BUYER") {
+      if (this.shipTemplateForm.freightPayer == "STORE") {
         {
           this.shipTemplateForm.templateId = 0;
         }
@@ -559,7 +565,7 @@ export default {
     //运费承担者变化
     logisticsTemplateUndertakerChange(v) {
       //如果是卖家承担运费 需要显示运费模板
-      if (v == "STORE") {
+      if (v == "BUYER") {
         API_Store.getShipTemplate().then((res) => {
           if (res.success) {
             this.logisticsTemplate = res.result;
@@ -567,7 +573,7 @@ export default {
         });
         this.shipTemplateShow = true;
       }
-      if (v == "BUYER") {
+      if (v == "STORE") {
         this.shipTemplateShow = false;
       }
     },

+ 26 - 28
seller/src/views/goods/goods-seller/goodsOperation.vue

@@ -576,13 +576,13 @@
           </div>
           <div class="form-item-view-bottom">
             <Collapse
-              active-key="1"
+              v-model="show"
               v-for="paramsgroup in goodsParams"
               :title="paramsgroup.groupName"
               style="text-align: left"
               :key="paramsgroup.groupName"
             >
-              <Panel key="1">
+              <Panel key="1" name="1">
                 {{ paramsgroup.groupName }}
                 <p slot="content">
                   <FormItem
@@ -592,25 +592,15 @@
                     :key="index"
                     :label="`${goodsParamsList.paramName}:`"
                   >
-                    <Input
-                      v-if="goodsParamsList.paramType === 1"
-                      type="text"
-                      v-model="goodsParamsList.paramValue"
-                      placeholder="长度为最多50个字符"
-                      maxlength="50"
-                      clearable
-                      style="width: 260px"
-                    />
                     <Select
                       v-model="goodsParamsList.paramValue"
-                      v-if="goodsParamsList.paramType === 2"
                       placeholder="请选择"
                       style="width: 200px"
                       clearable
                     >
                       <Option
                         v-for="option in goodsParamsList.optionList"
-                        :key="option"
+                        :key="option.paramValue"
                         :label="option"
                         :value="option"
                       ></Option>
@@ -772,6 +762,7 @@ export default {
     };
 
     return {
+      show: '1',
       //提交状态
       submitLoading: false,
       //上传图片路径
@@ -1370,18 +1361,14 @@ export default {
                     (ij) => ij.paramName === elem.paramName
                   )
                 ) {
-                  if (elem.paramType === 2) {
-                    elem.optionList = elem.options.split(",");
-                  }
+                  elem.optionList = elem.options.split(",");
                   this.baseInfoForm.goodsParamsList.push(elem);
                 }
                 if (this.$route.query.id || this.draftId) {
                   this.baseInfoForm.goodsParamsList = this.baseInfoForm.goodsParamsList.map(
                     (i) => {
                       if (i.paramId === elem.id || i.id === elem.id) {
-                        if (elem.paramType === 2) {
-                          elem.optionList = elem.options.split(",");
-                        }
+                        elem.optionList = elem.options.split(",");
                         i = {
                           ...i,
                           ...elem,
@@ -1839,19 +1826,24 @@ export default {
             this.$Message.error("请上传商品图片");
             return;
           }
-          // if (
-          //   !this.baseInfoForm.storeCategoryPath ||
-          //   !this.baseInfoForm.storeCategoryPath.length
-          // ) {
-          //   this.submitLoading = false;
-          //   this.$Message.error("请选择店内分类");
-          //   return;
-          // }
+          let flag = false;
+          let paramValue = "";
+          this.baseInfoForm.goodsParamsList.forEach((e)=> {
+            if(e.required === 1 && e.paramValue === null || e.paramValue === undefined){
+              flag = true
+              paramValue = e.paramName
+            }
+          });
+          if(flag){
+            this.$Message.error(paramValue +" 参数值不能为空");
+            this.submitLoading = false;
+            return;
+          }
           //如果选择的是卖家承担运费 则运费模板重置为0
           if (this.baseInfoForm.freightPayer !== "BUYER") {
             this.baseInfoForm.templateId = 0;
           }
-          
+
           this.baseInfoForm.skuList = this.skuTableData.map((sku) => {
             delete sku._index;
             delete sku._rowKey;
@@ -1865,6 +1857,12 @@ export default {
               (i) => i.url
             );
           }
+          /** 参数校验 **/
+         /* Object.keys(this.baseInfoForm.goodsParamsList).forEach((item) => {
+            console.warn(item.paramName)
+          });*/
+
+
 
           if (this.goodsId) {
             API_GOODS.editGoods(this.goodsId, this.baseInfoForm).then((res) => {

+ 0 - 4
seller/src/views/goods/goods-seller/goodsStock.vue

@@ -1,7 +1,5 @@
 <template>
   <div class="search">
-    <Row>
-      <Col>
         <Card>
           <Row v-show="openSearch" @keydown.enter.native="handleSearch">
             <Form
@@ -97,8 +95,6 @@
             ></Page>
           </Row>
         </Card>
-      </Col>
-    </Row>
     <Modal
       title="更新库存"
       v-model="updateStockModalVisible"

+ 7 - 7
seller/src/views/home/home.vue

@@ -56,7 +56,7 @@
           <h4>待办事项</h4>
 
           <div class="detail-list">
-            <div class="detail-item" @click="navigateTo('order')">
+            <div class="detail-item" @click="navigateTo('orderList')">
               <div>
                 <span>{{homeData.unPaidOrder || 0}}</span>
                 <div>待付款</div>
@@ -66,7 +66,7 @@
               </div>
             </div>
 
-            <div class="detail-item" @click="navigateTo('order')">
+            <div class="detail-item" @click="navigateTo('orderList')">
               <div>
                 <span>{{homeData.unDeliveredOrder || 0}}</span>
                 <div>待发货</div>
@@ -125,7 +125,7 @@
                 <span>{{homeData.seckillNum || 0}}</span>
                 <div>待参加活动</div>
               </div>
-              <div>
+              <div @click="navigateTo('accountStatementBill')">
                 <span>{{homeData.waitPayBill || 0}}</span>
                 <div>待对账</div>
               </div>
@@ -161,17 +161,17 @@
           </div>
 
         </div>
-        <div class="count-item">
+        <div class="count-item" @click="navigateTo('orderStatistics')">
           <div>
             <Icon class="icon" size="31" type="ios-card" />
           </div>
           <div>
-            <div class="counts">{{homeData.orderPrice ||0}}</div>
+            <div class="counts">{{homeData.orderPrice || 0 | unitPrice('¥')}}</div>
             <div>订单总额</div>
           </div>
 
         </div>
-        <div class="count-item" @click="navigateTo('order')">
+        <div class="count-item" @click="navigateTo('orderList')">
           <div>
 
             <Icon class="icon" size="31" type="md-list" />
@@ -182,7 +182,7 @@
           </div>
 
         </div>
-        <div class="count-item">
+        <div class="count-item" @click="navigateTo('trafficStatistics')">
           <div>
             <Icon class="icon" size="31" type="md-person" />
           </div>

+ 76 - 24
seller/src/views/lili-components/multiple-region.vue

@@ -7,7 +7,7 @@
   </Modal>
 </template>
 <script>
-import { getChildRegion, getAllCity } from "@/api/index";
+import { getAllCity } from "@/api/index";
 export default {
   data() {
     return {
@@ -22,46 +22,84 @@ export default {
     this.init();
   },
   methods: {
+    /**
+     * 关闭
+     */
     cancel() {
       this.switched = false;
-      // this.$emit("close",true)
+
+      // 关闭的时候所有数据设置成disabled为true
+      this.data.forEach((item) => {
+        this.$set(item, "disabled", false);
+        item.children.forEach((child) => {
+          this.$set(child, "disabled", false);
+        });
+      });
     },
-    open(val) {
+
+    /**
+     * 打开地图选择器
+     * @param {val} 回调的数据
+     * @param {index} 当前操作的运费模板的索引
+     */
+    open(val, index) {
       if (val) {
-        this.callBackData = val;
-        this.data = JSON.parse(JSON.stringify(this.data));
-        val.areaId.split(",").forEach((ids) => {
-          this.data.forEach((item) => {
-            if (item.id == ids) {
-              item.selected = true;
+        //已选中的地址
+        let checkedData = this.$store.state.shipTemplate;
 
-            }
-            item.children &&
-              item.children.forEach((child) => {
+        // 禁止选中的地址
+        let disabledData = checkedData.filter((item, i) => {
+          return i != index;
+        });
+
+        disabledData.forEach((dis) => {
+          // 循环出已经选中的地址id
+          dis.areaId.split(",").forEach((ids) => {
+            // 循环出省份
+            this.data.forEach((item) => {
+              // 如果当前省份下市区全部选中则选中该省份
+              if (dis.selectedAll) {
+                dis.area.split(",").forEach((area) => {
+                  if (area == item.name) {
+                    this.$set(item, "disabled", true);
+                  }
+                });
+              }
+              // 将市区继续循环
+              item.children.forEach((child, childIndex) => {
+                // 判断当前市区是否是已选中状态
                 if (child.id == ids) {
-                  child.checked = true;
+                  this.$set(child, "disabled", true);
                 }
               });
+            });
           });
         });
       }
-
-      this.switched = true;
+      this.switched ? (this.switched = true) : (this.switched = true);
     },
 
+    /**
+     * 提交并筛选出省市
+     */
     submit() {
       // 筛选出省市
       let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
+
       let sort = [];
-      list.forEach((item) => {
+      list.forEach((item, i) => {
         item.selectedList = [];
-        if (item.level == "province") {
+        item.selectedAll = false;
+        // 筛选出当前的省份
+        if (item.level == "province" && !item.disabled) {
           sort.push({
             ...item,
           });
         }
+
+        // 筛选出当前选中的市
         sort.forEach((sortItem, sortIndex) => {
-          if (item.level != "province" && sortItem.id == item.parentId) {
+          if (item.level != "province" && sortItem.id == item.parentId && !item.disabled) {
             sortItem.selectedList.push({
               ...item,
             });
@@ -69,12 +107,24 @@ export default {
         });
       });
 
-      this.$emit(
-        "selected",
-        list.filter((item) => {
-          return item.level == "province";
-        })
-      );
+      // 判断如果当前省是否全选
+      this.data.forEach((whether) => {
+        sort.forEach((item) => {
+          // 如果当前省匹配
+          if (
+            item.id == whether.id &&
+            item.selectedList.length == whether.children.length
+          ) {
+            // 给一个全选子级的标识符
+            item.selectedList.forEach((child) => {
+              this.$set(child, "selectedAll", true);
+            });
+            this.$set(item, "selectedAll", true);
+          }
+        });
+      });
+
+      this.$emit("selected", sort);
 
       this.cancel();
     },
@@ -93,8 +143,10 @@ export default {
               ...item,
             };
             this.data.push(data);
+
             this.selectedWay.push({ name: data.title, id: data.id });
           });
+          console.log(this.data);
         }
       });
     },

+ 0 - 1
seller/src/views/main-components/header.vue

@@ -2,7 +2,6 @@
   <div>
     <Row class="header">
       <img src="../../assets/lili.png" class="logo" width="220px">
-
     </Row>
   </div>
 </template>

+ 3 - 2
seller/src/views/member/memberComment.vue

@@ -102,6 +102,7 @@
             v-model="image"
             :disable="true"
             :remove="false"
+            :isView="true"
           ></upload-pic-thumb>
         </FormItem>
         <FormItem label="回复内容" prop="reply">
@@ -370,8 +371,8 @@ export default {
           this.content = res.result.content
           this.form.reply = res.result.reply
           this.replyStatus = res.result.replyStatus
-          if (res.result.image) {
-            this.image = (res.result.image || "").split(",");
+          if (res.result.images) {
+            this.image = (res.result.images || "").split(",");
           }
           if (res.result.replyImage) {
             this.form.replyImage = (res.result.replyImage || "").split(",");

+ 5 - 0
seller/src/views/my-components/lili/upload-pic-thumb.vue

@@ -37,6 +37,7 @@
       :action="uploadFileUrl"
       :headers="accessToken"
       style="display: inline-block;width:58px;"
+      v-if="!isView"
     >
       <div style="width: 58px;height:58px;line-height: 58px;">
         <Icon type="md-camera" size="20"></Icon>
@@ -87,6 +88,10 @@ export default {
     limit: {
       type: Number,
       default: 10
+    },
+    isView: {
+      type: Boolean,
+      default: false
     }
   },
   data() {

+ 2 - 2
seller/src/views/order/after-order/orderComplaintDetail.vue

@@ -173,7 +173,7 @@
                 </dt>
                 <dd>
                   <a>{{ complaintInfo.goodsName }}</a><br>
-                  <span>{{ complaintInfo.goodsPrice | unitPrice }} * {{ complaintInfo.num }}(数量)</span>
+                  <span>{{ complaintInfo.goodsPrice | unitPrice }} * {{ complaintInfo.num }}(数量)</span>
                 </dd>
               </dl>
 
@@ -201,7 +201,7 @@
                   订单金额
                 </dt>
                 <dd>
-                  {{ complaintInfo.orderPrice }}
+                  {{ complaintInfo.orderPrice | unitPrice('¥')}}
                 </dd>
               </dl>
 

+ 2 - 2
seller/src/views/promotion/coupon/coupon.vue

@@ -69,7 +69,7 @@
           <template slot-scope="{ row }" slot="action">
             <Button
               v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'"
-              type="primary"
+              type="info"
               size="small"
               style="margin-right: 10px"
               @click="edit(row)"
@@ -259,7 +259,7 @@ export default {
           slot: "action",
           align: "center",
           fixed: "right",
-          width: 150,
+          minWidth: 80,
         },
       ],
       data: [], // 表单数据

+ 14 - 62
seller/src/views/promotion/coupon/couponPublish.vue

@@ -90,26 +90,14 @@
                 style="width: 260px"
               />
             </FormItem>
-            <FormItem label="有效期" prop="startTime">
+            <FormItem label="有效期" prop="rangeTime">
               <DatePicker
-                type="datetime"
-                v-model="form.startTime"
+                type="datetimerange"
+                v-model="form.rangeTime"
                 format="yyyy-MM-dd HH:mm:ss"
                 placeholder="请选择"
                 :options="options"
-                clearable
-                style="width: 200px"
-              >
-              </DatePicker>
-              -
-              <DatePicker
-                type="datetime"
-                v-model="form.endTime"
-                format="yyyy-MM-dd HH:mm:ss"
-                :options="options"
-                placeholder="请选择"
-                clearable
-                style="width: 200px"
+                style="width: 260px"
               >
               </DatePicker>
             </FormItem>
@@ -225,20 +213,7 @@ export default {
         callback();
       }
     };
-    const isLtEndDate = (rule, value, callback) => {
-      if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
-        callback(new Error());
-      } else {
-        callback();
-      }
-    };
-    const isGtStartDate = (rule, value, callback) => {
-      if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
-        callback(new Error());
-      } else {
-        callback();
-      }
-    };
+   
     return {
       modalType: 0, // 判断是新增还是编辑优惠券 0 新增  1 编辑
       categoryId: 0, // 分类id
@@ -281,30 +256,7 @@ export default {
           { required: true, message: "请输入消费门槛" },
           { validator: checkWeight },
         ],
-        startTime: [
-          {
-            required: true,
-            type: "date",
-            message: "请选择开始时间",
-          },
-          {
-            trigger: "change",
-            message: "开始时间要小于结束时间",
-            validator: isLtEndDate,
-          },
-        ],
-        endTime: [
-          {
-            required: true,
-            type: "date",
-            message: "请选择结束时间",
-          },
-          {
-            trigger: "change",
-            message: "结束时间要大于开始时间",
-            validator: isGtStartDate,
-          },
-        ],
+        rangeTime: [{ required: true, message: "请选择优惠券有效期" }],
         couponDiscount: [
           { required: true, message: "请输入折扣" },
           {
@@ -425,6 +377,8 @@ export default {
           next(this.goodsCategoryList, []);
           data.scopeIdGoods = prevCascader;
         }
+        data.rangeTime = [];
+        data.rangeTime.push(new Date(data.startTime), new Date(data.endTime));
         this.form = data;
       });
     },
@@ -433,16 +387,14 @@ export default {
       this.$refs.form.validate((valid) => {
         if (valid) {
           const params = JSON.parse(JSON.stringify(this.form));
-          const strat = this.$options.filters.unixToDate(
-            this.form.startTime / 1000
+          params.startTime = this.$options.filters.unixToDate(
+            this.form.rangeTime[0] / 1000
           );
-          const end = this.$options.filters.unixToDate(
-            this.form.endTime / 1000
+          params.endTime = this.$options.filters.unixToDate(
+            this.form.rangeTime[1] / 1000
           );
+          delete params.rangeTime
           let scopeId = [];
-          params.startTime = strat;
-          params.endTime = end;
-
           if (
             params.scopeType == "PORTION_GOODS" &&
             (!params.promotionGoodsList ||
@@ -511,7 +463,7 @@ export default {
         this.$store.state.app.storeOpenedList
       );
       this.$router.push({
-        path: "promotion/coupon",
+        name: "coupon",
       });
     },
     changeSelect(e) {

+ 13 - 58
seller/src/views/promotion/pintuan/newPintuan.vue

@@ -8,26 +8,14 @@
             活动名称将显示在对人拼团活动列表中,方便商家管理使用,最多输入25个字符
           </div>
         </FormItem>
-        <FormItem label="活动时间" prop="startTime">
+        <FormItem label="活动时间" prop="rangeTime">
           <DatePicker
-            type="datetime"
-            v-model="form.startTime"
+            type="datetimerange"
+            v-model="form.rangeTime"
             format="yyyy-MM-dd HH:mm:ss"
-            :options="options"
             placeholder="请选择"
-            clearable
-            style="width: 200px"
-          >
-          </DatePicker>
-          -
-          <DatePicker
-            type="datetime"
-            v-model="form.endTime"
-            format="yyyy-MM-dd HH:mm:ss"
             :options="options"
-            placeholder="请选择"
-            clearable
-            style="width: 200px"
+            style="width: 260px"
           >
           </DatePicker>
         </FormItem>
@@ -87,20 +75,6 @@
 import { savePintuan, editPintuan, getPintuanDetail } from "@/api/promotion";
 export default {
   data() {
-    const isLtEndDate = (rule, value, callback) => {
-      if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
-        callback(new Error());
-      } else {
-        callback();
-      }
-    };
-    const isGtStartDate = (rule, value, callback) => {
-      if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
-        callback(new Error());
-      } else {
-        callback();
-      }
-    };
     return {
       id: this.$route.query.id, // 拼团id
       form: {
@@ -131,33 +105,10 @@ export default {
             message: "限购数不合法",
           },
         ],
-        startTime: [
-          {
-            required: true,
-            type: "date",
-            message: "请选择开始时间",
-          },
-          {
-            trigger: "change",
-            message: "开始时间要小于结束时间",
-            validator: isLtEndDate,
-          },
-        ],
-        endTime: [
-          {
-            required: true,
-            type: "date",
-            message: "请选择结束时间",
-          },
-          {
-            trigger: "change",
-            message: "结束时间要大于开始时间",
-            validator: isGtStartDate,
-          },
-        ],
+        rangeTime: [{ required: true, message: "请选择活动时间" }],
       },
       submitLoading: false, // 添加或编辑提交状态
-      options: { // 不可选取时间
+      options: { // 不可选取时间
         disabledDate(date) {
           return date && date.valueOf() < Date.now() - 86400000;
         },
@@ -185,11 +136,12 @@ export default {
           this.submitLoading = true;
           let params = JSON.parse(JSON.stringify(this.form));
           params.startTime = this.$options.filters.unixToDate(
-            this.form.startTime / 1000
+            this.form.rangeTime[0] / 1000
           );
           params.endTime = this.$options.filters.unixToDate(
-            this.form.endTime / 1000
+            this.form.rangeTime[1] / 1000
           );
+          delete params.rangeTime
           if (!this.id) {
             // 添加 避免编辑后传入id等数据 记得删除
             delete params.id;
@@ -218,7 +170,10 @@ export default {
     getDetail() {
       getPintuanDetail(this.id).then((res) => {
         if (res.success) {
-          this.form = res.result;
+          const data = res.result;
+          data.rangeTime = [];
+          data.rangeTime.push(new Date(data.startTime), new Date(data.endTime));
+          this.form = data;
         }
       });
     },

+ 8 - 18
seller/src/views/promotion/pintuan/pintuanGoods.vue

@@ -21,9 +21,6 @@
           <template slot-scope="{ row, index }" slot="price">
             <Input v-model="row.price" :disabled="status==='view'" @input="goodsData[index].price = row.price" />
           </template>
-          <template slot-scope="{ row }" slot="QRCode">
-            <img :src="row.QRCode || '../../../assets/lili.png'" width="50px" height="50px" alt="" />
-          </template>
           <template slot-scope="{ index }" slot="action">
             <Button type="error" size="small" ghost v-if="status === 'manager'" @click="delGoods(index)">删除</Button>
           </template>
@@ -107,11 +104,7 @@ export default {
             return h("div", [
               h(
                 "Tag",
-                {
-                  props: {
-                    color: color,
-                  },
-                },
+                {props: {color: color}},
                 text
               ),
             ]);
@@ -125,20 +118,17 @@ export default {
           key: "goodsName",
           minWidth: 120,
         },
-
         {
           title: "库存",
           key: "quantity",
           minWidth: 40,
         },
-
         {
           title: "拼团价格",
           key: "price",
           slot: "price",
           minWidth: 50,
         },
-
         {
           title: "操作",
           slot: "action",
@@ -188,23 +178,23 @@ export default {
         }
       });
     },
-    init() {
+    init() { // 初始化数据
       this.getDataList();
       this.getPintuanMsg();
     },
 
-    changePage(v) {
+    changePage(v) { // 分页 改变页数
       this.searchForm.pageNumber = v - 1;
       this.getDataList();
       this.clearSelectAll();
     },
 
-    changePageSize(v) {
+    changePageSize(v) { // 分页 改变每页数
       this.searchForm.pageSize = v;
       this.getDataList();
     },
 
-    handleSearch() {
+    handleSearch() { // 搜索
       this.searchForm.pageNumber = 0;
       this.searchForm.pageSize = 10;
       this.getDataList();
@@ -253,7 +243,7 @@ export default {
       // 删除商品
       this.goodsData.splice(index, 1);
     },
-    delAll() {
+    delAll() { // 批量删除商品
       if (this.selectCount <= 0) {
         this.$Message.warning("您还未选择要删除的数据");
         return;
@@ -272,7 +262,7 @@ export default {
         },
       });
     },
-    selectedGoodsData(item) {
+    selectedGoodsData(item) { // 选择商品
       let ids = [];
       let list = [];
       this.goodsData.forEach((e) => {
@@ -295,7 +285,7 @@ export default {
       });
       this.goodsData.push(...list);
     },
-    openSkuList() {
+    openSkuList() { // 显示商品选择器
       this.$refs.skuSelect.open("goods");
     },
   },

+ 490 - 475
seller/src/views/shop/ship/shipTemplate.vue

@@ -2,27 +2,28 @@
   <div class="search">
     <Row>
       <Col>
-        <Card>
-          <Row>
-            <Button @click="refresh" >刷新</Button>
-            <Button @click="add" type="primary">添加</Button>
-          </Row>
-          <Tabs @on-click="handleClickType" v-model="currentTab" style="margin-top: 10px">
-            <TabPane label="运费模板" name="INFO">
-              <table class="ncsc-default-table order m-b-30" :key="index" v-for="(item,index) in shipInfo">
-                <tbody>
+      <Card>
+        <Row>
+          <Button @click="refresh">刷新</Button>
+          <Button @click="add" type="primary">添加</Button>
+        </Row>
+        <Tabs @on-click="handleClickType" v-model="currentTab" style="margin-top: 10px">
+          <TabPane label="运费模板" name="INFO">
+            <table class="ncsc-default-table order m-b-30" :key="index" v-for="(item,index) in shipInfo">
+              <tbody>
                 <tr>
                   <td class="sep-row" colspan="20"></td>
                 </tr>
                 <tr>
-                  <th colspan="20"><h3>{{item.name}}</h3>
+                  <th colspan="20">
+                    <h3>{{item.name}}</h3>
                     <span class="fr m-r-5">
-                  <time style="margin-right: 20px" title="最后编辑时间">
-                    <i class="icon-time"></i>{{item.updateTime}}
-                  </time>
-                   <Button @click="edit(item)" type="info" >修改</Button>
-                   <Button @click="remove(item.id)" type="error">删除</Button>
-                 </span>
+                      <time style="margin-right: 20px" title="最后编辑时间">
+                        <i class="icon-time"></i>{{item.updateTime}}
+                      </time>
+                      <Button @click="edit(item)" type="info">修改</Button>
+                      <Button @click="remove(item.id)" type="error">删除</Button>
+                    </span>
                   </th>
                 </tr>
                 <tr>
@@ -45,37 +46,37 @@
                     {{children.firstCompany}}
                   </td>
                   <td>
-                    <span class="yuan">¥</span><span class="integer">{{children.firstPrice}}</span>
+                    <span class="yuan">¥</span><span class="integer">{{children.firstPrice | unitPrice}}</span>
                   </td>
                   <td>
                     {{children.continuedCompany}}
                   </td>
                   <td class="bdr">
-                    <span class="yuan">¥</span><span class="integer">{{children.continuedPrice}}</span>
+                    <span class="yuan">¥</span><span class="integer">{{children.continuedPrice | unitPrice}}</span>
                   </td>
                 </tr>
-                </tbody>
-
-              </table>
-
-            </TabPane>
-            <TabPane v-if="csTab" :label=title :name=operation>
-              <Form ref="form" :model="form" :label-width="100" :rules="formValidate">
-                <FormItem label="模板名称" prop="name">
-                  <Input v-model="form.name" maxlength="10" clearable style="width: 20%"/>
-                </FormItem>
-                <FormItem label="计价方式" prop="pricingMethod">
-                  <RadioGroup type="button" button-style="solid" v-model="form.pricingMethod">
-                    <Radio label="WEIGHT">按重量</Radio>
-                    <Radio label="NUM">按件数</Radio>
-                  </RadioGroup>
-                </FormItem>
-                <FormItem label="详细设置">
-                  <div class="ncsu-trans-type" data-delivery="TRANSTYPE">
-                    <div class="entity">
-                      <div class="tbl-except">
-                        <table cellspacing="0" class="ncsc-default-table">
-                          <thead>
+              </tbody>
+
+            </table>
+
+          </TabPane>
+          <TabPane v-if="csTab" :label=title :name=operation>
+            <Form ref="form" :model="form" :label-width="100" :rules="formValidate">
+              <FormItem label="模板名称" prop="name">
+                <Input v-model="form.name" maxlength="10" clearable style="width: 20%" />
+              </FormItem>
+              <FormItem label="计价方式" prop="pricingMethod">
+                <RadioGroup type="button" button-style="solid" v-model="form.pricingMethod">
+                  <Radio label="WEIGHT">按重量</Radio>
+                  <Radio label="NUM">按件数</Radio>
+                </RadioGroup>
+              </FormItem>
+              <FormItem label="详细设置">
+                <div class="ncsu-trans-type" data-delivery="TRANSTYPE">
+                  <div class="entity">
+                    <div class="tbl-except">
+                      <table cellspacing="0" class="ncsc-default-table">
+                        <thead>
                           <tr style="border-bottom: 1px solid #ddd;">
                             <th class="w10"></th>
                             <th class="tl">运送到</th>
@@ -86,96 +87,72 @@
                             <th class="w110">续费</th>
                             <th class="w150">操作</th>
                           </tr>
-                          </thead>
-                          <tbody>
+                        </thead>
+                        <tbody>
                           <tr class="bd-line" data-group="n1" v-for="(item,index) in form.freightTemplateChildList">
                             <td></td>
                             <td class="tl cell-area">
-                                <span class="area-group">
-                                <p style="display:inline-block">{{item.area}}</p></span>
+                              <span class="area-group">
+                                <p style="display:inline-block;white-space:pre;">{{item.area}}</p>
+                              </span>
                             </td>
                             <td></td>
                             <td>
-                              <Input class="text w40" type="text" v-model="item.firstCompany" maxlength="3" clearable/>
+                              <Input class="text w40" type="text" v-model="item.firstCompany" maxlength="3" clearable />
                             </td>
                             <td>
-                              <Input class="text w60" type="text" v-model="item.firstPrice" maxlength="6" clearable/><em
-                              class="add-on">
-                              元
-                            </em>
+                              <Input class="text w60" type="text" v-model="item.firstPrice" maxlength="6" clearable /><em class="add-on">
+                                元
+                              </em>
                             </td>
                             <td>
-                              <Input class="text w40" type="text" v-model="item.continuedCompany" maxlength="6"
-                                     clearable/>
+                              <Input class="text w40" type="text" v-model="item.continuedCompany" maxlength="6" clearable />
                             </td>
                             <td>
-                              <Input class="text w60" type="text" v-model="item.continuedPrice" maxlength="6"
-                                     clearable/><em class="add-on">
-                              元
-                            </em>
+                              <Input class="text w60" type="text" v-model="item.continuedPrice" maxlength="6" clearable /><em class="add-on">
+                                元
+                              </em>
                             </td>
                             <td class="nscs-table-handle">
-                              <Button
-                                @click="editRegion(item)"
-                                type="info"
-                                size="small"
-                                style="margin-bottom: 5px"
-                              >修改
+                              <Button @click="editRegion(item,index)" type="info" size="small" style="margin-bottom: 5px">修改
                               </Button>
-                              <Button
-                                @click="removeTemplateChildren(index)"
-                                :loading="submitLoading"
-                                type="error"
-                                size="small"
-                                style="margin-bottom: 5px"
-                              >删除
+                              <Button @click="removeTemplateChildren(index)" :loading="submitLoading" type="error" size="small" style="margin-bottom: 5px">删除
                               </Button>
                             </td>
                           </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                      <div class="tbl-attach p-5">
-                        <div class="div-error" v-if="saveError">
-                          <i class="fa fa-exclamation-circle" aria-hidden="true"></i>
-                          <Icon type="ios-information-circle-outline"/>
-                          指定地区城市为空或指定错误
-                          <Icon type="ios-information-circle-outline"/>
-                          首费应输入正确的金额
-                          <Icon type="ios-information-circle-outline"/>
-                          续费应输入正确的金额
-                          <Icon type="ios-information-circle-outline"/>
-                          首(续)件(重)费应输入大于0的整数
-                        </div>
-                        <Button
-                          @click="addShipTemplateChildren(index)"
-                          :loading="submitLoading"
-                          type="info"
-                          size="small"
-                          icon="ios-create-outline"
-                          style="margin-bottom: 5px"
-                        >为指定城市设置运费模板
-                        </Button>
+                        </tbody>
+                      </table>
+                    </div>
+                    <div class="tbl-attach p-5">
+                      <div class="div-error" v-if="saveError">
+                        <i class="fa fa-exclamation-circle" aria-hidden="true"></i>
+                        <Icon type="ios-information-circle-outline" />
+                        指定地区城市为空或指定错误
+                        <Icon type="ios-information-circle-outline" />
+                        首费应输入正确的金额
+                        <Icon type="ios-information-circle-outline" />
+                        续费应输入正确的金额
+                        <Icon type="ios-information-circle-outline" />
+                        首(续)件(重)费应输入大于0的整数
                       </div>
+
                     </div>
                   </div>
-                </FormItem>
-                <Form-item>
-                  <Button
-                    @click="handleSubmit"
-                    :loading="submitLoading"
-                    type="primary"
-                    style="margin-right:5px"
-                  >保存
-                  </Button>
-                </Form-item>
-              </Form>
-            </TabPane>
-          </Tabs>
-        </Card>
+                </div>
+              </FormItem>
+              <Form-item>
+                <Button @click="addShipTemplateChildren(index)" :loading="submitLoading" icon="ios-create-outline" >为指定城市设置运费模板
+                </Button>
+                <Button @click="handleSubmit" :loading="submitLoading" type="primary" style="margin-right:5px">保存
+                </Button>
+              </Form-item>
+            </Form>
+          </TabPane>
+        </Tabs>
+      </Card>
       </Col>
     </Row>
-    <multiple-region ref="region" @selected="handleSelect"  @closed="handleClose">
+    <multiple-region ref="region" @selected="handleSelect" @closed="handleClose">
 
     </multiple-region>
 
@@ -183,401 +160,439 @@
 </template>
 
 <script>
-  import * as API_Shop from "@/api/shops";
-  import multipleRegion from "@/views/lili-components/multiple-region";
-
-
-  export default {
-    name: "shipTemplate",
-    components: {
-      multipleRegion
-    },
-
-    data() {
-      return {
-        item: "", //运费模板子模板
-        shipInfo: {}, // 运费模板数据
-        title: "添加运费模板", // 模态框标题
-        operation: "add", // 操作状态
-        currentTab: "", // 当前模板tab
-        saveError: false, // 是否显示错误提示
-        csTab: false, // 添加运费模板显示
-        form: {
-          // 添加或编辑表单对象初始化数据
-          name: "",
-          pricingMethod: "WEIGHT"
-        },
-        formValidate: {
-          name: [
-            {
-              required: true,
-              message: "请输入模板名称",
-              trigger: "blur",
-            },
-          ],
-          pricingMethod: [ // 计费方式
-            {
-              required: true,
-              message: "请选择计费方式",
-              trigger: "blur",
-            },
-          ],
-        },
-      };
-    },
-    methods: {
-      init() {
-        this.getData();
+import * as API_Shop from "@/api/shops";
+import multipleRegion from "@/views/lili-components/multiple-region";
+
+export default {
+  name: "shipTemplate",
+  components: {
+    multipleRegion,
+  },
+
+  data() {
+    return {
+      selectedIndex:0, //选中的地址模板下标
+      item: "", //运费模板子模板
+      shipInfo: {}, // 运费模板数据
+      title: "添加运费模板", // 模态框标题
+      operation: "add", // 操作状态
+      currentTab: "", // 当前模板tab
+      saveError: false, // 是否显示错误提示
+      csTab: false, // 添加运费模板显示
+      form: {
+        // 添加或编辑表单对象初始化数据
+        name: "",
+        pricingMethod: "WEIGHT",
       },
-      //切换tabPane
-      handleClickType(v) {
-        if (v == "INFO") {
-          this.getData();
-          this.csTab = false
-        }
+      formValidate: {
+        name: [
+          {
+            required: true,
+            message: "请输入模板名称",
+            trigger: "blur",
+          },
+        ],
+        pricingMethod: [
+          // 计费方式
+          {
+            required: true,
+            message: "请选择计费方式",
+            trigger: "blur",
+          },
+        ],
       },
-      //添加运费模板
-      add() {
-        this.title = "添加运费模板"
-        this.csTab = true
-        this.operation = "ADD"
-        this.currentTab = "ADD"
-        this.saveError = false;
-        this.form = {
-          pricingMethod: "WEIGHT",
-          name: "",
-          freightTemplateChildList: [{
+    };
+  },
+  methods: {
+    init() {
+      this.getData();
+    },
+    //切换tabPane
+    handleClickType(v) {
+      if (v == "INFO") {
+        this.getData();
+        this.csTab = false;
+      }
+    },
+    //添加运费模板
+    add() {
+      this.title = "添加运费模板";
+      this.csTab = true;
+      this.operation = "ADD";
+      this.currentTab = "ADD";
+      this.saveError = false;
+      this.form = {
+        pricingMethod: "WEIGHT",
+        name: "",
+        freightTemplateChildList: [
+          {
             area: "",
             areaId: "",
             firstCompany: "1",
             firstPrice: "",
             continuedCompany: "1",
-            continuedPrice: ""
-          }]
-
-        }
-
-      },
-      //修改运费模板
-      edit(item) {
-        this.title = "修改运费模板"
-        this.csTab = true
-        this.operation = "EDIT"
-        this.currentTab = "EDIT"
-        this.saveError = false;
-        //给form赋值
-        this.form = item
-      },
-      //选择地区
-      editRegion(item){
-        this.item = item
+            continuedPrice: "",
+            selectedAll:false
+          },
+        ],
+      };
+    },
+    //修改运费模板
+    edit(item) {
+      this.title = "修改运费模板";
+      this.csTab = true;
+      this.operation = "EDIT";
+      this.currentTab = "EDIT";
+      this.saveError = false;
+      //给form赋值
+      this.form = item;
+    },
+    //选择地区
+    editRegion(item,index) {
+      this.selectedIndex = index
+      this.item = item;
 
-        this.$refs.region.open(item)
-      },
-      //刷细数据
-      refresh() {
-        this.csTab = false
-        this.operation = "INFO"
-        this.currentTab = "INFO"
-        this.getData()
-      },
-      //运费模板数据
-      getData() {
-        API_Shop.getShipTemplate().then((res) => {
-          this.shipInfo = res.result
-        });
-      },
+      this.$store.state.shipTemplate =  this.form.freightTemplateChildList
+      this.$refs.region.open(item,index);
+    },
+    //刷细数据
+    refresh() {
+      this.csTab = false;
+      this.operation = "INFO";
+      this.currentTab = "INFO";
+      this.getData();
+    },
+    //运费模板数据
+    getData() {
+      API_Shop.getShipTemplate().then((res) => {
+        this.shipInfo = res.result;
+      });
+    },
 
-      handleSelect(v) {
-        let area = ""
-        let areaId= ""
-        if(v != ""){
-          v.forEach((child, index) => {
-            if(child.selectedList!=""){
-              child.selectedList.forEach((child, index) => {
-                area+=child.name +","
-                areaId+=child.id +","
-              })
+    /**
+     * 选择地址回调
+     */
+    handleSelect(v) {
+      console.log(v);
+      let area = "";
+      let areaId = "";
+      if (v != "") {
+        v.forEach((child) => {
+          if (child.selectedList != "") {
+            // 只显示省份
+
+            if(child.selectedAll ){
+                area += child.name + ","
+                this.form.freightTemplateChildList[this.selectedIndex].selectedAll = true
             }
-          })
-        }
-        this.item.area = area
-        this.item.areaId= areaId
-      },
-      //添加或者修改运费模板
-      handleSubmit() {
-        const headers = {
-          "Content-Type": "application/json;charset=utf-8"
-        }
 
-        this.$refs.form.validate((valid) => {
-          const regNumber = /^\+?[1-9][0-9]*$/;
-          const regMoney = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
-          if (valid) {
-            //校验运费模板详细信息
-            for (let i = 0; i < this.form.freightTemplateChildList.length; i++) {
-              if (this.form.freightTemplateChildList[i].area == ""
-                || this.form.freightTemplateChildList[i].firstCompany == ""
-                || this.form.freightTemplateChildList[i].firstPrice == ""
-                || this.form.freightTemplateChildList[i].continuedCompany == ""
-                || this.form.freightTemplateChildList[i].continuedPrice == "") {
-                this.saveError = true;
-                return
-              }
-              if (regNumber.test(this.form.freightTemplateChildList[i].firstCompany) == false
-                || regNumber.test(this.form.freightTemplateChildList[i].continuedCompany) == false
-                || regMoney.test(this.form.freightTemplateChildList[i].firstPrice) == false
-                || regMoney.test(this.form.freightTemplateChildList[i].continuedPrice) == false) {
-                this.saveError = true;
+            child.selectedList.forEach((son) => {
+              if (child.selectedAll) {
+                areaId += son.id + ",";
                 return;
+              } else {
+                // 显示城市
+                area += son.name + ",";
+                areaId += son.id + ",";
               }
+            });
+          }
+        });
+      }
+      this.item.area = area;
+      this.item.areaId = areaId;
+    },
+    //添加或者修改运费模板
+    handleSubmit() {
+      const headers = {
+        "Content-Type": "application/json;charset=utf-8",
+      };
+
+      this.$refs.form.validate((valid) => {
+        const regNumber = /^\+?[1-9][0-9]*$/;
+        const regMoney = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
+        if (valid) {
+          //校验运费模板详细信息
+          for (let i = 0; i < this.form.freightTemplateChildList.length; i++) {
+            if (
+              this.form.freightTemplateChildList[i].area == "" ||
+              this.form.freightTemplateChildList[i].firstCompany == "" ||
+              this.form.freightTemplateChildList[i].firstPrice == "" ||
+              this.form.freightTemplateChildList[i].continuedCompany == "" ||
+              this.form.freightTemplateChildList[i].continuedPrice == ""
+            ) {
+              this.saveError = true;
+              return;
             }
-            if (this.operation == "ADD") {
-              API_Shop.addShipTemplate(this.form, headers).then((res) => {
-                if (res.success) {
-                  this.$Message.success("新增成功");
-                  this.operation = "INFO"
-                  this.currentTab = "INFO"
-                  this.csTab = false
-                  this.getData()
-                }
-              });
-            } else {
-              API_Shop.editShipTemplate(this.form.id, this.form, headers).then((res) => {
-                if (res.success) {
-                  this.$Message.success("新增成功");
-                  this.operation = "INFO"
-                  this.currentTab = "INFO"
-                  this.csTab = false
-                  this.getData()
-                }
-              });
+            if (
+              regNumber.test(
+                this.form.freightTemplateChildList[i].firstCompany
+              ) == false ||
+              regNumber.test(
+                this.form.freightTemplateChildList[i].continuedCompany
+              ) == false ||
+              regMoney.test(this.form.freightTemplateChildList[i].firstPrice) ==
+                false ||
+              regMoney.test(
+                this.form.freightTemplateChildList[i].continuedPrice
+              ) == false
+            ) {
+              this.saveError = true;
+              return;
             }
           }
-        })
-      },
-      //添加子模板
-      addShipTemplateChildren() {
-        const params = {
-          area: '',
-          areaId: "",
-          firstCompany: '1',
-          firstPrice: '',
-          continuedCompany: '1',
-          continuedPrice: ''
-        }
-        this.form.freightTemplateChildList.push(params)
-      },
-      //删除一个子模板
-      removeTemplateChildren(index) {
-        if (Object.keys(this.form.freightTemplateChildList).length == 1) {
-          this.$Message.success("必须保留一个子模板");
-          return
-        }
-        this.form.freightTemplateChildList.splice(index, 1);
-      },
-      //删除运费模板
-      remove(id) {
-        this.$Modal.confirm({
-          title: "确认删除",
-          // 记得确认修改此处
-          content: "您确认要删除此运费模板 ?",
-          loading: true,
-          onOk: () => {
-            API_Shop.deleteShipTemplate(id).then((res) => {
+          if (this.operation == "ADD") {
+            API_Shop.addShipTemplate(this.form, headers).then((res) => {
               if (res.success) {
-                this.$Message.success("删除成功");
+                this.$Message.success("新增成功");
+                this.operation = "INFO";
+                this.currentTab = "INFO";
+                this.csTab = false;
+                this.getData();
               }
-              this.$Modal.remove();
-              this.getData();
             });
-
-
+          } else {
+            API_Shop.editShipTemplate(this.form.id, this.form, headers).then(
+              (res) => {
+                if (res.success) {
+                  this.$Message.success("新增成功");
+                  this.operation = "INFO";
+                  this.currentTab = "INFO";
+                  this.csTab = false;
+                  this.getData();
+                }
+              }
+            );
           }
-        });
+        }
+      });
+    },
+    //添加子模板
+    addShipTemplateChildren() {
+      const params = {
+        area: "",
+        areaId: "",
+        firstCompany: "1",
+        firstPrice: "",
+        continuedCompany: "1",
+        continuedPrice: "",
+        selectedAll:false
+      };
+      this.form.freightTemplateChildList.push(params);
+    },
+    //删除一个子模板
+    removeTemplateChildren(index) {
+      if (Object.keys(this.form.freightTemplateChildList).length == 1) {
+        this.$Message.error("必须保留一个子模板");
+        return;
       }
-
-
+      this.form.freightTemplateChildList.splice(index, 1);
     },
-    mounted() {
-      this.init();
+    //删除运费模板
+    remove(id) {
+      this.$Modal.confirm({
+        title: "确认删除",
+        // 记得确认修改此处
+        content: "您确认要删除此运费模板 ?",
+        loading: true,
+        onOk: () => {
+          API_Shop.deleteShipTemplate(id).then((res) => {
+            if (res.success) {
+              this.$Message.success("删除成功");
+            }
+            this.$Modal.remove();
+            this.getData();
+          });
+        },
+      });
     },
-  };
+  },
+  mounted() {
+    this.init();
+  },
+};
 </script>
 <style lang="scss" scoped>
-  .ncsc-default-table thead th {
-    line-height: 20px;
-    color: #555;
-    background-color: #FAFAFA;
-    text-align: center;
-    height: 20px;
-    padding: 9px 0;
-    border-bottom: solid 1px #DDD;
-  }
-
-  .ncsc-default-table {
-    line-height: 20px;
-    width: 100%;
-    border-collapse: collapse;
-
-    tbody th {
-      background-color: #FAFAFA;
-      border: solid #E6E6E6;
-      border-width: 1px 0;
-      padding: 4px 0;
-
-    }
-
-    tbody td {
-      color: #999;
-      background-color: #FFF;
-      text-align: center;
-      padding: 6px 0;
-    }
-  }
-
-
-  .order tbody tr td {
-    border-bottom: 1px solid #E6E6E6;
-    vertical-align: top;
-  }
-
-  .order tbody tr td.bdr {
-    border-right: 1px solid #E6E6E6;
-  }
-
-  .order tbody tr th {
-    border: solid 1px #DDD;
-  }
-
-  .order tbody tr td.sep-row {
-    height: 14px;
-    border: 0;
-  }
-
-  .w10 {
-    width: 10px !important;
-  }
-
-  .tl {
-    text-align: left !important;
-  }
-
-  .order tbody tr td.bdl {
-    border-left: 1px solid #E6E6E6;
-  }
-
-  .order tbody tr th h3 {
-    font-size: 14px;
-    line-height: 20px;
-    color: #555;
-    vertical-align: middle;
-    display: inline-block;
-    margin: 0 10px;
-  }
-
-  .m-r-5 {
-    margin-right: 5px !important;
-  }
-
-  .fr {
-    float: right !important;
-  }
-
-  .m-b-30 {
-    margin-bottom: 10px !important;
+.ncsc-default-table thead th {
+  line-height: 20px;
+  color: #555;
+  background-color: #fafafa;
+  text-align: center;
+  height: 20px;
+  padding: 9px 0;
+  border-bottom: solid 1px #ddd;
+}
+
+.ncsc-default-table {
+  line-height: 20px;
+  width: 100%;
+  border-collapse: collapse;
+
+  tbody th {
+    background-color: #fafafa;
+    border: solid #e6e6e6;
+    border-width: 1px 0;
+    padding: 4px 0;
   }
 
-  Button {
-    margin: 3px 5px 0px 5px;
-  }
-
-  thead {
-    display: table-header-group;
-    vertical-align: middle;
-    border-color: inherit;
-  }
-
-  tr {
-    display: table-row;
-    vertical-align: inherit;
-    border-color: inherit;
-  }
-
-  caption, th {
-    text-align: left;
-  }
-
-  .tl {
-    text-align: left !important;
-  }
-
-  colgroup {
-    display: table-column-group;
-  }
-
-  button, input, select, textarea {
-    font-family: inherit;
-    font-size: inherit;
-    line-height: inherit;
-  }
-
-  .bd-line td {
-    border-bottom: solid 1px #EEE;
-  }
-
-  .w40 {
-    width: 60px !important;
-  }
-
-  .w60 {
-    width: 80px !important;
-  }
-
-  Input[type="text"], Input[type="password"], Input.text, Input.password {
-    display: inline-block;
-    min-height: 20px;
-    padding: 10px;
-    border: solid 1px #E6E9EE;
-    outline: 0 none;
-  }
-
-  .add-on {
-    line-height: 28px;
-    background-color: #F6F7Fb;
-    vertical-align: top;
-    display: inline-block;
+  tbody td {
+    color: #999;
+    background-color: #fff;
     text-align: center;
-    width: 30px;
-    height: 30px;
-    border: solid #E6E9EE;
-    border-width: 1px 1px 1px 0;
-  }
-
-  ncsc-default-table {
-    line-height: 20px;
-    width: 100%;
-    border-collapse: collapse;
-    clear: both;
-  }
-
-  .ncsu-trans-type {
-    background-color: #FFF;
-    border: solid #DDD 1px;
-  }
-
-  i, cite, em {
-    font-style: normal;
-  }
-
-  .cell-area {
-    width: 50%;
-  }
-
-  .div-error {
-    margin-left: 7px;
-    margin-bottom: -8px;
-    font-size: 15px;
-    color: #F00;
+    padding: 6px 0;
   }
+}
+
+.order tbody tr td {
+  border-bottom: 1px solid #e6e6e6;
+  vertical-align: top;
+}
+
+.order tbody tr td.bdr {
+  border-right: 1px solid #e6e6e6;
+}
+
+.order tbody tr th {
+  border: solid 1px #ddd;
+}
+
+.order tbody tr td.sep-row {
+  height: 14px;
+  border: 0;
+}
+
+.w10 {
+  width: 10px !important;
+}
+
+.tl {
+  text-align: left !important;
+}
+
+.order tbody tr td.bdl {
+  border-left: 1px solid #e6e6e6;
+}
+
+.order tbody tr th h3 {
+  font-size: 14px;
+  line-height: 20px;
+  color: #555;
+  vertical-align: middle;
+  display: inline-block;
+  margin: 0 10px;
+}
+
+.m-r-5 {
+  margin-right: 5px !important;
+}
+
+.fr {
+  float: right !important;
+}
+
+.m-b-30 {
+  margin-bottom: 10px !important;
+}
+
+Button {
+  margin: 3px 5px 0px 5px;
+}
+
+thead {
+  display: table-header-group;
+  vertical-align: middle;
+  border-color: inherit;
+}
+
+tr {
+  display: table-row;
+  vertical-align: inherit;
+  border-color: inherit;
+}
+
+caption,
+th {
+  text-align: left;
+}
+
+.tl {
+  text-align: left !important;
+}
+
+colgroup {
+  display: table-column-group;
+}
+
+button,
+input,
+select,
+textarea {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+.bd-line td {
+  border-bottom: solid 1px #eee;
+}
+
+.w40 {
+  width: 60px !important;
+}
+
+.w60 {
+  width: 80px !important;
+}
+
+Input[type="text"],
+Input[type="password"],
+Input.text,
+Input.password {
+  display: inline-block;
+  min-height: 20px;
+  padding: 10px;
+  border: solid 1px #e6e9ee;
+  outline: 0 none;
+}
+
+.add-on {
+  line-height: 28px;
+  background-color: #f6f7fb;
+  vertical-align: top;
+  display: inline-block;
+  text-align: center;
+  width: 30px;
+  height: 30px;
+  border: solid #e6e9ee;
+  border-width: 1px 1px 1px 0;
+}
+
+ncsc-default-table {
+  line-height: 20px;
+  width: 100%;
+  border-collapse: collapse;
+  clear: both;
+}
+
+.ncsu-trans-type {
+  background-color: #fff;
+  border: solid #ddd 1px;
+}
+
+i,
+cite,
+em {
+  font-style: normal;
+}
+
+.cell-area {
+  width: 50%;
+}
+
+.div-error {
+  margin-left: 7px;
+  margin-bottom: -8px;
+  font-size: 15px;
+  color: #f00;
+}
 </style>

+ 2 - 4
seller/src/views/statistics/order.vue

@@ -68,7 +68,7 @@
                 </div>
                 <div class="card-item">
                   <div class="card-item-label">退单金额</div>
-                  <div class="card-item-value">{{overViewList.refundOrderPrice || 0}}</div>
+                  <div class="card-item-value">{{overViewList.refundOrderPrice || 0 | unitPrice('¥')}}</div>
                 </div>
 
               </div>
@@ -333,9 +333,7 @@ export default {
           key: "applyRefundPrice",
           render: (h, params) => {
             return h(
-              "div",
-              "¥" +
-                (params.row.applyRefundPrice ? params.row.applyRefundPrice : 0)
+              "div", this.$options.filters.unitPrice(params.row.applyRefundPrice, '¥')
             );
           },
         },

+ 1 - 1
seller/src/views/statistics/order/orderStatistics.vue

@@ -51,7 +51,7 @@
                 <span style="font-size: 14px;">总金额</span>
               </p>
               <p class="static-num">
-                {{ priceData.price | unitPrice }}
+                {{ priceData.price | unitPrice('¥') }}
               </p>
             </div>
           </div>