Merge branch 'master' into dev-ryan
commit
7d5e1811ab
|
@ -14,9 +14,10 @@
|
||||||
"js-cookie": "^2.2.1",
|
"js-cookie": "^2.2.1",
|
||||||
"less": "^3.12.2",
|
"less": "^3.12.2",
|
||||||
"less-loader": "^5.0.0",
|
"less-loader": "^5.0.0",
|
||||||
|
"mv-count-down": "^0.1.15",
|
||||||
"psl": "^1.8.0",
|
"psl": "^1.8.0",
|
||||||
"qs": "^6.9.4",
|
"qs": "^6.9.4",
|
||||||
"swiper": "^6.4.1",
|
"swiper": "^5.2.0",
|
||||||
"uuid": "^8.3.2",
|
"uuid": "^8.3.2",
|
||||||
"v-distpicker": "^1.0.17",
|
"v-distpicker": "^1.0.17",
|
||||||
"view-design": "^4.3.2",
|
"view-design": "^4.3.2",
|
||||||
|
|
Binary file not shown.
|
@ -11,4 +11,6 @@
|
||||||
<glyph unicode="" glyph-name="next" horiz-adv-x="1025" d="M1024.951 448c0 2.706-1.097 5.193-1.536 7.826-0.585 3.145-0.658 6.363-1.902 9.362l-0.146 0.366c-1.682 3.95-4.389 7.314-7.022 10.606-1.024 1.317-1.463 2.926-2.706 4.096 0 0-0.146 0-0.146 0.146l-241.591 240.274c-8.15 7.642-19.145 12.336-31.236 12.336-25.247 0-45.714-20.467-45.714-45.714 0-12.218 4.793-23.317 12.602-31.518l-0.018 0.019 162.889-162.085h-821.76c-25.247 0-45.714-20.467-45.714-45.714s20.467-45.714 45.714-45.714h821.76l-162.889-162.085c-8.921-8.364-14.479-20.222-14.479-33.379 0-25.247 20.467-45.714 45.714-45.714 13.029 0 24.785 5.451 33.112 14.196l0.018 0.019 241.737 240.421c1.17 1.243 1.682 2.779 2.706 4.096 2.633 3.291 5.339 6.583 7.022 10.606l0.146 0.366c1.243 2.926 1.317 6.217 1.902 9.362 0.439 2.633 1.463 5.12 1.463 7.753v0.073c0 0.073 0 0 0 0z" />
|
<glyph unicode="" glyph-name="next" horiz-adv-x="1025" d="M1024.951 448c0 2.706-1.097 5.193-1.536 7.826-0.585 3.145-0.658 6.363-1.902 9.362l-0.146 0.366c-1.682 3.95-4.389 7.314-7.022 10.606-1.024 1.317-1.463 2.926-2.706 4.096 0 0-0.146 0-0.146 0.146l-241.591 240.274c-8.15 7.642-19.145 12.336-31.236 12.336-25.247 0-45.714-20.467-45.714-45.714 0-12.218 4.793-23.317 12.602-31.518l-0.018 0.019 162.889-162.085h-821.76c-25.247 0-45.714-20.467-45.714-45.714s20.467-45.714 45.714-45.714h821.76l-162.889-162.085c-8.921-8.364-14.479-20.222-14.479-33.379 0-25.247 20.467-45.714 45.714-45.714 13.029 0 24.785 5.451 33.112 14.196l0.018 0.019 241.737 240.421c1.17 1.243 1.682 2.779 2.706 4.096 2.633 3.291 5.339 6.583 7.022 10.606l0.146 0.366c1.243 2.926 1.317 6.217 1.902 9.362 0.439 2.633 1.463 5.12 1.463 7.753v0.073c0 0.073 0 0 0 0z" />
|
||||||
<glyph unicode="" glyph-name="qq" d="M512 929.009c-265.653 0-480.989-215.345-480.989-481.012 0-265.662 215.335-481.006 480.989-481.006s480.989 215.345 480.989 481.006c-0.001 265.668-215.335 481.012-480.989 481.012v0zM776.822 298.086c-12.422-11.596-33.749 1.033-54.249 29.4-8.901-24.019-20.497-46.171-33.956-66.051 28.987-10.353 47.626-26.505 47.626-44.726 0-31.473-55.699-56.942-124.443-56.942-40.79 0-76.819 8.899-99.593 22.777-22.565-13.877-58.799-22.777-99.59-22.777-68.745 0-124.443 25.469-124.443 56.942 0 18.014 18.637 34.373 47.626 44.726-13.666 19.877-25.056 42.033-33.959 66.051-20.496-28.156-41.822-40.997-54.249-29.4-16.978 15.94-10.555 72.263 14.702 125.688 5.799 12.215 12.010 23.188 18.428 32.716 3.518 155.297 105.805 279.947 231.281 279.947h0.413c125.475 0 227.762-124.443 231.281-279.947 6.417-9.527 12.634-20.501 18.427-32.716 25.055-53.425 31.684-109.748 14.701-125.688v0z" />
|
<glyph unicode="" glyph-name="qq" d="M512 929.009c-265.653 0-480.989-215.345-480.989-481.012 0-265.662 215.335-481.006 480.989-481.006s480.989 215.345 480.989 481.006c-0.001 265.668-215.335 481.012-480.989 481.012v0zM776.822 298.086c-12.422-11.596-33.749 1.033-54.249 29.4-8.901-24.019-20.497-46.171-33.956-66.051 28.987-10.353 47.626-26.505 47.626-44.726 0-31.473-55.699-56.942-124.443-56.942-40.79 0-76.819 8.899-99.593 22.777-22.565-13.877-58.799-22.777-99.59-22.777-68.745 0-124.443 25.469-124.443 56.942 0 18.014 18.637 34.373 47.626 44.726-13.666 19.877-25.056 42.033-33.959 66.051-20.496-28.156-41.822-40.997-54.249-29.4-16.978 15.94-10.555 72.263 14.702 125.688 5.799 12.215 12.010 23.188 18.428 32.716 3.518 155.297 105.805 279.947 231.281 279.947h0.413c125.475 0 227.762-124.443 231.281-279.947 6.417-9.527 12.634-20.501 18.427-32.716 25.055-53.425 31.684-109.748 14.701-125.688v0z" />
|
||||||
<glyph unicode="" glyph-name="wechat" d="M579.6 448.4c-11.7 0-23.4-10.8-23.4-24.2 0-10.8 11.7-21.7 23.4-21.7 17.5 0 30 10.8 30 21.7 0 13.4-12.5 24.2-30 24.2zM502.8 561c18.4 0 30 11.7 30 29.2 0 18.4-11.7 29.2-30 29.2-17.5 0-34.2-10.8-34.2-29.2 0-17.5 16.7-29.2 34.2-29.2zM512 960c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM415.2 318.3c-30.9 0-53.4 5-82.6 13.3l-84.3-42.5 24.2 71.7c-59.2 41.7-94.3 94.3-94.3 158.5 0 113.5 106.8 200.2 236.9 200.2 115.1 0 217.7-68.4 237.7-165.2-8.3 1.7-15.9 2.5-22.5 2.5-113.5 0-201-85.1-201-187.7 0-17.5 2.5-33.4 6.7-50.1-6.6-0.7-14.1-0.7-20.8-0.7zM763.1 236.5l16.7-60.1-63.4 35.9c-24.2-5-47.5-12.5-71.7-12.5-111.8 0-200.2 76.7-200.2 171.8s88.4 171.8 200.2 171.8c105.9 0 201-76.7 201-171.8 0-53.3-35.9-100.9-82.6-135.1zM337.7 619.4c-17.5 0-35.9-10.8-35.9-29.2 0-17.5 18.4-29.2 35.9-29.2 16.7 0 30 11.7 30 29.2 0 18.4-13.4 29.2-30 29.2zM710.5 448.4c-12.5 0-23.4-10.8-23.4-24.2 0-10.8 10.8-21.7 23.4-21.7 16.7 0 29.2 10.8 29.2 21.7 0 13.4-12.5 24.2-29.2 24.2z" />
|
<glyph unicode="" glyph-name="wechat" d="M579.6 448.4c-11.7 0-23.4-10.8-23.4-24.2 0-10.8 11.7-21.7 23.4-21.7 17.5 0 30 10.8 30 21.7 0 13.4-12.5 24.2-30 24.2zM502.8 561c18.4 0 30 11.7 30 29.2 0 18.4-11.7 29.2-30 29.2-17.5 0-34.2-10.8-34.2-29.2 0-17.5 16.7-29.2 34.2-29.2zM512 960c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM415.2 318.3c-30.9 0-53.4 5-82.6 13.3l-84.3-42.5 24.2 71.7c-59.2 41.7-94.3 94.3-94.3 158.5 0 113.5 106.8 200.2 236.9 200.2 115.1 0 217.7-68.4 237.7-165.2-8.3 1.7-15.9 2.5-22.5 2.5-113.5 0-201-85.1-201-187.7 0-17.5 2.5-33.4 6.7-50.1-6.6-0.7-14.1-0.7-20.8-0.7zM763.1 236.5l16.7-60.1-63.4 35.9c-24.2-5-47.5-12.5-71.7-12.5-111.8 0-200.2 76.7-200.2 171.8s88.4 171.8 200.2 171.8c105.9 0 201-76.7 201-171.8 0-53.3-35.9-100.9-82.6-135.1zM337.7 619.4c-17.5 0-35.9-10.8-35.9-29.2 0-17.5 18.4-29.2 35.9-29.2 16.7 0 30 11.7 30 29.2 0 18.4-13.4 29.2-30 29.2zM710.5 448.4c-12.5 0-23.4-10.8-23.4-24.2 0-10.8 10.8-21.7 23.4-21.7 16.7 0 29.2 10.8 29.2 21.7 0 13.4-12.5 24.2-29.2 24.2z" />
|
||||||
|
<glyph unicode="" glyph-name="qrcode" d="M445.077 845.495h-290.715c-20.056 0-36.327-16.27-36.327-36.327v-290.715c0-20.056 16.27-36.327 36.327-36.327h290.715c20.056 0 36.327 16.27 36.327 36.327v290.613c0 20.056-16.27 36.429-36.327 36.429zM449.784 518.351c0-2.558-2.149-4.707-4.707-4.707h-290.715c-2.558 0-4.707 2.149-4.707 4.707v290.715c0 2.558 2.149 4.707 4.707 4.707h290.715c2.558 0 4.707-2.149 4.707-4.707v-290.715zM350.219 737.231h-101.1c-12.689 0-22.922-10.335-22.922-22.922v-101.1c0-12.689 10.335-22.922 22.922-22.922h101.1c12.689 0 22.922 10.335 22.922 22.922v101.1c0.102 12.586-10.233 22.922-22.922 22.922zM341.521 621.907h-83.705v83.705h83.705v-83.705zM350.219 306.122h-101.1c-12.689 0-22.922-10.335-22.922-22.922v-101.1c0-12.689 10.335-22.922 22.922-22.922h101.1c12.689 0 22.922 10.335 22.922 22.922v101.1c0.102 12.689-10.233 22.922-22.922 22.922zM341.521 190.798h-83.705v83.705h83.705v-83.705zM673.474 590.288h101.1c12.689 0 22.922 10.335 22.922 22.922v101.1c0 12.689-10.335 22.922-22.922 22.922h-101.1c-12.689 0-22.922-10.335-22.922-22.922v-101.1c0-12.689 10.233-22.922 22.922-22.922zM682.172 705.612h83.705v-83.705h-83.705v83.705zM445.077 417.148h-290.715c-20.056 0-36.327-16.27-36.327-36.327v-290.715c0-20.056 16.27-36.327 36.327-36.327h290.715c20.056 0 36.327 16.27 36.327 36.327v290.715c0 20.056-16.27 36.327-36.327 36.327zM449.784 90.107c0-2.558-2.149-4.707-4.707-4.707h-290.715c-2.558 0-4.707 2.149-4.707 4.707v290.715c0 2.558 2.149 4.707 4.707 4.707h290.715c2.558 0 4.707-2.149 4.707-4.707v-290.715zM580.458 416.022c-20.056 0-36.327-16.27-36.327-36.327v-167.205c0-8.698 7.061-15.861 15.861-15.861 8.698 0 15.861 7.061 15.861 15.861v167.102c0 2.558 2.149 4.707 4.707 4.707h176.005c8.698 0 15.861 7.061 15.861 15.861s-7.061 15.861-15.861 15.861h-176.107zM578.616 482.024h290.715c20.056 0 36.327 16.27 36.327 36.327v290.715c0 20.056-16.27 36.327-36.327 36.327h-290.715c-20.056 0-36.327-16.27-36.327-36.327v-290.715c0-19.954 16.373-36.327 36.327-36.327zM574.011 809.066c0 2.558 2.149 4.707 4.707 4.707h290.715c2.558 0 4.707-2.149 4.707-4.707v-290.715c0-2.558-2.149-4.707-4.707-4.707h-290.817c-2.558 0-4.707 2.149-4.707 4.707v290.715h0.102zM905.964 400.161c0 8.698-7.061 15.861-15.861 15.861h-58.020c-8.698 0-15.861-7.061-15.861-15.861s7.061-15.861 15.861-15.861h42.159v-60.988h-131.492c-8.698 0-15.861-7.061-15.861-15.861 0-8.698 7.061-15.861 15.861-15.861h147.353c8.698 0 15.861 7.061 15.861 15.861v92.71zM614.226 84.888h-38.475v44.104c0 8.698-7.061 15.861-15.861 15.861s-15.861-7.061-15.861-15.861v-59.862c0-8.698 7.061-15.861 15.861-15.861h54.336c8.698 0 15.861 7.061 15.861 15.861 0 8.698-7.061 15.759-15.861 15.759zM789.412 207.579c0 8.698-7.061 15.861-15.861 15.861h-99.975c-8.698 0-15.861-7.061-15.861-15.861v-140.088c0-8.698 7.061-15.861 15.861-15.861s15.861 7.061 15.861 15.861v124.227h84.114c8.8 0 15.861 7.061 15.861 15.861zM890.001 265.088c-8.698 0-15.861-7.061-15.861-15.861v-166.898h-143.26c-8.698 0-15.861-7.061-15.861-15.861 0-8.698 7.061-15.861 15.861-15.861h159.018c8.698 0 15.861 7.061 15.861 15.861v182.758c0 8.8-7.061 15.861-15.759 15.861zM636.431 350.839c-8.698 0-15.861-7.061-15.861-15.861v-51.471c0-8.698 7.061-15.861 15.861-15.861 8.698 0 15.861 7.061 15.861 15.861v51.471c0 8.8-7.163 15.861-15.861 15.861z" />
|
||||||
|
<glyph unicode="" glyph-name="uniE905" horiz-adv-x="1055" d="M745.891 349.28c0-26.168 21.214-47.382 47.382-47.382s47.382 21.214 47.382 47.382c0 26.168-21.214 47.382-47.382 47.382v0c-26.168 0-47.382-21.214-47.382-47.382v0zM759.195 244.935c-44.978 0.149-81.399 36.571-81.548 81.534v52.143c0.149 44.978 36.571 81.399 81.534 81.548h296.231v168.518c-0.149 44.978-36.571 81.399-81.534 81.548h-892.329c-44.978-0.149-81.399-36.571-81.548-81.534v-611.144c0.149-44.978 36.571-81.399 81.534-81.548h892.329c44.978 0.149 81.399 36.571 81.548 81.534v227.4zM905.15 762.004l-86.061 155.918c-14.23 25.257-40.876 42.035-71.44 42.035-14.412 0-27.953-3.731-39.71-10.279l0.416 0.213-339.907-187.887z" />
|
||||||
</font></defs></svg>
|
</font></defs></svg>
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 8.0 KiB |
Binary file not shown.
Binary file not shown.
|
@ -1,10 +1,10 @@
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'icomoon';
|
font-family: 'icomoon';
|
||||||
src: url('icomoon.eot?4ejtdc');
|
src: url('icomoon.eot?jvagvf');
|
||||||
src: url('icomoon.eot?4ejtdc#iefix') format('embedded-opentype'),
|
src: url('icomoon.eot?jvagvf#iefix') format('embedded-opentype'),
|
||||||
url('icomoon.ttf?4ejtdc') format('truetype'),
|
url('icomoon.ttf?jvagvf') format('truetype'),
|
||||||
url('icomoon.woff?4ejtdc') format('woff'),
|
url('icomoon.woff?jvagvf') format('woff'),
|
||||||
url('icomoon.svg?4ejtdc#icomoon') format('svg');
|
url('icomoon.svg?jvagvf#icomoon') format('svg');
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: block;
|
font-display: block;
|
||||||
|
@ -25,6 +25,14 @@
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-wallet:before {
|
||||||
|
content: "\e905";
|
||||||
|
color: #3c56c6;
|
||||||
|
}
|
||||||
|
.icon-qrcode:before {
|
||||||
|
content: "\e904";
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
.icon-customer-service:before {
|
.icon-customer-service:before {
|
||||||
content: "\e900";
|
content: "\e900";
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- 满减展示 -->
|
<!-- 满减展示 -->
|
||||||
<div class="item-price-row" v-if="promotionMap['FULL_DISCOUNT']">
|
<div class="item-price-row" v-if="promotionMap['FULL_DISCOUNT']">
|
||||||
<p>
|
<p>
|
||||||
<span class="item-price-title">促 销</span>
|
<span class="item-price-title">促 销</span>
|
||||||
|
@ -111,7 +111,7 @@
|
||||||
<span class="inventory"> 库存{{skuDetail.quantity}}</span>
|
<span class="inventory"> 库存{{skuDetail.quantity}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-select">
|
<div class="item-select" v-if="skuDetail.goodsType !== 'VIRTUAL_GOODS'">
|
||||||
<div class="item-select-title">
|
<div class="item-select-title">
|
||||||
<p>重量</p>
|
<p>重量</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -119,11 +119,11 @@
|
||||||
<span class="inventory"> {{skuDetail.weight}}kg</span>
|
<span class="inventory"> {{skuDetail.weight}}kg</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="add-buy-car" v-if="$route.query.way === 'POINT'">
|
<div class="add-buy-car" v-if="$route.query.way === 'POINT' && skuDetail.isAuth === 'PASS'">
|
||||||
<Button type="error" :loading="loading" :disabled="skuDetail.quantity === 0" @click="pointPay">积分购买</Button>
|
<Button type="error" :loading="loading" :disabled="skuDetail.quantity === 0" @click="pointPay">积分购买</Button>
|
||||||
</div>
|
</div>
|
||||||
<div class="add-buy-car" v-else>
|
<div class="add-buy-car" v-if="$route.query.way !== 'POINT' && skuDetail.isAuth === 'PASS'">
|
||||||
<Button type="error" :loading="loading" :disabled="skuDetail.quantity === 0" @click="addShoppingCartBtn">加入购物车</Button>
|
<Button type="error" v-if="skuDetail.goodsType !== 'VIRTUAL_GOODS'" :loading="loading" :disabled="skuDetail.quantity === 0" @click="addShoppingCartBtn">加入购物车</Button>
|
||||||
<Button type="warning" :loading="loading1" :disabled="skuDetail.quantity === 0" @click="buyNow">立即购买</Button>
|
<Button type="warning" :loading="loading1" :disabled="skuDetail.quantity === 0" @click="buyNow">立即购买</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ export default {
|
||||||
count: 1, // 商品数量
|
count: 1, // 商品数量
|
||||||
imgIndex: 0, // 展示图片下标
|
imgIndex: 0, // 展示图片下标
|
||||||
currentSelceted: [], // 当前商品sku
|
currentSelceted: [], // 当前商品sku
|
||||||
imgList: this.detail.data.specList[0].specImage, // 商品图片列表
|
imgList: this.detail.data.specList[0].specImage || [], // 商品图片列表
|
||||||
skuDetail: this.detail.data, // sku详情
|
skuDetail: this.detail.data, // sku详情
|
||||||
goodsSpecList: this.detail.specs, // 商品spec
|
goodsSpecList: this.detail.specs, // 商品spec
|
||||||
promotionMap: { // 活动状态
|
promotionMap: { // 活动状态
|
||||||
|
@ -199,7 +199,6 @@ export default {
|
||||||
skuId: this.skuDetail.id
|
skuId: this.skuDetail.id
|
||||||
};
|
};
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
console.log(11111111);
|
|
||||||
addCartGoods(params).then(res => {
|
addCartGoods(params).then(res => {
|
||||||
debugger;
|
debugger;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
@ -219,11 +218,15 @@ export default {
|
||||||
skuId: this.skuDetail.id,
|
skuId: this.skuDetail.id,
|
||||||
cartType: 'BUY_NOW'
|
cartType: 'BUY_NOW'
|
||||||
};
|
};
|
||||||
|
// 虚拟商品购买
|
||||||
|
if (this.skuDetail.goodsType === 'VIRTUAL_GOODS') {
|
||||||
|
params.cartType = 'VIRTUAL'
|
||||||
|
}
|
||||||
this.loading1 = true;
|
this.loading1 = true;
|
||||||
addCartGoods(params).then(res => {
|
addCartGoods(params).then(res => {
|
||||||
this.loading1 = false;
|
this.loading1 = false;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$router.push({path: '/pay', query: {way: 'BUY_NOW'}});
|
this.$router.push({path: '/pay', query: {way: params.cartType}});
|
||||||
} else {
|
} else {
|
||||||
this.$Message.warning(res.message);
|
this.$Message.warning(res.message);
|
||||||
}
|
}
|
||||||
|
@ -324,6 +327,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
promotion () { // 格式化促销活动,返回当前促销的对象
|
promotion () { // 格式化促销活动,返回当前促销的对象
|
||||||
|
if (!this.detail.promotionMap) return false;
|
||||||
let keysArr = Object.keys(this.detail.promotionMap);
|
let keysArr = Object.keys(this.detail.promotionMap);
|
||||||
if (keysArr.length === 0) return false;
|
if (keysArr.length === 0) return false;
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,14 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
|
<TabPane label="商品参数">
|
||||||
|
<table class="mt_10" border="1" cellpadding='0' cellspacing="0" v-if="skuDetail.goodsParamsList && skuDetail.length">
|
||||||
|
<tr v-for="param in skuDetail.goodsParamsList" :key="param">
|
||||||
|
<td>{{param.paramName}}</td><td>{{param.paramValue}}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!-- <div v-else>暂无商品参数</div> -->
|
||||||
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -475,4 +483,18 @@ export default {
|
||||||
.ivu-rate-star-full:before, .ivu-rate-star-half .ivu-rate-star-content:before {
|
.ivu-rate-star-full:before, .ivu-rate-star-half .ivu-rate-star-content:before {
|
||||||
color: $theme_color;
|
color: $theme_color;
|
||||||
}
|
}
|
||||||
|
table{
|
||||||
|
border-color: #eee;
|
||||||
|
color: #999;
|
||||||
|
width: 70%;
|
||||||
|
margin-left: 10px;
|
||||||
|
tr{
|
||||||
|
td:nth-child(1){
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
td{
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper';
|
import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper';
|
||||||
import 'swiper/swiper-bundle.css';
|
// import 'swiper/swiper-bundle.css';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Swiper,
|
Swiper,
|
||||||
|
|
|
@ -98,14 +98,14 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
this.getImg();
|
// this.getImg();
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
verifyType: {
|
verifyType: {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
handler: function (v) {
|
handler: function (v) {
|
||||||
this.type = v;
|
this.type = v;
|
||||||
this.refresh();
|
// this.refresh();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
show (v) {
|
show (v) {
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
>人评价
|
>人评价
|
||||||
</div>
|
</div>
|
||||||
<div class="goods-show-seller">
|
<div class="goods-show-seller">
|
||||||
<span>{{ item.storeName }}</span>
|
<Tag v-if="item.selfOperated" style="padding:0 4px;" size="small" color="error">自营</Tag><span>{{ item.storeName }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -93,13 +93,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="foot">
|
<div class="foot">
|
||||||
<Row type="flex" justify="space-around" class="help">
|
<Row type="flex" justify="space-around" class="help">
|
||||||
<a class="item" href="https://lilishop.com" target="_blank">帮助</a>
|
<a class="item" href="https://pickmall.cn/" target="_blank">帮助</a>
|
||||||
<a class="item" href="https://lilishop.com" target="_blank">隐私</a>
|
<a class="item" href="https://pickmall.cn/" target="_blank">隐私</a>
|
||||||
<a class="item" href="https://lilishop.com" target="_blank">条款</a>
|
<a class="item" href="https://pickmall.cn/" target="_blank">条款</a>
|
||||||
</Row>
|
</Row>
|
||||||
<Row type="flex" justify="center" class="copyright">
|
<Row type="flex" justify="center" class="copyright">
|
||||||
Copyright © 2020 - Present
|
Copyright © 2020 - Present
|
||||||
<a href="http://lili.cn" target="_blank" style="margin: 0 5px"
|
<a href="https://pickmall.cn/" target="_blank" style="margin: 0 5px"
|
||||||
>lili-shop</a
|
>lili-shop</a
|
||||||
>
|
>
|
||||||
版权所有
|
版权所有
|
||||||
|
|
|
@ -30,13 +30,13 @@
|
||||||
</div>
|
</div>
|
||||||
<empty v-else />
|
<empty v-else />
|
||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<div class="page-size mt_10" v-if="paging">
|
<!-- <div class="page-size mt_10" v-if="paging">
|
||||||
<Page :total="total" @on-change="changePageNum"
|
<Page :total="total" @on-change="changePageNum"
|
||||||
@on-page-size-change="changePageSize"
|
@on-page-size-change="changePageSize"
|
||||||
:page-size="params.pageSize"
|
:page-size="params.pageSize"
|
||||||
show-sizer>
|
show-sizer>
|
||||||
</Page>
|
</Page>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ export default {
|
||||||
total: 0, // 收藏总数
|
total: 0, // 收藏总数
|
||||||
params: { // 请求参数
|
params: { // 请求参数
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
pageSize: 10,
|
pageSize: 100,
|
||||||
type: 'GOODS'
|
type: 'GOODS'
|
||||||
},
|
},
|
||||||
spinShow: false // 加载状态
|
spinShow: false // 加载状态
|
||||||
|
|
|
@ -44,6 +44,12 @@
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="order-card" v-if="afterSale.afterSaleImage">
|
||||||
|
<h3 class="mb_10">图片信息</h3>
|
||||||
|
<div v-for="img in afterSale.afterSaleImage.split(',')" :key="img">
|
||||||
|
<img :src="img" width="200" height="200" @click="perviewImg(img)" class="hover-pointer" alt="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -83,6 +89,9 @@ export default {
|
||||||
filterOrderStatus (status) { // 获取订单状态中文
|
filterOrderStatus (status) { // 获取订单状态中文
|
||||||
const ob = this.afterSaleStatusList.filter(e => { return e.status === status });
|
const ob = this.afterSaleStatusList.filter(e => { return e.status === status });
|
||||||
return ob[0].name
|
return ob[0].name
|
||||||
|
},
|
||||||
|
perviewImg (img) {
|
||||||
|
window.open(img, '_blank')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<div>
|
<div>
|
||||||
<Form :model="form" ref="form" :rules="rules" :label-width="80">
|
<Form :model="form" ref="form" class="mt_10" :rules="rules" :label-width="80">
|
||||||
<FormItem label="售后类别">
|
<FormItem label="售后类别">
|
||||||
<RadioGroup v-model="form.serviceType" @on-change="changeReason" type="button" button-style="solid">
|
<RadioGroup v-model="form.serviceType" @on-change="changeReason" type="button" button-style="solid">
|
||||||
<Radio label="RETURN_GOODS">退货</Radio>
|
<Radio v-if="info.returnGoods" label="RETURN_GOODS">退货</Radio>
|
||||||
<Radio label="RETURN_MONEY">退款</Radio>
|
<Radio v-if="info.returnMoney" label="RETURN_MONEY">退款</Radio>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="提交数量" prop="num">
|
<FormItem label="提交数量" prop="num">
|
||||||
|
@ -144,6 +144,10 @@ export default {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.info = res.result
|
this.info = res.result
|
||||||
this.goodsData.push(res.result)
|
this.goodsData.push(res.result)
|
||||||
|
if (!this.info.returnGoods && this.info.returnMoney) {
|
||||||
|
this.form.serviceType = 'RETURN_MONEY'
|
||||||
|
}
|
||||||
|
this.getReason(this.form.serviceType)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -195,7 +199,6 @@ export default {
|
||||||
mounted () {
|
mounted () {
|
||||||
this.accessToken.accessToken = storage.getItem('accessToken');
|
this.accessToken.accessToken = storage.getItem('accessToken');
|
||||||
this.getInfo()
|
this.getInfo()
|
||||||
this.getReason('RETURN_GOODS')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
<div>{{ filterOrderStatus(order.orderStatus) }}</div>
|
<div>{{ filterOrderStatus(order.orderStatus) }}</div>
|
||||||
<div>
|
<div>
|
||||||
订单号:{{ order.sn }} {{order.createTime}}
|
订单号:{{ order.sn }} {{order.createTime}}
|
||||||
{{ order.memberName | secrecyMobile }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="order-detail" v-if="order.order">
|
<div class="order-detail" v-if="order.order">
|
||||||
<card _Title="订单详情" :_Size="16"></card>
|
<card _Title="订单详情" :_Size="16"></card>
|
||||||
<div class="order-card">
|
<div class="order-card">
|
||||||
<p class="global_color fontsize_18">{{ order.orderStatusValue }}</p>
|
<p class="global_color fontsize_18">{{ order.orderStatusValue }} <span class="verificationCode" v-if="order.order.verificationCode">核验码:{{order.order.verificationCode}}</span></p>
|
||||||
<p class="global_color">订单号:{{ order.order.sn }}</p>
|
<p class="global_color">订单号:{{ order.order.sn }}</p>
|
||||||
<div style="color:#999;" class="operation-time">操作时间:{{order.order.updateTime}}</div>
|
<div style="color:#999;" class="operation-time">操作时间:{{order.order.updateTime}}</div>
|
||||||
<Steps class="progress" :current="progressList.length" direction="vertical">
|
<Steps class="progress" :current="progressList.length" direction="vertical">
|
||||||
|
@ -22,8 +22,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="order-card">
|
<div class="order-card">
|
||||||
<h3>付款信息</h3>
|
<h3>付款信息</h3>
|
||||||
<p>支付方式:在线支付</p>
|
<p>支付方式:{{order.paymentMethodValue}}</p>
|
||||||
<p>付款状态:未付款</p>
|
<p>付款状态:{{order.payStatusValue}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="order-card">
|
<div class="order-card">
|
||||||
<h3>配送信息</h3>
|
<h3>配送信息</h3>
|
||||||
|
@ -234,7 +234,12 @@ table {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.verificationCode {
|
||||||
|
font-size: 16px;
|
||||||
|
margin-left: 240px;
|
||||||
|
color: rgb(65, 63, 63);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
/** 订单进度条 */
|
/** 订单进度条 */
|
||||||
.progress {
|
.progress {
|
||||||
margin: 15px 0;
|
margin: 15px 0;
|
||||||
|
|
|
@ -215,7 +215,7 @@ export default {
|
||||||
color: 'green'
|
color: 'green'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
params.row.money
|
this.$options.filters.unitPrice(params.row.money, '+ ¥')
|
||||||
)
|
)
|
||||||
]);
|
]);
|
||||||
} else if (params.row.money < 0) {
|
} else if (params.row.money < 0) {
|
||||||
|
@ -227,7 +227,7 @@ export default {
|
||||||
color: 'red'
|
color: 'red'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
params.row.money
|
this.$options.filters.unitPrice(0 - params.row.money, '- ¥')
|
||||||
)
|
)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -252,7 +252,10 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '充值金额',
|
title: '充值金额',
|
||||||
key: 'rechargeMoney'
|
key: 'rechargeMoney',
|
||||||
|
render: (h, params) => {
|
||||||
|
return h('div', [h('span', this.$options.filters.unitPrice(params.row.rechargeMoney, '¥'))]);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '支付状态',
|
title: '支付状态',
|
||||||
|
@ -281,7 +284,9 @@ export default {
|
||||||
{
|
{
|
||||||
title: '提现金额',
|
title: '提现金额',
|
||||||
key: 'applyMoney',
|
key: 'applyMoney',
|
||||||
width: 120
|
render: (h, params) => {
|
||||||
|
return h('div', [h('span', this.$options.filters.unitPrice(params.row.applyMoney, '¥'))]);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '提现状态',
|
title: '提现状态',
|
||||||
|
@ -392,9 +397,10 @@ export default {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
recharge(this.formData).then((res) => {
|
recharge(this.formData).then((res) => {
|
||||||
if (res.message === 'success') {
|
if (res.message === 'success') {
|
||||||
// TODO 根据返回的值跳转到收银台进行支付,一下是输出sn
|
this.$router.push({
|
||||||
console.warn(res.result.rechargeSn);
|
path: '/payment',
|
||||||
this.modal = false;
|
query: { orderType: 'RECHARGE', sn: res.result.rechargeSn }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,14 @@
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<div class="page-size">
|
||||||
|
<Page :total="total" @on-change="changePageNum"
|
||||||
|
@on-page-size-change="changePageSize"
|
||||||
|
:page-size="params.pageSize"
|
||||||
|
show-sizer>
|
||||||
|
</Page>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -25,7 +33,14 @@ export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
list: [], // 我的足迹,商品列表
|
list: [], // 我的足迹,商品列表
|
||||||
spinShow: false // 控制loading是否加载
|
spinShow: false, // 控制loading是否加载
|
||||||
|
params: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 30,
|
||||||
|
order: 'desc',
|
||||||
|
sort: 'createTime'
|
||||||
|
},
|
||||||
|
total: 0
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
@ -71,7 +86,16 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getList () {
|
changePageNum (val) { // 修改页码
|
||||||
|
this.params.pageNumber = val;
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
changePageSize (val) { // 修改页数
|
||||||
|
this.pageNumber = 1;
|
||||||
|
this.params.pageSize = val;
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
getList () { // 获取足迹列表
|
||||||
this.spinShow = true;
|
this.spinShow = true;
|
||||||
tracksList(this.params).then(res => {
|
tracksList(this.params).then(res => {
|
||||||
this.spinShow = false
|
this.spinShow = false
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="pay-btn">
|
<div class="pay-btn">
|
||||||
<Button type="primary" @click="$router.push('/')">继续逛逛</Button>
|
<Button type="primary" @click="$router.push('/')">继续逛逛</Button>
|
||||||
<Button type="info" @click="$router.push('home/myOrder')">查看订单</Button>
|
<Button type="info" v-if="$route.query.orderType ==='RECHARGE'" @click="$router.push('/home/MoneyManagement')">查看余额</Button>
|
||||||
|
<Button type="info" v-else @click="$router.push('/home/myOrder')">查看订单</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,31 +5,64 @@
|
||||||
<div class="head-left">
|
<div class="head-left">
|
||||||
<div class="left-tips">订单提交成功,请尽快付款!</div>
|
<div class="left-tips">订单提交成功,请尽快付款!</div>
|
||||||
<div class="left-tips-time">请您尽快完成支付,否则订单会被自动取消</div>
|
<div class="left-tips-time">请您尽快完成支付,否则订单会被自动取消</div>
|
||||||
|
<div class="left-tips-count-down">
|
||||||
|
<mv-count-down :startTime="startTime" class="count-down"
|
||||||
|
:endTime="endTime"
|
||||||
|
:endText="endText"
|
||||||
|
:dayTxt="'天'"
|
||||||
|
:hourTxt="'小时'"
|
||||||
|
:minutesTxt="'分钟'"
|
||||||
|
:secondsTxt="'秒'"
|
||||||
|
:isStart="isStart"></mv-count-down>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="head-right">
|
<div class="head-right">
|
||||||
<div>应付金额 <span class="price">{{payDetail.price | unitPrice}}</span>元</div>
|
<div>应付金额 <span class="price">{{ payDetail.price | unitPrice }}</span>元</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wrapper-box">
|
<div class="wrapper-box">
|
||||||
<div class="-box-item" @click="handlePay('ALIPAY')">
|
<div v-if="support.includes('ALIPAY')" class="-box-item" @click="handlePay('ALIPAY')">
|
||||||
<img src="https://ss3.bdstatic.com/yrwDcj7w0QhBkMak8IuT_XF5ehU5bvGh7c50/logopic/a9936a369e82e0c6c42112674a5220e8_fullsize.jpg" alt="">
|
<img
|
||||||
|
src="https://ss3.bdstatic.com/yrwDcj7w0QhBkMak8IuT_XF5ehU5bvGh7c50/logopic/a9936a369e82e0c6c42112674a5220e8_fullsize.jpg"
|
||||||
|
alt="">
|
||||||
<span>支付宝</span>
|
<span>支付宝</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="-box-item" @click="handlePay('WECHAT')">
|
<div v-if="support.includes('WECHAT')" class="-box-item" @click="handlePay('WECHAT')">
|
||||||
<img src="https://dss1.bdstatic.com/6OF1bjeh1BF3odCf/it/u=3774939867,2826752539&fm=74&app=80&f=JPEG&size=f121,121?sec=1880279984&t=796e842a5ef2d16d9edc872d6f1147ef" alt="">
|
<img
|
||||||
|
src="https://dss1.bdstatic.com/6OF1bjeh1BF3odCf/it/u=3774939867,2826752539&fm=74&app=80&f=JPEG&size=f121,121?sec=1880279984&t=796e842a5ef2d16d9edc872d6f1147ef"
|
||||||
|
alt="">
|
||||||
<span>微信</span>
|
<span>微信</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="support.includes('WALLET') && $route.query.orderType !== 'RECHARGE'" class="-box-item" @click="handlePay('WALLET')">
|
||||||
|
<Icon custom="icomoon icon-wallet" size="60"/>
|
||||||
|
<span>余额支付</span>
|
||||||
|
<span>当前剩余({{ walletValue | unitPrice('¥') }})</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<BaseFooter></BaseFooter>
|
<BaseFooter></BaseFooter>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { tradeDetail } from '@/api/pay.js';
|
|
||||||
|
import {tradeDetail, pay} from '@/api/pay.js';
|
||||||
|
import MvCountDown from 'mv-count-down'
|
||||||
|
import {Message} from 'view-design';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
MvCountDown
|
||||||
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
payDetail: {}, // 支付详情
|
payDetail: {}, // 支付详情
|
||||||
qrcode: '' // 支付二维码
|
support: [], // 支持配送方式
|
||||||
|
walletValue: 0, // 当前余额
|
||||||
|
qrcode: '', // 支付二维码
|
||||||
|
startTime: new Date().getTime(), // 开始时间(时间戳)
|
||||||
|
endTime: 0, // 完成的时间(时间戳)
|
||||||
|
endText: '订单已超时取消', // 倒计时完成的提示文本
|
||||||
|
isStart: false // 控制倒计时开始的时机(异步请求完成开启)
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -39,15 +72,45 @@ export default {
|
||||||
tradeDetail(params).then(res => {
|
tradeDetail(params).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.payDetail = res.result;
|
this.payDetail = res.result;
|
||||||
|
this.endTime = this.payDetail.autoCancel
|
||||||
|
this.isStart = true
|
||||||
|
this.support = this.payDetail.support
|
||||||
|
this.walletValue = this.payDetail.walletValue
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 支付
|
||||||
handlePay (way) {
|
handlePay (way) {
|
||||||
|
// 余额支付则直接跳转
|
||||||
|
if (way === 'WALLET') {
|
||||||
|
// 如果待支付金额大于余额,则报错
|
||||||
|
if (this.payDetail.price > this.walletValue) {
|
||||||
|
Message.error('余额不足以支付当前订单,如需充值请前往会员中心');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
const params = this.$route.query;
|
const params = this.$route.query;
|
||||||
params.paymentMethod = way;
|
params.paymentMethod = way;
|
||||||
params.paymentClient = 'NATIVE';
|
params.paymentClient = 'NATIVE';
|
||||||
params.price = this.payDetail.price;
|
params.price = this.payDetail.price;
|
||||||
this.$router.push({path: '/qrpay', query: params});
|
if (way === 'WALLET') {
|
||||||
|
this.$Modal.confirm({
|
||||||
|
title: '支付确认',
|
||||||
|
content: '<p>确认使用余额支付吗?</p>',
|
||||||
|
onOk: () => {
|
||||||
|
pay(params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$Message.warning(res.message)
|
||||||
|
this.$router.push('/payDone');
|
||||||
|
} else {
|
||||||
|
this.$Message.warning(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$router.push({path: '/qrpay', query: params});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
@ -56,64 +119,83 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.head-left{
|
.head-left {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
.left-tips{
|
|
||||||
font-size: 21px;
|
.left-tips {
|
||||||
|
font-size: 21px;
|
||||||
|
|
||||||
}
|
}
|
||||||
.-box-item{
|
|
||||||
margin-right: 30px;
|
|
||||||
display: flex;
|
|
||||||
font-size: 21px;
|
|
||||||
font-weight: bold;
|
|
||||||
align-items: center;
|
|
||||||
margin: 20px 20px;
|
|
||||||
cursor: pointer;
|
|
||||||
@include content_color($light_content_color);
|
|
||||||
|
|
||||||
&:hover{color: $theme_color;}
|
.-box-item {
|
||||||
|
display: flex;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
align-items: center;
|
||||||
|
margin: 20px 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
@include content_color($light_content_color);
|
||||||
|
|
||||||
>span{
|
&:hover {
|
||||||
margin-left: 10px;
|
color: $theme_color;
|
||||||
}
|
}
|
||||||
>img{
|
|
||||||
border-radius: 10px;
|
> span {
|
||||||
width: 60px;
|
margin-left: 15px;
|
||||||
height: 60px;
|
}
|
||||||
}
|
|
||||||
|
> img {
|
||||||
|
border-radius: 10px;
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.left-tips-time{
|
|
||||||
font-size: 16px;
|
.left-tips-time {
|
||||||
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
.wrapper-head{
|
|
||||||
display: flex;
|
.left-tips-count-down {
|
||||||
align-items: center;
|
font-size: 10px;
|
||||||
justify-content: space-between;
|
color: red;
|
||||||
line-height: 1.75;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wrapper-head {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
line-height: 1.75;
|
||||||
|
}
|
||||||
|
|
||||||
.wrapper-head,
|
.wrapper-head,
|
||||||
.wrapper-box {
|
.wrapper-box {
|
||||||
padding: 20px 40px;
|
padding: 20px 40px;
|
||||||
width: 1200px;
|
width: 1200px;
|
||||||
margin: 20px auto;
|
margin: 20px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper-box {
|
.wrapper-box {
|
||||||
@include white_background_color();
|
@include white_background_color();
|
||||||
height: auto;
|
height: auto;
|
||||||
display: flex;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
.wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.price{
|
|
||||||
font-size: 18px;
|
.price {
|
||||||
font-weight: bold;
|
font-size: 18px;
|
||||||
color: $theme_color;
|
font-weight: bold;
|
||||||
|
color: $theme_color;
|
||||||
}
|
}
|
||||||
.head-right{
|
|
||||||
font-weight: bold;
|
.head-right {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
.count-down{
|
||||||
|
font-size: 16px!important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -70,7 +70,7 @@ export default {
|
||||||
payCallback(params).then(res => {
|
payCallback(params).then(res => {
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
clearInterval(this.interval);
|
clearInterval(this.interval);
|
||||||
this.$router.push('/payDone');
|
this.$router.push({path: '/payDone', query: {orderType: this.$route.query.orderType}});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,10 +69,10 @@ service.interceptors.request.use(
|
||||||
config.headers['accessToken'] = accessToken;
|
config.headers['accessToken'] = accessToken;
|
||||||
// 解析当前token时间
|
// 解析当前token时间
|
||||||
let jwtData = JSON.parse(
|
let jwtData = JSON.parse(
|
||||||
decodeURIComponent(escape(window.atob(accessToken.split('.')[1])))
|
decodeURIComponent(escape(window.atob(accessToken.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'))))
|
||||||
);
|
);
|
||||||
if (jwtData.exp < Math.round(new Date() / 1000)) {
|
if (jwtData.exp < Math.round(new Date() / 1000)) {
|
||||||
refresh()
|
refresh(config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,6 +142,8 @@ service.interceptors.response.use(
|
||||||
refresh(error)
|
refresh(error)
|
||||||
isRefreshToken = 0;
|
isRefreshToken = 0;
|
||||||
}
|
}
|
||||||
|
} else if (errorResponse.status === 404) {
|
||||||
|
// 避免刷新token时也提示报错信息
|
||||||
} else {
|
} else {
|
||||||
if (error.message) {
|
if (error.message) {
|
||||||
let _message =
|
let _message =
|
||||||
|
|
|
@ -2051,7 +2051,7 @@ copy-webpack-plugin@^4.0.1:
|
||||||
p-limit "^1.0.0"
|
p-limit "^1.0.0"
|
||||||
serialize-javascript "^1.4.0"
|
serialize-javascript "^1.4.0"
|
||||||
|
|
||||||
core-js@^2.4.0, core-js@^2.5.0:
|
core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5:
|
||||||
version "2.6.12"
|
version "2.6.12"
|
||||||
resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1607216048810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1607216048810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
||||||
integrity sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=
|
integrity sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=
|
||||||
|
@ -5150,6 +5150,16 @@ mute-stream@0.0.7:
|
||||||
resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
||||||
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
|
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
|
||||||
|
|
||||||
|
mv-count-down@^0.1.15:
|
||||||
|
version "0.1.15"
|
||||||
|
resolved "https://registry.npmjs.org/mv-count-down/-/mv-count-down-0.1.15.tgz#a3f3c1677576e592c7710b441b2dda96acac2702"
|
||||||
|
integrity sha512-7poh86i27D/u4AvE9Ne8QHhy61p4MYAhSf4XAVyxzL0gXVCyccJ0NtJferEOxBP6C2q9jImknpKLGdwnEeJ7qQ==
|
||||||
|
dependencies:
|
||||||
|
core-js "^2.6.5"
|
||||||
|
vue "^2.6.10"
|
||||||
|
vue-router "^3.0.3"
|
||||||
|
vuex "^3.0.1"
|
||||||
|
|
||||||
nan@^2.12.1, nan@^2.13.2:
|
nan@^2.12.1, nan@^2.13.2:
|
||||||
version "2.14.2"
|
version "2.14.2"
|
||||||
resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591700047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
|
resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591700047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
|
||||||
|
@ -8315,6 +8325,11 @@ vue-router@^3.0.1:
|
||||||
resolved "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.9.tgz?cache=0&sync_timestamp=1607347231238&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.9.tgz#c016f42030ae2932f14e4748b39a1d9a0e250e66"
|
resolved "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.9.tgz?cache=0&sync_timestamp=1607347231238&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.9.tgz#c016f42030ae2932f14e4748b39a1d9a0e250e66"
|
||||||
integrity sha1-wBb0IDCuKTLxTkdIs5odmg4lDmY=
|
integrity sha1-wBb0IDCuKTLxTkdIs5odmg4lDmY=
|
||||||
|
|
||||||
|
vue-router@^3.0.3:
|
||||||
|
version "3.5.2"
|
||||||
|
resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c"
|
||||||
|
integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ==
|
||||||
|
|
||||||
vue-style-loader@^3.0.0, vue-style-loader@^3.0.1:
|
vue-style-loader@^3.0.0, vue-style-loader@^3.0.1:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-3.1.2.tgz#6b66ad34998fc9520c2f1e4d5fa4091641c1597a"
|
resolved "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-3.1.2.tgz#6b66ad34998fc9520c2f1e4d5fa4091641c1597a"
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
"sockjs-client": "^1.4.0",
|
"sockjs-client": "^1.4.0",
|
||||||
"stompjs": "^2.3.3",
|
"stompjs": "^2.3.3",
|
||||||
"swiper": "^6.3.5",
|
"swiper": "^6.3.5",
|
||||||
|
"uuid": "^8.3.2",
|
||||||
"view-design": "^4.2.0",
|
"view-design": "^4.2.0",
|
||||||
"vue": "^2.6.10",
|
"vue": "^2.6.10",
|
||||||
"vue-apexcharts": "^1.5.1",
|
"vue-apexcharts": "^1.5.1",
|
||||||
|
@ -48,8 +49,7 @@
|
||||||
"vuex": "^3.4.0",
|
"vuex": "^3.4.0",
|
||||||
"wangeditor": "^4.5.3",
|
"wangeditor": "^4.5.3",
|
||||||
"xlsx": "^0.16.2",
|
"xlsx": "^0.16.2",
|
||||||
"xss": "^1.0.7",
|
"xss": "^1.0.7"
|
||||||
"uuid": "^8.3.2"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-babel": "^4.4.4",
|
"@vue/cli-plugin-babel": "^4.4.4",
|
||||||
|
|
|
@ -76,15 +76,15 @@ export const disableCategory = (id, type) => {
|
||||||
|
|
||||||
// 获取商品规格分页列表
|
// 获取商品规格分页列表
|
||||||
export const getSpecListData = (params) => {
|
export const getSpecListData = (params) => {
|
||||||
return getRequest('/goods/spec/page', params)
|
return getRequest('/goods/spec', params)
|
||||||
}
|
}
|
||||||
// 添加或修改规格设置
|
// 添加或修改规格设置
|
||||||
export const insertSpec = (params) => {
|
export const insertSpec = (params) => {
|
||||||
return postRequest('/goods/spec', params)
|
return postRequest('/goods/spec', params)
|
||||||
}
|
}
|
||||||
// 添加或修改规格设置
|
// 添加或修改规格设置
|
||||||
export const updateSpec = (params) => {
|
export const updateSpec = (id,params) => {
|
||||||
return putRequest('/goods/spec', params)
|
return putRequest(`/goods/spec/${id}`, params)
|
||||||
}
|
}
|
||||||
//根据分类id获取关联规格
|
//根据分类id获取关联规格
|
||||||
export const getCategorySpecListData = (category_id, params) => {
|
export const getCategorySpecListData = (category_id, params) => {
|
||||||
|
@ -94,15 +94,6 @@ export const getCategorySpecListData = (category_id, params) => {
|
||||||
export const delSpec = (id, params) => {
|
export const delSpec = (id, params) => {
|
||||||
return deleteRequest(`/goods/spec/${id}`, params)
|
return deleteRequest(`/goods/spec/${id}`, params)
|
||||||
}
|
}
|
||||||
// 获取商品规格值列表
|
|
||||||
export const getSpecValuesListData = (id, params) => {
|
|
||||||
return getRequest(`/goods/specValues/values/${id}`, params)
|
|
||||||
}
|
|
||||||
// 添加商品规格值
|
|
||||||
export const saveSpecValues = (id, params) => {
|
|
||||||
return postRequest(`/goods/specValues/save/${id}`, params)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 查询某分类下的全部子分类列表
|
// 查询某分类下的全部子分类列表
|
||||||
export const getGoodsCategory = (parent_id) => {
|
export const getGoodsCategory = (parent_id) => {
|
||||||
|
|
|
@ -30,7 +30,7 @@ export const getLiveList = params => {
|
||||||
|
|
||||||
// 获取直播间详情
|
// 获取直播间详情
|
||||||
export const getLiveInfo = studioId => {
|
export const getLiveInfo = studioId => {
|
||||||
return getRequest(`/broadcast/studio/studioInfo/${studioId}`);
|
return getRequest(`/broadcast/studio/${studioId}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取当前进行中的促销活动商品
|
// 获取当前进行中的促销活动商品
|
||||||
|
|
|
@ -21,10 +21,10 @@ export default {
|
||||||
// buyer: "https://buyer-api.pickmall.cn",
|
// buyer: "https://buyer-api.pickmall.cn",
|
||||||
// seller: "https://store-api.pickmall.cn",
|
// seller: "https://store-api.pickmall.cn",
|
||||||
// manager: "https://admin-api.pickmall.cn"
|
// manager: "https://admin-api.pickmall.cn"
|
||||||
common: 'http://192.168.0.100:8890',
|
common: 'http://192.168.0.109:8890',
|
||||||
buyer: 'http://192.168.0.100:8888',
|
buyer: 'http://192.168.0.109:8888',
|
||||||
seller: 'http://192.168.0.100:8889',
|
seller: 'http://192.168.0.109:8889',
|
||||||
manager: 'http://192.168.0.100:8887'
|
manager: 'http://192.168.0.109:8887'
|
||||||
},
|
},
|
||||||
api_prod: {
|
api_prod: {
|
||||||
common: "https://common-api.pickmall.cn",
|
common: "https://common-api.pickmall.cn",
|
||||||
|
|
|
@ -64,14 +64,6 @@ service.interceptors.response.use(
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
break;
|
break;
|
||||||
case 403:
|
|
||||||
// 权限不足
|
|
||||||
if (data.message !== null) {
|
|
||||||
Message.error(data.message);
|
|
||||||
} else {
|
|
||||||
Message.error("权限不足");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 500:
|
case 500:
|
||||||
// 系统异常
|
// 系统异常
|
||||||
if (data.message !== null) {
|
if (data.message !== null) {
|
||||||
|
@ -89,6 +81,8 @@ service.interceptors.response.use(
|
||||||
if (error.response) {
|
if (error.response) {
|
||||||
if (error.response.status === 401) {
|
if (error.response.status === 401) {
|
||||||
// 这种情况一般调到登录页
|
// 这种情况一般调到登录页
|
||||||
|
} else if (error.response.status === 404) {
|
||||||
|
// 避免刷新token报错
|
||||||
} else if (error.response.status === 403) {
|
} else if (error.response.status === 403) {
|
||||||
isRefreshToken++;
|
isRefreshToken++;
|
||||||
if(isRefreshToken === 1) {
|
if(isRefreshToken === 1) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import ViewUI from 'view-design'
|
||||||
import './styles/theme.less';
|
import './styles/theme.less';
|
||||||
|
|
||||||
import "core-js/stable"
|
import "core-js/stable"
|
||||||
import "regenerator-runtime/runtime"
|
// import "regenerator-runtime/runtime"
|
||||||
import App from './App'
|
import App from './App'
|
||||||
import { router } from './router/index'
|
import { router } from './router/index'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
|
|
|
@ -16,6 +16,22 @@ export function unitPrice(val, unit, location) {
|
||||||
return (unit || '') + price
|
return (unit || '') + price
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单来源
|
||||||
|
*/
|
||||||
|
export function clientTypeWay(val) {
|
||||||
|
if (val == "H5") {
|
||||||
|
return "移动端";
|
||||||
|
} else if (val == "PC") {
|
||||||
|
return "PC端";
|
||||||
|
} else if (val == "WECHAT_MP") {
|
||||||
|
return "小程序端";
|
||||||
|
} else if (val == "APP") {
|
||||||
|
return "移动应用端";
|
||||||
|
} else {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -147,21 +147,13 @@ export default {
|
||||||
sortable: false,
|
sortable: false,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.distributionStatus == "PASS") {
|
if (params.row.distributionStatus == "PASS") {
|
||||||
return h("Badge", {
|
return h("Tag", {props: {color: "green",},},"通过");
|
||||||
props: { status: "success", text: "审核通过" },
|
|
||||||
});
|
|
||||||
} else if (params.row.distributionStatus == "APPLY") {
|
} else if (params.row.distributionStatus == "APPLY") {
|
||||||
return h("Badge", {
|
return h("Tag", {props: {color: "geekblue",},},"待审核");
|
||||||
props: { status: "processing", text: "申请中" },
|
|
||||||
});
|
|
||||||
} else if (params.row.distributionStatus == "RETREAT") {
|
} else if (params.row.distributionStatus == "RETREAT") {
|
||||||
return h("Badge", {
|
return h("Tag", {props: {color: "volcano",},},"清退");
|
||||||
props: { status: "warning", text: "已清退" },
|
|
||||||
});
|
|
||||||
} else if (params.row.distributionStatus == "REFUSE") {
|
} else if (params.row.distributionStatus == "REFUSE") {
|
||||||
return h("Badge", {
|
return h("Tag", {props: {color: "red",},},"拒绝");
|
||||||
props: { status: "error", text: "审核拒绝" },
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -67,10 +67,12 @@ export default {
|
||||||
{
|
{
|
||||||
type: "selection",
|
type: "selection",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center"
|
align: "center",
|
||||||
|
fixed: "left",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "商品图片",
|
title: "商品图片",
|
||||||
|
fixed: "left",
|
||||||
key: "thumbnail",
|
key: "thumbnail",
|
||||||
width: 120,
|
width: 120,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
|
@ -38,6 +38,12 @@
|
||||||
<Option value="DOWN">下架</Option>
|
<Option value="DOWN">下架</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
|
<Form-item label="商品类型" prop="status">
|
||||||
|
<Select v-model="searchForm.goodsType" placeholder="请选择" clearable style="width: 200px">
|
||||||
|
<Option value="PHYSICAL_GOODS">实物商品</Option>
|
||||||
|
<Option value="VIRTUAL_GOODS">虚拟商品</Option>
|
||||||
|
</Select>
|
||||||
|
</Form-item>
|
||||||
<Button @click="handleSearch" class="search-btn" type="primary" icon="ios-search" >搜索</Button>
|
<Button @click="handleSearch" class="search-btn" type="primary" icon="ios-search" >搜索</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
|
@ -174,29 +180,29 @@ export default {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "商品类型",
|
||||||
|
key: "goodsType",
|
||||||
|
width: 130,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.goodsType === 'PHYSICAL_GOODS') {
|
||||||
|
return h("Tag", {props: {color: "green",},}, "实物商品");
|
||||||
|
} else if (params.row.goodsType === 'VIRTUAL_GOODS') {
|
||||||
|
return h("Tag", {props: {color: "volcano",},}, "虚拟商品");
|
||||||
|
} else {
|
||||||
|
return h("Tag", {props: {color: "geekblue",},}, "电子卡券");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
key: "marketEnable",
|
key: "marketEnable",
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.marketEnable == "DOWN") {
|
if (params.row.marketEnable == "DOWN") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green"},},"上架");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "下架",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.marketEnable == "UPPER") {
|
} else if (params.row.marketEnable == "UPPER") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "volcano",},},"下架");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "上架",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -206,36 +212,14 @@ export default {
|
||||||
width: 130,
|
width: 130,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.isAuth == "TOBEAUDITED") {
|
if (params.row.isAuth == "TOBEAUDITED") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "volcano",},},"待审核");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "待审核",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.isAuth == "PASS") {
|
} else if (params.row.isAuth == "PASS") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green"},},"通过");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "审核通过",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.isAuth == "REFUSE") {
|
} else if (params.row.isAuth == "REFUSE") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "red",},},"拒绝");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "审核拒绝",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "店铺名称",
|
title: "店铺名称",
|
||||||
key: "storeName",
|
key: "storeName",
|
||||||
|
|
|
@ -113,23 +113,9 @@ export default {
|
||||||
align: "left",
|
align: "left",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.deleteFlag == 0) {
|
if (params.row.deleteFlag == 0) {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green",},},"启用");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "启用",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.deleteFlag == 1) {
|
} else if (params.row.deleteFlag == 1) {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "volcano",},},"禁用");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "禁用",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
filters: [
|
filters: [
|
||||||
|
|
|
@ -261,7 +261,6 @@ export default {
|
||||||
getCategorySpecListData(v.id).then((res) => {
|
getCategorySpecListData(v.id).then((res) => {
|
||||||
this.categoryId = v.id;
|
this.categoryId = v.id;
|
||||||
this.modalSpecTitle = "规格关联";
|
this.modalSpecTitle = "规格关联";
|
||||||
console.log(res);
|
|
||||||
this.specForm.categorySpecs = res.map((item) => item.id);
|
this.specForm.categorySpecs = res.map((item) => item.id);
|
||||||
this.modalSpecVisible = true;
|
this.modalSpecVisible = true;
|
||||||
});
|
});
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
<Row class="operation padding-row">
|
<Row class="operation padding-row">
|
||||||
<Button @click="add" type="primary" >添加</Button>
|
<Button @click="add" type="primary">添加</Button>
|
||||||
<Button @click="delAll" >批量删除</Button>
|
<Button @click="delAll">批量删除</Button>
|
||||||
</Row>
|
</Row>
|
||||||
<Table
|
<Table
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
|
@ -60,53 +60,33 @@
|
||||||
>
|
>
|
||||||
<Form ref="form" :model="form" :label-width="100" :rules="formValidate">
|
<Form ref="form" :model="form" :label-width="100" :rules="formValidate">
|
||||||
<FormItem label="规格名称" prop="specName">
|
<FormItem label="规格名称" prop="specName">
|
||||||
<Input v-model="form.specName" maxlength="30" clearable style="width: 100%" />
|
<Input v-model="form.specName" maxlength="30" clearable style="width: 100%"/>
|
||||||
|
</FormItem>
|
||||||
|
<FormItem label="规格值" prop="specValue">
|
||||||
|
<Select
|
||||||
|
v-model="form.specValue"
|
||||||
|
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 specValue"
|
||||||
|
:value="item"
|
||||||
|
:label="item"
|
||||||
|
>
|
||||||
|
</Option>
|
||||||
|
</Select>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
<Button type="text" @click="modalVisible = false">取消</Button>
|
<Button type="text" @click="modalVisible = false">取消</Button>
|
||||||
<Button type="primary" :loading="submitLoading" @click="saveSpec"
|
<Button type="primary" :loading="submitLoading" @click="saveSpec"
|
||||||
>提交</Button
|
>提交
|
||||||
>
|
</Button
|
||||||
</div>
|
|
||||||
</Modal>
|
|
||||||
<Modal
|
|
||||||
:title="modalTitle"
|
|
||||||
v-model="dialogSpecValuesVisible"
|
|
||||||
:mask-closable="false"
|
|
||||||
:width="500"
|
|
||||||
:styles="{ top: '30px' }"
|
|
||||||
class="permModal"
|
|
||||||
>
|
|
||||||
<Form ref="specForm" :model="specForm" :label-width="100">
|
|
||||||
<Select
|
|
||||||
v-model="specForm.specValue"
|
|
||||||
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 specValues"
|
|
||||||
:value="item.specValue"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.specValue"
|
|
||||||
>
|
|
||||||
</Option>
|
|
||||||
</Select>
|
|
||||||
</Form>
|
|
||||||
<div slot="footer">
|
|
||||||
<Button type="text" @click="dialogSpecValuesVisible = false"
|
|
||||||
>取消</Button
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
type="primary"
|
|
||||||
:loading="submitLoading"
|
|
||||||
@click="submitSpecValuesForm"
|
|
||||||
>提交</Button
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -118,10 +98,9 @@ import {
|
||||||
getSpecListData,
|
getSpecListData,
|
||||||
insertSpec,
|
insertSpec,
|
||||||
updateSpec,
|
updateSpec,
|
||||||
delSpec,
|
delSpec
|
||||||
getSpecValuesListData,
|
|
||||||
saveSpecValues,
|
|
||||||
} from "@/api/goods";
|
} from "@/api/goods";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "spec",
|
name: "spec",
|
||||||
components: {},
|
components: {},
|
||||||
|
@ -131,7 +110,6 @@ export default {
|
||||||
modalType: 0, // 添加或编辑标识
|
modalType: 0, // 添加或编辑标识
|
||||||
modalVisible: false, // 添加或编辑显示
|
modalVisible: false, // 添加或编辑显示
|
||||||
modalTitle: "", // 添加或编辑标题
|
modalTitle: "", // 添加或编辑标题
|
||||||
dialogSpecValuesVisible: false, // 添加或编辑规格值
|
|
||||||
specTitle: "", // 添加或编辑规格值
|
specTitle: "", // 添加或编辑规格值
|
||||||
searchForm: {
|
searchForm: {
|
||||||
// 搜索框初始化对象
|
// 搜索框初始化对象
|
||||||
|
@ -145,9 +123,8 @@ export default {
|
||||||
specName: "",
|
specName: "",
|
||||||
specValue: "",
|
specValue: "",
|
||||||
},
|
},
|
||||||
specForm: {},
|
|
||||||
/** 编辑规格值 */
|
/** 编辑规格值 */
|
||||||
specValues: [],
|
specValue: [],
|
||||||
// 表单验证规则
|
// 表单验证规则
|
||||||
formValidate: {},
|
formValidate: {},
|
||||||
submitLoading: false, // 添加或编辑提交状态
|
submitLoading: false, // 添加或编辑提交状态
|
||||||
|
@ -179,24 +156,7 @@ export default {
|
||||||
width: 250,
|
width: 250,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h("div", [
|
return h("div", [
|
||||||
h(
|
|
||||||
"Button",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
type: "primary",
|
|
||||||
size: "small",
|
|
||||||
},
|
|
||||||
style: {
|
|
||||||
marginRight: "5px",
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.editSpec(params.row);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"编辑规格值"
|
|
||||||
),
|
|
||||||
h(
|
h(
|
||||||
"Button",
|
"Button",
|
||||||
{
|
{
|
||||||
|
@ -239,23 +199,28 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
//初始化,获取数据
|
||||||
init() {
|
init() {
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
//修改分页
|
||||||
changePage(v) {
|
changePage(v) {
|
||||||
this.searchForm.pageNumber = v;
|
this.searchForm.pageNumber = v;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
this.clearSelectAll();
|
this.clearSelectAll();
|
||||||
},
|
},
|
||||||
|
//修改页面大小
|
||||||
changePageSize(v) {
|
changePageSize(v) {
|
||||||
this.searchForm.pageSize = v;
|
this.searchForm.pageSize = v;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
//搜索参数
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.searchForm.pageNumber = 1;
|
this.searchForm.pageNumber = 1;
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm.pageSize = 10;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
//重置搜索参数
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.$refs.searchForm.resetFields();
|
this.$refs.searchForm.resetFields();
|
||||||
this.searchForm.pageNumber = 1;
|
this.searchForm.pageNumber = 1;
|
||||||
|
@ -263,6 +228,7 @@ export default {
|
||||||
// 重新加载数据
|
// 重新加载数据
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
//更改排序
|
||||||
changeSort(e) {
|
changeSort(e) {
|
||||||
this.searchForm.sort = e.key;
|
this.searchForm.sort = e.key;
|
||||||
this.searchForm.order = e.order;
|
this.searchForm.order = e.order;
|
||||||
|
@ -271,36 +237,27 @@ export default {
|
||||||
}
|
}
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
//清除已选择
|
||||||
clearSelectAll() {
|
clearSelectAll() {
|
||||||
this.$refs.table.selectAll(false);
|
this.$refs.table.selectAll(false);
|
||||||
},
|
},
|
||||||
|
//修改已选择
|
||||||
changeSelect(e) {
|
changeSelect(e) {
|
||||||
this.selectList = e;
|
this.selectList = e;
|
||||||
this.selectCount = e.length;
|
this.selectCount = e.length;
|
||||||
},
|
},
|
||||||
|
//获取数据
|
||||||
getDataList() {
|
getDataList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
// 带多条件搜索参数获取表单数据 请自行修改接口
|
// 带多条件搜索参数获取表单数据 请自行修改接口
|
||||||
getSpecListData(this.searchForm).then((res) => {
|
getSpecListData(this.searchForm).then((res) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
if (res.success) {
|
this.data = res.records;
|
||||||
this.data = res.result.records;
|
this.total = res.total;
|
||||||
this.total = res.result.total;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
},
|
},
|
||||||
submitSpecValuesForm() {
|
//新增规格
|
||||||
saveSpecValues(this.specForm.specId, this.specForm).then((res) => {
|
|
||||||
this.submitLoading = false;
|
|
||||||
if (res.success) {
|
|
||||||
this.$Message.success("规格值保存成功");
|
|
||||||
this.getDataList();
|
|
||||||
this.modalVisible = false;
|
|
||||||
this.dialogSpecValuesVisible = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
saveSpec() {
|
saveSpec() {
|
||||||
this.$refs.form.validate((valid) => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
@ -318,7 +275,7 @@ export default {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// 编辑
|
// 编辑
|
||||||
updateSpec(this.form).then((res) => {
|
updateSpec(this.form.id, this.form).then((res) => {
|
||||||
this.submitLoading = false;
|
this.submitLoading = false;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("操作成功");
|
this.$Message.success("操作成功");
|
||||||
|
@ -330,6 +287,7 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
//弹出添加框
|
||||||
add() {
|
add() {
|
||||||
this.modalType = 0;
|
this.modalType = 0;
|
||||||
this.modalTitle = "添加";
|
this.modalTitle = "添加";
|
||||||
|
@ -337,31 +295,31 @@ export default {
|
||||||
delete this.form.id;
|
delete this.form.id;
|
||||||
this.modalVisible = true;
|
this.modalVisible = true;
|
||||||
},
|
},
|
||||||
|
//弹出编辑框
|
||||||
edit(v) {
|
edit(v) {
|
||||||
this.modalType = 1;
|
this.modalType = 1;
|
||||||
this.modalTitle = "编辑";
|
this.modalTitle = "编辑";
|
||||||
this.$refs.form.resetFields();
|
|
||||||
// 转换null为""
|
// 转换null为""
|
||||||
for (let attr in v) {
|
for (let attr in v) {
|
||||||
if (v[attr] === null) {
|
if (v[attr] === null) {
|
||||||
v[attr] = "";
|
v[attr] = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let str = JSON.stringify(v);
|
let localVal = v.specValue;
|
||||||
let data = JSON.parse(str);
|
|
||||||
this.form = data;
|
this.form.specName = v.specName;
|
||||||
|
this.form.id = v.id;
|
||||||
|
this.form.specValue = v.specValue;
|
||||||
|
|
||||||
|
if (localVal && localVal.indexOf("," > 0)) {
|
||||||
|
this.form.specValue = localVal.split(",")
|
||||||
|
this.specValue = this.form.specValue
|
||||||
|
this.$set(this, 'specValue', this.form.specValue)
|
||||||
|
} else {
|
||||||
|
this.specValue = [];
|
||||||
|
}
|
||||||
this.modalVisible = true;
|
this.modalVisible = true;
|
||||||
},
|
},
|
||||||
editSpec(v) {
|
|
||||||
getSpecValuesListData(v.id).then((res) => {
|
|
||||||
this.modalType = 1;
|
|
||||||
this.modalTitle = "编辑";
|
|
||||||
this.specValues = res.result;
|
|
||||||
this.specForm.specValue = res.result.map(item => item.specValue)
|
|
||||||
this.specForm.specId = v.id;
|
|
||||||
this.dialogSpecValuesVisible = true;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
remove(v) {
|
remove(v) {
|
||||||
this.$Modal.confirm({
|
this.$Modal.confirm({
|
||||||
title: "确认删除",
|
title: "确认删除",
|
||||||
|
@ -415,5 +373,5 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/styles/table-common.scss";
|
@import "@/styles/table-common.scss";
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -135,35 +135,11 @@ export default {
|
||||||
width: 90,
|
width: 90,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.grade == "GOOD") {
|
if (params.row.grade == "GOOD") {
|
||||||
return h(
|
return h("Tag", {props: {color: "green",},}, "好评");
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
color: "success",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"好评"
|
|
||||||
);
|
|
||||||
} else if (params.row.grade == "MODERATE") {
|
} else if (params.row.grade == "MODERATE") {
|
||||||
return h(
|
return h("Tag", {props: {color: "orange",},}, "中评");
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
color: "warning",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"中评"
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
return h(
|
return h("Tag", {props: {color: "red",},}, "差评");
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
color: "error",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"差评"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<Row type="flex" justify="center" class="copyright">
|
<Row type="flex" justify="center" class="copyright">
|
||||||
Copyright © 2020 - Present
|
Copyright © 2020 - Present
|
||||||
<a
|
<a
|
||||||
href="http://lili.cn"
|
href="https://pickmall.cn/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
style="margin:0 5px;"
|
style="margin:0 5px;"
|
||||||
>lili-shop</a> {{ $t('rights') }}
|
>lili-shop</a> {{ $t('rights') }}
|
||||||
|
|
|
@ -131,23 +131,9 @@
|
||||||
sortable: false,
|
sortable: false,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.payStatus == "PAID") {
|
if (params.row.payStatus == "PAID") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green",},}, "已付款");
|
||||||
h("Badge", {
|
} else {
|
||||||
props: {
|
return h("Tag", {props: {color: "red",},}, "未付款");
|
||||||
status: "success",
|
|
||||||
text: "已付款",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.payStatus == "UNPAID") {
|
|
||||||
return h("div", [
|
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "未付款",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,47 +1,48 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<vuedraggable
|
<div class="upload-pic-thumb">
|
||||||
:list="uploadList"
|
<vuedraggable
|
||||||
:disabled="!draggable||!multiple"
|
:list="uploadList"
|
||||||
:animation="200"
|
:disabled="!draggable||!multiple"
|
||||||
class="list-group"
|
:animation="200"
|
||||||
ghost-class="thumb-ghost"
|
class="list-group"
|
||||||
@end="onEnd"
|
ghost-class="thumb-ghost"
|
||||||
>
|
@end="onEnd"
|
||||||
<div class="upload-list" v-for="(item, index) in uploadList" :key="index">
|
>
|
||||||
<div v-if="item.status == 'finished'" style="height:60px;">
|
<div class="upload-list" v-for="(item, index) in uploadList" :key="index">
|
||||||
<img :src="item.url" />
|
<div v-if="item.status == 'finished'" style="height:60px;">
|
||||||
<div class="upload-list-cover">
|
<img :src="item.url" />
|
||||||
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>
|
<div class="upload-list-cover">
|
||||||
<Icon type="ios-trash-outline" @click="handleRemove(item)"></Icon>
|
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>
|
||||||
|
<Icon type="ios-trash-outline" @click="handleRemove(item)"></Icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
</vuedraggable>
|
||||||
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
|
<Upload
|
||||||
|
ref="upload"
|
||||||
|
:multiple="multiple"
|
||||||
|
:show-upload-list="false"
|
||||||
|
:on-success="handleSuccess"
|
||||||
|
:on-error="handleError"
|
||||||
|
:format="['jpg','jpeg','png','gif']"
|
||||||
|
:max-size="maxSize*1024"
|
||||||
|
:on-format-error="handleFormatError"
|
||||||
|
:on-exceeded-size="handleMaxSize"
|
||||||
|
:before-upload="handleBeforeUpload"
|
||||||
|
type="drag"
|
||||||
|
:action="uploadFileUrl"
|
||||||
|
:headers="accessToken"
|
||||||
|
style="display: inline-block;width:58px;"
|
||||||
|
>
|
||||||
|
<div style="width: 58px;height:58px;line-height: 58px;">
|
||||||
|
<Icon type="md-camera" size="20"></Icon>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</Upload>
|
||||||
</vuedraggable>
|
</div>
|
||||||
<Upload
|
|
||||||
ref="upload"
|
|
||||||
:multiple="multiple"
|
|
||||||
:show-upload-list="false"
|
|
||||||
:on-success="handleSuccess"
|
|
||||||
:on-error="handleError"
|
|
||||||
:format="['jpg','jpeg','png','gif']"
|
|
||||||
:max-size="maxSize*1024"
|
|
||||||
:on-format-error="handleFormatError"
|
|
||||||
:on-exceeded-size="handleMaxSize"
|
|
||||||
:before-upload="handleBeforeUpload"
|
|
||||||
type="drag"
|
|
||||||
:action="uploadFileUrl"
|
|
||||||
:headers="accessToken"
|
|
||||||
style="display: inline-block;width:58px;"
|
|
||||||
>
|
|
||||||
<div style="width: 58px;height:58px;line-height: 58px;">
|
|
||||||
<Icon type="md-camera" size="20"></Icon>
|
|
||||||
</div>
|
|
||||||
</Upload>
|
|
||||||
|
|
||||||
<Modal title="图片预览" v-model="viewImage" :styles="{top: '30px'}" draggable>
|
<Modal title="图片预览" v-model="viewImage" :styles="{top: '30px'}" draggable>
|
||||||
<img :src="imgUrl" alt="无效的图片链接" style="width: 100%;margin: 0 auto;display: block;" />
|
<img :src="imgUrl" alt="无效的图片链接" style="width: 100%;margin: 0 auto;display: block;" />
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
|
@ -242,6 +243,9 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.upload-pic-thumb{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
.upload-list {
|
.upload-list {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
|
@ -255,6 +259,7 @@ export default {
|
||||||
position: relative;
|
position: relative;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.upload-list img {
|
.upload-list img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
@ -98,14 +98,14 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
this.getImg();
|
// this.getImg();
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
verifyType: {
|
verifyType: {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
handler: function (v) {
|
handler: function (v) {
|
||||||
this.type = v;
|
this.type = v;
|
||||||
this.refresh();
|
// this.refresh();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
show (v) {
|
show (v) {
|
||||||
|
|
|
@ -216,11 +216,11 @@
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.serviceType == "RETURN_MONEY") {
|
if (params.row.serviceType == "RETURN_MONEY") {
|
||||||
return h('div', [h('span', {}, '退款'),]);
|
return h('div', [h('tag', {props: {color: "blue"}}, '退款'),]);
|
||||||
} else if (params.row.serviceType == "RETURN_GOODS") {
|
} else if (params.row.serviceType == "RETURN_GOODS") {
|
||||||
return h('div', [h('span', {}, '退货'),]);
|
return h('div', [h('tag', {props: {color: "volcano"}}, '退货'),]);
|
||||||
} else if (params.row.serviceType == "EXCHANGE_GOODS") {
|
} else if (params.row.serviceType == "EXCHANGE_GOODS") {
|
||||||
return h('div', [h('span', {}, '换货'),]);
|
return h('div', [h('tag', {props: {color: "green"}}, '换货'),]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -231,27 +231,23 @@
|
||||||
width: 110,
|
width: 110,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.serviceStatus == "APPLY") {
|
if (params.row.serviceStatus == "APPLY") {
|
||||||
return h('div', [h('span', {}, '申请中'),]);
|
return h('div', [h('tag', {props: {color: "blue"}}, '申请中'),]);
|
||||||
} else if (params.row.serviceStatus == "PASS") {
|
} else if (params.row.serviceStatus == "PASS") {
|
||||||
return h('div', [h('span', {}, '通过售后'),]);
|
return h('div', [h('tag', {props: {color: "cyan"}}, '通过售后'),]);
|
||||||
} else if (params.row.serviceStatus == "REFUSE") {
|
} else if (params.row.serviceStatus == "REFUSE") {
|
||||||
return h('div', [h('span', {}, '拒绝售后'),]);
|
return h('div', [h('tag', {props: {color: "volcano"}}, '拒绝售后'),]);
|
||||||
} else if (params.row.serviceStatus == "BUYER_RETURN") {
|
} else if (params.row.serviceStatus == "BUYER_RETURN") {
|
||||||
return h('div', [h('span', {}, '买家退货,待卖家收货'),]);
|
return h('div', [h('tag', {props: {color: "orange"}}, '买家退货,待卖家收货'),]);
|
||||||
} else if (params.row.serviceStatus == "SELLER_RE_DELIVERY") {
|
|
||||||
return h('div', [h('span', {}, '商家换货/补发'),]);
|
|
||||||
} else if (params.row.serviceStatus == "SELLER_CONFIRM") {
|
} else if (params.row.serviceStatus == "SELLER_CONFIRM") {
|
||||||
return h('div', [h('span', {}, '卖家确认收货'),]);
|
return h('div', [h('tag', {props: {color: "gold"}}, '卖家确认收货'),]);
|
||||||
} else if (params.row.serviceStatus == "SELLER_TERMINATION") {
|
} else if (params.row.serviceStatus == "SELLER_TERMINATION") {
|
||||||
return h('div', [h('span', {}, '卖家终止售后'),]);
|
return h('div', [h('tag', {props: {color: "lime"}}, '卖家终止售后'),]);
|
||||||
} else if (params.row.serviceStatus == "BUYER_CONFIRM") {
|
|
||||||
return h('div', [h('span', {}, '买家确认收货'),]);
|
|
||||||
} else if (params.row.serviceStatus == "BUYER_CANCEL") {
|
} else if (params.row.serviceStatus == "BUYER_CANCEL") {
|
||||||
return h('div', [h('span', {}, '买家取消售后'),]);
|
return h('div', [h('tag', {props: {color: "purple"}}, '买家取消售后'),]);
|
||||||
} else if (params.row.serviceStatus == "COMPLETE") {
|
} else if (params.row.serviceStatus == "COMPLETE") {
|
||||||
return h('div', [h('span', {}, '完成售后'),]);
|
return h('div', [h('tag', {props: {color: "green"}}, '完成售后'),]);
|
||||||
}else if (params.row.serviceStatus == "WAIT_REFUND") {
|
}else if (params.row.serviceStatus == "WAIT_REFUND") {
|
||||||
return h('div', [h('span', {}, '待平台退款'),]);
|
return h('div', [h('tag', {props: {color: "geekblue"}}, '待平台退款'),]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -191,17 +191,17 @@
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.complainStatus == "NEW") {
|
if (params.row.complainStatus == "NEW") {
|
||||||
return h('div', [h('span', { }, '新投诉'),]);
|
return h('div', [h('tag',{props: {color: "purple"}}, '新投诉'),]);
|
||||||
} else if (params.row.complainStatus == "CANCEL") {
|
} else if (params.row.complainStatus == "CANCEL") {
|
||||||
return h('div', [h('span', { }, '已撤销'),]);
|
return h('div', [h('tag', {props: {color: "cyan"}}, '已撤销'),]);
|
||||||
} else if (params.row.complainStatus == "WAIT_APPEAL") {
|
} else if (params.row.complainStatus == "WAIT_APPEAL") {
|
||||||
return h('div', [h('span', { }, '待申诉'),]);
|
return h('div', [h('tag', {props: {color: "volcano"}}, '待申诉'),]);
|
||||||
} else if (params.row.complainStatus == "COMMUNICATION") {
|
} else if (params.row.complainStatus == "COMMUNICATION") {
|
||||||
return h('div', [h('span', { }, '对话中'),]);
|
return h('div', [h('tag', {props: {color: "orange"}}, '对话中'),]);
|
||||||
}else if (params.row.complainStatus == "WAIT_ARBITRATION") {
|
}else if (params.row.complainStatus == "WAIT_ARBITRATION") {
|
||||||
return h('div', [h('span', { }, '等待仲裁'),]);
|
return h('div', [h('tag', {props: {color: "blue"}}, '等待仲裁'),]);
|
||||||
}else if (params.row.complainStatus == "COMPLETE") {
|
}else if (params.row.complainStatus == "COMPLETE") {
|
||||||
return h('div', [h('span', { }, '已完成'),]);
|
return h('div', [h('tag', {props: {color: "green"}}, '已完成'),]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -72,51 +72,13 @@ export default {
|
||||||
align: "center",
|
align: "center",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.paymentMethod === "WECHAT") {
|
if (params.row.paymentMethod === "WECHAT") {
|
||||||
return h("div", [
|
return h("div", [h("Tag", {props: {color: "green",},}, "微信"),]);
|
||||||
h(
|
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
color: "green",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"微信"
|
|
||||||
),
|
|
||||||
]);
|
|
||||||
} else if (params.row.paymentMethod === "ALIPAY") {
|
} else if (params.row.paymentMethod === "ALIPAY") {
|
||||||
return h("div", [
|
return h("div", [h("Tag", {props: {color: "blue",},}, "支付宝"),]);
|
||||||
h(
|
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
color: "blue",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"支付宝"
|
|
||||||
),
|
|
||||||
]);
|
|
||||||
} else if (params.row.paymentMethod === "WALLET") {
|
} else if (params.row.paymentMethod === "WALLET") {
|
||||||
return h("div", [
|
return h("div", [h("Tag", {props: {color: "geekblue",},}, "余额支付"),]);
|
||||||
h(
|
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {},
|
|
||||||
},
|
|
||||||
"余额支付"
|
|
||||||
),
|
|
||||||
]);
|
|
||||||
} else if (params.row.paymentMethod === "BANK_TRANSFER") {
|
} else if (params.row.paymentMethod === "BANK_TRANSFER") {
|
||||||
return h("div", [
|
return h("div", [h("Tag", {props: {color: "orange",},}, "银行转帐"),]);
|
||||||
h(
|
|
||||||
"Tag",
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
color: "orange",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"银行转帐"
|
|
||||||
),
|
|
||||||
]);
|
|
||||||
} else {
|
} else {
|
||||||
return h("div", [h("Tag", {}, "暂未付款")]);
|
return h("div", [h("Tag", {}, "暂未付款")]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,9 +100,9 @@ export default {
|
||||||
width: 95,
|
width: 95,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.isRefund == "1") {
|
if (params.row.isRefund == "1") {
|
||||||
return h("div", [h("span", {}, "已退款")]);
|
return h("div", [h("Tag", {props: {color: "green",},}, "已退款")]);
|
||||||
} else {
|
} else {
|
||||||
return h("div", [h("span", {}, "未退款")]);
|
return h("div", [h("Tag", {props: {color: "orange",},}, "未退款")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -94,8 +94,8 @@
|
||||||
// 搜索框初始化对象
|
// 搜索框初始化对象
|
||||||
pageNumber: 1, // 当前页数
|
pageNumber: 1, // 当前页数
|
||||||
pageSize: 10, // 页面大小
|
pageSize: 10, // 页面大小
|
||||||
sort: "createTime", // 默认排序字段
|
sort: "", // 默认排序字段
|
||||||
order: "desc", // 默认排序方式
|
order: "", // 默认排序方式
|
||||||
startDate: "", // 起始时间
|
startDate: "", // 起始时间
|
||||||
endDate: "", // 终止时间
|
endDate: "", // 终止时间
|
||||||
orderType: "FICTITIOUS",
|
orderType: "FICTITIOUS",
|
||||||
|
@ -118,8 +118,6 @@
|
||||||
title: "下单时间",
|
title: "下单时间",
|
||||||
key: "createTime",
|
key: "createTime",
|
||||||
width: 200,
|
width: 200,
|
||||||
sortable: true,
|
|
||||||
sortType: "desc",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "订单来源",
|
title: "订单来源",
|
||||||
|
@ -150,19 +148,15 @@
|
||||||
width:95,
|
width:95,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.orderStatus == "UNPAID") {
|
if (params.row.orderStatus == "UNPAID") {
|
||||||
return h('div', [h('span', { }, '未付款'),]);
|
return h("div", [h("tag", {props: {color: "magenta"}}, "未付款")]);
|
||||||
} else if (params.row.orderStatus == "PAID") {
|
} else if (params.row.orderStatus == "PAID") {
|
||||||
return h('div', [h('span', { }, '已付款'),]);
|
return h("div", [h("tag", {props: {color: "blue"}}, "已付款")]);
|
||||||
} else if (params.row.orderStatus == "UNDELIVERED") {
|
} else if (params.row.orderStatus == "COMPLETED") {
|
||||||
return h('div', [h('span', { }, '待发货'),]);
|
return h("div", [h("tag", {props: {color: "green"}}, "已完成")]);
|
||||||
} else if (params.row.orderStatus == "DELIVERED") {
|
} else if (params.row.orderStatus == "TAKE") {
|
||||||
return h('div', [h('span', { }, '已发货'),]);
|
return h("div", [h("tag", {props: {color: "volcano"}}, "待核验")]);
|
||||||
}else if (params.row.orderStatus == "COMPLETED") {
|
} else if (params.row.orderStatus == "CANCELLED") {
|
||||||
return h('div', [h('span', { }, '已完成'),]);
|
return h("div", [h("tag", {props: {color: "red"}}, "已取消")]);
|
||||||
}else if (params.row.orderStatus == "TAKE") {
|
|
||||||
return h('div', [h('span', { }, '待核验'),]);
|
|
||||||
}else if (params.row.orderStatus == "CANCELLED") {
|
|
||||||
return h('div', [h('span', { }, '已取消'),]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<div class="div-item">
|
<div class="div-item">
|
||||||
<div class="div-item-left">订单来源:</div>
|
<div class="div-item-left">订单来源:</div>
|
||||||
<div class="div-item-right">
|
<div class="div-item-right">
|
||||||
{{ orderInfo.order.clientType }}
|
{{ orderInfo.order.clientType | clientTypeWay}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
</Row>
|
</Row>
|
||||||
<div>
|
<div>
|
||||||
<download-excel class="export-excel-wrapper" :data="data" :fields="fields" name="商品订单.xls">
|
<download-excel class="export-excel-wrapper" :data="data" :fields="fields" name="商品订单.xls">
|
||||||
<Button type="primary" class="export">
|
<Button type="info" class="export">
|
||||||
导出Excel
|
导出Excel
|
||||||
</Button>
|
</Button>
|
||||||
</download-excel>
|
</download-excel>
|
||||||
|
@ -72,10 +72,6 @@ export default {
|
||||||
订单编号: "sn",
|
订单编号: "sn",
|
||||||
下单时间: "createTime",
|
下单时间: "createTime",
|
||||||
客户名称: "memberName",
|
客户名称: "memberName",
|
||||||
客户账号: "",
|
|
||||||
收货人: "",
|
|
||||||
收货人手机号: "",
|
|
||||||
收货人地址: "",
|
|
||||||
支付方式: {
|
支付方式: {
|
||||||
field: "clientType",
|
field: "clientType",
|
||||||
callback: (value) => {
|
callback: (value) => {
|
||||||
|
@ -92,15 +88,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
配送方式: "",
|
|
||||||
配送费用: "",
|
|
||||||
订单商品金额: "",
|
|
||||||
订单优惠金额: "",
|
|
||||||
订单应付金额: "",
|
|
||||||
商品SKU编号: "",
|
|
||||||
商品数量: "groupNum",
|
商品数量: "groupNum",
|
||||||
买家备注: "",
|
|
||||||
订单状态: "",
|
|
||||||
付款状态: {
|
付款状态: {
|
||||||
field: "payStatus",
|
field: "payStatus",
|
||||||
callback: (value) => {
|
callback: (value) => {
|
||||||
|
@ -111,9 +99,6 @@ export default {
|
||||||
: "";
|
: "";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
发货状态: "",
|
|
||||||
发票类型: "",
|
|
||||||
发票抬头: "",
|
|
||||||
店铺: "storeName",
|
店铺: "storeName",
|
||||||
},
|
},
|
||||||
loading: true, // 表单加载状态
|
loading: true, // 表单加载状态
|
||||||
|
@ -166,13 +151,13 @@ export default {
|
||||||
width: 120,
|
width: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.orderType == "NORMAL") {
|
if (params.row.orderType == "NORMAL") {
|
||||||
return h("div", [h("span", {}, "普通订单")]);
|
return h("div", [h("tag", {props: {color: "blue"}}, "普通订单")]);
|
||||||
} else if (params.row.orderType == "PINTUAN") {
|
} else if (params.row.orderType == "PINTUAN") {
|
||||||
return h("div", [h("span", {}, "拼团订单")]);
|
return h("div", [h("tag", {props: {color: "volcano"}}, "拼团订单")]);
|
||||||
} else if (params.row.orderType == "GIFT") {
|
} else if (params.row.orderType == "GIFT") {
|
||||||
return h("div", [h("span", {}, "赠品订单")]);
|
return h("div", [h("tag", {props: {color: "green"}}, "赠品订单")]);
|
||||||
} else if (params.row.orderType == "VIRTUAL") {
|
} else if (params.row.orderType == "VIRTUAL") {
|
||||||
return h("div", [h("tag", {}, "核验订单")]);
|
return h("div", [h("tag", {props: {color: "geekblue"}}, "核验订单")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -202,19 +187,19 @@ export default {
|
||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.orderStatus == "UNPAID") {
|
if (params.row.orderStatus == "UNPAID") {
|
||||||
return h("div", [h("span", {}, "未付款")]);
|
return h("div", [h("tag", {props: {color: "magenta"}}, "未付款")]);
|
||||||
} else if (params.row.orderStatus == "PAID") {
|
} else if (params.row.orderStatus == "PAID") {
|
||||||
return h("div", [h("span", {}, "已付款")]);
|
return h("div", [h("tag", {props: {color: "blue"}}, "已付款")]);
|
||||||
} else if (params.row.orderStatus == "UNDELIVERED") {
|
} else if (params.row.orderStatus == "UNDELIVERED") {
|
||||||
return h("div", [h("span", {}, "待发货")]);
|
return h("div", [h("tag", {props: {color: "geekblue"}}, "待发货")]);
|
||||||
} else if (params.row.orderStatus == "DELIVERED") {
|
} else if (params.row.orderStatus == "DELIVERED") {
|
||||||
return h("div", [h("span", {}, "已发货")]);
|
return h("div", [h("tag", {props: {color: "cyan"}}, "已发货")]);
|
||||||
} else if (params.row.orderStatus == "COMPLETED") {
|
} else if (params.row.orderStatus == "COMPLETED") {
|
||||||
return h("div", [h("span", {}, "已完成")]);
|
return h("div", [h("tag", {props: {color: "green"}}, "已完成")]);
|
||||||
} else if (params.row.orderStatus == "TAKE") {
|
} else if (params.row.orderStatus == "TAKE") {
|
||||||
return h("div", [h("span", {}, "待核验")]);
|
return h("div", [h("tag", {props: {color: "volcano"}}, "待核验")]);
|
||||||
} else if (params.row.orderStatus == "CANCELLED") {
|
} else if (params.row.orderStatus == "CANCELLED") {
|
||||||
return h("div", [h("span", {}, "已取消")]);
|
return h("div", [h("tag", {props: {color: "red"}}, "已取消")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -222,56 +207,23 @@ export default {
|
||||||
title: "下单时间",
|
title: "下单时间",
|
||||||
key: "createTime",
|
key: "createTime",
|
||||||
width: 170,
|
width: 170,
|
||||||
sortable: true,
|
|
||||||
sortType: "desc",
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
key: "action",
|
key: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 150,
|
width: 150,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h("div", [
|
return h("div", [h("Button", {props: {type: "primary", size: "small",},
|
||||||
h(
|
attrs: {disabled: params.row.orderStatus == "UNPAID" ? false : true,},
|
||||||
"Button",
|
style: {marginRight: "5px",},
|
||||||
|
on: {click: () => {this.confirmPrice(params.row);},},
|
||||||
{
|
}, "收款"
|
||||||
props: {
|
|
||||||
type: "primary",
|
|
||||||
size: "small",
|
|
||||||
},
|
|
||||||
attrs: {
|
|
||||||
disabled: params.row.orderStatus == "UNPAID" ? false : true,
|
|
||||||
},
|
|
||||||
style: {
|
|
||||||
marginRight: "5px",
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.confirmPrice(params.row);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"收款"
|
|
||||||
),
|
),
|
||||||
h(
|
h("Button", {props: {type: "info", size: "small",},
|
||||||
"Button",
|
style: {marginRight: "5px",},
|
||||||
{
|
on: {click: () => {this.detail(params.row);},},
|
||||||
props: {
|
}, "查看"
|
||||||
type: "info",
|
|
||||||
size: "small",
|
|
||||||
},
|
|
||||||
style: {
|
|
||||||
marginRight: "5px",
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.detail(params.row);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"查看"
|
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
<Input type="number" v-model="form.sort" clearable style="width: 10%" />
|
<Input type="number" v-model="form.sort" clearable style="width: 10%" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem class="form-item-view-el" label="文章内容" prop="content">
|
<FormItem class="form-item-view-el" label="文章内容" prop="content">
|
||||||
<editor openXss v-model="form.content"></editor>
|
<editor openXss v-model="form.content"></editor>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="是否展示" prop="openStatus">
|
<FormItem label="是否展示" prop="openStatus">
|
||||||
<i-switch size="large" v-model="form.openStatus" :true-value="open" :false-value="close">
|
<i-switch size="large" v-model="form.openStatus" :true-value="open" :false-value="close">
|
||||||
|
@ -435,28 +435,13 @@ export default {
|
||||||
this.form.categoryId = res.result.categoryId;
|
this.form.categoryId = res.result.categoryId;
|
||||||
this.treeValue = data.articleCategoryName;
|
this.treeValue = data.articleCategoryName;
|
||||||
this.form.id = data.id;
|
this.form.id = data.id;
|
||||||
this.form.content = htmlEscape(res.result.content);
|
this.form.content =res.result.content;
|
||||||
this.form.title = res.result.title;
|
this.form.title = res.result.title;
|
||||||
this.form.sort = res.result.sort;
|
this.form.sort = res.result.sort;
|
||||||
this.form.openStatus = res.result.openStatus;
|
this.form.openStatus = res.result.openStatus;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
htmlEscape(text) {
|
|
||||||
return text.replace(/[<>"&]/g, function (match, pos, originalText) {
|
|
||||||
switch (match) {
|
|
||||||
case "<":
|
|
||||||
return "<";
|
|
||||||
case ">":
|
|
||||||
return ">";
|
|
||||||
case "&":
|
|
||||||
return "&";
|
|
||||||
case '"':
|
|
||||||
return """;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
remove(v) {
|
remove(v) {
|
||||||
this.$Modal.confirm({
|
this.$Modal.confirm({
|
||||||
title: "确认删除",
|
title: "确认删除",
|
||||||
|
|
|
@ -101,7 +101,7 @@ export default {
|
||||||
{
|
{
|
||||||
title: "面额/折扣",
|
title: "面额/折扣",
|
||||||
key: "price",
|
key: "price",
|
||||||
width: 120,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.price) {
|
if (params.row.price) {
|
||||||
return h(
|
return h(
|
||||||
|
@ -117,27 +117,28 @@ export default {
|
||||||
{
|
{
|
||||||
title: "领取数量/总数量",
|
title: "领取数量/总数量",
|
||||||
key: "publishNum",
|
key: "publishNum",
|
||||||
width: 150,
|
width: 130,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h(
|
return h(
|
||||||
"div",
|
"div",
|
||||||
params.row.receivedNum + "/" + params.row.publishNum
|
params.row.receivedNum + "/" + params.row.publishNum
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
minWidth: 130,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "优惠券类型",
|
title: "优惠券类型",
|
||||||
key: "couponType",
|
key: "couponType",
|
||||||
width: 120,
|
width: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
let text = "未知";
|
let text = "";
|
||||||
if (params.row.couponType === "DISCOUNT") {
|
if (params.row.couponType === "DISCOUNT") {
|
||||||
text = "打折";
|
return h("Tag", {props: {color: "blue",},}, "打折");
|
||||||
} else if (params.row.couponType === "PRICE") {
|
} else if (params.row.couponType === "PRICE") {
|
||||||
text = "减免现金";
|
return h("Tag", {props: {color: "geekblue",},}, "减免现金");
|
||||||
|
}else {
|
||||||
|
return h("Tag", {props: {color: "purple",},}, "未知");
|
||||||
}
|
}
|
||||||
return h("div", [text]);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -160,7 +161,7 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "活动时间",
|
title: "活动时间",
|
||||||
|
width: 150,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.getType === "ACTIVITY") {
|
if (params.row.getType === "ACTIVITY") {
|
||||||
return h("div", "长期有效");
|
return h("div", "长期有效");
|
||||||
|
@ -184,7 +185,7 @@ export default {
|
||||||
color = "red";
|
color = "red";
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
text = "未开始";
|
text = "未开始";
|
||||||
color = "default";
|
color = "geekblue";
|
||||||
} else if (params.row.promotionStatus == "START") {
|
} else if (params.row.promotionStatus == "START") {
|
||||||
text = "已开始";
|
text = "已开始";
|
||||||
color = "green";
|
color = "green";
|
||||||
|
|
|
@ -39,9 +39,11 @@
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="发放数量" prop="publishNum" v-if="form.getType==='FREE'">
|
<FormItem label="发放数量" prop="publishNum" v-if="form.getType==='FREE'">
|
||||||
<Input v-model="form.publishNum" placeholder="发放数量" style="width: 260px"/>
|
<Input v-model="form.publishNum" placeholder="发放数量" style="width: 260px"/>
|
||||||
|
<div class="tips">如果发放数量为0时,则代表不限制发放数量</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="领取数量限制" prop="couponLimitNum" v-if="form.getType==='FREE'">
|
<FormItem label="领取数量限制" prop="couponLimitNum" v-if="form.getType==='FREE'">
|
||||||
<Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px"/>
|
<Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px"/>
|
||||||
|
<div class="tips">如果领取数量为0时,则代表不限制领取数量</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="范围描述" prop="description">
|
<FormItem label="范围描述" prop="description">
|
||||||
<Input v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable
|
<Input v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable
|
||||||
|
@ -576,5 +578,9 @@ h4 {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.tips {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ export default {
|
||||||
// 搜索框初始化对象
|
// 搜索框初始化对象
|
||||||
pageNumber: 0, // 当前页数
|
pageNumber: 0, // 当前页数
|
||||||
pageSize: 10, // 页面大小
|
pageSize: 10, // 页面大小
|
||||||
sort: "startTime", // 默认排序字段
|
sort: "createTime", // 默认排序字段
|
||||||
order: "desc", // 默认排序方式
|
order: "desc", // 默认排序方式
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
|
|
|
@ -132,19 +132,19 @@ export default {
|
||||||
minWidth: 60,
|
minWidth: 60,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
let text = "未知",
|
let text = "未知",
|
||||||
color = "default";
|
color = "purple";
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
text = "未开始";
|
text = "未开始";
|
||||||
color = "default";
|
color = "geekblue";
|
||||||
} else if (params.row.promotionStatus == "START") {
|
} else if (params.row.promotionStatus == "START") {
|
||||||
text = "已开始";
|
text = "已开始";
|
||||||
color = "green";
|
color = "blue";
|
||||||
} else if (params.row.promotionStatus == "END") {
|
} else if (params.row.promotionStatus == "END") {
|
||||||
text = "已结束";
|
text = "已结束";
|
||||||
color = "blue";
|
color = "green";
|
||||||
} else if (params.row.promotionStatus == "CLOSE") {
|
} else if (params.row.promotionStatus == "CLOSE") {
|
||||||
text = "已关闭";
|
text = "已关闭";
|
||||||
color = "red";
|
color = "volcano";
|
||||||
}
|
}
|
||||||
return h("div", [
|
return h("div", [
|
||||||
h(
|
h(
|
||||||
|
|
|
@ -119,14 +119,13 @@ export default {
|
||||||
{
|
{
|
||||||
title: "直播状态",
|
title: "直播状态",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h(
|
if(params.row.status == "NEW"){
|
||||||
"span",
|
return h("div", [h("tag", {props: {color: "blue"}}, "未开始")]);
|
||||||
params.row.status == "NEW"
|
}else if(params.row.status == "START"){
|
||||||
? "未开始"
|
return h("div", [h("tag", {props: {color: "green"}}, "直播中")]);
|
||||||
: params.row.status == "START"
|
}else{
|
||||||
? "直播中"
|
return h("div", [h("tag", {props: {color: "volcano"}}, "已结束")]);
|
||||||
: "已结束"
|
}
|
||||||
);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -122,16 +122,16 @@ export default {
|
||||||
color = "";
|
color = "";
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
text = "未开始";
|
text = "未开始";
|
||||||
color = "default";
|
color = "geekblue";
|
||||||
} else if (params.row.promotionStatus == "START") {
|
} else if (params.row.promotionStatus == "START") {
|
||||||
text = "已开始";
|
text = "已开始";
|
||||||
color = "green";
|
color = "blue";
|
||||||
} else if (params.row.promotionStatus == "END") {
|
} else if (params.row.promotionStatus == "END") {
|
||||||
text = "已结束";
|
text = "已结束";
|
||||||
color = "blue";
|
color = "green";
|
||||||
} else if (params.row.promotionStatus == "CLOSE") {
|
} else if (params.row.promotionStatus == "CLOSE") {
|
||||||
text = "已关闭";
|
text = "已关闭";
|
||||||
color = "red";
|
color = "volcano";
|
||||||
}
|
}
|
||||||
return h("div", [
|
return h("div", [
|
||||||
h(
|
h(
|
||||||
|
|
|
@ -2,78 +2,37 @@
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<Card>
|
<Card>
|
||||||
<Row>
|
<Row>
|
||||||
<Form
|
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
||||||
ref="searchForm"
|
|
||||||
:model="searchForm"
|
|
||||||
inline
|
|
||||||
:label-width="70"
|
|
||||||
class="search-form"
|
|
||||||
>
|
|
||||||
<Form-item label="商品名称">
|
<Form-item label="商品名称">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.goodsName" placeholder="请输入商品名称" clearable style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.goodsName"
|
|
||||||
placeholder="请输入商品名称"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="积分区间">
|
<Form-item label="积分区间">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.pointsS" placeholder="请输入开始区间" clearable style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.pointsS"
|
|
||||||
placeholder="请输入开始区间"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
-
|
-
|
||||||
<Input
|
<Input type="text" v-model="searchForm.pointsE" placeholder="请输入结束区间" clearable style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.pointsE"
|
|
||||||
placeholder="请输入结束区间"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="状态">
|
<Form-item label="状态">
|
||||||
<Select v-model="searchForm.promotionStatus" style="width: 200px">
|
<Select v-model="searchForm.promotionStatus" style="width: 200px">
|
||||||
<Option
|
<Option v-for="item in statusList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
||||||
v-for="item in statusList"
|
|
||||||
:value="item.value"
|
|
||||||
:key="item.value"
|
|
||||||
>{{ item.label }}</Option
|
|
||||||
>
|
|
||||||
</Select>
|
</Select>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="SKU编码">
|
<Form-item label="SKU编码">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.skuId" placeholder="请输入SKU编码" clearable style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.skuId"
|
|
||||||
placeholder="请输入SKU编码"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
<Row class="operation padding-row">
|
<Row class="operation padding-row">
|
||||||
<Button @click="addPointsGoods" type="primary" >添加积分商品</Button>
|
<Button @click="addPointsGoods" type="primary">添加积分商品</Button>
|
||||||
|
|
||||||
</Row>
|
</Row>
|
||||||
<Table
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table">
|
||||||
:loading="loading"
|
|
||||||
border
|
|
||||||
:columns="columns"
|
|
||||||
:data="data"
|
|
||||||
ref="table"
|
|
||||||
>
|
|
||||||
<template slot-scope="{ row }" slot="goodsName">
|
<template slot-scope="{ row }" slot="goodsName">
|
||||||
<div>
|
<div>
|
||||||
<a class="mr_10" @click="linkTo(row.goodsSku.goodsId,row.goodsSku.skuId)">{{row.goodsSku.goodsName}}</a>
|
<a class="mr_10" @click="linkTo(row.goodsSku.goodsId,row.goodsSku.skuId)">{{row.goodsSku.goodsName}}</a>
|
||||||
<Poptip trigger="hover" title="扫码在手机中查看" transfer>
|
<Poptip trigger="hover" title="扫码在手机中查看" transfer>
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<vue-qr :text="wapLinkTo(row.goodsSku.goodsId,row.goodsSku.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
|
<vue-qr :text="wapLinkTo(row.goodsSku.goodsId,row.goodsSku.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
|
||||||
</div>
|
</div>
|
||||||
<img src="../../../assets/qrcode.svg" style="vertical-align:middle;" class="hover-pointer" width="20" height="20" alt="">
|
<img src="../../../assets/qrcode.svg" style="vertical-align:middle;" class="hover-pointer" width="20" height="20" alt="">
|
||||||
</Poptip>
|
</Poptip>
|
||||||
|
@ -92,50 +51,17 @@
|
||||||
<div>{{ row.startTime }}</div>
|
<div>{{ row.startTime }}</div>
|
||||||
<div>{{ row.endTime }}</div>
|
<div>{{ row.endTime }}</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template slot-scope="{ row }" slot="action">
|
<template slot-scope="{ row }" slot="action">
|
||||||
<Button
|
<Button v-if="row.promotionStatus == 'NEW'" type="info" size="small" @click="edit(row.id)" style="margin-right: 5px">编辑</Button>
|
||||||
v-if="row.promotionStatus == 'NEW'"
|
<Button v-if="row.promotionStatus == 'START'" type="warning" size="small" @click="statusChanged(row.id, 'CLOSE')" style="margin-right: 5px">停用</Button>
|
||||||
type="info"
|
<Button v-if="row.promotionStatus == 'CLOSE'" type="warning" size="small" @click="statusChanged(row.id, 'START')" style="margin-right: 5px">启用</Button>
|
||||||
size="small"
|
<Button type="error" size="small" @click="close(row.id)">删除</Button>
|
||||||
@click="edit(row.id)"
|
|
||||||
style="margin-right: 5px"
|
|
||||||
>编辑</Button
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
v-if="row.promotionStatus == 'START'"
|
|
||||||
type="warning"
|
|
||||||
size="small"
|
|
||||||
@click="statusChanged(row.id, 'CLOSE')"
|
|
||||||
style="margin-right: 5px"
|
|
||||||
>停用</Button
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
v-if="row.promotionStatus == 'CLOSE'"
|
|
||||||
type="warning"
|
|
||||||
size="small"
|
|
||||||
@click="statusChanged(row.id, 'START')"
|
|
||||||
style="margin-right: 5px"
|
|
||||||
>启用</Button
|
|
||||||
>
|
|
||||||
<Button type="error" size="small" @click="close(row.id)"
|
|
||||||
>删除</Button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
<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"
|
||||||
:current="searchForm.pageNumber"
|
show-total show-elevator show-sizer></Page>
|
||||||
: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>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -159,78 +85,91 @@ export default {
|
||||||
pageSize: 10, // 页面大小
|
pageSize: 10, // 页面大小
|
||||||
order: "desc", // 默认排序方式
|
order: "desc", // 默认排序方式
|
||||||
},
|
},
|
||||||
statusList: [ // 活动状态
|
statusList: [
|
||||||
|
// 活动状态
|
||||||
{ label: "未开始", value: "NEW" },
|
{ label: "未开始", value: "NEW" },
|
||||||
{ label: "已开始", value: "START" },
|
{ label: "已开始", value: "START" },
|
||||||
{ label: "已结束", value: "END" },
|
{ label: "已结束", value: "END" },
|
||||||
{ label: "已关闭", value: "CLOSE" },
|
{ label: "已关闭", value: "CLOSE" },
|
||||||
],
|
],
|
||||||
columns: [ // 表头
|
columns: [
|
||||||
|
// 表头
|
||||||
{
|
{
|
||||||
title: "商品名称",
|
title: "商品名称",
|
||||||
slot: "goodsName",
|
slot: "goodsName",
|
||||||
minWidth: 120,
|
minWidth: 150,
|
||||||
|
fixed: "left",
|
||||||
tooltip: true,
|
tooltip: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "市场价",
|
title: "市场价",
|
||||||
slot: "price",
|
slot: "price",
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "结算价",
|
title: "结算价",
|
||||||
slot: "settlementPrice",
|
slot: "settlementPrice",
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "分类",
|
|
||||||
key: "pointsGoodsCategoryName",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: "库存数量",
|
title: "库存数量",
|
||||||
slot: "quantity",
|
slot: "quantity",
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "活动剩余库存",
|
title: "活动剩余库存",
|
||||||
key: "activeStock",
|
key: "activeStock",
|
||||||
|
width: 150,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "兑换积分",
|
title: "兑换积分",
|
||||||
key: "points",
|
key: "points",
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "所属店铺",
|
title: "所属店铺",
|
||||||
key: "storeName",
|
key: "storeName",
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "活动开始时间",
|
title: "活动开始时间",
|
||||||
slot: "startTime",
|
slot: "startTime",
|
||||||
minWidth:100
|
minWidth: 150,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
key: "promotionStatus",
|
key: "promotionStatus",
|
||||||
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
let text = "未知",
|
let text = "未知",
|
||||||
color = "";
|
color = "";
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
text = "未开始";
|
text = "未开始";
|
||||||
color = "default";
|
color = "geekblue";
|
||||||
} else if (params.row.promotionStatus == "START") {
|
} else if (params.row.promotionStatus == "START") {
|
||||||
text = "已开始";
|
text = "已开始";
|
||||||
color = "green";
|
color = "blue";
|
||||||
} else if (params.row.promotionStatus == "END") {
|
} else if (params.row.promotionStatus == "END") {
|
||||||
text = "已结束";
|
text = "已结束";
|
||||||
color = "blue";
|
color = "green";
|
||||||
} else if (params.row.promotionStatus == "CLOSE") {
|
} else if (params.row.promotionStatus == "CLOSE") {
|
||||||
text = "已关闭";
|
text = "已关闭";
|
||||||
color = "red";
|
color = "volcano";
|
||||||
}
|
}
|
||||||
return h("div", [h("Tag", { props: { color: color } }, text)]);
|
return h("div", [h("Tag", { props: { color: color } }, text)]);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "分类",
|
||||||
|
key: "pointsGoodsCategoryName",
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
slot: "action",
|
slot: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
|
fixed: "right",
|
||||||
width: 150,
|
width: 150,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -327,5 +266,5 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/styles/table-common.scss";
|
@import "@/styles/table-common.scss";
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -24,78 +24,35 @@
|
||||||
<Row class="operation padding-row">
|
<Row class="operation padding-row">
|
||||||
<Button type="primary" @click="add">添加活动</Button>
|
<Button type="primary" @click="add">添加活动</Button>
|
||||||
</Row>
|
</Row>
|
||||||
<Table
|
<Tabs value="list" @on-click="clickTabPane">
|
||||||
:loading="loading"
|
<TabPane label="秒杀活动列表" name="list">
|
||||||
border
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" class="page">
|
||||||
:columns="columns"
|
<template slot-scope="{ row }" slot="action">
|
||||||
:data="data"
|
<Button type="info" size="small" class="mr_5" v-if="row.promotionStatus == 'NEW'" @click="edit(row)">编辑</Button>
|
||||||
ref="table"
|
|
||||||
class="page"
|
|
||||||
>
|
|
||||||
<template slot-scope="{ row }" slot="action">
|
|
||||||
<Button
|
|
||||||
type="info"
|
|
||||||
size="small"
|
|
||||||
class="mr_5"
|
|
||||||
v-if="row.promotionStatus == 'NEW'"
|
|
||||||
@click="edit(row)"
|
|
||||||
>编辑</Button
|
|
||||||
>
|
|
||||||
|
|
||||||
<Button
|
<Button type="info" size="small" class="mr_5" v-else @click="manage(row)">查看</Button>
|
||||||
type="info"
|
|
||||||
size="small"
|
|
||||||
class="mr_5"
|
|
||||||
v-else
|
|
||||||
@click="manage(row)"
|
|
||||||
>查看</Button
|
|
||||||
>
|
|
||||||
|
|
||||||
<Button
|
<Button type="primary" size="small" class="mr_5" v-if="row.promotionStatus == 'NEW'" @click="manage(row)">管理</Button>
|
||||||
type="primary"
|
|
||||||
size="small"
|
|
||||||
class="mr_5"
|
|
||||||
v-if="row.promotionStatus == 'NEW'"
|
|
||||||
@click="manage(row)"
|
|
||||||
>管理</Button
|
|
||||||
>
|
|
||||||
|
|
||||||
<!-- <Button type="success" size="small" class="mr_5" v-if="row.promotionStatus == 'NEW' || row.promotionStatus == 'END'" @click="upper(row)">上架</Button> -->
|
<Button type="error" size="small" v-if="
|
||||||
<Button
|
row.promotionStatus == 'START' || row.promotionStatus == 'NEW'
|
||||||
type="error"
|
" class="mr_5" @click="off(row)">下架</Button>
|
||||||
size="small"
|
|
||||||
v-if="
|
<Button type="error" size="small" v-if="row.promotionStatus == 'CLOSE'" ghost @click="expire(row)">删除</Button>
|
||||||
row.promotionStatus == 'START' || row.promotionStatus == 'NEW'
|
</template>
|
||||||
"
|
</Table>
|
||||||
class="mr_5"
|
|
||||||
@click="off(row)"
|
<Row type="flex" justify="end" class="page">
|
||||||
>下架</Button
|
<Page style="margin: 20px 0;" :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>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane label="秒杀活动设置" name="setup">
|
||||||
|
|
||||||
|
<setupSeckill v-if="setupFlag"></setupSeckill>
|
||||||
|
</TabPane>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
<Button
|
|
||||||
type="error"
|
|
||||||
size="small"
|
|
||||||
v-if="row.promotionStatus == 'CLOSE'"
|
|
||||||
ghost
|
|
||||||
@click="expire(row)"
|
|
||||||
>删除</Button
|
|
||||||
>
|
|
||||||
</template>
|
|
||||||
</Table>
|
|
||||||
<Row type="flex" justify="end" class="page">
|
|
||||||
<Page
|
|
||||||
:current="searchForm.pageNumber + 1"
|
|
||||||
: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>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -145,41 +102,13 @@ export default {
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "geekblue",},},"新建");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "新建",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.promotionStatus == "START") {
|
} else if (params.row.promotionStatus == "START") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green",},},"开始");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "开始",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.promotionStatus == "END") {
|
} else if (params.row.promotionStatus == "END") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "volcano",},},"结束");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "结束",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.promotionStatus == "CLOSE") {
|
} else if (params.row.promotionStatus == "CLOSE") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "red",},},"结束");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "废弃",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -302,7 +231,7 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/styles/table-common.scss";
|
@import "@/styles/table-common.scss";
|
||||||
.mr_5{
|
.mr_5 {
|
||||||
margin: 0 4px;
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div v-if="templateShow">
|
||||||
<Form :model="form" :label-width="120">
|
<Form :model="form" :label-width="120">
|
||||||
<FormItem label="每日场次设置">
|
<FormItem label="每日场次设置">
|
||||||
<Row :gutter="16" class="row">
|
<Row :gutter="16" class="row">
|
||||||
|
@ -27,6 +27,7 @@ import { getSetting, setSetting } from "@/api/index";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
templateShow:false,
|
||||||
submitLoading: false,
|
submitLoading: false,
|
||||||
selectedTime: [],
|
selectedTime: [],
|
||||||
times: [], //时间集合 1-24点
|
times: [], //时间集合 1-24点
|
||||||
|
@ -81,6 +82,7 @@ export default {
|
||||||
async init() {
|
async init() {
|
||||||
let result = await getSetting("SECKILL_SETTING");
|
let result = await getSetting("SECKILL_SETTING");
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
|
this.templateShow = true
|
||||||
this.form.seckillRule = result.result.seckillRule;
|
this.form.seckillRule = result.result.seckillRule;
|
||||||
this.times=[]
|
this.times=[]
|
||||||
for (let i = 0; i < 24; i++) {
|
for (let i = 0; i < 24; i++) {
|
||||||
|
|
|
@ -95,13 +95,13 @@ export default {
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.billStatus == "OUT") {
|
if (params.row.billStatus == "OUT") {
|
||||||
return h("div", "已出账");
|
return h("Tag", {props: {color: "blue",},},"已出账");
|
||||||
} else if (params.row.billStatus == "CHECK") {
|
} else if (params.row.billStatus == "CHECK") {
|
||||||
return h("div", "已对账");
|
return h("Tag", {props: {color: "geekblue",},},"已对账");
|
||||||
} else if (params.row.billStatus == "EXAMINE") {
|
} else if (params.row.billStatus == "EXAMINE") {
|
||||||
return h("div", "已审核");
|
return h("Tag", {props: {color: "purple",},},"已审核");
|
||||||
} else {
|
} else {
|
||||||
return h("div", "已付款");
|
return h("Tag", {props: {color: "green",},},"已付款");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -106,13 +106,13 @@ export default {
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.billStatus == "OUT") {
|
if (params.row.billStatus == "OUT") {
|
||||||
return h("div", "已出账");
|
return h("Tag", {props: {color: "blue",},},"已出账");
|
||||||
} else if (params.row.billStatus == "CHECK") {
|
} else if (params.row.billStatus == "CHECK") {
|
||||||
return h("div", "已对账");
|
return h("Tag", {props: {color: "geekblue",},},"已对账");
|
||||||
} else if (params.row.billStatus == "EXAMINE") {
|
} else if (params.row.billStatus == "EXAMINE") {
|
||||||
return h("div", "已审核");
|
return h("Tag", {props: {color: "purple",},},"已审核");
|
||||||
} else {
|
} else {
|
||||||
return h("div", "已付款");
|
return h("Tag", {props: {color: "green",},},"已付款");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -126,7 +126,7 @@ export default {
|
||||||
"Tag",
|
"Tag",
|
||||||
{
|
{
|
||||||
props: {
|
props: {
|
||||||
color: params.row.selfOperated ? "error" : "success",
|
color: params.row.selfOperated ? "volcano" : "green",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
params.row.selfOperated ? "自营" : "非自营"
|
params.row.selfOperated ? "自营" : "非自营"
|
||||||
|
@ -141,50 +141,15 @@ export default {
|
||||||
width: 130,
|
width: 130,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.storeDisable == "OPEN") {
|
if (params.row.storeDisable == "OPEN") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green",},},"开启中");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "开启中",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.storeDisable == "CLOSED") {
|
} else if (params.row.storeDisable == "CLOSED") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "volcano",},},"已关闭");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "已关闭",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.storeDisable == "APPLY") {
|
} else if (params.row.storeDisable == "APPLY") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "geekblue",},},"申请中");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "申请中",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.storeDisable == "APPLYING") {
|
} else if (params.row.storeDisable == "APPLYING") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "purple",},},"审核中");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "审核中",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.storeDisable == "REFUSED") {
|
} else if (params.row.storeDisable == "REFUSED") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "red",},},"审核拒绝");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "审核拒绝",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -65,13 +65,13 @@
|
||||||
<FormItem label="详细地址" prop="salesConsigneeDetail">
|
<FormItem label="详细地址" prop="salesConsigneeDetail">
|
||||||
<Input v-model="shopForm.salesConsigneeDetail" clearable style="width: 350px" />
|
<Input v-model="shopForm.salesConsigneeDetail" clearable style="width: 350px" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<!-- <Divider orientation="left">腾讯云智服</Divider>
|
<Divider orientation="left">腾讯云智服</Divider>
|
||||||
<FormItem label="唯一标识" prop="salesConsigneeDetail">
|
<FormItem label="唯一标识" prop="salesConsigneeDetail">
|
||||||
<Input v-model="shopForm.yzfSign" clearable style="width: 350px" />
|
<Input v-model="shopForm.yzfSign" clearable style="width: 350px" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="小程序唯一标识" prop="salesConsigneeDetail">
|
<FormItem label="小程序唯一标识" prop="salesConsigneeDetail">
|
||||||
<Input v-model="shopForm.yzfMpSign" clearable style="width: 350px" />
|
<Input v-model="shopForm.yzfMpSign" clearable style="width: 350px" />
|
||||||
</FormItem> -->
|
</FormItem>
|
||||||
<Spin fix v-if="loading"></Spin>
|
<Spin fix v-if="loading"></Spin>
|
||||||
</div>
|
</div>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<div class="shop-item">
|
<div class="shop-item">
|
||||||
<div class="label-item">
|
<div class="label-item">
|
||||||
<span>订单来源</span>
|
<span>订单来源</span>
|
||||||
<span>{{res.clientType}}</span>
|
<span>{{res.clientType | clientTypeWay}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="label-item">
|
<div class="label-item">
|
||||||
<span>订单状态</span>
|
<span>订单状态</span>
|
||||||
|
|
|
@ -132,13 +132,13 @@ export const delSpec = (id, params) => {
|
||||||
return deleteRequest(`/goods/spec/del/${id}`, params);
|
return deleteRequest(`/goods/spec/del/${id}`, params);
|
||||||
};
|
};
|
||||||
// 获取商品规格值列表
|
// 获取商品规格值列表
|
||||||
export const getSpecValuesListData = (id, params) => {
|
// export const getSpecValuesListData = (id, params) => {
|
||||||
return getRequest(`/goods/spec-values/values/${id}`, params);
|
// return getRequest(`/goods/spec-values/values/${id}`, params);
|
||||||
};
|
// };
|
||||||
// 添加商品规格值
|
// 添加商品规格值
|
||||||
export const saveSpecValues = (id, params) => {
|
// export const saveSpecValues = (id, params) => {
|
||||||
return postRequest(`/goods/spec-values/save/${id}`, params);
|
// return postRequest(`/goods/spec-values/save/${id}`, params);
|
||||||
};
|
// };
|
||||||
|
|
||||||
// 查询某分类下的全部子分类列表
|
// 查询某分类下的全部子分类列表
|
||||||
export const getGoodsCategory = parent_id => {
|
export const getGoodsCategory = parent_id => {
|
||||||
|
@ -209,24 +209,19 @@ export const deleteParamsGroup = (id, params) => {
|
||||||
return deleteRequest(`/goods/category/parameters/${id}`, params);
|
return deleteRequest(`/goods/category/parameters/${id}`, params);
|
||||||
};
|
};
|
||||||
|
|
||||||
//保存获取关联规格
|
|
||||||
export const getGoodsSpecInfo = (category_id, params) => {
|
|
||||||
return getRequest(`/goods/category/spec/goods/${category_id}`, params);
|
|
||||||
};
|
|
||||||
|
|
||||||
//获取sku列表
|
//获取sku列表
|
||||||
export const getSkuPage = params => {
|
export const getSkuPage = params => {
|
||||||
return getRequest(`/goodsSku/getByPage`, params);
|
return getRequest(`/goodsSku/getByPage`, params);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取商品规格值列表
|
// 获取商品规格值列表
|
||||||
export const getSpecValuesListSellerData = (id, params) => {
|
// export const getSpecValuesListSellerData = (id, params) => {
|
||||||
return getRequest(`/goods/spec-values/values/${id}`, params);
|
// return getRequest(`/goods/spec-values/values/${id}`, params);
|
||||||
};
|
// };
|
||||||
// 添加商品规格值
|
// 添加商品规格值
|
||||||
export const saveSpecValuesSeller = (id, params) => {
|
// export const saveSpecValuesSeller = (id, params) => {
|
||||||
return postRequest(`/goods/spec-values/save/${id}`, params);
|
// return postRequest(`/goods/spec-values/save/${id}`, params);
|
||||||
};
|
// };
|
||||||
|
|
||||||
// 获取商品规格分页列表
|
// 获取商品规格分页列表
|
||||||
export const getSpecListSellerData = params => {
|
export const getSpecListSellerData = params => {
|
||||||
|
@ -317,8 +312,8 @@ export const getCategoryParamsListDataSeller = (id, params) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
//保存获取关联规格
|
//保存获取关联规格
|
||||||
export const getGoodsSpecInfoSeller = (category_id, params) => {
|
export const getGoodsSpecInfoSeller = (category_id) => {
|
||||||
return getRequest(`/goods/category/spec/goods/${category_id}`, params);
|
return getRequest(`/goods/spec/${category_id}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
//批量设置运费模板
|
//批量设置运费模板
|
||||||
|
|
|
@ -22,10 +22,10 @@ export default {
|
||||||
// buyer: 'https://buyer-api.pickmall.cn',
|
// buyer: 'https://buyer-api.pickmall.cn',
|
||||||
// seller: 'https://store-api.pickmall.cn',
|
// seller: 'https://store-api.pickmall.cn',
|
||||||
// manager: 'https://admin-api.pickmall.cn',
|
// manager: 'https://admin-api.pickmall.cn',
|
||||||
common: 'http://192.168.0.100:8890',
|
common: 'http://192.168.0.109:8890',
|
||||||
buyer: 'http://192.168.0.100:8888',
|
buyer: 'http://192.168.0.109:8888',
|
||||||
seller: 'http://192.168.0.100:8889',
|
seller: 'http://192.168.0.109:8889',
|
||||||
manager: 'http://192.168.0.100:8887'
|
manager: 'http://192.168.0.109:8887'
|
||||||
},
|
},
|
||||||
api_prod: {
|
api_prod: {
|
||||||
common: 'https://common-api.pickmall.cn',
|
common: 'https://common-api.pickmall.cn',
|
||||||
|
|
|
@ -69,14 +69,6 @@ service.interceptors.response.use(
|
||||||
router.push("/login");
|
router.push("/login");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 403:
|
|
||||||
// 权限不足
|
|
||||||
if (data.message !== null) {
|
|
||||||
Message.error(data.message);
|
|
||||||
} else {
|
|
||||||
Message.error("权限不足");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 500:
|
case 500:
|
||||||
// 系统异常
|
// 系统异常
|
||||||
if (data.message !== null) {
|
if (data.message !== null) {
|
||||||
|
@ -94,6 +86,8 @@ service.interceptors.response.use(
|
||||||
if (error.response) {
|
if (error.response) {
|
||||||
if (error.response.status === 401) {
|
if (error.response.status === 401) {
|
||||||
// 这种情况一般调到登录页
|
// 这种情况一般调到登录页
|
||||||
|
} else if (error.response.status === 404) {
|
||||||
|
// 避免刷新token报错
|
||||||
} else if (error.response.status === 403) {
|
} else if (error.response.status === 403) {
|
||||||
isRefreshToken++;
|
isRefreshToken++;
|
||||||
if (isRefreshToken === 1) {
|
if (isRefreshToken === 1) {
|
||||||
|
|
|
@ -54,20 +54,20 @@ export const result = [
|
||||||
children: null,
|
children: null,
|
||||||
permTypes: []
|
permTypes: []
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
name: "daft-goods",
|
// name: "daft-goods",
|
||||||
showAlways: true,
|
// showAlways: true,
|
||||||
level: 2,
|
// level: 2,
|
||||||
type: 0,
|
// type: 0,
|
||||||
title: "草稿商品",
|
// title: "草稿商品",
|
||||||
path: "daft-goods",
|
// path: "daft-goods",
|
||||||
component: "goods/goods-seller/draftGoods",
|
// component: "goods/goods-seller/draftGoods",
|
||||||
icon: "md-person",
|
// icon: "md-person",
|
||||||
isMenu: true,
|
// isMenu: true,
|
||||||
url: "",
|
// url: "",
|
||||||
children: null,
|
// children: null,
|
||||||
permTypes: []
|
// permTypes: []
|
||||||
},
|
// },
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "template-goods",
|
path: "template-goods",
|
||||||
|
|
|
@ -5,7 +5,7 @@ export const loginRouter = {
|
||||||
path: "/login",
|
path: "/login",
|
||||||
name: "login",
|
name: "login",
|
||||||
meta: {
|
meta: {
|
||||||
title: "登录 - lili商家后台 "
|
title: "登录 - lili商家后台"
|
||||||
},
|
},
|
||||||
component: () => import("@/views/login.vue")
|
component: () => import("@/views/login.vue")
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,6 +7,7 @@ import Vue from 'vue';
|
||||||
const app = {
|
const app = {
|
||||||
state: {
|
state: {
|
||||||
shipTemplates:"",
|
shipTemplates:"",
|
||||||
|
regions:[], //此处是在地区选择器时赋值一次
|
||||||
styleStore:"", //移动端楼层装修中选择风格存储
|
styleStore:"", //移动端楼层装修中选择风格存储
|
||||||
loading: false, // 全局加载动画
|
loading: false, // 全局加载动画
|
||||||
added: false, // 加载路由标识
|
added: false, // 加载路由标识
|
||||||
|
|
|
@ -6,17 +6,32 @@
|
||||||
* @returns {*}
|
* @returns {*}
|
||||||
*/
|
*/
|
||||||
export function unitPrice(val, unit, location) {
|
export function unitPrice(val, unit, location) {
|
||||||
let price = formatPrice(val)
|
let price = formatPrice(val);
|
||||||
if (location === 'before') {
|
if (location === "before") {
|
||||||
return price.substr(0, price.length - 3)
|
return price.substr(0, price.length - 3);
|
||||||
}
|
}
|
||||||
if (location === 'after') {
|
if (location === "after") {
|
||||||
return price.substr(-2)
|
return price.substr(-2);
|
||||||
}
|
}
|
||||||
return (unit || '') + price
|
return (unit || "") + price;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单来源
|
||||||
|
*/
|
||||||
|
export function clientTypeWay(val) {
|
||||||
|
if (val == "H5") {
|
||||||
|
return "移动端";
|
||||||
|
} else if (val == "PC") {
|
||||||
|
return "PC端";
|
||||||
|
} else if (val == "WECHAT_MP") {
|
||||||
|
return "小程序端";
|
||||||
|
} else if (val == "APP") {
|
||||||
|
return "移动应用端";
|
||||||
|
} else {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 货币格式化
|
* 货币格式化
|
||||||
|
@ -24,8 +39,8 @@ export function unitPrice(val, unit, location) {
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
export function formatPrice(price) {
|
export function formatPrice(price) {
|
||||||
if (typeof price !== 'number') return price
|
if (typeof price !== "number") return price;
|
||||||
return String(Number(price).toFixed(2)).replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
return String(Number(price).toFixed(2)).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,51 +50,60 @@ export function formatPrice(price) {
|
||||||
* @returns {*|string}
|
* @returns {*|string}
|
||||||
*/
|
*/
|
||||||
export function unixToDate(unix, format) {
|
export function unixToDate(unix, format) {
|
||||||
let _format = format || 'yyyy-MM-dd hh:mm:ss'
|
let _format = format || "yyyy-MM-dd hh:mm:ss";
|
||||||
const d = new Date(unix * 1000)
|
const d = new Date(unix * 1000);
|
||||||
const o = {
|
const o = {
|
||||||
'M+': d.getMonth() + 1,
|
"M+": d.getMonth() + 1,
|
||||||
'd+': d.getDate(),
|
"d+": d.getDate(),
|
||||||
'h+': d.getHours(),
|
"h+": d.getHours(),
|
||||||
'm+': d.getMinutes(),
|
"m+": d.getMinutes(),
|
||||||
's+': d.getSeconds(),
|
"s+": d.getSeconds(),
|
||||||
'q+': Math.floor((d.getMonth() + 3) / 3),
|
"q+": Math.floor((d.getMonth() + 3) / 3),
|
||||||
S: d.getMilliseconds()
|
S: d.getMilliseconds()
|
||||||
}
|
};
|
||||||
if (/(y+)/.test(_format)) _format = _format.replace(RegExp.$1, (d.getFullYear() + '').substr(4 - RegExp.$1.length))
|
if (/(y+)/.test(_format))
|
||||||
for (const k in o) if (new RegExp('(' + k + ')').test(_format)) _format = _format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
|
_format = _format.replace(
|
||||||
return _format
|
RegExp.$1,
|
||||||
|
(d.getFullYear() + "").substr(4 - RegExp.$1.length)
|
||||||
|
);
|
||||||
|
for (const k in o)
|
||||||
|
if (new RegExp("(" + k + ")").test(_format))
|
||||||
|
_format = _format.replace(
|
||||||
|
RegExp.$1,
|
||||||
|
RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
|
||||||
|
);
|
||||||
|
return _format;
|
||||||
}
|
}
|
||||||
//是否格式化
|
//是否格式化
|
||||||
export function unixWhether(status) {
|
export function unixWhether(status) {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 'YES':
|
case "YES":
|
||||||
return "是"
|
return "是";
|
||||||
case 'NO':
|
case "NO":
|
||||||
return "否"
|
return "否";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function unixSellerBillStatus(status_code) {
|
export function unixSellerBillStatus(status_code) {
|
||||||
switch (status_code) {
|
switch (status_code) {
|
||||||
case 'OUT':
|
case "OUT":
|
||||||
return '已出账'
|
return "已出账";
|
||||||
case 'CHECK':
|
case "CHECK":
|
||||||
return '已对账'
|
return "已对账";
|
||||||
case 'EXAMINE':
|
case "EXAMINE":
|
||||||
return '已审核'
|
return "已审核";
|
||||||
case 'PAY':
|
case "PAY":
|
||||||
return '已结算'
|
return "已结算";
|
||||||
case 'COMPLETE':
|
case "COMPLETE":
|
||||||
return '已完成'
|
return "已完成";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export function unixSwitchStatus(status_code) {
|
export function unixSwitchStatus(status_code) {
|
||||||
switch (status_code) {
|
switch (status_code) {
|
||||||
case 'OPEN':
|
case "OPEN":
|
||||||
return '开启'
|
return "开启";
|
||||||
case 'CLOSE':
|
case "CLOSE":
|
||||||
return '关闭'
|
return "关闭";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,30 +113,35 @@ export function unixSwitchStatus(status_code) {
|
||||||
* @returns {*}
|
* @returns {*}
|
||||||
*/
|
*/
|
||||||
export function secrecyMobile(mobile) {
|
export function secrecyMobile(mobile) {
|
||||||
mobile = String(mobile)
|
mobile = String(mobile);
|
||||||
if (!/\d{11}/.test(mobile)) {
|
if (!/\d{11}/.test(mobile)) {
|
||||||
return mobile
|
return mobile;
|
||||||
}
|
}
|
||||||
return mobile.replace(/(\d{3})(\d{4})(\d{4})/, '$1****$3')
|
return mobile.replace(/(\d{3})(\d{4})(\d{4})/, "$1****$3");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function formatDate(date, fmt) {
|
export function formatDate(date, fmt) {
|
||||||
if (/(y+)/.test(fmt)) {
|
if (/(y+)/.test(fmt)) {
|
||||||
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
|
fmt = fmt.replace(
|
||||||
|
RegExp.$1,
|
||||||
|
(date.getFullYear() + "").substr(4 - RegExp.$1.length)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
let o = {
|
let o = {
|
||||||
'M+': date.getMonth() + 1,
|
"M+": date.getMonth() + 1,
|
||||||
'd+': date.getDate(),
|
"d+": date.getDate(),
|
||||||
'h+': date.getHours(),
|
"h+": date.getHours(),
|
||||||
'm+': date.getMinutes(),
|
"m+": date.getMinutes(),
|
||||||
's+': date.getSeconds()
|
"s+": date.getSeconds()
|
||||||
};
|
};
|
||||||
for (let k in o) {
|
for (let k in o) {
|
||||||
if (new RegExp(`(${k})`).test(fmt)) {
|
if (new RegExp(`(${k})`).test(fmt)) {
|
||||||
let str = o[k] + '';
|
let str = o[k] + "";
|
||||||
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
|
fmt = fmt.replace(
|
||||||
}
|
RegExp.$1,
|
||||||
|
RegExp.$1.length === 1 ? str : padLeftZero(str)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return fmt;
|
return fmt;
|
||||||
};
|
}
|
||||||
|
|
|
@ -395,11 +395,11 @@ div.base-info-item {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
display: inline-flex;
|
display: inline-block;
|
||||||
flex-direction: column;
|
|
||||||
background: #fff;
|
background: #fff;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
|
vertical-align: bottom;
|
||||||
}
|
}
|
||||||
.demo-upload-list img {
|
.demo-upload-list img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
@ -12,6 +12,12 @@
|
||||||
<Option value="UPPER">上架</Option>
|
<Option value="UPPER">上架</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
|
<Form-item label="商品类型" prop="status">
|
||||||
|
<Select v-model="searchForm.goodsType" placeholder="请选择" clearable style="width: 200px">
|
||||||
|
<Option value="PHYSICAL_GOODS">实物商品</Option>
|
||||||
|
<Option value="VIRTUAL_GOODS">虚拟商品</Option>
|
||||||
|
</Select>
|
||||||
|
</Form-item>
|
||||||
<Form-item label="商品编号" prop="sn">
|
<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>
|
||||||
|
@ -45,11 +51,11 @@
|
||||||
|
|
||||||
<div style="margin-left: 13px;">
|
<div style="margin-left: 13px;">
|
||||||
<div class="div-zoom">
|
<div class="div-zoom">
|
||||||
<a @click="linkTo(row.id,row.skuId)">{{row.goodsName}}</a>
|
<a @click="linkTo(row.id,row.skuId)">{{ row.goodsName }}</a>
|
||||||
</div>
|
</div>
|
||||||
<Poptip trigger="hover" title="扫码在手机中查看" transfer>
|
<Poptip trigger="hover" title="扫码在手机中查看" transfer>
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<vue-qr :text="wapLinkTo(row.id,row.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
|
<vue-qr :text="wapLinkTo(row.id,row.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
|
||||||
</div>
|
</div>
|
||||||
<img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
|
<img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
|
||||||
</Poptip>
|
</Poptip>
|
||||||
|
@ -66,8 +72,15 @@
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Modal title="更新库存" v-model="updateStockModalVisible" :mask-closable="false" :width="500">
|
<Modal title="更新库存" v-model="updateStockModalVisible" :mask-closable="false" :width="500">
|
||||||
<Input type="number" v-model="stockAllUpdate" placeholder="全部修改,如不需全部修改,则不需输入" />
|
<Tabs value="updateStock">
|
||||||
<Table :columns="updateStockColumns" :data="stockList" border :span-method="handleSpan"></Table>
|
<TabPane label="手动规格更新" name="updateStock">
|
||||||
|
<Table :columns="updateStockColumns" :data="stockList" border :span-method="handleSpan"></Table>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane label="批量规格更新" name="stockAll">
|
||||||
|
<Input type="number" v-model="stockAllUpdate" placeholder="统一规格修改" />
|
||||||
|
</TabPane>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
<Button type="text" @click="updateStockModalVisible = false">取消</Button>
|
<Button type="text" @click="updateStockModalVisible = false">取消</Button>
|
||||||
<Button type="primary" @click="updateStock">更新</Button>
|
<Button type="primary" @click="updateStock">更新</Button>
|
||||||
|
@ -161,32 +174,11 @@ export default {
|
||||||
width: 130,
|
width: 130,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.isAuth == "TOBEAUDITED") {
|
if (params.row.isAuth == "TOBEAUDITED") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "blue",},},"待审核");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "待审核",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.isAuth == "PASS") {
|
} else if (params.row.isAuth == "PASS") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green",},},"通过");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "审核通过",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.isAuth == "REFUSE") {
|
} else if (params.row.isAuth == "REFUSE") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "red",},},"审核拒绝");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "审核拒绝",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -245,6 +237,20 @@ export default {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "商品类型",
|
||||||
|
key: "goodsType",
|
||||||
|
width: 130,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.goodsType === 'PHYSICAL_GOODS') {
|
||||||
|
return h("Tag", {props: {color: "geekblue"}},"实物商品");
|
||||||
|
} else if (params.row.goodsType === 'VIRTUAL_GOODS') {
|
||||||
|
return h("Tag", {props: {color: "purple"}},"虚拟商品");
|
||||||
|
} else {
|
||||||
|
return h("Tag", {props: {color: "cyan"}},"电子卡券");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "商品价格",
|
title: "商品价格",
|
||||||
key: "price",
|
key: "price",
|
||||||
|
@ -274,32 +280,11 @@ export default {
|
||||||
width: 120,
|
width: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.isAuth == "PASS") {
|
if (params.row.isAuth == "PASS") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green"}},"通过");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "审核通过",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.isAuth == "TOBEAUDITED") {
|
} else if (params.row.isAuth == "TOBEAUDITED") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "volcano"}},"待审核");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "待审核",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.isAuth == "REFUSE") {
|
} else if (params.row.isAuth == "REFUSE") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "red"}},"审核拒绝");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "审核拒绝",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -310,28 +295,12 @@ export default {
|
||||||
sortable: false,
|
sortable: false,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.marketEnable == "DOWN") {
|
if (params.row.marketEnable == "DOWN") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "red"}},"下架");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "error",
|
|
||||||
text: "下架",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else if (params.row.marketEnable == "UPPER") {
|
} else if (params.row.marketEnable == "UPPER") {
|
||||||
return h("div", [
|
return h("Tag", {props: {color: "green"}},"上架");
|
||||||
h("Badge", {
|
|
||||||
props: {
|
|
||||||
status: "success",
|
|
||||||
text: "上架",
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
key: "action",
|
key: "action",
|
||||||
|
@ -481,28 +450,28 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
changePage (v) {
|
changePage(v) {
|
||||||
this.searchForm.pageNumber = v;
|
this.searchForm.pageNumber = v;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
this.clearSelectAll();
|
this.clearSelectAll();
|
||||||
},
|
},
|
||||||
changePageSize (v) {
|
changePageSize(v) {
|
||||||
this.searchForm.pageSize = v;
|
this.searchForm.pageSize = v;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
handleSearch () {
|
handleSearch() {
|
||||||
this.searchForm.pageNumber = 1;
|
this.searchForm.pageNumber = 1;
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm.pageSize = 10;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
handleReset () {
|
handleReset() {
|
||||||
this.searchForm = {};
|
this.searchForm = {};
|
||||||
this.searchForm.pageNumber = 1;
|
this.searchForm.pageNumber = 1;
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm.pageSize = 10;
|
||||||
// 重新加载数据
|
// 重新加载数据
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
changeSort (e) {
|
changeSort(e) {
|
||||||
this.searchForm.sort = e.key;
|
this.searchForm.sort = e.key;
|
||||||
this.searchForm.order = e.order;
|
this.searchForm.order = e.order;
|
||||||
if (e.order === "normal") {
|
if (e.order === "normal") {
|
||||||
|
@ -510,15 +479,15 @@ export default {
|
||||||
}
|
}
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
clearSelectAll () {
|
clearSelectAll() {
|
||||||
this.$refs.table.selectAll(false);
|
this.$refs.table.selectAll(false);
|
||||||
},
|
},
|
||||||
changeSelect (e) {
|
changeSelect(e) {
|
||||||
this.selectList = e;
|
this.selectList = e;
|
||||||
this.selectCount = e.length;
|
this.selectCount = e.length;
|
||||||
},
|
},
|
||||||
//保存运费模板信息
|
//保存运费模板信息
|
||||||
saveShipTemplate () {
|
saveShipTemplate() {
|
||||||
if (this.shipTemplateForm.freightPayer == "STORE") {
|
if (this.shipTemplateForm.freightPayer == "STORE") {
|
||||||
{
|
{
|
||||||
this.shipTemplateForm.templateId = 0;
|
this.shipTemplateForm.templateId = 0;
|
||||||
|
@ -716,10 +685,10 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted() {
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
activated () {
|
activated() {
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -44,23 +44,27 @@ export default {
|
||||||
*/
|
*/
|
||||||
open(val, index) {
|
open(val, index) {
|
||||||
if (val) {
|
if (val) {
|
||||||
|
// console.warn(val);
|
||||||
//已选中的地址
|
//已选中的地址
|
||||||
let checkedData = this.$store.state.shipTemplate;
|
let checkedData = this.$store.state.shipTemplate;
|
||||||
|
|
||||||
|
// console.warn(this.$store.state.shipTemplate);
|
||||||
// 禁止选中的地址
|
// 禁止选中的地址
|
||||||
let disabledData = checkedData.filter((item, i) => {
|
let disabledData = checkedData.filter((item, i) => {
|
||||||
return i != index;
|
return i != index;
|
||||||
});
|
});
|
||||||
|
|
||||||
disabledData.forEach((dis) => {
|
disabledData.forEach((dis) => {
|
||||||
|
console.log(dis)
|
||||||
// 循环出已经选中的地址id
|
// 循环出已经选中的地址id
|
||||||
dis.areaId.split(",").forEach((ids) => {
|
dis.areaId.split(",").forEach((ids) => {
|
||||||
// 循环出省份
|
// 循环出省份
|
||||||
this.data.forEach((item) => {
|
this.data.forEach((item) => {
|
||||||
// 如果当前省份下市区全部选中则选中该省份
|
// 如果当前省份下市区全部选中则选中该省份
|
||||||
|
|
||||||
if (dis.selectedAll) {
|
if (dis.selectedAll) {
|
||||||
dis.area.split(",").forEach((area) => {
|
dis.area.split(",").forEach((area) => {
|
||||||
if (area == item.name) {
|
if (area == item.name) {
|
||||||
|
console.log(item.name +"选中")
|
||||||
this.$set(item, "disabled", true);
|
this.$set(item, "disabled", true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -99,7 +103,11 @@ export default {
|
||||||
|
|
||||||
// 筛选出当前选中的市
|
// 筛选出当前选中的市
|
||||||
sort.forEach((sortItem, sortIndex) => {
|
sort.forEach((sortItem, sortIndex) => {
|
||||||
if (item.level != "province" && sortItem.id == item.parentId && !item.disabled) {
|
if (
|
||||||
|
item.level != "province" &&
|
||||||
|
sortItem.id == item.parentId &&
|
||||||
|
!item.disabled
|
||||||
|
) {
|
||||||
sortItem.selectedList.push({
|
sortItem.selectedList.push({
|
||||||
...item,
|
...item,
|
||||||
});
|
});
|
||||||
|
@ -147,6 +155,7 @@ export default {
|
||||||
this.selectedWay.push({ name: data.title, id: data.id });
|
this.selectedWay.push({ name: data.title, id: data.id });
|
||||||
});
|
});
|
||||||
console.log(this.data);
|
console.log(this.data);
|
||||||
|
this.$store.state.regions = this.data;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -162,7 +162,7 @@ export default {
|
||||||
}
|
}
|
||||||
.login {
|
.login {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: url("../assets/background.svg") no-repeat;
|
background: url("../assets/background.png") no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
background-position-y: bottom;
|
background-position-y: bottom;
|
||||||
background-color: #edf0f3;
|
background-color: #edf0f3;
|
||||||
|
|
|
@ -134,21 +134,18 @@ export default {
|
||||||
key: "name",
|
key: "name",
|
||||||
minWidth: 120
|
minWidth: 120
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
key: "disabled",
|
key: "disabled",
|
||||||
minWidth: 50,
|
minWidth: 50,
|
||||||
render(h, params) {
|
render(h, params) {
|
||||||
return h("Badge", {
|
if(params.row.disabled){
|
||||||
props: {
|
return h("div", [h("tag", {props: {color: "green"}}, "开启")]);
|
||||||
status: params.row.disabled ? "success" : "error",
|
}else{
|
||||||
text: params.row.disabled ? "开启" : "关闭",
|
return h("div", [h("tag", {props: {color: "volcano"}}, "关闭")]);
|
||||||
},
|
}
|
||||||
});
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
key: "action",
|
key: "action",
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="foot">
|
<div class="foot">
|
||||||
<Row type="flex" justify="space-around" class="help">
|
<Row type="flex" justify="space-around" class="help">
|
||||||
<a class="item" href="https://lilishop.com" target="_blank">{{ $t('help') }}</a>
|
<a class="item" href="https://pickmall.cn/" target="_blank">{{ $t('help') }}</a>
|
||||||
<a class="item" href="https://lilishop.com" target="_blank">{{ $t('privacy') }}</a>
|
<a class="item" href="https://pickmall.cn/" target="_blank">{{ $t('privacy') }}</a>
|
||||||
<a class="item" href="https://lilishop.com" target="_blank">{{ $t('terms') }}</a>
|
<a class="item" href="https://pickmall.cn/" target="_blank">{{ $t('terms') }}</a>
|
||||||
</Row>
|
</Row>
|
||||||
<Row type="flex" justify="center" class="copyright">
|
<Row type="flex" justify="center" class="copyright">
|
||||||
Copyright © 2020 - Present
|
Copyright © 2020 - Present
|
||||||
<a
|
<a
|
||||||
href="http://lili.cn"
|
href="https://pickmall.cn/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
style="margin:0 5px;"
|
style="margin:0 5px;"
|
||||||
>lili-shop</a> {{ $t('rights') }}
|
>lili-shop</a> {{ $t('rights') }}
|
||||||
|
|
|
@ -210,11 +210,11 @@ export default {
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.grade == "GOOD") {
|
if (params.row.grade == "GOOD") {
|
||||||
return h("Badge", {props: {status: "success", text: "好评"}})
|
return h("Tag", {props: {color: "green",},}, "好评");
|
||||||
} else if (params.row.grade == "MODERATE") {
|
} else if (params.row.grade == "MODERATE") {
|
||||||
return h("Badge", {props: {status: "success", text: "中评"}})
|
return h("Tag", {props: {color: "orange",},}, "中评");
|
||||||
} else if (params.row.grade == "WORSE") {
|
} else {
|
||||||
return h("Badge", {props: {status: "error", text: "差评"}})
|
return h("Tag", {props: {color: "red",},}, "差评");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -224,9 +224,9 @@ export default {
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.status === "OPEN") {
|
if (params.row.status === "OPEN") {
|
||||||
return h("Badge", {props: {status: "success", text: "展示"}})
|
return h("Tag", {props: {color: "green"}},"展示")
|
||||||
} else {
|
} else {
|
||||||
return h("Badge", {props: {status: "error", text: "隐藏"}})
|
return h("Tag", {props: {color: "red"}},"隐藏")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -236,9 +236,9 @@ export default {
|
||||||
width: 110,
|
width: 110,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.replyStatus) {
|
if (params.row.replyStatus) {
|
||||||
return h("Badge", {props: {status: "success", text: "已回复"}})
|
return h("Tag", {props: {color: "green"}},"已回复")
|
||||||
} else {
|
} else {
|
||||||
return h("Badge", {props: {status: "error", text: "未回复"}})
|
return h("Tag", {props: {color: "blue"}},"未回复")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -334,7 +334,7 @@ export default {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.data = res.result.records;
|
this.data = res.result.records;
|
||||||
this.total = res.result.total;
|
this.total = res.result.total;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,49 +1,50 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<vuedraggable
|
<div class="upload-pic-thumb">
|
||||||
:list="uploadList"
|
<vuedraggable
|
||||||
:disabled="!draggable||!multiple"
|
:list="uploadList"
|
||||||
:animation="200"
|
:disabled="!draggable||!multiple"
|
||||||
class="list-group"
|
:animation="200"
|
||||||
ghost-class="thumb-ghost"
|
class="list-group"
|
||||||
@end="onEnd"
|
ghost-class="thumb-ghost"
|
||||||
>
|
@end="onEnd"
|
||||||
<div class="upload-list" v-for="(item, index) in uploadList" :key="index">
|
>
|
||||||
<div v-if="item.status == 'finished'">
|
<div class="upload-list" v-for="(item, index) in uploadList" :key="index">
|
||||||
<img :src="item.url" />
|
<div v-if="item.status == 'finished'">
|
||||||
<div class="upload-list-cover">
|
<img :src="item.url" />
|
||||||
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>
|
<div class="upload-list-cover">
|
||||||
<Icon v-if="remove" type="ios-trash-outline" @click="handleRemove(item)"></Icon>
|
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>
|
||||||
|
<Icon v-if="remove" type="ios-trash-outline" @click="handleRemove(item)"></Icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
</vuedraggable>
|
||||||
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
|
<Upload
|
||||||
|
:disabled="disable"
|
||||||
|
ref="upload"
|
||||||
|
:multiple="multiple"
|
||||||
|
:show-upload-list="false"
|
||||||
|
:on-success="handleSuccess"
|
||||||
|
:on-error="handleError"
|
||||||
|
:format="['jpg','jpeg','png','gif']"
|
||||||
|
:max-size="maxSize*1024"
|
||||||
|
:on-format-error="handleFormatError"
|
||||||
|
:on-exceeded-size="handleMaxSize"
|
||||||
|
:before-upload="handleBeforeUpload"
|
||||||
|
type="drag"
|
||||||
|
: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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</Upload>
|
||||||
</vuedraggable>
|
</div>
|
||||||
<Upload
|
|
||||||
:disabled="disable"
|
|
||||||
ref="upload"
|
|
||||||
:multiple="multiple"
|
|
||||||
:show-upload-list="false"
|
|
||||||
:on-success="handleSuccess"
|
|
||||||
:on-error="handleError"
|
|
||||||
:format="['jpg','jpeg','png','gif']"
|
|
||||||
:max-size="maxSize*1024"
|
|
||||||
:on-format-error="handleFormatError"
|
|
||||||
:on-exceeded-size="handleMaxSize"
|
|
||||||
:before-upload="handleBeforeUpload"
|
|
||||||
type="drag"
|
|
||||||
: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>
|
|
||||||
</div>
|
|
||||||
</Upload>
|
|
||||||
|
|
||||||
<Modal title="图片预览" v-model="viewImage" :styles="{top: '30px'}" draggable>
|
<Modal title="图片预览" v-model="viewImage" :styles="{top: '30px'}" draggable>
|
||||||
<img :src="imgUrl" alt="无效的图片链接" style="width: 100%;margin: 0 auto;display: block;" />
|
<img :src="imgUrl" alt="无效的图片链接" style="width: 100%;margin: 0 auto;display: block;" />
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
|
@ -252,10 +253,12 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.upload-pic-thumb{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
.upload-list {
|
.upload-list {
|
||||||
display: inline-block;
|
display: inline-flex;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -267,6 +270,7 @@ export default {
|
||||||
position: relative;
|
position: relative;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.upload-list img {
|
.upload-list img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
@ -98,14 +98,14 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
this.getImg();
|
// this.getImg();
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
verifyType: {
|
verifyType: {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
handler: function (v) {
|
handler: function (v) {
|
||||||
this.type = v;
|
this.type = v;
|
||||||
this.refresh();
|
// this.refresh();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
show (v) {
|
show (v) {
|
||||||
|
|
|
@ -185,17 +185,17 @@
|
||||||
key: "complainStatus",
|
key: "complainStatus",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.complainStatus == "NEW") {
|
if (params.row.complainStatus == "NEW") {
|
||||||
return h('div', [h('span', { }, '新投诉'),]);
|
return h('div', [h('tag',{props: {color: "purple"}}, '新投诉'),]);
|
||||||
} else if (params.row.complainStatus == "CANCEL") {
|
} else if (params.row.complainStatus == "CANCEL") {
|
||||||
return h('div', [h('span', { }, '已撤销'),]);
|
return h('div', [h('tag', {props: {color: "cyan"}}, '已撤销'),]);
|
||||||
} else if (params.row.complainStatus == "WAIT_APPEAL") {
|
} else if (params.row.complainStatus == "WAIT_APPEAL") {
|
||||||
return h('div', [h('span', { }, '待申诉'),]);
|
return h('div', [h('tag', {props: {color: "volcano"}}, '待申诉'),]);
|
||||||
} else if (params.row.complainStatus == "COMMUNICATION") {
|
} else if (params.row.complainStatus == "COMMUNICATION") {
|
||||||
return h('div', [h('span', { }, '对话中'),]);
|
return h('div', [h('tag', {props: {color: "orange"}}, '对话中'),]);
|
||||||
}else if (params.row.complainStatus == "WAIT_ARBITRATION") {
|
}else if (params.row.complainStatus == "WAIT_ARBITRATION") {
|
||||||
return h('div', [h('span', { }, '等待仲裁'),]);
|
return h('div', [h('tag', {props: {color: "blue"}}, '等待仲裁'),]);
|
||||||
}else if (params.row.complainStatus == "COMPLETE") {
|
}else if (params.row.complainStatus == "COMPLETE") {
|
||||||
return h('div', [h('span', { }, '已完成'),]);
|
return h('div', [h('tag', {props: {color: "green"}}, '已完成'),]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -176,25 +176,23 @@
|
||||||
width: 120,
|
width: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.serviceStatus == "APPLY") {
|
if (params.row.serviceStatus == "APPLY") {
|
||||||
return h('div', [h('span', { }, '申请售后'),]);
|
return h('div', [h('tag', {props: {color: "blue"}}, '申请中'),]);
|
||||||
} else if (params.row.serviceStatus == "PASS") {
|
} else if (params.row.serviceStatus == "PASS") {
|
||||||
return h('div', [h('span', { }, '审核通过'),]);
|
return h('div', [h('tag', {props: {color: "cyan"}}, '通过售后'),]);
|
||||||
} else if (params.row.serviceStatus == "REFUSE") {
|
} else if (params.row.serviceStatus == "REFUSE") {
|
||||||
return h('div', [h('span', { }, '审核拒绝'),]);
|
return h('div', [h('tag', {props: {color: "volcano"}}, '拒绝售后'),]);
|
||||||
} else if (params.row.serviceStatus == "BUYER_RETURN") {
|
} else if (params.row.serviceStatus == "BUYER_RETURN") {
|
||||||
return h('div', [h('span', { }, '买家退货,待卖家收货'),]);
|
return h('div', [h('tag', {props: {color: "orange"}}, '买家退货,待卖家收货'),]);
|
||||||
}else if (params.row.serviceStatus == "SELLER_RE_DELIVERY") {
|
} else if (params.row.serviceStatus == "SELLER_CONFIRM") {
|
||||||
return h('div', [h('span', { }, '商家换货/补发'),]);
|
return h('div', [h('tag', {props: {color: "gold"}}, '卖家确认收货'),]);
|
||||||
}else if (params.row.serviceStatus == "SELLER_CONFIRM") {
|
} else if (params.row.serviceStatus == "SELLER_TERMINATION") {
|
||||||
return h('div', [h('span', { }, '卖家确认收货'),]);
|
return h('div', [h('tag', {props: {color: "lime"}}, '卖家终止售后'),]);
|
||||||
}else if (params.row.serviceStatus == "SELLER_TERMINATION") {
|
} else if (params.row.serviceStatus == "BUYER_CANCEL") {
|
||||||
return h('div', [h('span', { }, '卖家终止售后'),]);
|
return h('div', [h('tag', {props: {color: "purple"}}, '买家取消售后'),]);
|
||||||
}else if (params.row.serviceStatus == "BUYER_CONFIRM") {
|
} else if (params.row.serviceStatus == "COMPLETE") {
|
||||||
return h('div', [h('span', { }, '买家确认收货'),]);
|
return h('div', [h('tag', {props: {color: "green"}}, '完成售后'),]);
|
||||||
}else if (params.row.serviceStatus == "BUYER_CANCEL") {
|
}else if (params.row.serviceStatus == "WAIT_REFUND") {
|
||||||
return h('div', [h('span', { }, '买家取消售后'),]);
|
return h('div', [h('tag', {props: {color: "geekblue"}}, '待平台退款'),]);
|
||||||
}else if (params.row.serviceStatus == "COMPLETE") {
|
|
||||||
return h('div', [h('span', { }, '完成'),]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -182,27 +182,17 @@
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.serviceStatus == "APPLY") {
|
if (params.row.serviceStatus == "APPLY") {
|
||||||
return h('div', [h('span', { }, '申请售后'),]);
|
return h('div', [h('tag', {props: {color: "blue"}}, '申请中'),]);
|
||||||
} else if (params.row.serviceStatus == "PASS") {
|
} else if (params.row.serviceStatus == "PASS") {
|
||||||
return h('div', [h('span', { }, '审核通过'),]);
|
return h('div', [h('tag', {props: {color: "cyan"}}, '通过售后'),]);
|
||||||
} else if (params.row.serviceStatus == "REFUSE") {
|
} else if (params.row.serviceStatus == "REFUSE") {
|
||||||
return h('div', [h('span', { }, '审核拒绝'),]);
|
return h('div', [h('tag', {props: {color: "volcano"}}, '拒绝售后'),]);
|
||||||
} else if (params.row.serviceStatus == "BUYER_RETURN") {
|
} else if (params.row.serviceStatus == "BUYER_CANCEL") {
|
||||||
return h('div', [h('span', { }, '买家退货,待卖家收货'),]);
|
return h('div', [h('tag', {props: {color: "purple"}}, '买家取消售后'),]);
|
||||||
}else if (params.row.serviceStatus == "SELLER_RE_DELIVERY") {
|
} else if (params.row.serviceStatus == "COMPLETE") {
|
||||||
return h('div', [h('span', { }, '商家换货/补发'),]);
|
return h('div', [h('tag', {props: {color: "green"}}, '完成售后'),]);
|
||||||
}else if (params.row.serviceStatus == "SELLER_CONFIRM") {
|
|
||||||
return h('div', [h('span', { }, '卖家确认收货'),]);
|
|
||||||
}else if (params.row.serviceStatus == "SELLER_TERMINATION") {
|
|
||||||
return h('div', [h('span', { }, '卖家终止售后'),]);
|
|
||||||
}else if (params.row.serviceStatus == "BUYER_CONFIRM") {
|
|
||||||
return h('div', [h('span', { }, '买家确认收货'),]);
|
|
||||||
}else if (params.row.serviceStatus == "BUYER_CANCEL") {
|
|
||||||
return h('div', [h('span', { }, '买家取消售后'),]);
|
|
||||||
}else if (params.row.serviceStatus == "WAIT_REFUND") {
|
}else if (params.row.serviceStatus == "WAIT_REFUND") {
|
||||||
return h('div', [h('span', { }, '等待平台退款'),]);
|
return h('div', [h('tag', {props: {color: "geekblue"}}, '待平台退款'),]);
|
||||||
}else if (params.row.serviceStatus == "COMPLETE") {
|
|
||||||
return h('div', [h('span', { }, '完成'),]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<div class="div-item">
|
<div class="div-item">
|
||||||
<div class="div-item-left">订单来源:</div>
|
<div class="div-item-left">订单来源:</div>
|
||||||
<div class="div-item-right">
|
<div class="div-item-right">
|
||||||
{{ orderInfo.order.clientType }}
|
{{ orderInfo.order.clientType | clientTypeWay }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -53,8 +53,8 @@ export default {
|
||||||
// 搜索框初始化对象
|
// 搜索框初始化对象
|
||||||
pageNumber: 1, // 当前页数
|
pageNumber: 1, // 当前页数
|
||||||
pageSize: 10, // 页面大小
|
pageSize: 10, // 页面大小
|
||||||
sort: "createTime", // 默认排序字段
|
sort: "", // 默认排序字段
|
||||||
order: "desc", // 默认排序方式
|
order: "", // 默认排序方式
|
||||||
startDate: "", // 起始时间
|
startDate: "", // 起始时间
|
||||||
endDate: "", // 终止时间
|
endDate: "", // 终止时间
|
||||||
orderSn: "",
|
orderSn: "",
|
||||||
|
@ -80,7 +80,7 @@ export default {
|
||||||
{
|
{
|
||||||
title: "订单号",
|
title: "订单号",
|
||||||
key: "sn",
|
key: "sn",
|
||||||
minWidth: 240,
|
minWidth: 200,
|
||||||
tooltip: true,
|
tooltip: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -95,7 +95,7 @@ export default {
|
||||||
} else if (params.row.clientType == "WECHAT_MP") {
|
} else if (params.row.clientType == "WECHAT_MP") {
|
||||||
return h("div", {}, "小程序端");
|
return h("div", {}, "小程序端");
|
||||||
} else if (params.row.clientType == "APP") {
|
} else if (params.row.clientType == "APP") {
|
||||||
return h("div", {}, "移动应用端");
|
return h("div", {}, "APP端");
|
||||||
} else {
|
} else {
|
||||||
return h("div", {}, params.row.clientType);
|
return h("div", {}, params.row.clientType);
|
||||||
}
|
}
|
||||||
|
@ -126,30 +126,27 @@ export default {
|
||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.orderStatus == "UNPAID") {
|
if (params.row.orderStatus == "UNPAID") {
|
||||||
return h("div", [h("span", {}, "未付款")]);
|
return h("div", [h("tag", {props: {color: "magenta"}}, "未付款")]);
|
||||||
} else if (params.row.orderStatus == "PAID") {
|
} else if (params.row.orderStatus == "PAID") {
|
||||||
return h("div", [h("span", {}, "已付款")]);
|
return h("div", [h("tag", {props: {color: "blue"}}, "已付款")]);
|
||||||
} else if (params.row.orderStatus == "UNDELIVERED") {
|
} else if (params.row.orderStatus == "UNDELIVERED") {
|
||||||
return h("div", [h("span", {}, "待发货")]);
|
return h("div", [h("tag", {props: {color: "geekblue"}}, "待发货")]);
|
||||||
} else if (params.row.orderStatus == "DELIVERED") {
|
} else if (params.row.orderStatus == "DELIVERED") {
|
||||||
return h("div", [h("span", {}, "已发货")]);
|
return h("div", [h("tag", {props: {color: "cyan"}}, "已发货")]);
|
||||||
} else if (params.row.orderStatus == "COMPLETED") {
|
} else if (params.row.orderStatus == "COMPLETED") {
|
||||||
return h("div", [h("span", {}, "已完成")]);
|
return h("div", [h("tag", {props: {color: "green"}}, "已完成")]);
|
||||||
} else if (params.row.orderStatus == "TAKE") {
|
} else if (params.row.orderStatus == "TAKE") {
|
||||||
return h("div", [h("span", {}, "待核验")]);
|
return h("div", [h("tag", {props: {color: "volcano"}}, "待核验")]);
|
||||||
} else if (params.row.orderStatus == "CANCELLED") {
|
} else if (params.row.orderStatus == "CANCELLED") {
|
||||||
return h("div", [h("span", {}, "已取消")]);
|
return h("div", [h("tag", {props: {color: "red"}}, "已取消")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "下单时间",
|
title: "下单时间",
|
||||||
key: "createTime",
|
key: "createTime",
|
||||||
width: 170,
|
width: 170
|
||||||
sortable: true,
|
|
||||||
sortType: "desc",
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
key: "action",
|
key: "action",
|
||||||
|
|
|
@ -69,7 +69,7 @@ export default {
|
||||||
orderSn: "",
|
orderSn: "",
|
||||||
buyerName: "",
|
buyerName: "",
|
||||||
orderStatus: "",
|
orderStatus: "",
|
||||||
orderType:"VIRTUAL"
|
orderType: "VIRTUAL",
|
||||||
},
|
},
|
||||||
selectDate: null,
|
selectDate: null,
|
||||||
form: {
|
form: {
|
||||||
|
@ -135,19 +135,19 @@ export default {
|
||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.orderStatus == "UNPAID") {
|
if (params.row.orderStatus == "UNPAID") {
|
||||||
return h("div", [h("span", {}, "未付款")]);
|
return h("div", [h("tag", {props: {color: "magenta"}}, "未付款")]);
|
||||||
} else if (params.row.orderStatus == "PAID") {
|
} else if (params.row.orderStatus == "PAID") {
|
||||||
return h("div", [h("span", {}, "已付款")]);
|
return h("div", [h("tag", {props: {color: "blue"}}, "已付款")]);
|
||||||
} else if (params.row.orderStatus == "UNDELIVERED") {
|
} else if (params.row.orderStatus == "UNDELIVERED") {
|
||||||
return h("div", [h("span", {}, "待发货")]);
|
return h("div", [h("tag", {props: {color: "geekblue"}}, "待发货")]);
|
||||||
} else if (params.row.orderStatus == "DELIVERED") {
|
} else if (params.row.orderStatus == "DELIVERED") {
|
||||||
return h("div", [h("span", {}, "已发货")]);
|
return h("div", [h("tag", {props: {color: "cyan"}}, "已发货")]);
|
||||||
} else if (params.row.orderStatus == "COMPLETED") {
|
} else if (params.row.orderStatus == "COMPLETED") {
|
||||||
return h("div", [h("span", {}, "已完成")]);
|
return h("div", [h("tag", {props: {color: "green"}}, "已完成")]);
|
||||||
} else if (params.row.orderStatus == "TAKE") {
|
} else if (params.row.orderStatus == "TAKE") {
|
||||||
return h("div", [h("span", {}, "待核验")]);
|
return h("div", [h("tag", {props: {color: "volcano"}}, "待核验")]);
|
||||||
} else if (params.row.orderStatus == "CANCELLED") {
|
} else if (params.row.orderStatus == "CANCELLED") {
|
||||||
return h("div", [h("span", {}, "已取消")]);
|
return h("div", [h("tag", {props: {color: "red"}}, "已取消")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -200,8 +200,6 @@ export default {
|
||||||
let result = await verificationCode(this.orderCode);
|
let result = await verificationCode(this.orderCode);
|
||||||
|
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
|
|
||||||
|
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
name: "order-detail",
|
name: "order-detail",
|
||||||
query: { sn: result.result.sn || this.orderCode },
|
query: { sn: result.result.sn || this.orderCode },
|
||||||
|
@ -228,6 +226,7 @@ export default {
|
||||||
this.searchForm = {};
|
this.searchForm = {};
|
||||||
this.searchForm.pageNumber = 1;
|
this.searchForm.pageNumber = 1;
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm.pageSize = 10;
|
||||||
|
this.searchForm.orderType = "VIRTUAL";
|
||||||
this.selectDate = null;
|
this.selectDate = null;
|
||||||
this.searchForm.startDate = "";
|
this.searchForm.startDate = "";
|
||||||
this.searchForm.endDate = "";
|
this.searchForm.endDate = "";
|
||||||
|
|
|
@ -2,39 +2,15 @@
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<Card>
|
<Card>
|
||||||
<Row @keydown.enter.native="handleSearch">
|
<Row @keydown.enter.native="handleSearch">
|
||||||
<Form
|
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
||||||
ref="searchForm"
|
|
||||||
:model="searchForm"
|
|
||||||
inline
|
|
||||||
:label-width="70"
|
|
||||||
class="search-form"
|
|
||||||
>
|
|
||||||
<Form-item label="订单编号" prop="orderSn">
|
<Form-item label="订单编号" prop="orderSn">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.orderSn" clearable placeholder="请输入订单编号" style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.orderSn"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入订单编号"
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="会员名称" prop="memberName">
|
<Form-item label="会员名称" prop="memberName">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.memberName" clearable placeholder="请输入会员名称" style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.memberName"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入会员名称"
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="发票抬头" prop="receiptTitle">
|
<Form-item label="发票抬头" prop="receiptTitle">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.receiptTitle" clearable placeholder="请输入发票抬头" style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.receiptTitle"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入发票抬头"
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="状态" prop="receiptStatus">
|
<Form-item label="状态" prop="receiptStatus">
|
||||||
<Select v-model="searchForm.receiptStatus" placeholder="请选择" clearable style="width: 200px">
|
<Select v-model="searchForm.receiptStatus" placeholder="请选择" clearable style="width: 200px">
|
||||||
|
@ -46,275 +22,280 @@
|
||||||
<Button @click="handleReset" class="search-btn">重置</Button>
|
<Button @click="handleReset" class="search-btn">重置</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
<Table
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
|
||||||
:loading="loading"
|
|
||||||
border
|
|
||||||
:columns="columns"
|
|
||||||
:data="data"
|
|
||||||
ref="table"
|
|
||||||
sortable="custom"
|
|
||||||
@on-sort-change="changeSort"
|
|
||||||
@on-selection-change="changeSelect"
|
|
||||||
>
|
|
||||||
<!-- 订单详情格式化 -->
|
<!-- 订单详情格式化 -->
|
||||||
<template slot="orderSlot" slot-scope="scope">
|
<template slot="orderSlot" slot-scope="scope">
|
||||||
<a
|
<a @click="$router.push({name: 'order-detail',query: {sn: scope.row.orderSn}})">{{scope.row.orderSn}}</a>
|
||||||
@click="$router.push({name: 'order-detail',query: {sn: scope.row.orderSn}})">{{scope.row.orderSn}}</a>
|
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
<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"
|
||||||
:current="searchForm.pageNumber"
|
show-total show-elevator show-sizer></Page>
|
||||||
: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>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as API_Order from "@/api/order";
|
import * as API_Order from "@/api/order";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "storeBill",
|
name: "storeBill",
|
||||||
components: {},
|
components: {},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: true, // 表单加载状态
|
loading: true, // 表单加载状态
|
||||||
searchForm: {
|
searchForm: {
|
||||||
// 搜索框初始化对象
|
// 搜索框初始化对象
|
||||||
pageNumber: 1, // 当前页数
|
pageNumber: 1, // 当前页数
|
||||||
pageSize: 10, // 页面大小
|
pageSize: 10, // 页面大小
|
||||||
sort: "createTime", // 默认排序字段
|
sort: "createTime", // 默认排序字段
|
||||||
order: "desc", // 默认排序方式
|
order: "desc", // 默认排序方式
|
||||||
receiptStatus: "", // 起始时间
|
receiptStatus: "", // 起始时间
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
// 添加或编辑表单对象初始化数据
|
||||||
|
sn: "",
|
||||||
|
sellerName: "",
|
||||||
|
startTime: "",
|
||||||
|
endTime: "",
|
||||||
|
billPrice: "",
|
||||||
|
},
|
||||||
|
// 表单验证规则
|
||||||
|
formValidate: {},
|
||||||
|
submitLoading: false, // 添加或编辑提交状态
|
||||||
|
selectList: [], // 多选数据
|
||||||
|
selectCount: 0, // 多选计数
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: "订单号",
|
||||||
|
key: "orderSn",
|
||||||
|
minWidth: 120,
|
||||||
|
slot: "orderSlot",
|
||||||
},
|
},
|
||||||
form: {
|
{
|
||||||
// 添加或编辑表单对象初始化数据
|
title: "会员名称",
|
||||||
sn: "",
|
key: "memberName",
|
||||||
sellerName: "",
|
minWidth: 90,
|
||||||
startTime: "",
|
tooltip: true,
|
||||||
endTime: "",
|
|
||||||
billPrice: "",
|
|
||||||
},
|
},
|
||||||
// 表单验证规则
|
|
||||||
formValidate: {},
|
|
||||||
submitLoading: false, // 添加或编辑提交状态
|
|
||||||
selectList: [], // 多选数据
|
|
||||||
selectCount: 0, // 多选计数
|
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
title: "订单号",
|
|
||||||
key: "orderSn",
|
|
||||||
minWidth: 120,
|
|
||||||
slot: "orderSlot",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "会员名称",
|
|
||||||
key: "memberName",
|
|
||||||
minWidth: 90,
|
|
||||||
tooltip: true
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "发票抬头",
|
title: "发票抬头",
|
||||||
key: "receiptTitle",
|
key: "receiptTitle",
|
||||||
minWidth: 90,
|
minWidth: 90,
|
||||||
tooltip: true
|
tooltip: true,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h("div", params.row.receiptTitle || "暂未填写");
|
||||||
},
|
},
|
||||||
{
|
},
|
||||||
title: "纳税人识别号",
|
{
|
||||||
key: "taxpayerId",
|
title: "纳税人识别号",
|
||||||
minWidth: 100,
|
key: "taxpayerId",
|
||||||
tooltip: true
|
minWidth: 100,
|
||||||
|
tooltip: true,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h("div", params.row.taxpayerId || "暂未填写");
|
||||||
},
|
},
|
||||||
{
|
},
|
||||||
title: "发票内容",
|
{
|
||||||
key: "receiptContent",
|
title: "发票内容",
|
||||||
minWidth: 120,
|
key: "receiptContent",
|
||||||
tooltip: true
|
minWidth: 120,
|
||||||
|
tooltip: true,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h("div", params.row.receiptContent || "暂未填写");
|
||||||
},
|
},
|
||||||
{
|
},
|
||||||
title: "发票金额",
|
{
|
||||||
key: "billPrice",
|
title: "发票金额",
|
||||||
width: 90,
|
key: "billPrice",
|
||||||
render: (h, params) => {
|
width: 150,
|
||||||
return h(
|
render: (h, params) => {
|
||||||
"div",
|
return h(
|
||||||
this.$options.filters.unitPrice(params.row.receiptPrice, "¥")
|
"div",
|
||||||
);
|
this.$options.filters.unitPrice(params.row.receiptPrice, "¥")
|
||||||
},
|
);
|
||||||
},
|
},
|
||||||
{
|
},
|
||||||
title: "发票状态",
|
{
|
||||||
key: "receiptStatus",
|
title: "发票状态",
|
||||||
width: 90,
|
key: "receiptStatus",
|
||||||
tooltip: true,
|
width: 90,
|
||||||
render: (h, params) => {
|
tooltip: true,
|
||||||
if(params.row.receiptStatus == 0){
|
render: (h, params) => {
|
||||||
return h(
|
if (params.row.receiptStatus == 0) {
|
||||||
"div",
|
return h("div", [
|
||||||
"未开票"
|
h("tag", { props: { color: "volcano" } }, "未开票"),
|
||||||
);
|
]);
|
||||||
}else{
|
} else {
|
||||||
return h(
|
return h("div", [
|
||||||
"div",
|
h("tag", { props: { color: "green" } }, "未开票"),
|
||||||
"已开票"
|
]);
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "订单状态",
|
|
||||||
key: "orderStatus",
|
|
||||||
width: 90,
|
|
||||||
render: (h, params) => {
|
|
||||||
if (params.row.orderStatus == "UNPAID") {
|
|
||||||
return h('div', [h('span', { }, '未付款'),]);
|
|
||||||
} else if (params.row.orderStatus == "PAID") {
|
|
||||||
return h('div', [h('span', { }, '已付款'),]);
|
|
||||||
} else if (params.row.orderStatus == "UNDELIVERED") {
|
|
||||||
return h('div', [h('span', { }, '待发货'),]);
|
|
||||||
}else if (params.row.orderStatus == "DELIVERED") {
|
|
||||||
return h('div', [h('span', { }, '已发货'),]);
|
|
||||||
}else if (params.row.orderStatus == "COMPLETED") {
|
|
||||||
return h('div', [h('span', { }, '已完成'),]);
|
|
||||||
}else if (params.row.orderStatus == "TAKE") {
|
|
||||||
return h('div', [h('span', { }, '待核验'),]);
|
|
||||||
}else if (params.row.orderStatus == "CANCELLED") {
|
|
||||||
return h('div', [h('span', { }, '已取消'),]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
},
|
||||||
title: "操作",
|
{
|
||||||
key: "action",
|
title: "订单状态",
|
||||||
align: "center",
|
key: "orderStatus",
|
||||||
width: 80,
|
width: 90,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
|
if (params.row.orderStatus == "UNPAID") {
|
||||||
return h("div", [
|
return h("div", [
|
||||||
h(
|
h("tag", { props: { color: "magenta" } }, "未付款"),
|
||||||
"Button",
|
]);
|
||||||
{
|
} else if (params.row.orderStatus == "PAID") {
|
||||||
props: {
|
return h("div", [
|
||||||
type: "info",
|
h("tag", { props: { color: "blue" } }, "已付款"),
|
||||||
size: "small",
|
]);
|
||||||
},
|
} else if (params.row.orderStatus == "UNDELIVERED") {
|
||||||
attrs: {
|
return h("div", [
|
||||||
disabled: params.row.orderStatus == "COMPLETED" && params.row.receiptStatus == 0? false : true,
|
h("tag", { props: { color: "geekblue" } }, "待发货"),
|
||||||
},
|
]);
|
||||||
style: {
|
} else if (params.row.orderStatus == "DELIVERED") {
|
||||||
marginRight: "5px",
|
return h("div", [
|
||||||
},
|
h("tag", { props: { color: "cyan" } }, "已发货"),
|
||||||
on: {
|
]);
|
||||||
click: () => {
|
} else if (params.row.orderStatus == "COMPLETED") {
|
||||||
this.invoicing(params.row);
|
return h("div", [
|
||||||
},
|
h("tag", { props: { color: "green" } }, "已完成"),
|
||||||
|
]);
|
||||||
|
} else if (params.row.orderStatus == "TAKE") {
|
||||||
|
return h("div", [
|
||||||
|
h("tag", { props: { color: "volcano" } }, "待核验"),
|
||||||
|
]);
|
||||||
|
} else if (params.row.orderStatus == "CANCELLED") {
|
||||||
|
return h("div", [
|
||||||
|
h("tag", { props: { color: "red" } }, "已取消"),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
key: "action",
|
||||||
|
align: "center",
|
||||||
|
width: 80,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h("div", [
|
||||||
|
h(
|
||||||
|
"Button",
|
||||||
|
{
|
||||||
|
props: {
|
||||||
|
type: "info",
|
||||||
|
size: "small",
|
||||||
|
},
|
||||||
|
attrs: {
|
||||||
|
disabled:
|
||||||
|
params.row.orderStatus == "COMPLETED" &&
|
||||||
|
params.row.receiptStatus == 0
|
||||||
|
? false
|
||||||
|
: true,
|
||||||
|
},
|
||||||
|
style: {
|
||||||
|
marginRight: "5px",
|
||||||
|
},
|
||||||
|
on: {
|
||||||
|
click: () => {
|
||||||
|
this.invoicing(params.row);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"开票"
|
},
|
||||||
),
|
"开票"
|
||||||
]);
|
),
|
||||||
},
|
]);
|
||||||
},
|
},
|
||||||
],
|
},
|
||||||
data: [], // 表单数据
|
],
|
||||||
total: 0, // 表单数据总数
|
data: [], // 表单数据
|
||||||
};
|
total: 0, // 表单数据总数
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init() {
|
||||||
|
this.getData();
|
||||||
},
|
},
|
||||||
methods: {
|
changePage(v) {
|
||||||
init() {
|
this.searchForm.pageNumber = v;
|
||||||
this.getData();
|
this.getData();
|
||||||
},
|
this.clearSelectAll();
|
||||||
changePage(v) {
|
},
|
||||||
this.searchForm.pageNumber = v;
|
changePageSize(v) {
|
||||||
this.getData();
|
this.searchForm.pageSize = v;
|
||||||
this.clearSelectAll();
|
this.getData();
|
||||||
},
|
},
|
||||||
changePageSize(v) {
|
handleSearch() {
|
||||||
this.searchForm.pageSize = v;
|
this.searchForm.pageNumber = 1;
|
||||||
this.getData();
|
this.searchForm.pageSize = 10;
|
||||||
},
|
this.getData();
|
||||||
handleSearch() {
|
},
|
||||||
this.searchForm.pageNumber = 1;
|
handleReset() {
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm = {};
|
||||||
this.getData();
|
this.searchForm.pageNumber = 1;
|
||||||
},
|
this.searchForm.pageSize = 10;
|
||||||
handleReset() {
|
this.getData();
|
||||||
this.searchForm = {}
|
},
|
||||||
this.searchForm.pageNumber = 1;
|
changeSort(e) {
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm.sort = e.key;
|
||||||
this.getData();
|
this.searchForm.order = e.order;
|
||||||
},
|
if (e.order === "normal") {
|
||||||
changeSort(e) {
|
this.searchForm.order = "";
|
||||||
this.searchForm.sort = e.key;
|
}
|
||||||
this.searchForm.order = e.order;
|
this.getData();
|
||||||
if (e.order === "normal") {
|
},
|
||||||
this.searchForm.order = "";
|
clearSelectAll() {
|
||||||
}
|
this.$refs.table.selectAll(false);
|
||||||
this.getData();
|
},
|
||||||
},
|
changeSelect(e) {
|
||||||
clearSelectAll() {
|
this.selectList = e;
|
||||||
this.$refs.table.selectAll(false);
|
this.selectCount = e.length;
|
||||||
},
|
},
|
||||||
changeSelect(e) {
|
selectDateRange(v) {
|
||||||
this.selectList = e;
|
if (v) {
|
||||||
this.selectCount = e.length;
|
this.searchForm.startDate = v[0];
|
||||||
},
|
this.searchForm.endDate = v[1];
|
||||||
selectDateRange(v) {
|
}
|
||||||
if (v) {
|
},
|
||||||
this.searchForm.startDate = v[0];
|
getData() {
|
||||||
this.searchForm.endDate = v[1];
|
this.loading = true;
|
||||||
}
|
API_Order.getReceiptPage(this.searchForm).then((res) => {
|
||||||
},
|
|
||||||
getData() {
|
|
||||||
this.loading = true;
|
|
||||||
API_Order.getReceiptPage(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;
|
this.loading = false;
|
||||||
},
|
if (res.success) {
|
||||||
//开发票
|
this.data = res.result.records;
|
||||||
invoicing(params){
|
this.total = res.result.total;
|
||||||
this.$Modal.confirm({
|
}
|
||||||
title: "确认开票",
|
});
|
||||||
content: "您确认已经开具发票 ?",
|
this.total = this.data.length;
|
||||||
loading: true,
|
this.loading = false;
|
||||||
onOk: () => {
|
|
||||||
API_Order.invoicing(params.id).then((res) => {
|
|
||||||
if (res.success) {
|
|
||||||
this.$Message.success("开票成功");
|
|
||||||
}
|
|
||||||
this.$Modal.remove();
|
|
||||||
this.getData();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
activated() {
|
//开发票
|
||||||
this.init();
|
invoicing(params) {
|
||||||
|
this.$Modal.confirm({
|
||||||
|
title: "确认开票",
|
||||||
|
content: "您确认已经开具发票 ?",
|
||||||
|
loading: true,
|
||||||
|
onOk: () => {
|
||||||
|
API_Order.invoicing(params.id).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$Message.success("开票成功");
|
||||||
|
}
|
||||||
|
this.$Modal.remove();
|
||||||
|
this.getData();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
},
|
},
|
||||||
};
|
},
|
||||||
|
mounted() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
activated() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// 建议引入通用样式 可删除下面样式代码
|
// 建议引入通用样式 可删除下面样式代码
|
||||||
@import "@/styles/table-common.scss";
|
@import "@/styles/table-common.scss";
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,29 +2,12 @@
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<Card>
|
<Card>
|
||||||
<Row>
|
<Row>
|
||||||
<Form
|
<Form ref="searchForm" :model="searchForm" inline :label-width="100" class="search-form">
|
||||||
ref="searchForm"
|
|
||||||
:model="searchForm"
|
|
||||||
inline
|
|
||||||
:label-width="100"
|
|
||||||
class="search-form"
|
|
||||||
>
|
|
||||||
<Form-item label="优惠券名称">
|
<Form-item label="优惠券名称">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.couponName" placeholder="请输入优惠券名称" clearable style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.couponName"
|
|
||||||
placeholder="请输入优惠券名称"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="活动状态" prop="promotionStatus">
|
<Form-item label="活动状态" prop="promotionStatus">
|
||||||
<Select
|
<Select v-model="searchForm.promotionStatus" placeholder="请选择" clearable style="width: 200px">
|
||||||
v-model="searchForm.promotionStatus"
|
|
||||||
placeholder="请选择"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
<Option value="NEW">未开始</Option>
|
<Option value="NEW">未开始</Option>
|
||||||
<Option value="START">已开始/上架</Option>
|
<Option value="START">已开始/上架</Option>
|
||||||
<Option value="END">已结束/下架</Option>
|
<Option value="END">已结束/下架</Option>
|
||||||
|
@ -32,21 +15,9 @@
|
||||||
</Select>
|
</Select>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="活动时间">
|
<Form-item label="活动时间">
|
||||||
<DatePicker
|
<DatePicker v-model="selectDate" type="daterange" clearable placeholder="选择起始时间" style="width: 200px"></DatePicker>
|
||||||
v-model="selectDate"
|
|
||||||
type="daterange"
|
|
||||||
clearable
|
|
||||||
placeholder="选择起始时间"
|
|
||||||
style="width: 200px"
|
|
||||||
></DatePicker>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Button
|
<Button @click="handleSearch" type="primary" class="search-btn" icon="ios-search">搜索</Button>
|
||||||
@click="handleSearch"
|
|
||||||
type="primary"
|
|
||||||
class="search-btn"
|
|
||||||
icon="ios-search"
|
|
||||||
>搜索</Button
|
|
||||||
>
|
|
||||||
<Button @click="handleReset" class="search-btn">重置</Button>
|
<Button @click="handleReset" class="search-btn">重置</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
|
@ -55,57 +26,22 @@
|
||||||
<Button @click="delAll" class="ml_10">批量下架</Button>
|
<Button @click="delAll" class="ml_10">批量下架</Button>
|
||||||
<!-- <Button @click="upAll">批量上架</Button> -->
|
<!-- <Button @click="upAll">批量上架</Button> -->
|
||||||
</Row>
|
</Row>
|
||||||
<Table
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
|
||||||
:loading="loading"
|
|
||||||
border
|
|
||||||
:columns="columns"
|
|
||||||
:data="data"
|
|
||||||
ref="table"
|
|
||||||
sortable="custom"
|
|
||||||
@on-sort-change="changeSort"
|
|
||||||
@on-selection-change="changeSelect"
|
|
||||||
>
|
|
||||||
<template slot-scope="{ row }" slot="action">
|
<template slot-scope="{ row }" slot="action">
|
||||||
<Button
|
<Button v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="info" size="small" style="margin-right: 10px" @click="edit(row)">编辑</Button>
|
||||||
v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'"
|
<Button v-if="row.promotionStatus !== 'CLOSE'" type="error" size="small" @click="remove(row)">下架</Button>
|
||||||
type="info"
|
|
||||||
size="small"
|
|
||||||
style="margin-right: 10px"
|
|
||||||
@click="edit(row)"
|
|
||||||
>编辑</Button
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
v-if="row.promotionStatus !== 'CLOSE'"
|
|
||||||
type="error"
|
|
||||||
size="small"
|
|
||||||
@click="remove(row)"
|
|
||||||
>下架</Button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
<Page
|
<Page :current="searchForm.pageNumber + 1" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
|
||||||
:current="searchForm.pageNumber + 1"
|
size="small" show-total show-elevator show-sizer></Page>
|
||||||
: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>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { getShopCouponList, updateCouponStatus } from "@/api/promotion";
|
||||||
getShopCouponList,
|
|
||||||
updateCouponStatus,
|
|
||||||
} from "@/api/promotion";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "coupon",
|
name: "coupon",
|
||||||
|
@ -143,18 +79,19 @@ export default {
|
||||||
{
|
{
|
||||||
title: "活动名称",
|
title: "活动名称",
|
||||||
key: "promotionName",
|
key: "promotionName",
|
||||||
width: 120,
|
minWidth: 100,
|
||||||
fixed: "left",
|
fixed: "left",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "优惠券名称",
|
title: "优惠券名称",
|
||||||
key: "couponName",
|
key: "couponName",
|
||||||
width: 120,
|
minWidth: 100,
|
||||||
tooltip: true
|
tooltip: true,
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
title: "面额/折扣",
|
title: "面额/折扣",
|
||||||
key: "price",
|
key: "price",
|
||||||
width: 120,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.price) {
|
if (params.row.price) {
|
||||||
return h(
|
return h(
|
||||||
|
@ -170,11 +107,13 @@ export default {
|
||||||
{
|
{
|
||||||
title: "领取数量/总数量",
|
title: "领取数量/总数量",
|
||||||
key: "publishNum",
|
key: "publishNum",
|
||||||
|
width: 130,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h(
|
return h(
|
||||||
"div", params.row.receivedNum + "/" + params.row.publishNum)
|
"div",
|
||||||
|
params.row.receivedNum + "/" + params.row.publishNum
|
||||||
|
);
|
||||||
},
|
},
|
||||||
minWidth:130,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "优惠券类型",
|
title: "优惠券类型",
|
||||||
|
@ -210,21 +149,28 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "活动时间",
|
title: "活动时间",
|
||||||
|
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h("div", {
|
if (params.row.getType === "ACTIVITY") {
|
||||||
domProps:
|
return h("div", "长期有效");
|
||||||
{innerHTML: params.row.startTime + "<br/>" + params.row.endTime}
|
} else {
|
||||||
});
|
return h("div", {
|
||||||
|
domProps: {
|
||||||
|
innerHTML:
|
||||||
|
params.row.startTime + "<br/>" + params.row.endTime,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
minWidth:150,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
|
width: 100,
|
||||||
key: "promotionStatus",
|
key: "promotionStatus",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
let text = "未知",
|
let text = "未知",
|
||||||
color = "";
|
color = "red";
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
text = "未开始";
|
text = "未开始";
|
||||||
color = "default";
|
color = "default";
|
||||||
|
@ -250,14 +196,14 @@ export default {
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
minWidth:70,
|
minWidth: 70,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
slot: "action",
|
slot: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
minWidth: 140
|
maxWidth: 140,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
data: [], // 表单数据
|
data: [], // 表单数据
|
||||||
|
@ -292,8 +238,8 @@ export default {
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.searchForm = {}
|
this.searchForm = {};
|
||||||
this.selectDate = ''
|
this.selectDate = "";
|
||||||
this.searchForm.pageNumber = 0;
|
this.searchForm.pageNumber = 0;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
@ -423,7 +369,7 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
activated () {
|
activated() {
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,22 +6,10 @@
|
||||||
<h4>基本信息</h4>
|
<h4>基本信息</h4>
|
||||||
<div class="form-item-view">
|
<div class="form-item-view">
|
||||||
<FormItem label="活动名称" prop="promotionName">
|
<FormItem label="活动名称" prop="promotionName">
|
||||||
<Input
|
<Input type="text" v-model="form.promotionName" placeholder="活动名称" clearable style="width: 260px" />
|
||||||
type="text"
|
|
||||||
v-model="form.promotionName"
|
|
||||||
placeholder="活动名称"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="优惠券名称" prop="couponName">
|
<FormItem label="优惠券名称" prop="couponName">
|
||||||
<Input
|
<Input type="text" v-model="form.couponName" placeholder="优惠券名称" clearable style="width: 260px" />
|
||||||
type="text"
|
|
||||||
v-model="form.couponName"
|
|
||||||
placeholder="优惠券名称"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="优惠券类型" prop="couponType">
|
<FormItem label="优惠券类型" prop="couponType">
|
||||||
<Select v-model="form.couponType" style="width: 260px">
|
<Select v-model="form.couponType" style="width: 260px">
|
||||||
|
@ -29,32 +17,12 @@
|
||||||
<Option value="PRICE">减免现金</Option>
|
<Option value="PRICE">减免现金</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem
|
<FormItem label="折扣" prop="discount" v-if="form.couponType == 'DISCOUNT'">
|
||||||
label="折扣"
|
<Input type="number" v-model="form.couponDiscount" placeholder="折扣" clearable style="width: 260px" />
|
||||||
prop="discount"
|
|
||||||
v-if="form.couponType == 'DISCOUNT'"
|
|
||||||
>
|
|
||||||
<Input
|
|
||||||
type="number"
|
|
||||||
v-model="form.couponDiscount"
|
|
||||||
placeholder="折扣"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
<span class="describe">请输入0-10之间数字,可以输入一位小数</span>
|
<span class="describe">请输入0-10之间数字,可以输入一位小数</span>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem
|
<FormItem label="面额" prop="price" v-if="form.couponType == 'PRICE'">
|
||||||
label="面额"
|
<Input type="text" v-model="form.price" placeholder="面额" clearable style="width: 260px" />
|
||||||
prop="price"
|
|
||||||
v-if="form.couponType == 'PRICE'"
|
|
||||||
>
|
|
||||||
<Input
|
|
||||||
type="text"
|
|
||||||
v-model="form.price"
|
|
||||||
placeholder="面额"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="活动类型" prop="getType">
|
<FormItem label="活动类型" prop="getType">
|
||||||
<Select v-model="form.getType" style="width: 260px">
|
<Select v-model="form.getType" style="width: 260px">
|
||||||
|
@ -63,42 +31,22 @@
|
||||||
</Select>
|
</Select>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label="发放数量" prop="publishNum">
|
<FormItem label="发放数量" v-if="form.getType == 'FREE'" prop="publishNum">
|
||||||
<Input
|
<Input v-model="form.publishNum" placeholder="发放数量" style="width: 260px" />
|
||||||
v-model="form.publishNum"
|
<div class="tips">如果发放数量为0时,则代表不限制发放数量</div>
|
||||||
placeholder="发放数量"
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</div>
|
</div>
|
||||||
<h4>使用限制</h4>
|
<h4>使用限制</h4>
|
||||||
<div class="form-item-view">
|
<div class="form-item-view">
|
||||||
<FormItem label="消费门槛" prop="consumeThreshold">
|
<FormItem label="消费门槛" prop="consumeThreshold">
|
||||||
<Input
|
<Input type="text" v-model="form.consumeThreshold" placeholder="消费门槛" clearable style="width: 260px" />
|
||||||
type="text"
|
|
||||||
v-model="form.consumeThreshold"
|
|
||||||
placeholder="消费门槛"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="领取限制" prop="couponLimitNum">
|
<FormItem label="领取限制" v-if="form.getType == 'FREE'" prop="couponLimitNum">
|
||||||
<Input
|
<Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px" />
|
||||||
v-model="form.couponLimitNum"
|
<div class="tips">如果领取限制为0时,则代表不限制领取数量</div>
|
||||||
placeholder="领取限制"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="有效期" prop="rangeTime">
|
<FormItem label="有效期" prop="rangeTime">
|
||||||
<DatePicker
|
<DatePicker type="datetimerange" v-model="form.rangeTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :options="options" style="width: 260px">
|
||||||
type="datetimerange"
|
|
||||||
v-model="form.rangeTime"
|
|
||||||
format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
placeholder="请选择"
|
|
||||||
:options="options"
|
|
||||||
style="width: 260px"
|
|
||||||
>
|
|
||||||
</DatePicker>
|
</DatePicker>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="使用范围" prop="scopeType">
|
<FormItem label="使用范围" prop="scopeType">
|
||||||
|
@ -109,34 +57,14 @@
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem style="width: 100%" v-if="form.scopeType == 'PORTION_GOODS'">
|
||||||
style="width: 100%"
|
|
||||||
v-if="form.scopeType == 'PORTION_GOODS'"
|
|
||||||
>
|
|
||||||
<div style="display: flex; margin-bottom: 10px">
|
<div style="display: flex; margin-bottom: 10px">
|
||||||
<Button type="primary" @click="openSkuList"
|
<Button type="primary" @click="openSkuList">选择商品</Button>
|
||||||
>选择商品</Button>
|
<Button type="error" ghost style="margin-left: 10px" @click="delSelectGoods">批量删除</Button>
|
||||||
<Button
|
|
||||||
type="error"
|
|
||||||
ghost
|
|
||||||
style="margin-left: 10px"
|
|
||||||
@click="delSelectGoods"
|
|
||||||
>批量删除</Button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<Table
|
<Table border :columns="columns" :data="form.promotionGoodsList" @on-selection-change="changeSelect">
|
||||||
border
|
|
||||||
:columns="columns"
|
|
||||||
:data="form.promotionGoodsList"
|
|
||||||
@on-selection-change="changeSelect"
|
|
||||||
>
|
|
||||||
<template slot-scope="{ row }" slot="QRCode">
|
<template slot-scope="{ row }" slot="QRCode">
|
||||||
<img
|
<img :src="row.QRCode || '../../../assets/lili.png'" width="50px" height="50px" alt="" />
|
||||||
:src="row.QRCode || '../../../assets/lili.png'"
|
|
||||||
width="50px"
|
|
||||||
height="50px"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
@ -147,35 +75,17 @@
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label="范围描述" prop="description">
|
<FormItem label="范围描述" prop="description">
|
||||||
<Input
|
<Input v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable style="width: 260px" />
|
||||||
v-model="form.description"
|
|
||||||
type="textarea"
|
|
||||||
:rows="4"
|
|
||||||
maxlength="50"
|
|
||||||
show-word-limit
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<div>
|
<div>
|
||||||
<Button type="text" @click="$router.push({ name: 'coupon' })"
|
<Button type="text" @click="$router.push({ name: 'coupon' })">返回</Button>
|
||||||
>返回</Button
|
<Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
|
||||||
>
|
|
||||||
<Button
|
|
||||||
type="primary"
|
|
||||||
:loading="submitLoading"
|
|
||||||
@click="handleSubmit"
|
|
||||||
>提交</Button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Form>
|
</Form>
|
||||||
</Card>
|
</Card>
|
||||||
<sku-select
|
<sku-select ref="skuSelect" @selectedGoodsData="selectedGoodsData"></sku-select>
|
||||||
ref="skuSelect"
|
|
||||||
@selectedGoodsData="selectedGoodsData"
|
|
||||||
></sku-select>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -212,7 +122,7 @@ export default {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
modalType: 0, // 判断是新增还是编辑优惠券 0 新增 1 编辑
|
modalType: 0, // 判断是新增还是编辑优惠券 0 新增 1 编辑
|
||||||
categoryId: 0, // 分类id
|
categoryId: 0, // 分类id
|
||||||
|
@ -232,6 +142,7 @@ export default {
|
||||||
getType: "FREE",
|
getType: "FREE",
|
||||||
promotionGoodsList: [],
|
promotionGoodsList: [],
|
||||||
scopeIdGoods: [],
|
scopeIdGoods: [],
|
||||||
|
rangeDayType: "FIXEDTIME",
|
||||||
},
|
},
|
||||||
id: this.$route.query.id,
|
id: this.$route.query.id,
|
||||||
submitLoading: false, // 添加或编辑提交状态
|
submitLoading: false, // 添加或编辑提交状态
|
||||||
|
@ -392,7 +303,11 @@ export default {
|
||||||
params.endTime = this.$options.filters.unixToDate(
|
params.endTime = this.$options.filters.unixToDate(
|
||||||
this.form.rangeTime[1] / 1000
|
this.form.rangeTime[1] / 1000
|
||||||
);
|
);
|
||||||
delete params.rangeTime
|
if (params.getType == "ACTIVITY") {
|
||||||
|
params.couponLimitNum = 0;
|
||||||
|
params.publishNum = 0;
|
||||||
|
}
|
||||||
|
delete params.rangeTime;
|
||||||
let scopeId = [];
|
let scopeId = [];
|
||||||
if (
|
if (
|
||||||
params.scopeType == "PORTION_GOODS" &&
|
params.scopeType == "PORTION_GOODS" &&
|
||||||
|
@ -465,12 +380,13 @@ export default {
|
||||||
name: "coupon",
|
name: "coupon",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
openSkuList() { // 显示商品选择器
|
openSkuList() {
|
||||||
|
// 显示商品选择器
|
||||||
this.$refs.skuSelect.open("goods");
|
this.$refs.skuSelect.open("goods");
|
||||||
let data = JSON.parse(JSON.stringify(this.form.promotionGoodsList))
|
let data = JSON.parse(JSON.stringify(this.form.promotionGoodsList));
|
||||||
data.forEach(e => {
|
data.forEach((e) => {
|
||||||
e.id = e.skuId
|
e.id = e.skuId;
|
||||||
})
|
});
|
||||||
this.$refs.skuSelect.goodsData = data;
|
this.$refs.skuSelect.goodsData = data;
|
||||||
},
|
},
|
||||||
changeSelect(e) {
|
changeSelect(e) {
|
||||||
|
@ -507,15 +423,15 @@ export default {
|
||||||
// 回显已选商品
|
// 回显已选商品
|
||||||
let list = [];
|
let list = [];
|
||||||
item.forEach((e) => {
|
item.forEach((e) => {
|
||||||
list.push({
|
list.push({
|
||||||
goodsName: e.goodsName,
|
goodsName: e.goodsName,
|
||||||
price: e.price,
|
price: e.price,
|
||||||
originalPrice: e.price,
|
originalPrice: e.price,
|
||||||
quantity: e.quantity,
|
quantity: e.quantity,
|
||||||
storeId: e.storeId,
|
storeId: e.storeId,
|
||||||
sellerName: e.sellerName,
|
sellerName: e.sellerName,
|
||||||
skuId: e.id,
|
skuId: e.id,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.form.promotionGoodsList = list;
|
this.form.promotionGoodsList = list;
|
||||||
},
|
},
|
||||||
|
@ -598,11 +514,15 @@ h4 {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
.ivu-form-item{
|
.ivu-form-item {
|
||||||
margin-bottom: 24px !important;
|
margin-bottom: 24px !important;
|
||||||
}
|
}
|
||||||
.wrapper{
|
.wrapper {
|
||||||
min-height: 1000px;
|
min-height: 1000px;
|
||||||
}
|
}
|
||||||
|
.tips {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -113,9 +113,11 @@
|
||||||
>
|
>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:disabled="form.promotionStatus != 'NEW'"
|
:disabled="form.promotionStatus != 'NEW'"
|
||||||
|
v-if="JSON.parse(getStore('userInfo')).selfOperated"
|
||||||
v-model="form.isPoint"
|
v-model="form.isPoint"
|
||||||
>送积分</Checkbox
|
>送积分</Checkbox
|
||||||
>
|
>
|
||||||
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem v-if="form.isCoupon" label="赠送优惠券" prop="couponId">
|
<FormItem v-if="form.isCoupon" label="赠送优惠券" prop="couponId">
|
||||||
<Select
|
<Select
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label="商品" v-if="$route.query.id">
|
<FormItem label="商品" v-if="$route.query.id">
|
||||||
<Button type="primary" :disabled="liveStatus!='NEW'" ghost @click="liveGoodsVisible=true" icon="md-add">添加商品</Button>
|
<Button type="primary" ghost @click="liveGoodsVisible=true" :disabled="liveStatus!='NEW'" icon="md-add">添加商品</Button>
|
||||||
<Table class="goods-table" :columns="liveColumns" :data="liveData">
|
<Table class="goods-table" :columns="liveColumns" :data="liveData">
|
||||||
<template slot-scope="{ row,index }" slot="goodsName">
|
<template slot-scope="{ row,index }" slot="goodsName">
|
||||||
<div class="flex-goods">
|
<div class="flex-goods">
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<Button type="primary" @click="createLives()">保存</Button>
|
<Button type="primary" v-if="liveStatus=='NEW'" @click="createLives()">保存</Button>
|
||||||
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -140,8 +140,8 @@
|
||||||
<img :src="imageSrc" v-if="imageVisible" style="width: 100%">
|
<img :src="imageSrc" v-if="imageVisible" style="width: 100%">
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
<Modal width="800" v-model="liveGoodsVisible" @on-ok="addGoods">
|
<Modal width="800" v-model="liveGoodsVisible" footer-hide>
|
||||||
<liveGoods :init="liveData" @selectedGoods="callBackData" reviewed />
|
<liveGoods @selectedGoods="callBackData" reviewed />
|
||||||
</Modal>
|
</Modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -259,10 +259,14 @@ export default {
|
||||||
* 删除直播间商品
|
* 删除直播间商品
|
||||||
*/
|
*/
|
||||||
async deleteGoods(val, index) {
|
async deleteGoods(val, index) {
|
||||||
|
this.$Spin.show();
|
||||||
let res = await delRoomLiveGoods(this.liveForm.roomId, val.liveGoodsId);
|
let res = await delRoomLiveGoods(this.liveForm.roomId, val.liveGoodsId);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("删除成功!");
|
this.$Message.success("删除成功!");
|
||||||
this.liveData.splice(index, 1);
|
this.liveData.splice(index, 1);
|
||||||
|
this.$Spin.hide();
|
||||||
|
} else {
|
||||||
|
this.$Spin.hide();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
@ -325,36 +329,19 @@ export default {
|
||||||
* 回调的商品选择数据
|
* 回调的商品选择数据
|
||||||
*/
|
*/
|
||||||
callBackData(way) {
|
callBackData(way) {
|
||||||
this.$set(this, "liveData", way);
|
console.log(way);
|
||||||
},
|
this.liveGoodsVisible = false;
|
||||||
|
this.$Spin.show();
|
||||||
/**
|
|
||||||
* 提交直播间商品
|
|
||||||
*/
|
|
||||||
addGoods() {
|
|
||||||
addLiveGoods({
|
addLiveGoods({
|
||||||
roomId: this.$route.query.roomId,
|
roomId: this.$route.query.roomId,
|
||||||
liveGoodsId: item.liveGoodsId,
|
liveGoodsId: way.liveGoodsId,
|
||||||
});
|
}).then((res) => {
|
||||||
},
|
if (res.success) {
|
||||||
|
this.liveData.push(way);
|
||||||
/**
|
this.$Spin.hide();
|
||||||
* dialog点击确定时判断
|
console.log(this.liveData);
|
||||||
*/
|
|
||||||
addGoods() {
|
|
||||||
console.log(this.commodityList);
|
|
||||||
this.liveData.forEach((item, index) => {
|
|
||||||
if (this.commodityList.length == 1 && this.liveData.length == 1) {
|
|
||||||
addLiveGoods({
|
|
||||||
roomId: this.$route.query.roomId,
|
|
||||||
liveGoodsId: item.liveGoodsId,
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
this.commodityList.forEach((oldVal, i) => {
|
this.$Spin.hide();
|
||||||
// 如果商品里面没有商品,以及添加商品为第一次的话
|
|
||||||
if (oldVal.liveGoodsId != item.liveGoodsId) {
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -517,7 +504,7 @@ export default {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("修改成功!");
|
this.$Message.success("修改成功!");
|
||||||
|
|
||||||
this.$router.push({ path: "/storePromotion/live" });
|
this.$router.push({ path: "/promotion/live" });
|
||||||
}
|
}
|
||||||
this.spinShow = false;
|
this.spinShow = false;
|
||||||
});
|
});
|
||||||
|
@ -528,7 +515,7 @@ export default {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("添加成功!");
|
this.$Message.success("添加成功!");
|
||||||
|
|
||||||
this.$router.push({ path: "/storePromotion/live" });
|
this.$router.push({ path: "/promotion/live" });
|
||||||
}
|
}
|
||||||
this.spinShow = false;
|
this.spinShow = false;
|
||||||
});
|
});
|
||||||
|
|
|
@ -208,20 +208,20 @@ export default {
|
||||||
* 回调参数补充
|
* 回调参数补充
|
||||||
*/
|
*/
|
||||||
selectedLiveGoods(val, index) {
|
selectedLiveGoods(val, index) {
|
||||||
if (!val.___selected) {
|
// if (!val.___selected) {
|
||||||
val.___selected = true;
|
// val.___selected = true;
|
||||||
this.$set(this.liveGoodsData[index], "___selected", true);
|
// this.$set(this.liveGoodsData[index], "___selected", true);
|
||||||
this.selectedGoods.push(this.liveGoodsData[index]);
|
// this.selectedGoods.push(this.liveGoodsData[index]);
|
||||||
} else {
|
// } else {
|
||||||
this.$nextTick(() => {
|
// this.$nextTick(() => {
|
||||||
val.___selected = false;
|
// val.___selected = false;
|
||||||
|
|
||||||
this.$set(this.liveGoodsData[index], "___selected", true);
|
// this.$set(this.liveGoodsData[index], "___selected", true);
|
||||||
this.selectedGoods.splice(index, 1);
|
// this.selectedGoods.splice(index, 1);
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
this.$emit("selectedGoods", this.selectedGoods);
|
this.$emit("selectedGoods", val);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 解决radio数据不回显问题
|
* 解决radio数据不回显问题
|
||||||
|
@ -279,7 +279,7 @@ export default {
|
||||||
console.log(element);
|
console.log(element);
|
||||||
return {
|
return {
|
||||||
goodsId: element.goodsId, //商品id
|
goodsId: element.goodsId, //商品id
|
||||||
goodsImage: element.small, //商品图片 必须为 300 * 300
|
goodsImage: element.small, //商品图片 最大为 300 * 300
|
||||||
name: element.goodsName, //商品昵称
|
name: element.goodsName, //商品昵称
|
||||||
price: parseInt(element.price), //商品价格
|
price: parseInt(element.price), //商品价格
|
||||||
quantity: element.quantity, //库存
|
quantity: element.quantity, //库存
|
||||||
|
|
|
@ -1,41 +1,11 @@
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
.operation {
|
.operation {
|
||||||
margin-bottom: 2vh;
|
margin-bottom: 2vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.select-count {
|
|
||||||
font-weight: 600;
|
|
||||||
color: #40a9ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select-clear {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
margin-top: 2vh;
|
margin-top: 2vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.drop-down {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
.row {
|
||||||
.newPromotionView {
|
margin-bottom: 5px;
|
||||||
width: 80%;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
|
|
||||||
Input {
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slotSpan {
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
@on-selection-change="changeSelect"
|
@on-selection-change="changeSelect"
|
||||||
>
|
>
|
||||||
<template slot-scope="{ row }" slot="action">
|
<template slot-scope="{ row }" slot="action">
|
||||||
|
<div class="row">
|
||||||
<Button
|
<Button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -97,6 +98,7 @@
|
||||||
@click="close(row)"
|
@click="close(row)"
|
||||||
>关闭</Button
|
>关闭</Button
|
||||||
>
|
>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Table>
|
</Table>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
|
|
|
@ -105,13 +105,13 @@ export default {
|
||||||
color = "default";
|
color = "default";
|
||||||
if (params.row.promotionStatus == "NEW") {
|
if (params.row.promotionStatus == "NEW") {
|
||||||
text = "未开始";
|
text = "未开始";
|
||||||
color = "default";
|
color = "geekblue";
|
||||||
} else if (params.row.promotionStatus == "START") {
|
} else if (params.row.promotionStatus == "START") {
|
||||||
text = "已开始";
|
text = "已开始";
|
||||||
color = "green";
|
color = "green";
|
||||||
} else if (params.row.promotionStatus == "END") {
|
} else if (params.row.promotionStatus == "END") {
|
||||||
text = "已结束";
|
text = "已结束";
|
||||||
color = "red";
|
color = "volcano";
|
||||||
} else if (params.row.promotionStatus == "CLOSE") {
|
} else if (params.row.promotionStatus == "CLOSE") {
|
||||||
text = "已关闭";
|
text = "已关闭";
|
||||||
color = "red";
|
color = "red";
|
||||||
|
|
|
@ -132,15 +132,13 @@
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.billStatus == "OUT") {
|
if (params.row.billStatus == "OUT") {
|
||||||
return h( "Badge", {props: { status: "success",text: "已出账" } })
|
return h("Tag", {props: {color: "blue",},},"已出账");
|
||||||
} else if (params.row.billStatus == "EXAMINE") {
|
|
||||||
return h( "Badge", {props: { status: "success",text: "已审核" } })
|
|
||||||
} else if (params.row.billStatus == "CHECK") {
|
} else if (params.row.billStatus == "CHECK") {
|
||||||
return h( "Badge", {props: { status: "success",text: "已对账" } })
|
return h("Tag", {props: {color: "geekblue",},},"已对账");
|
||||||
} else if (params.row.billStatus == "PAY") {
|
} else if (params.row.billStatus == "EXAMINE") {
|
||||||
return h( "Badge", {props: { status: "success",text: "已付款" } })
|
return h("Tag", {props: {color: "purple",},},"已审核");
|
||||||
}else if (params.row.billStatus == "COMPLETE") {
|
} else {
|
||||||
return h( "Badge", {props: { status: "success",text: "已完成" } })
|
return h("Tag", {props: {color: "green",},},"已付款");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -143,15 +143,13 @@
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.billStatus == "OUT") {
|
if (params.row.billStatus == "OUT") {
|
||||||
return h( "Badge", {props: { status: "success",text: "已出账" } })
|
return h("Tag", {props: {color: "blue",},},"已出账");
|
||||||
} else if (params.row.billStatus == "EXAMINE") {
|
|
||||||
return h( "Badge", {props: { status: "success",text: "已审核" } })
|
|
||||||
} else if (params.row.billStatus == "CHECK") {
|
} else if (params.row.billStatus == "CHECK") {
|
||||||
return h( "Badge", {props: { status: "success",text: "已对账" } })
|
return h("Tag", {props: {color: "geekblue",},},"已对账");
|
||||||
} else if (params.row.billStatus == "PAY") {
|
} else if (params.row.billStatus == "EXAMINE") {
|
||||||
return h( "Badge", {props: { status: "success",text: "已付款" } })
|
return h("Tag", {props: {color: "purple",},},"已审核");
|
||||||
}else if (params.row.billStatus == "COMPLETE") {
|
} else {
|
||||||
return h( "Badge", {props: { status: "success",text: "已完成" } })
|
return h("Tag", {props: {color: "green",},},"已付款");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -58,10 +58,10 @@
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.selected === null || params.row.selected === "") {
|
if(params.row.selected === null || params.row.selected === ""){
|
||||||
return h( "Badge", {props: { status: "error",text: "关闭" } })
|
return h("div", [h("tag", {props: {color: "volcano"}}, "关闭")]);
|
||||||
} else if (params.row.selected !== "") {
|
}else{
|
||||||
return h( "Badge", {props: { status: "success",text: "开启" } })
|
return h("div", [h("tag", {props: {color: "green"}}, "开启")]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -95,8 +95,8 @@
|
||||||
<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>
|
||||||
<td>
|
<td>
|
||||||
<Input class="text w60" type="text" v-model="item.firstPrice" maxlength="6" clearable >
|
<Input class="text w60" type="text" v-model="item.firstPrice" maxlength="6" clearable>
|
||||||
<span slot="append">元</span>
|
<span slot="append">元</span>
|
||||||
</Input>
|
</Input>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<Input class="text w60" type="text" v-model="item.continuedPrice" maxlength="6" clearable>
|
<Input class="text w60" type="text" v-model="item.continuedPrice" maxlength="6" clearable>
|
||||||
<span slot="append">元</span>
|
<span slot="append">元</span>
|
||||||
</Input>
|
</Input>
|
||||||
</td>
|
</td>
|
||||||
<td class="nscs-table-handle">
|
<td class="nscs-table-handle">
|
||||||
|
@ -135,7 +135,7 @@
|
||||||
</div>
|
</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<Form-item>
|
<Form-item>
|
||||||
<Button @click="addShipTemplateChildren(index)" v-if="form.pricingMethod !== 'FREE'" icon="ios-create-outline" >为指定城市设置运费模板
|
<Button @click="addShipTemplateChildren(index)" v-if="form.pricingMethod !== 'FREE'" icon="ios-create-outline">为指定城市设置运费模板
|
||||||
</Button>
|
</Button>
|
||||||
<Button @click="handleSubmit" :loading="submitLoading" type="primary" style="margin-right:5px">保存
|
<Button @click="handleSubmit" :loading="submitLoading" type="primary" style="margin-right:5px">保存
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -163,7 +163,7 @@ export default {
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
selectedIndex:0, //选中的地址模板下标
|
selectedIndex: 0, //选中的地址模板下标
|
||||||
item: "", //运费模板子模板
|
item: "", //运费模板子模板
|
||||||
shipInfo: {}, // 运费模板数据
|
shipInfo: {}, // 运费模板数据
|
||||||
title: "添加运费模板", // 模态框标题
|
title: "添加运费模板", // 模态框标题
|
||||||
|
@ -195,6 +195,11 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
regions() {
|
||||||
|
return this.$store.state.regions;
|
||||||
|
},
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init() {
|
||||||
this.getData();
|
this.getData();
|
||||||
|
@ -224,7 +229,7 @@ export default {
|
||||||
firstPrice: "",
|
firstPrice: "",
|
||||||
continuedCompany: "1",
|
continuedCompany: "1",
|
||||||
continuedPrice: "",
|
continuedPrice: "",
|
||||||
selectedAll:false
|
selectedAll: false,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
@ -240,12 +245,24 @@ export default {
|
||||||
this.form = item;
|
this.form = item;
|
||||||
},
|
},
|
||||||
//选择地区
|
//选择地区
|
||||||
editRegion(item,index) {
|
editRegion(item, index) {
|
||||||
this.selectedIndex = index
|
this.selectedIndex = index;
|
||||||
this.item = item;
|
this.item = item;
|
||||||
|
|
||||||
this.$store.state.shipTemplate = this.form.freightTemplateChildList
|
this.regions.forEach((addr) => {
|
||||||
this.$refs.region.open(item,index);
|
this.form.freightTemplateChildList.forEach((child) => {
|
||||||
|
child.area.split(",").forEach((area) => {
|
||||||
|
if (addr.name == area) {
|
||||||
|
addr.selectedAll = true;
|
||||||
|
this.$set(child, "selectedAll", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$store.state.shipTemplate = this.form.freightTemplateChildList;
|
||||||
|
|
||||||
|
this.$refs.region.open(item, index);
|
||||||
},
|
},
|
||||||
//刷细数据
|
//刷细数据
|
||||||
refresh() {
|
refresh() {
|
||||||
|
@ -273,9 +290,11 @@ export default {
|
||||||
if (child.selectedList != "") {
|
if (child.selectedList != "") {
|
||||||
// 只显示省份
|
// 只显示省份
|
||||||
|
|
||||||
if(child.selectedAll ){
|
if (child.selectedAll) {
|
||||||
area += child.name + ","
|
area += child.name + ",";
|
||||||
this.form.freightTemplateChildList[this.selectedIndex].selectedAll = true
|
this.form.freightTemplateChildList[
|
||||||
|
this.selectedIndex
|
||||||
|
].selectedAll = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
child.selectedList.forEach((son) => {
|
child.selectedList.forEach((son) => {
|
||||||
|
@ -302,11 +321,16 @@ export default {
|
||||||
|
|
||||||
this.$refs.form.validate((valid) => {
|
this.$refs.form.validate((valid) => {
|
||||||
const regNumber = /^\+?[1-9][0-9]*$/;
|
const regNumber = /^\+?[1-9][0-9]*$/;
|
||||||
const regMoney = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
|
const regMoney =
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.pricingMethod != 'FREE') {
|
if (this.form.pricingMethod != "FREE") {
|
||||||
//校验运费模板详细信息
|
//校验运费模板详细信息
|
||||||
for (let i = 0; i < this.form.freightTemplateChildList.length; i++) {
|
for (
|
||||||
|
let i = 0;
|
||||||
|
i < this.form.freightTemplateChildList.length;
|
||||||
|
i++
|
||||||
|
) {
|
||||||
if (
|
if (
|
||||||
this.form.freightTemplateChildList[i].area == "" ||
|
this.form.freightTemplateChildList[i].area == "" ||
|
||||||
this.form.freightTemplateChildList[i].firstCompany == "" ||
|
this.form.freightTemplateChildList[i].firstCompany == "" ||
|
||||||
|
@ -324,8 +348,9 @@ export default {
|
||||||
regNumber.test(
|
regNumber.test(
|
||||||
this.form.freightTemplateChildList[i].continuedCompany
|
this.form.freightTemplateChildList[i].continuedCompany
|
||||||
) == false ||
|
) == false ||
|
||||||
regMoney.test(this.form.freightTemplateChildList[i].firstPrice) ==
|
regMoney.test(
|
||||||
false ||
|
this.form.freightTemplateChildList[i].firstPrice
|
||||||
|
) == false ||
|
||||||
regMoney.test(
|
regMoney.test(
|
||||||
this.form.freightTemplateChildList[i].continuedPrice
|
this.form.freightTemplateChildList[i].continuedPrice
|
||||||
) == false
|
) == false
|
||||||
|
@ -335,7 +360,6 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (this.operation == "ADD") {
|
if (this.operation == "ADD") {
|
||||||
API_Shop.addShipTemplate(this.form, headers).then((res) => {
|
API_Shop.addShipTemplate(this.form, headers).then((res) => {
|
||||||
|
@ -372,7 +396,7 @@ export default {
|
||||||
firstPrice: "",
|
firstPrice: "",
|
||||||
continuedCompany: "1",
|
continuedCompany: "1",
|
||||||
continuedPrice: "",
|
continuedPrice: "",
|
||||||
selectedAll:false
|
selectedAll: false,
|
||||||
};
|
};
|
||||||
this.form.freightTemplateChildList.push(params);
|
this.form.freightTemplateChildList.push(params);
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue