jufubao-admin-library 1.1.66 → 1.1.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/library/pageComponents/modules/JfbProductSearch.vue +7 -4
- package/library/viewModules/viewCardsGift/viewCardsGift/config.vue +0 -1
- package/library/viewModules/viewStat/schemas/supplier.stat.js +9 -0
- package/library/viewModules/viewStat/viewsStat/product/components/stat-all.vue +4 -2
- package/library/viewModules/viewStat/viewsStat/product/components/table-brand.vue +2 -2
- package/library/viewModules/viewStat/viewsStat/product/components/table-category.vue +3 -3
- package/library/viewModules/viewStat/viewsStat/product/components/table-product.vue +2 -2
- package/library/viewModules/viewStat/viewsStat/supplier/components/discount.vue +115 -67
- package/library/viewModules/viewStat/viewsStat/supplier/components/stat-product.vue +38 -11
- package/library/viewModules/viewStat/viewsStat/supplier/components/table-category.vue +2 -2
- package/library/viewModules/viewStat/viewsStat/supplier/components/table-product.vue +2 -2
- package/library/viewModules/viewStat/viewsStat/supplier/components/table-supplier.vue +2 -2
- package/library/viewModules/viewStat/viewsStat/supplier/components/up-new.vue +334 -0
- package/library/viewModules/viewStat/viewsStat/supplier/index.vue +6 -3
- package/library/viewModules/viewsEnterpriseBuy/viewsEnterpriseBuy/compontents/OrderInfoButton.vue +27 -1
- package/library/viewModules/viewsEnterpriseBuy/viewsEnterpriseBuy/detail.vue +92 -8
- package/library/viewModules/viewsEnterpriseBuy/viewsEnterpriseBuy/table-card.vue +12 -1
- package/package.json +1 -1
|
@@ -115,7 +115,6 @@ export default {
|
|
|
115
115
|
...mapState(['commonParams']),
|
|
116
116
|
},
|
|
117
117
|
async created () {
|
|
118
|
-
console.log(this.projectType,"projectTypeprojectType");
|
|
119
118
|
let cityData = await this.getAllCityList()
|
|
120
119
|
this.cityData = cityData.data.list
|
|
121
120
|
this.cookieKey = `${this.commonParams.xsiteid}.${this.commonParams.xnamespace}.${this.pagesType}.channel`
|
|
@@ -246,6 +245,10 @@ export default {
|
|
|
246
245
|
* @param form 搜索请求参数
|
|
247
246
|
*/
|
|
248
247
|
handleSearch ({ action, form }) {
|
|
248
|
+
if(action==='reset'){
|
|
249
|
+
this.category_id = []
|
|
250
|
+
this.custom_category_id = []
|
|
251
|
+
}
|
|
249
252
|
if (this.JfbParent.page) this.JfbParent.page = 1
|
|
250
253
|
this.getList(action)
|
|
251
254
|
},
|
|
@@ -383,7 +386,7 @@ export default {
|
|
|
383
386
|
formatValue: "timestamp", //输出时间格式
|
|
384
387
|
placeholder: ["开始时间", "结束时间"],
|
|
385
388
|
},
|
|
386
|
-
{
|
|
389
|
+
this.projectType!=='wholesale'&&{
|
|
387
390
|
label: "按价格:", //label
|
|
388
391
|
ele: "xd-input-range", //package 名称
|
|
389
392
|
valueKey: "price_range", //form[valueKey]
|
|
@@ -419,13 +422,13 @@ export default {
|
|
|
419
422
|
},
|
|
420
423
|
notice: "市场价和分销价",
|
|
421
424
|
},
|
|
422
|
-
{
|
|
425
|
+
this.projectType!=='wholesale'&&{
|
|
423
426
|
label: "按折扣:", //label
|
|
424
427
|
ele: "xd-input-range", //package 名称
|
|
425
428
|
valueKey: "discount_ratio", //form[valueKey]
|
|
429
|
+
labelSlot:'按大于等于最低折扣,小于最高折扣(不含)进行搜索',
|
|
426
430
|
value: {},
|
|
427
431
|
disabled: false,
|
|
428
|
-
labelSlot:'按大于等于最低折扣,小于最高折扣(不含)进行搜索',
|
|
429
432
|
setting: {
|
|
430
433
|
/**单位显示**/
|
|
431
434
|
//图标优先于文字单位
|
|
@@ -154,7 +154,6 @@ import {mapActions} from "vuex";
|
|
|
154
154
|
import {Loading} from "element-ui";
|
|
155
155
|
import {isPlatform} from "@/utils/xd.base";
|
|
156
156
|
import XdBaseDynamicField from "@/components/XdBaseDynamicField.vue";
|
|
157
|
-
import {number} from "echarts/lib/export";
|
|
158
157
|
import {getImageFullPath} from "@/mixins/handleUpdate";
|
|
159
158
|
const Color = require("color");
|
|
160
159
|
|
|
@@ -93,5 +93,14 @@ module.exports = {
|
|
|
93
93
|
disabled: true,
|
|
94
94
|
role: "STAT-PARTNER.TRADE_STAT_OFFLINE_SHOP_SALES"
|
|
95
95
|
},
|
|
96
|
+
{
|
|
97
|
+
title: "统计-供应商统计-上新商品折扣分布数据",
|
|
98
|
+
mapFn: "getNewOnShelfProductDiscounts",
|
|
99
|
+
path: '/stat-partner/v1/supplier-stat/new-on-shelf-product-discounts',
|
|
100
|
+
isRule: false,
|
|
101
|
+
params: {},
|
|
102
|
+
disabled: true,
|
|
103
|
+
role: "STAT-PARTNER.SUPPLIER_STAT_NEW_ON"
|
|
104
|
+
},
|
|
96
105
|
]
|
|
97
106
|
}
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
<div class="stat_item">
|
|
13
13
|
<p class="_title">
|
|
14
14
|
商品总数
|
|
15
|
-
|
|
15
|
+
<el-tooltip effect="light" placement="right">
|
|
16
|
+
<div slot="content">取对应业务线已选商品统计<br/>同一商品多业务线选用按多次计</div>
|
|
16
17
|
<i class="xdicon_question-circle xd_admin_iconfont"></i>
|
|
17
18
|
</el-tooltip>
|
|
18
19
|
</p>
|
|
@@ -52,7 +53,8 @@
|
|
|
52
53
|
<div class="stat_item">
|
|
53
54
|
<p class="_title">
|
|
54
55
|
SKU总数
|
|
55
|
-
<el-tooltip effect="light"
|
|
56
|
+
<el-tooltip effect="light" placement="right">
|
|
57
|
+
<div slot="content">取对应业务线已选商品统计<br/>同一商品多业务线选用按多次计<br/>同一商品多规格按多次计</div>
|
|
56
58
|
<i class="xdicon_question-circle xd_admin_iconfont"></i>
|
|
57
59
|
</el-tooltip>
|
|
58
60
|
</p>
|
|
@@ -179,7 +179,7 @@ export default {
|
|
|
179
179
|
label: "实际销量",
|
|
180
180
|
sort: "custom",
|
|
181
181
|
notice: {
|
|
182
|
-
data: ["
|
|
182
|
+
data: ["总销量减去仅退款和换购的售后次数"],
|
|
183
183
|
},
|
|
184
184
|
},
|
|
185
185
|
{
|
|
@@ -202,7 +202,7 @@ export default {
|
|
|
202
202
|
label: "售后次数",
|
|
203
203
|
sort: "custom",
|
|
204
204
|
notice: {
|
|
205
|
-
data: ["
|
|
205
|
+
data: ["按审核时间统计客服对应业务线的售后订单中商品的总件数;同一订单售后多件商品按多次计;同一商品多次售后按多次计;仅统计线上订单且全部处理方式的售后订单;"],
|
|
206
206
|
},
|
|
207
207
|
},
|
|
208
208
|
{
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
:label="item.label"
|
|
46
46
|
:value="item.value"
|
|
47
47
|
>
|
|
48
|
-
</el-option>
|
|
48
|
+
</el-option>
|
|
49
49
|
</el-select>
|
|
50
50
|
</div>
|
|
51
51
|
</template>
|
|
@@ -175,7 +175,7 @@ export default {
|
|
|
175
175
|
label: "实际销量",
|
|
176
176
|
sort: "custom",
|
|
177
177
|
notice: {
|
|
178
|
-
data: ["
|
|
178
|
+
data: ["总销量减去仅退款和换购的售后次数"],
|
|
179
179
|
},
|
|
180
180
|
},
|
|
181
181
|
{
|
|
@@ -198,7 +198,7 @@ export default {
|
|
|
198
198
|
label: "售后次数",
|
|
199
199
|
sort: "custom",
|
|
200
200
|
notice: {
|
|
201
|
-
data: ["
|
|
201
|
+
data: ["按审核时间统计客服对应业务线的售后订单中商品的总件数;同一订单售后多件商品按多次计;同一商品多次售后按多次计;仅统计线上订单且全部处理方式的售后订单;"],
|
|
202
202
|
},
|
|
203
203
|
},
|
|
204
204
|
{
|
|
@@ -200,7 +200,7 @@ export default {
|
|
|
200
200
|
label: "实际销量",
|
|
201
201
|
sort: "custom",
|
|
202
202
|
notice: {
|
|
203
|
-
data: ["
|
|
203
|
+
data: ["总销量减去仅退款和换购的售后次数"],
|
|
204
204
|
},
|
|
205
205
|
},
|
|
206
206
|
{
|
|
@@ -223,7 +223,7 @@ export default {
|
|
|
223
223
|
label: "售后次数",
|
|
224
224
|
sort: "custom",
|
|
225
225
|
notice: {
|
|
226
|
-
data: ["
|
|
226
|
+
data: ["按审核时间统计客服对应业务线的售后订单中商品的总件数;同一订单售后多件商品按多次计;同一商品多次售后按多次计;仅统计线上订单且全部处理方式的售后订单;"],
|
|
227
227
|
},
|
|
228
228
|
},
|
|
229
229
|
{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<el-card class="discount-wrap">
|
|
3
3
|
<div class="discount-wrap-header" slot="header">
|
|
4
4
|
<div class="discount-wrap-header-select">
|
|
5
|
-
<div>
|
|
5
|
+
<div class="mb10">
|
|
6
6
|
在售商品折扣分布
|
|
7
7
|
<el-tooltip
|
|
8
8
|
effect="light"
|
|
@@ -16,67 +16,75 @@
|
|
|
16
16
|
</span>
|
|
17
17
|
</div>
|
|
18
18
|
<div>
|
|
19
|
-
<
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
>
|
|
28
|
-
<el-option
|
|
29
|
-
v-for="item in discountTypeList"
|
|
30
|
-
:key="item.value"
|
|
31
|
-
:label="item.label"
|
|
32
|
-
:value="item.value"
|
|
19
|
+
<el-form ref="form" :inline="true" :model="form" label-width="80px">
|
|
20
|
+
<el-form-item label="折扣类型">
|
|
21
|
+
<el-select
|
|
22
|
+
v-model="discount_type"
|
|
23
|
+
filterable
|
|
24
|
+
clearable
|
|
25
|
+
placeholder="请选择折扣类型"
|
|
26
|
+
style="margin-right: 10px"
|
|
33
27
|
>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
:value="item.value"
|
|
28
|
+
<el-option
|
|
29
|
+
v-for="item in discountTypeList"
|
|
30
|
+
:key="item.value"
|
|
31
|
+
:label="item.label"
|
|
32
|
+
:value="item.value"
|
|
33
|
+
>
|
|
34
|
+
</el-option>
|
|
35
|
+
</el-select>
|
|
36
|
+
</el-form-item>
|
|
37
|
+
<el-form-item label="供应商">
|
|
38
|
+
<el-select
|
|
39
|
+
v-model="channel_code"
|
|
40
|
+
filterable
|
|
41
|
+
clearable
|
|
42
|
+
placeholder="请选择供应商类别"
|
|
43
|
+
style="margin-right: 10px"
|
|
51
44
|
>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
:
|
|
45
|
+
<el-option
|
|
46
|
+
v-for="item in channelList"
|
|
47
|
+
:key="item.value"
|
|
48
|
+
:label="item.label"
|
|
49
|
+
:value="item.value"
|
|
50
|
+
>
|
|
51
|
+
</el-option>
|
|
52
|
+
</el-select>
|
|
53
|
+
<el-select
|
|
54
|
+
clearable
|
|
55
|
+
v-if="channel_code && showSupplier === 'Y'"
|
|
56
|
+
v-model="supplier_ids"
|
|
57
|
+
filterable
|
|
58
|
+
remote
|
|
59
|
+
reserve-keyword
|
|
60
|
+
placeholder="请输入供应商"
|
|
61
|
+
:remote-method="remoteMethod"
|
|
69
62
|
>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
<el-option
|
|
64
|
+
v-for="item in supplierList"
|
|
65
|
+
:key="item.value"
|
|
66
|
+
:label="item.label"
|
|
67
|
+
:value="item.value"
|
|
68
|
+
>
|
|
69
|
+
</el-option>
|
|
70
|
+
</el-select>
|
|
71
|
+
</el-form-item>
|
|
72
|
+
<el-form-item label="时间">
|
|
73
|
+
<xd-stat-trade-date :isRangeMonth="true" v-model="tradeTime"></xd-stat-trade-date>
|
|
74
|
+
</el-form-item>
|
|
75
|
+
<el-form-item label="公共分类">
|
|
76
|
+
<el-cascader v-model="category_id" :props="categoryProps" clearable></el-cascader>
|
|
77
|
+
</el-form-item>
|
|
78
|
+
<el-form-item>
|
|
79
|
+
<el-button
|
|
80
|
+
@click="getDataList"
|
|
81
|
+
style="margin-left: 10px"
|
|
82
|
+
type="primary"
|
|
83
|
+
>搜索</el-button
|
|
84
|
+
>
|
|
85
|
+
<el-button @click="doExport" type="primary">条件导出</el-button>
|
|
86
|
+
</el-form-item>
|
|
87
|
+
</el-form>
|
|
80
88
|
</div>
|
|
81
89
|
</div>
|
|
82
90
|
<div>
|
|
@@ -136,7 +144,11 @@
|
|
|
136
144
|
<script>
|
|
137
145
|
import { getOptions } from "@/utils/options";
|
|
138
146
|
import { mapActions } from "vuex";
|
|
147
|
+
import XdStatTradeDate from "@/components/XdStatTradeDate";
|
|
139
148
|
export default {
|
|
149
|
+
components: {
|
|
150
|
+
XdStatTradeDate
|
|
151
|
+
},
|
|
140
152
|
data() {
|
|
141
153
|
return {
|
|
142
154
|
keyList: [],
|
|
@@ -161,6 +173,25 @@ export default {
|
|
|
161
173
|
},
|
|
162
174
|
],
|
|
163
175
|
discount_type:'',
|
|
176
|
+
tradeTime: null,
|
|
177
|
+
category_id:[],
|
|
178
|
+
categoryProps: {
|
|
179
|
+
checkStrictly: true,
|
|
180
|
+
lazy: true,
|
|
181
|
+
lazyLoad (node, resolve) {
|
|
182
|
+
getOptions({
|
|
183
|
+
server: 'product-partner',
|
|
184
|
+
fn: "categories",
|
|
185
|
+
path: "p4",
|
|
186
|
+
params: {
|
|
187
|
+
value: node.level == 0 ? 0 : node.value,
|
|
188
|
+
},
|
|
189
|
+
}).then((res) => {
|
|
190
|
+
resolve(res["data"]["list"])
|
|
191
|
+
})
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
form:{},
|
|
164
195
|
};
|
|
165
196
|
},
|
|
166
197
|
watch: {
|
|
@@ -194,20 +225,29 @@ export default {
|
|
|
194
225
|
}).then((res) => {
|
|
195
226
|
this.channelList = res.data.list;
|
|
196
227
|
});
|
|
228
|
+
|
|
229
|
+
},
|
|
230
|
+
mounted(){
|
|
197
231
|
this.getDataList();
|
|
198
232
|
},
|
|
199
233
|
methods: {
|
|
200
234
|
...mapActions("supplierStat", ["getProductDiscount"]),
|
|
201
235
|
// 获取列表数据
|
|
202
236
|
async getDataList(row) {
|
|
203
|
-
|
|
204
|
-
|
|
237
|
+
|
|
238
|
+
let params = {
|
|
205
239
|
channel_code: this.channel_code,
|
|
206
240
|
supplier_ids: this.supplier_ids,
|
|
207
241
|
channel_code_text: this.channel_code_text,
|
|
208
242
|
supplier_text: this.supplier_text,
|
|
209
|
-
discount_type:this.discount_type
|
|
210
|
-
|
|
243
|
+
discount_type:this.discount_type,
|
|
244
|
+
...this.tradeTime,
|
|
245
|
+
}
|
|
246
|
+
if (this.category_id && this.category_id.length) {
|
|
247
|
+
params['category_id'] = this.category_id[this.category_id.length - 1]
|
|
248
|
+
}
|
|
249
|
+
// 获取产品折扣
|
|
250
|
+
this.getProductDiscount(params).then((res) => {
|
|
211
251
|
// 获取行标题列表
|
|
212
252
|
this.keyList = res.data.col_title_list;
|
|
213
253
|
|
|
@@ -242,7 +282,8 @@ export default {
|
|
|
242
282
|
file_name: value,
|
|
243
283
|
channel_code_text: this.channel_code_text,
|
|
244
284
|
supplier_text: this.supplier_text,
|
|
245
|
-
discount_type:this.discount_type
|
|
285
|
+
discount_type:this.discount_type,
|
|
286
|
+
...this.tradeTime,
|
|
246
287
|
};
|
|
247
288
|
let loading = this.$loading({});
|
|
248
289
|
this.getProductDiscount(params)
|
|
@@ -292,9 +333,9 @@ export default {
|
|
|
292
333
|
margin-top: 20px;
|
|
293
334
|
&-header {
|
|
294
335
|
&-select {
|
|
295
|
-
display: flex;
|
|
296
|
-
justify-content: space-between;
|
|
297
|
-
align-items: center;
|
|
336
|
+
//display: flex;
|
|
337
|
+
//justify-content: space-between;
|
|
338
|
+
//align-items: center;
|
|
298
339
|
margin-bottom: 10px;
|
|
299
340
|
|
|
300
341
|
& > div:first-child {
|
|
@@ -310,6 +351,7 @@ export default {
|
|
|
310
351
|
|
|
311
352
|
& > div:nth-child(2) {
|
|
312
353
|
display: flex;
|
|
354
|
+
flex-wrap: wrap;
|
|
313
355
|
align-items: center;
|
|
314
356
|
}
|
|
315
357
|
}
|
|
@@ -330,4 +372,10 @@ export default {
|
|
|
330
372
|
color: #a1a7b3;
|
|
331
373
|
font-size: 14px;
|
|
332
374
|
}
|
|
375
|
+
.mb10{
|
|
376
|
+
margin-bottom: 10px;
|
|
377
|
+
}
|
|
378
|
+
.dis_f{
|
|
379
|
+
display: flex;
|
|
380
|
+
}
|
|
333
381
|
</style>
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
<div slot="header" class="card_header">
|
|
4
4
|
<div class="card_tit">
|
|
5
5
|
<span class="b_tit">商品数量</span>
|
|
6
|
-
<el-tooltip effect="light"
|
|
6
|
+
<el-tooltip effect="light" placement="right">
|
|
7
|
+
<div slot="content">仅统计人工添加的商品;上架商品按首次审核通过时间统计;<br/>
|
|
8
|
+
下架商品按最近下架时间统计,周期内多次下架按1次计;<br/>
|
|
9
|
+
上架环比为月度环比增长,即(当月上架商品-上月上架商品)/上月上架商品。<br/></div>
|
|
7
10
|
<i class="xdicon_question-circle xd_admin_iconfont"></i>
|
|
8
11
|
</el-tooltip>
|
|
9
12
|
</div>
|
|
@@ -46,7 +49,7 @@ export default {
|
|
|
46
49
|
},
|
|
47
50
|
getChartOptions(data){
|
|
48
51
|
let xAxisData = data.x.data;
|
|
49
|
-
let legendData = ['上架商品', '下架商品'];
|
|
52
|
+
let legendData = ['上架商品', '下架商品','上架环比'];
|
|
50
53
|
let seriesData = [];
|
|
51
54
|
data.series.forEach(item => {
|
|
52
55
|
for(let i = 0; i < item.length; i++){
|
|
@@ -59,10 +62,12 @@ export default {
|
|
|
59
62
|
return {
|
|
60
63
|
tooltip: {
|
|
61
64
|
trigger: 'axis',
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
axisPointer: {
|
|
66
|
+
type: 'cross',
|
|
67
|
+
crossStyle: {
|
|
68
|
+
color: '#999'
|
|
69
|
+
}
|
|
70
|
+
}
|
|
66
71
|
},
|
|
67
72
|
legend: {
|
|
68
73
|
data: legendData
|
|
@@ -75,7 +80,10 @@ export default {
|
|
|
75
80
|
},
|
|
76
81
|
toolbox: {
|
|
77
82
|
feature: {
|
|
78
|
-
|
|
83
|
+
dataView: { show: true, readOnly: false },
|
|
84
|
+
magicType: { show: true, type: ['line', 'bar'] },
|
|
85
|
+
restore: { show: true },
|
|
86
|
+
saveAsImage: { show: true }
|
|
79
87
|
}
|
|
80
88
|
},
|
|
81
89
|
xAxis: {
|
|
@@ -84,17 +92,36 @@ export default {
|
|
|
84
92
|
smooth: true,
|
|
85
93
|
data: xAxisData
|
|
86
94
|
},
|
|
87
|
-
yAxis: {
|
|
95
|
+
yAxis: [{
|
|
88
96
|
type: 'value'
|
|
89
|
-
},
|
|
97
|
+
},{
|
|
98
|
+
type: 'value',
|
|
99
|
+
axisLabel: {
|
|
100
|
+
formatter: '{value} %'
|
|
101
|
+
}
|
|
102
|
+
}],
|
|
90
103
|
series: seriesData.map((item, index) => {
|
|
91
104
|
return {
|
|
92
105
|
name: legendData[index],
|
|
93
|
-
type: 'line',
|
|
106
|
+
type: index==0||index==1?'bar':'line',
|
|
107
|
+
yAxisIndex: index==0||index==1?0:1,
|
|
94
108
|
smooth: true,
|
|
109
|
+
// label:{
|
|
110
|
+
// show:index==0||index==1?true:false,
|
|
111
|
+
// },
|
|
112
|
+
tooltip: {
|
|
113
|
+
valueFormatter: function (value) {
|
|
114
|
+
if(index==0||index==1){
|
|
115
|
+
return value
|
|
116
|
+
}else{
|
|
117
|
+
return value+'%';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
95
121
|
data: item
|
|
96
122
|
}
|
|
97
|
-
})
|
|
123
|
+
}),
|
|
124
|
+
color:['#165DFF','#0FC6C2','#EB0B0B']
|
|
98
125
|
};
|
|
99
126
|
},
|
|
100
127
|
handleChangeType(val){
|
|
@@ -144,13 +144,13 @@ export default {
|
|
|
144
144
|
data: ["按支付时间统计已支付货源订单中对应商品件数x平台进货价 仅计算商品价格,不包含运费"],
|
|
145
145
|
} },
|
|
146
146
|
{ "type": "normal", "prop": "total_real_product_num", "align": "center", "minWidth": 150, "label": "实际销量", "sort": "custom",notice: {
|
|
147
|
-
data: ["
|
|
147
|
+
data: ["总销量减去仅退款和换购的售后次数"],
|
|
148
148
|
} },
|
|
149
149
|
{ "type": "price", "prop": "total_real_sale_amount", "align": "center", "width": 160, "label": "实际建议售价金额", "unit": "元", "sort": "custom",notice: {
|
|
150
150
|
data: ["即建议售价金额-售后建议售价金额"],
|
|
151
151
|
} },
|
|
152
152
|
{ "type": "normal", "prop": "total_aftersale_product_num", "align": "center", "minWidth": 150, "label": "售后次数", "sort": "custom",notice: {
|
|
153
|
-
data: ["
|
|
153
|
+
data: ["按审核时间统计客服对应业务线的售后订单中商品的总件数;同一订单售后多件商品按多次计;同一商品多次售后按多次计;仅统计线上订单且全部处理方式的售后订单;"],
|
|
154
154
|
} },
|
|
155
155
|
{ "type": "price", "prop": "total_aftersale_amount", "align": "center", "width": 160, "label": "售后建议售价金额", "unit": "元", "sort": "custom",notice: {
|
|
156
156
|
data: ["按审核时间统计客服售后订单中商品的建议售价金额 同一订单售后多件商品按多次计 同一商品多次售后按多次计 仅统计线上订单且处理方式为退款、换购的售后订单"],
|
|
@@ -145,13 +145,13 @@ export default {
|
|
|
145
145
|
data: ["按支付时间统计已支付货源订单中对应商品件数x平台进货价 仅计算商品价格,不包含运费"],
|
|
146
146
|
} },
|
|
147
147
|
{ "type": "normal", "prop": "total_real_product_num", "align": "center", "minWidth": 150, "label": "实际销量", "sort": "custom",notice: {
|
|
148
|
-
data: ["
|
|
148
|
+
data: ["总销量减去仅退款和换购的售后次数"],
|
|
149
149
|
} },
|
|
150
150
|
{ "type": "price", "prop": "total_real_sale_amount", "align": "center", "width": 160, "label": "实际建议售价金额", "unit": "元", "sort": "custom",notice: {
|
|
151
151
|
data: ["即建议售价金额-售后建议售价金额"],
|
|
152
152
|
} },
|
|
153
153
|
{ "type": "normal", "prop": "total_aftersale_product_num", "align": "center", "minWidth": 150, "label": "售后次数", "sort": "custom",notice: {
|
|
154
|
-
data: ["
|
|
154
|
+
data: ["按审核时间统计客服对应业务线的售后订单中商品的总件数;同一订单售后多件商品按多次计;同一商品多次售后按多次计;仅统计线上订单且全部处理方式的售后订单;"],
|
|
155
155
|
} },
|
|
156
156
|
{ "type": "price", "prop": "total_aftersale_amount", "align": "center", "width": 160, "label": "售后建议售价金额", "unit": "元", "sort": "custom",notice: {
|
|
157
157
|
data: ["按审核时间统计客服售后订单中商品的建议售价金额 同一订单售后多件商品按多次计 同一商品多次售后按多次计 仅统计线上订单且处理方式为退款、换购的售后订单"],
|
|
@@ -139,13 +139,13 @@ export default {
|
|
|
139
139
|
data: ["按支付时间统计已支付货源订单中对应商品件数x平台进货价 仅计算商品价格,不包含运费"],
|
|
140
140
|
} },
|
|
141
141
|
{ "type": "normal", "prop": "total_real_product_num", "align": "center", "minWidth": 150, "label": "实际销量", "sort": "custom",notice: {
|
|
142
|
-
data: ["
|
|
142
|
+
data: ["总销量减去仅退款和换购的售后次数"],
|
|
143
143
|
} },
|
|
144
144
|
{ "type": "price", "prop": "total_real_sale_amount", "align": "center", "width": 160, "label": "实际建议售价金额", "unit": "元", "sort": "custom",notice: {
|
|
145
145
|
data: ["即建议售价金额-售后建议售价金额"],
|
|
146
146
|
} },
|
|
147
147
|
{ "type": "normal", "prop": "total_aftersale_product_num", "align": "center", "minWidth": 150, "label": "售后次数", "sort": "custom",notice: {
|
|
148
|
-
data: ["
|
|
148
|
+
data: ["按审核时间统计客服对应业务线的售后订单中商品的总件数;同一订单售后多件商品按多次计;同一商品多次售后按多次计;仅统计线上订单且全部处理方式的售后订单;"],
|
|
149
149
|
} },
|
|
150
150
|
{ "type": "price", "prop": "total_aftersale_amount", "align": "center", "width": 160, "label": "售后建议售价金额", "unit": "元", "sort": "custom",notice: {
|
|
151
151
|
data: ["按审核时间统计客服售后订单中商品的建议售价金额 同一订单售后多件商品按多次计 同一商品多次售后按多次计 仅统计线上订单且处理方式为退款、换购的售后订单"],
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-card class="discount-wrap">
|
|
3
|
+
<div class="discount-wrap-header" slot="header">
|
|
4
|
+
<div class="discount-wrap-header-select">
|
|
5
|
+
<div class="mb10">
|
|
6
|
+
上新商品折扣分布
|
|
7
|
+
<!-- <el-tooltip
|
|
8
|
+
effect="light"
|
|
9
|
+
content="仅统计可售商品,包含人工添加和接口同步商品。"
|
|
10
|
+
placement="right"
|
|
11
|
+
>
|
|
12
|
+
<i class="xdicon_question-circle xd_admin_iconfont"></i>
|
|
13
|
+
</el-tooltip> -->
|
|
14
|
+
<span class="s_tit">
|
|
15
|
+
截止到{{ last_updated_date_time }}
|
|
16
|
+
</span>
|
|
17
|
+
</div>
|
|
18
|
+
<div>
|
|
19
|
+
<el-form ref="form" :inline="true" :model="form" label-width="80px">
|
|
20
|
+
<el-form-item label="折扣类型">
|
|
21
|
+
<el-select
|
|
22
|
+
v-model="discount_type"
|
|
23
|
+
filterable
|
|
24
|
+
clearable
|
|
25
|
+
placeholder="请选择折扣类型"
|
|
26
|
+
style="margin-right: 10px"
|
|
27
|
+
>
|
|
28
|
+
<el-option
|
|
29
|
+
v-for="item in discountTypeList"
|
|
30
|
+
:key="item.value"
|
|
31
|
+
:label="item.label"
|
|
32
|
+
:value="item.value"
|
|
33
|
+
>
|
|
34
|
+
</el-option>
|
|
35
|
+
</el-select>
|
|
36
|
+
</el-form-item>
|
|
37
|
+
<el-form-item label="供应商">
|
|
38
|
+
<el-select
|
|
39
|
+
v-model="channel_code"
|
|
40
|
+
filterable
|
|
41
|
+
clearable
|
|
42
|
+
placeholder="请选择供应商类别"
|
|
43
|
+
style="margin-right: 10px"
|
|
44
|
+
>
|
|
45
|
+
<el-option
|
|
46
|
+
v-for="item in channelList"
|
|
47
|
+
:key="item.value"
|
|
48
|
+
:label="item.label"
|
|
49
|
+
:value="item.value"
|
|
50
|
+
>
|
|
51
|
+
</el-option>
|
|
52
|
+
</el-select>
|
|
53
|
+
<el-select
|
|
54
|
+
clearable
|
|
55
|
+
v-if="channel_code && showSupplier === 'Y'"
|
|
56
|
+
v-model="supplier_ids"
|
|
57
|
+
filterable
|
|
58
|
+
remote
|
|
59
|
+
reserve-keyword
|
|
60
|
+
placeholder="请输入供应商"
|
|
61
|
+
:remote-method="remoteMethod"
|
|
62
|
+
>
|
|
63
|
+
<el-option
|
|
64
|
+
v-for="item in supplierList"
|
|
65
|
+
:key="item.value"
|
|
66
|
+
:label="item.label"
|
|
67
|
+
:value="item.value"
|
|
68
|
+
>
|
|
69
|
+
</el-option>
|
|
70
|
+
</el-select>
|
|
71
|
+
</el-form-item>
|
|
72
|
+
<el-form-item label="上架时间">
|
|
73
|
+
<xd-stat-trade-date :isRangeMonth="true" v-model="tradeTime"></xd-stat-trade-date>
|
|
74
|
+
</el-form-item>
|
|
75
|
+
<el-form-item label="公共分类">
|
|
76
|
+
<el-cascader v-model="category_id" :props="categoryProps" clearable></el-cascader>
|
|
77
|
+
</el-form-item>
|
|
78
|
+
<el-form-item>
|
|
79
|
+
<el-button
|
|
80
|
+
@click="getDataList"
|
|
81
|
+
style="margin-left: 10px"
|
|
82
|
+
type="primary"
|
|
83
|
+
>搜索</el-button
|
|
84
|
+
>
|
|
85
|
+
<el-button @click="doExport" type="primary">条件导出</el-button>
|
|
86
|
+
</el-form-item>
|
|
87
|
+
</el-form>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div>
|
|
91
|
+
{{
|
|
92
|
+
channel_code
|
|
93
|
+
? channel_code !== "self"
|
|
94
|
+
? channel_code_text
|
|
95
|
+
: supplier_text
|
|
96
|
+
? supplier_text
|
|
97
|
+
: "月度"
|
|
98
|
+
: "月度"
|
|
99
|
+
}}-新上架商品-按折扣统计数量为
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<xd-stat-table-group
|
|
103
|
+
v-if="upNewParams"
|
|
104
|
+
:params="upNewParams"
|
|
105
|
+
:key="upNewkey"
|
|
106
|
+
:getList="getNewOnShelfProductDiscounts"
|
|
107
|
+
>
|
|
108
|
+
</xd-stat-table-group>
|
|
109
|
+
</el-card>
|
|
110
|
+
</template>
|
|
111
|
+
<script>
|
|
112
|
+
import { getOptions } from "@/utils/options";
|
|
113
|
+
import { mapActions } from "vuex";
|
|
114
|
+
import XdStatTradeDate from "@/components/XdStatTradeDate";
|
|
115
|
+
import XdStatTableGroup from "@/components/XdStatTableGroup";
|
|
116
|
+
export default {
|
|
117
|
+
components: {
|
|
118
|
+
XdStatTradeDate,
|
|
119
|
+
XdStatTableGroup
|
|
120
|
+
},
|
|
121
|
+
data() {
|
|
122
|
+
return {
|
|
123
|
+
keyList: [],
|
|
124
|
+
rowTitle: [],
|
|
125
|
+
dataList: [],
|
|
126
|
+
channelList: [],
|
|
127
|
+
channel_code: null,
|
|
128
|
+
supplier_ids: null,
|
|
129
|
+
supplierList: [],
|
|
130
|
+
last_updated_date_time: "", //截止时间
|
|
131
|
+
supplier_text: "",
|
|
132
|
+
channel_code_text: "",
|
|
133
|
+
showSupplier: "N",
|
|
134
|
+
form:{},
|
|
135
|
+
discountTypeList:[
|
|
136
|
+
{
|
|
137
|
+
label:'市场价',
|
|
138
|
+
value:'market'
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
label:'建议售价',
|
|
142
|
+
value:'sale'
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
discount_type:'',
|
|
146
|
+
tradeTime: null,
|
|
147
|
+
category_id:[],
|
|
148
|
+
categoryProps: {
|
|
149
|
+
checkStrictly: true,
|
|
150
|
+
lazy: true,
|
|
151
|
+
lazyLoad (node, resolve) {
|
|
152
|
+
getOptions({
|
|
153
|
+
server: 'product-partner',
|
|
154
|
+
fn: "categories",
|
|
155
|
+
path: "p4",
|
|
156
|
+
params: {
|
|
157
|
+
value: node.level == 0 ? 0 : node.value,
|
|
158
|
+
},
|
|
159
|
+
}).then((res) => {
|
|
160
|
+
resolve(res["data"]["list"])
|
|
161
|
+
})
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
upNewkey:'upNewkey',
|
|
165
|
+
upNewParams:null,
|
|
166
|
+
};
|
|
167
|
+
},
|
|
168
|
+
watch: {
|
|
169
|
+
channel_code(n, o) {
|
|
170
|
+
this.channel_code_text = "";
|
|
171
|
+
this.supplier_text = "";
|
|
172
|
+
this.supplier_ids = null;
|
|
173
|
+
if (n && n !== o) {
|
|
174
|
+
this.channel_code_text = this.channelList.find(
|
|
175
|
+
(item) => item.value === n
|
|
176
|
+
).label;
|
|
177
|
+
this.showSupplier = this.channelList.find(
|
|
178
|
+
(item) => item.value === n
|
|
179
|
+
).has_supplier;
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
supplier_ids(n, o) {
|
|
183
|
+
this.supplier_text = "";
|
|
184
|
+
if (n && n !== o) {
|
|
185
|
+
this.supplier_text = this.supplierList.find(
|
|
186
|
+
(item) => item.value === n
|
|
187
|
+
).label;
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
created() {
|
|
192
|
+
getOptions({
|
|
193
|
+
server: "supplier-partner",
|
|
194
|
+
fn: "partner-channel",
|
|
195
|
+
path: "p1",
|
|
196
|
+
}).then((res) => {
|
|
197
|
+
this.channelList = res.data.list;
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
},
|
|
201
|
+
mounted(){
|
|
202
|
+
this.getDataList();
|
|
203
|
+
},
|
|
204
|
+
methods: {
|
|
205
|
+
...mapActions("supplierStat", ["getNewOnShelfProductDiscounts"]),
|
|
206
|
+
// 获取列表数据
|
|
207
|
+
async getDataList() {
|
|
208
|
+
|
|
209
|
+
let params = {
|
|
210
|
+
channel_code: this.channel_code,
|
|
211
|
+
supplier_ids: this.supplier_ids,
|
|
212
|
+
channel_code_text: this.channel_code_text,
|
|
213
|
+
supplier_text: this.supplier_text,
|
|
214
|
+
discount_type:this.discount_type,
|
|
215
|
+
...this.tradeTime,
|
|
216
|
+
}
|
|
217
|
+
if (this.category_id && this.category_id.length) {
|
|
218
|
+
params['category_id'] = this.category_id[this.category_id.length - 1]
|
|
219
|
+
}
|
|
220
|
+
this.upNewParams = params;
|
|
221
|
+
this.upNewkey = Date.now()
|
|
222
|
+
},
|
|
223
|
+
doExport() {
|
|
224
|
+
this.$prompt("请输入导出文件名称", "提示", {
|
|
225
|
+
confirmButtonText: "确定",
|
|
226
|
+
cancelButtonText: "取消",
|
|
227
|
+
inputPattern: /[\S]+/,
|
|
228
|
+
inputErrorMessage: "请填写正确的名称",
|
|
229
|
+
}).then(({ value }) => {
|
|
230
|
+
let params = {
|
|
231
|
+
export: true,
|
|
232
|
+
file_ext: "xlsx",
|
|
233
|
+
file_name: value,
|
|
234
|
+
channel_code: this.channel_code,
|
|
235
|
+
supplier_ids: this.supplier_ids,
|
|
236
|
+
channel_code_text: this.channel_code_text,
|
|
237
|
+
supplier_text: this.supplier_text,
|
|
238
|
+
discount_type:this.discount_type,
|
|
239
|
+
...this.tradeTime,
|
|
240
|
+
};
|
|
241
|
+
if (this.category_id && this.category_id.length) {
|
|
242
|
+
params['category_id'] = this.category_id[this.category_id.length - 1]
|
|
243
|
+
}
|
|
244
|
+
let loading = this.$loading({});
|
|
245
|
+
this.getNewOnShelfProductDiscounts(params)
|
|
246
|
+
.then((res) => {
|
|
247
|
+
loading.close();
|
|
248
|
+
this.$alert(
|
|
249
|
+
"导出任务已经开始执行,请去任务管理查看下载状态",
|
|
250
|
+
"提示",
|
|
251
|
+
{
|
|
252
|
+
confirmButtonText: "确定",
|
|
253
|
+
}
|
|
254
|
+
);
|
|
255
|
+
})
|
|
256
|
+
.catch((err) => {
|
|
257
|
+
this.$message.error(err.msg);
|
|
258
|
+
loading.close();
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
},
|
|
262
|
+
remoteMethod(query) {
|
|
263
|
+
if (query !== "") {
|
|
264
|
+
getOptions({
|
|
265
|
+
server: "supplier-partner",
|
|
266
|
+
fn: "channel-supplier",
|
|
267
|
+
path: "p1",
|
|
268
|
+
params: {
|
|
269
|
+
channel_code: this.channel_code,
|
|
270
|
+
keyword: query,
|
|
271
|
+
},
|
|
272
|
+
})
|
|
273
|
+
.then((res) => {
|
|
274
|
+
this.supplierList = res.data.list;
|
|
275
|
+
})
|
|
276
|
+
.catch((err) => {
|
|
277
|
+
console.log(err, "err");
|
|
278
|
+
});
|
|
279
|
+
} else {
|
|
280
|
+
this.supplierList = [];
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
};
|
|
285
|
+
</script>
|
|
286
|
+
<style lang="less" scoped>
|
|
287
|
+
.discount {
|
|
288
|
+
&-wrap {
|
|
289
|
+
margin-top: 20px;
|
|
290
|
+
&-header {
|
|
291
|
+
&-select {
|
|
292
|
+
margin-bottom: 10px;
|
|
293
|
+
|
|
294
|
+
& > div:first-child {
|
|
295
|
+
display: flex;
|
|
296
|
+
align-items: center;
|
|
297
|
+
font-size: 20px;
|
|
298
|
+
i {
|
|
299
|
+
cursor: pointer;
|
|
300
|
+
margin-left: 4px;
|
|
301
|
+
color: #a1a7b3;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
& > div:nth-child(2) {
|
|
306
|
+
display: flex;
|
|
307
|
+
flex-wrap: wrap;
|
|
308
|
+
align-items: center;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
.s_tit{
|
|
315
|
+
font-size: 12px;
|
|
316
|
+
color: #A1A7B3;
|
|
317
|
+
margin-left: 10px;
|
|
318
|
+
vertical-align: bottom;
|
|
319
|
+
}
|
|
320
|
+
.empty_data {
|
|
321
|
+
display: flex;
|
|
322
|
+
justify-content: center;
|
|
323
|
+
align-items: center;
|
|
324
|
+
height: 100px;
|
|
325
|
+
color: #a1a7b3;
|
|
326
|
+
font-size: 14px;
|
|
327
|
+
}
|
|
328
|
+
.mb10{
|
|
329
|
+
margin-bottom: 10px;
|
|
330
|
+
}
|
|
331
|
+
.dis_f{
|
|
332
|
+
display: flex;
|
|
333
|
+
}
|
|
334
|
+
</style>
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
<stat-all v-permission="[Role.totalCounts]"></stat-all>
|
|
4
4
|
<stat-product v-permission="[Role.productCycCounts]" style="margin-top: 20px;"></stat-product>
|
|
5
5
|
<stat-supplier v-permission="[Role.supplierCycCounts]" style="margin-top: 20px"></stat-supplier>
|
|
6
|
-
<discount></discount>
|
|
6
|
+
<discount v-permission="[Role.getNewOnShelfProductDiscounts]"></discount>
|
|
7
|
+
<up-new></up-new>
|
|
7
8
|
<el-card v-if="has_tab" style="margin-top: 20px;">
|
|
8
9
|
<el-tabs v-model="activeName" >
|
|
9
10
|
<el-tab-pane v-if="has_tab_supplier" label="供应商(线上货源订单)" name="supplier">
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
import tableCategory from "./components/table-category.vue"
|
|
35
36
|
import tableStore from "./components/table-store.vue"
|
|
36
37
|
import discount from './components/discount.vue'
|
|
38
|
+
import upNew from './components/up-new.vue'
|
|
37
39
|
import checkPermission from "@/utils/permission"
|
|
38
40
|
import Role from "@/constant/modules/supplierStat"
|
|
39
41
|
|
|
@@ -47,7 +49,8 @@
|
|
|
47
49
|
tableProduct,
|
|
48
50
|
tableCategory,
|
|
49
51
|
discount,
|
|
50
|
-
tableStore
|
|
52
|
+
tableStore,
|
|
53
|
+
upNew
|
|
51
54
|
},
|
|
52
55
|
data() {
|
|
53
56
|
return {
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
},
|
|
72
75
|
is_shop(){
|
|
73
76
|
return checkPermission([Role.offlineShopSalesSupplier])
|
|
74
|
-
}
|
|
77
|
+
},
|
|
75
78
|
},
|
|
76
79
|
|
|
77
80
|
created() {
|
package/library/viewModules/viewsEnterpriseBuy/viewsEnterpriseBuy/compontents/OrderInfoButton.vue
CHANGED
|
@@ -108,6 +108,11 @@ export default {
|
|
|
108
108
|
default: () => {
|
|
109
109
|
}
|
|
110
110
|
},
|
|
111
|
+
info: {
|
|
112
|
+
type: Object,
|
|
113
|
+
default: () => {
|
|
114
|
+
}
|
|
115
|
+
},
|
|
111
116
|
},
|
|
112
117
|
data () {
|
|
113
118
|
return {
|
|
@@ -151,7 +156,7 @@ export default {
|
|
|
151
156
|
}
|
|
152
157
|
},
|
|
153
158
|
created () {
|
|
154
|
-
|
|
159
|
+
console.log(this.info,'iiii')
|
|
155
160
|
},
|
|
156
161
|
methods: {
|
|
157
162
|
...mapActions('enterprise_buy',
|
|
@@ -257,6 +262,27 @@ export default {
|
|
|
257
262
|
}
|
|
258
263
|
]
|
|
259
264
|
},
|
|
265
|
+
{
|
|
266
|
+
label: '商品金额:',
|
|
267
|
+
ele: 'el-html',
|
|
268
|
+
type: 'text',
|
|
269
|
+
valueKey: 'supplier_product_amount',
|
|
270
|
+
value: this.$xdHelper.divisionFloatNumber(this.info['total_amount'],100),
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
label: '运费金额:',
|
|
274
|
+
ele: 'el-html',
|
|
275
|
+
type: 'text',
|
|
276
|
+
valueKey: 'supplier_logistic_amount',
|
|
277
|
+
value: this.$xdHelper.divisionFloatNumber(this.info['supplier_logistic_amount'],100),
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
label: '总金额:',
|
|
281
|
+
ele: 'el-html',
|
|
282
|
+
type: 'text',
|
|
283
|
+
valueKey: 'total_amount',
|
|
284
|
+
value: this.$xdHelper.divisionFloatNumber(this.info['total_amount'],100)+this.$xdHelper.divisionFloatNumber(this.info['supplier_logistic_amount'],100),
|
|
285
|
+
},
|
|
260
286
|
]
|
|
261
287
|
|
|
262
288
|
this.renderFormSetAmountKey = Date.now()
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
<div class="app-container">
|
|
3
3
|
<el-card class="app-container__list">
|
|
4
4
|
<div class="app-container__list-name">
|
|
5
|
-
<div>{{baseData.main_order.purchase_name}} ({{baseData.main_order.order_status_name}})</div>
|
|
5
|
+
<div v-if="baseData">{{baseData.main_order.purchase_name}} ({{baseData.main_order.order_status_name}})</div>
|
|
6
6
|
<div>
|
|
7
7
|
<order-button
|
|
8
|
-
v-if="isOperate"
|
|
8
|
+
v-if="isOperate&&baseData"
|
|
9
9
|
:events="buttonData"
|
|
10
10
|
:purchase_main_order_id="id"
|
|
11
|
+
:info="baseData['main_order']"
|
|
11
12
|
@refresh="handeleRefresh"
|
|
12
13
|
@confirmPrice="handleConfirmPrice"
|
|
13
14
|
></order-button>
|
|
@@ -15,12 +16,12 @@
|
|
|
15
16
|
</div>
|
|
16
17
|
</el-card>
|
|
17
18
|
<el-card class="app-container__list">
|
|
18
|
-
<table-card :orderData="baseData" :key="baseKey"></table-card>
|
|
19
|
+
<table-card v-if="baseData" :orderData="baseData" :key="baseKey"></table-card>
|
|
19
20
|
</el-card>
|
|
20
21
|
<el-card class="app-container__list">
|
|
21
22
|
<div class="mb-10">商品({{product_num}}个)</div>
|
|
22
23
|
<div class="export_box">
|
|
23
|
-
<div class="mb-10">配送至 <i class="el-icon-location-information"></i>{{baseData.main_order.receipt_province_name}}{{baseData.main_order.receipt_city_name}}{{baseData.main_order.receipt_area_name}}{{baseData.main_order.receipt_street_name}}{{baseData.main_order.receipt_address_detail}}</div>
|
|
24
|
+
<div v-if="baseData" class="mb-10">配送至 <i class="el-icon-location-information"></i>{{baseData.main_order.receipt_province_name}}{{baseData.main_order.receipt_city_name}}{{baseData.main_order.receipt_area_name}}{{baseData.main_order.receipt_street_name}}{{baseData.main_order.receipt_address_detail}}</div>
|
|
24
25
|
<el-button v-if="isExport" type="primary" size="small" @click="handleExport">导出</el-button>
|
|
25
26
|
</div>
|
|
26
27
|
<div class="app-container__list-table">
|
|
@@ -61,13 +62,31 @@
|
|
|
61
62
|
</template>
|
|
62
63
|
<template slot="supplier_settlement_amount" slot-scope="scope">
|
|
63
64
|
<div v-if="scope.row.is_can_edit_amount===1">
|
|
64
|
-
<el-input v-model="scope.row.supplier_settlement_amount" type="number" @change="handleChangeAmount(scope.row.supplier_settlement_amount,scope1)" placeholder="请输入清单结算金额"></el-input>
|
|
65
|
+
<el-input disabled v-model="scope.row.supplier_settlement_amount" type="number" @change="handleChangeAmount(scope.row.supplier_settlement_amount,scope1,'supplier_settlement_amount')" placeholder="请输入清单结算金额"></el-input>
|
|
65
66
|
<span class="red">结算金额为最终支付金额</span>
|
|
66
67
|
</div>
|
|
67
68
|
<div v-else>
|
|
68
69
|
<span class="red">{{scope.row.supplier_settlement_amount}}</span>元
|
|
69
70
|
</div>
|
|
70
71
|
</template>
|
|
72
|
+
<template slot="supplier_product_amount" slot-scope="scope">
|
|
73
|
+
<div v-if="scope.row.is_can_edit_amount===1">
|
|
74
|
+
<el-input v-model="scope.row.supplier_product_amount" type="number" @change="handleChangeAmount(scope.row.supplier_product_amount,scope1,'supplier_product_amount')" placeholder="请输入订单金额"></el-input>
|
|
75
|
+
<span class="red">结算金额为最终支付金额</span>
|
|
76
|
+
</div>
|
|
77
|
+
<div v-else>
|
|
78
|
+
<span class="red">{{scope.row.supplier_product_amount}}</span>元
|
|
79
|
+
</div>
|
|
80
|
+
</template>
|
|
81
|
+
<template slot="supplier_logistic_amount" slot-scope="scope">
|
|
82
|
+
<div v-if="scope.row.is_can_edit_amount===1">
|
|
83
|
+
<el-input v-model="scope.row.supplier_logistic_amount" type="number" @change="handleChangeAmount(scope.row.supplier_logistic_amount,scope1,'supplier_logistic_amount')" placeholder="请输入运费"></el-input>
|
|
84
|
+
<span class="red">结算金额为最终支付金额</span>
|
|
85
|
+
</div>
|
|
86
|
+
<div v-else>
|
|
87
|
+
<span class="red">{{scope.row.supplier_logistic_amount}}</span>元
|
|
88
|
+
</div>
|
|
89
|
+
</template>
|
|
71
90
|
</xd-table>
|
|
72
91
|
</template>
|
|
73
92
|
</xd-table>
|
|
@@ -181,6 +200,8 @@ export default {
|
|
|
181
200
|
{ "type": "price", "prop": "total_amount1", "align": "center", "label": "订单金额" },
|
|
182
201
|
{ "type": "normal", "prop": "supplier_name1", "align": "center", "label": "供应商" },
|
|
183
202
|
// #ifdef admin
|
|
203
|
+
{ "type": "normal", "prop": "supplier_product_amount1", "align": "center","width":170, "label": "订单金额" },
|
|
204
|
+
{ "type": "normal", "prop": "supplier_logistic_amount1", "align": "center","width":170, "label": "运费" },
|
|
184
205
|
{ "type": "normal", "prop": "supplier_settlement_amount1", "align": "center","width":170, "label": "供应商结算金额" },
|
|
185
206
|
// #endif
|
|
186
207
|
// #ifdef oa-finance
|
|
@@ -212,6 +233,8 @@ export default {
|
|
|
212
233
|
// #endif
|
|
213
234
|
{ "type": "normal", "prop": "supplier_name", "align": "center", "label": "供应商" },
|
|
214
235
|
// #ifdef admin
|
|
236
|
+
{ "type": "normal", "prop": "supplier_product_amount", "align": "center","width":170, "label": "订单金额" },
|
|
237
|
+
{ "type": "normal", "prop": "supplier_logistic_amount", "align": "center","width":170, "label": "运费" },
|
|
215
238
|
{ "type": "normal", "prop": "supplier_settlement_amount", "align": "center","width":170, "label": "供应商结算金额" },
|
|
216
239
|
// #endif
|
|
217
240
|
// #ifdef oa-finance
|
|
@@ -284,15 +307,20 @@ export default {
|
|
|
284
307
|
let product_num = 0;
|
|
285
308
|
this.tables.map(item=>{
|
|
286
309
|
item.supplier_settlement_amount = this.$xdHelper.divisionFloatNumber(item.supplier_settlement_amount,100)
|
|
310
|
+
item.supplier_logistic_amount = this.$xdHelper.divisionFloatNumber(item.supplier_logistic_amount,100)
|
|
311
|
+
item.supplier_product_amount = this.$xdHelper.divisionFloatNumber(item.supplier_product_amount,100)
|
|
287
312
|
product_num+=item.order_products.length
|
|
288
313
|
item.order_products.map(ls=>{
|
|
289
314
|
ls.supplier_name = item.supplier_name
|
|
290
315
|
ls.total_amount = item.total_amount
|
|
316
|
+
ls.supplier_logistic_amount = item.supplier_logistic_amount
|
|
317
|
+
ls.supplier_product_amount = item.supplier_product_amount
|
|
291
318
|
ls.sale_price = this.$xdHelper.divisionFloatNumber(ls.sale_price, 100)
|
|
292
319
|
ls.purchase_sub_order_id = item.purchase_sub_order_id
|
|
293
320
|
ls.supplier_settlement_amount = item.supplier_settlement_amount
|
|
294
321
|
ls.supplier_settlement_amount_finace = item.supplier_settlement_amount
|
|
295
322
|
ls.actual_settlement_amount = item.actual_settlement_amount
|
|
323
|
+
|
|
296
324
|
if(item.dist_amount){
|
|
297
325
|
ls.sub_dist_amount = item.dist_amount
|
|
298
326
|
}
|
|
@@ -414,7 +442,10 @@ export default {
|
|
|
414
442
|
let { row, column, rowIndex, columnIndex } = data
|
|
415
443
|
let mergeColumns = [];
|
|
416
444
|
//rowIndex,columnIndex的值是从0开始
|
|
417
|
-
// #ifdef admin
|
|
445
|
+
// #ifdef admin
|
|
446
|
+
mergeColumns = [5,6,7,8,9] //第4列需要合并行,并且合并到数组最大值,
|
|
447
|
+
// #endif
|
|
448
|
+
// #ifdef oa-finance
|
|
418
449
|
mergeColumns = [5,6,7] //第4列需要合并行,并且合并到数组最大值,
|
|
419
450
|
// #endif
|
|
420
451
|
// #ifdef partner-wholesale
|
|
@@ -451,9 +482,38 @@ export default {
|
|
|
451
482
|
this.$message.error('小数点后最多保留两位小数')
|
|
452
483
|
return
|
|
453
484
|
}
|
|
485
|
+
if(!reg.test(Number(copyData[i]['supplier_product_amount']))){
|
|
486
|
+
this.$message.error('小数点后最多保留两位小数')
|
|
487
|
+
return
|
|
488
|
+
}
|
|
489
|
+
if(!reg.test(Number(copyData[i]['supplier_logistic_amount']))){
|
|
490
|
+
this.$message.error('小数点后最多保留两位小数')
|
|
491
|
+
return
|
|
492
|
+
}
|
|
454
493
|
if(copyData[i]['supplier_settlement_amount']){
|
|
455
494
|
copyData[i]['amount'] = this.$xdHelper.multiplyFloatNumber(Number(copyData[i]['supplier_settlement_amount']),100)
|
|
495
|
+
copyData[i]['supplier_settlement_amount'] = this.$xdHelper.multiplyFloatNumber(Number(copyData[i]['supplier_settlement_amount']),100)
|
|
496
|
+
}
|
|
497
|
+
if(copyData[i]['supplier_product_amount']){
|
|
498
|
+
copyData[i]['supplier_product_amount'] = this.$xdHelper.multiplyFloatNumber(Number(copyData[i]['supplier_product_amount']),100)
|
|
499
|
+
}
|
|
500
|
+
if(copyData[i]['supplier_logistic_amount']){
|
|
501
|
+
copyData[i]['supplier_logistic_amount'] = this.$xdHelper.multiplyFloatNumber(Number(copyData[i]['supplier_logistic_amount']),100)
|
|
456
502
|
}
|
|
503
|
+
copyData[i]['order_products'].map(item=>{
|
|
504
|
+
if(item.supplier_product_amount){
|
|
505
|
+
item.supplier_product_amount= this.$xdHelper.multiplyFloatNumber(Number(item.supplier_product_amount),100)
|
|
506
|
+
}
|
|
507
|
+
if(item.supplier_settlement_amount){
|
|
508
|
+
item.supplier_settlement_amount= this.$xdHelper.multiplyFloatNumber(Number(item.supplier_settlement_amount),100)
|
|
509
|
+
}
|
|
510
|
+
if(item.supplier_settlement_amount_finace){
|
|
511
|
+
item.supplier_settlement_amount_finace= this.$xdHelper.multiplyFloatNumber(Number(item.supplier_settlement_amount_finace),100)
|
|
512
|
+
}
|
|
513
|
+
if(item.supplier_logistic_amount){
|
|
514
|
+
item.supplier_logistic_amount= this.$xdHelper.multiplyFloatNumber(Number(item.supplier_logistic_amount),100)
|
|
515
|
+
}
|
|
516
|
+
})
|
|
457
517
|
}
|
|
458
518
|
console.log(copyData,'ccc')
|
|
459
519
|
let data = {
|
|
@@ -472,8 +532,32 @@ export default {
|
|
|
472
532
|
})
|
|
473
533
|
},
|
|
474
534
|
//结算金额改变
|
|
475
|
-
handleChangeAmount(value,scope1){
|
|
476
|
-
|
|
535
|
+
handleChangeAmount(value,scope1,type){
|
|
536
|
+
// debugger
|
|
537
|
+
if(type==='supplier_settlement_amount'){
|
|
538
|
+
this.$set(this.tables[scope1['index']],type,value)
|
|
539
|
+
}else if(type==='supplier_product_amount'){
|
|
540
|
+
this.$set(this.tables[scope1['index']],type,value)
|
|
541
|
+
let num = 0;
|
|
542
|
+
num = Number(value) + Number(this.tables[scope1['index']]['supplier_logistic_amount'])
|
|
543
|
+
this.$set(this.tables[scope1['index']],'supplier_settlement_amount',num)
|
|
544
|
+
}else if(type==='supplier_logistic_amount'){
|
|
545
|
+
this.$set(this.tables[scope1['index']],type,value)
|
|
546
|
+
let num = 0;
|
|
547
|
+
num = Number(value) + Number(this.tables[scope1['index']]['supplier_product_amount'])
|
|
548
|
+
this.$set(this.tables[scope1['index']],'supplier_settlement_amount',num)
|
|
549
|
+
console.log(num,'nnn')
|
|
550
|
+
}
|
|
551
|
+
this.tables.map(item=>{
|
|
552
|
+
item.order_products.map(ls=>{
|
|
553
|
+
ls.supplier_product_amount = item.supplier_product_amount
|
|
554
|
+
ls.supplier_logistic_amount = item.supplier_logistic_amount
|
|
555
|
+
ls.supplier_settlement_amount = item.supplier_settlement_amount
|
|
556
|
+
ls.supplier_settlement_amount_finace = item.supplier_settlement_amount
|
|
557
|
+
})
|
|
558
|
+
})
|
|
559
|
+
this.tableRefresh = Date.now()
|
|
560
|
+
this.tableKey = Date.now()
|
|
477
561
|
console.log(this.tables,value,scope1,2222)
|
|
478
562
|
},
|
|
479
563
|
goBack () {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<span>清单预算:</span><span class="red">{{$xdHelper.divisionFloatNumber(baseData.purchase_plan_amount, 100)}}</span>
|
|
14
14
|
</div>
|
|
15
15
|
<div class="card-box_base_item">
|
|
16
|
-
<span
|
|
16
|
+
<span>商品金额:</span><span class="red">{{$xdHelper.divisionFloatNumber(baseData.total_amount, 100)}}</span>
|
|
17
17
|
<el-tooltip
|
|
18
18
|
popper-class="notice-popper"
|
|
19
19
|
placement="top"
|
|
@@ -27,6 +27,17 @@
|
|
|
27
27
|
<!-- #endif -->
|
|
28
28
|
<div class="card-box_base_item">
|
|
29
29
|
<span>用户实际结算金额:</span><span class="red">{{baseData.user_settlement_amount===-1?'--':$xdHelper.divisionFloatNumber(baseData.user_settlement_amount, 100)}}</span>
|
|
30
|
+
</div>
|
|
31
|
+
<!-- #ifdef admin -->
|
|
32
|
+
<div class="card-box_base_item">
|
|
33
|
+
<span>结算总金额:</span><span class="red">{{baseData.supplier_settlement_amount===-1?'--':$xdHelper.divisionFloatNumber(baseData.supplier_settlement_amount, 100)}}</span>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="card-box_base_item">
|
|
36
|
+
<span>订单金额:</span><span class="red">{{baseData.supplier_product_amount===-1?'--':$xdHelper.divisionFloatNumber(baseData.supplier_product_amount, 100)}}</span>
|
|
37
|
+
</div>
|
|
38
|
+
<!-- #endif -->
|
|
39
|
+
<div class="card-box_base_item">
|
|
40
|
+
<span>运费金额:</span><span class="red">{{baseData.supplier_logistic_amount===-1?'--':$xdHelper.divisionFloatNumber(baseData.supplier_logistic_amount, 100)}}</span>
|
|
30
41
|
</div>
|
|
31
42
|
<!-- #ifdef oa-finance -->
|
|
32
43
|
<div class="card-box_base_item">
|