Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
S
shop-new
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
王天霸
shop-new
Commits
97222c8e
提交
97222c8e
authored
5月 12, 2022
作者:
huaxinzhu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
3.1添加商品
上级
b49200a2
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
1108 行增加
和
448 行删除
+1108
-448
goods.js
src/api/module/goods.js
+9
-0
mockTest.js
src/api/module/mockTest.js
+9
-0
main.js
src/main.js
+4
-1
goodsaftersale.vue
src/views/system/goods/add/components/goodsaftersale.vue
+58
-81
goodsinfomation.vue
src/views/system/goods/add/components/goodsinfomation.vue
+368
-76
goodsparameter.vue
src/views/system/goods/add/components/goodsparameter.vue
+344
-95
goodsspecifications.vue
...views/system/goods/add/components/goodsspecifications.vue
+47
-22
index.vue
src/views/system/goods/add/index.vue
+269
-173
没有找到文件。
src/api/module/goods.js
浏览文件 @
97222c8e
...
...
@@ -147,3 +147,12 @@ export function getByCategoryData(query) {
params
:
query
})
}
// 综合列表-仓库-供应商-计量单位。。。
export
function
synthesisList
(
data
)
{
return
request
({
url
:
'/system/goodsNew/synthesisList'
,
method
:
'post'
,
data
:
data
})
}
src/api/module/mockTest.js
0 → 100644
浏览文件 @
97222c8e
import
request
from
'@/utils/request'
export
function
warehouseList
(
data
)
{
return
request
({
url
:
'/local/warehouse/list'
,
method
:
'post'
,
data
:
data
})
}
src/main.js
浏览文件 @
97222c8e
...
...
@@ -115,5 +115,8 @@ new Vue({
el
:
'#app'
,
router
,
store
,
render
:
h
=>
h
(
App
)
render
:
h
=>
h
(
App
),
beforeCreate
()
{
Vue
.
prototype
.
$bus
=
this
}
})
src/views/system/goods/add/components/goodsaftersale.vue
浏览文件 @
97222c8e
...
...
@@ -77,59 +77,58 @@
</el-card>
<el-card
class=
"box-card"
ref=
"outhervalue"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
其他设置
</span>
</div>
<!--
<el-card
class=
"box-card"
ref=
"outhervalue"
>
--
>
<!--
<div
slot=
"header"
class=
"clearfix"
>
--
>
<!--
<span>
其他设置
</span>
-->
<!--
</div>
-->
<el-form-item
label=
'商品关键词:'
prop=
"goods_des"
>
<el-input
v-model
.
trim=
"goodsAfterSaleForm.goods_des"
placeholder=
"请输入商品关键词"
style=
"width:420px;"
></el-input
>
<span
class=
"tip-span ml20"
>
关键词之间用
<strong>
英文逗号
</strong>
分开,最多可以添加5个
</span
>
</el-form-item
>
<!--<!–
<el-form-item
label=
'商品关键词:'
prop=
"goods_des"
>
–>
--
>
<!--<!–
<el-input
v-model
.
trim=
"goodsAfterSaleForm.goods_des"
placeholder=
"请输入商品关键词"
style=
"width:420px;"
></el-input>
–>
--
>
<!--<!–
<span
class=
"tip-span ml20"
>
关键词之间用
<strong>
英文逗号
</strong>
分开,最多可以添加5个
</span>
–>
--
>
<!--<!–
</el-form-item>
–>
--
>
<el-form-item
label=
"商品产地:"
prop=
"producing_area"
>
<el-select
v-model
.
trim=
"goodsAfterSaleForm.producing_area"
placeholder=
"请选择商品产地"
style=
"width: 420px;"
>
<el-option
v-for=
"item in areaOptions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option
>
</el-select
>
</el-form-item
>
<!--
<el-form-item
label=
"商品产地:"
prop=
"producing_area"
>
--
>
<!--
<el-select
v-model
.
trim=
"goodsAfterSaleForm.producing_area"
placeholder=
"请选择商品产地"
style=
"width: 420px;"
>
--
>
<!--
<el-option-->
<!-- v-for="item in areaOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- >
</el-option>
--
>
<!--
</el-select>
--
>
<!--
</el-form-item>
--
>
<el-form-item
label=
"商品发货地:"
prop=
"deliver_area"
>
<el-select
v-model
.
trim=
"goodsAfterSaleForm.deliver_area"
placeholder=
"请选择商品发货地"
style=
"width: 420px;"
>
<el-option
v-for=
"item in areaOptions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option
>
</el-select
>
</el-form-item
>
<!--
<el-form-item
label=
"商品发货地:"
prop=
"deliver_area"
>
--
>
<!--
<el-select
v-model
.
trim=
"goodsAfterSaleForm.deliver_area"
placeholder=
"请选择商品发货地"
style=
"width: 420px;"
>
--
>
<!--
<el-option-->
<!-- v-for="item in areaOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- >
</el-option>
--
>
<!--
</el-select>
--
>
<!--
</el-form-item>
--
>
<el-form-item
label=
'商品单位:'
prop=
"unit"
>
<el-input
v-model
.
trim=
"goodsAfterSaleForm.unit"
placeholder=
"请输入商品单位"
style=
"width:420px;"
></el-input
>
<!--
<span
class=
"tip-span ml20"
>
关键词之间用逗号分开,最多可以添加5个
</span>
-->
</el-form-item
>
<!--
<el-form-item
label=
'商品单位:'
prop=
"unit"
>
--
>
<!--
<el-input
v-model
.
trim=
"goodsAfterSaleForm.unit"
placeholder=
"请输入商品单位"
style=
"width:420px;"
></el-input>
--
>
<!-- <!–
<span
class=
"tip-span ml20"
>
关键词之间用逗号分开,最多可以添加5个
</span>
–>
-->
<!--
</el-form-item>
--
>
<el-form-item
label=
'市场参考价链接:'
prop=
"web_url"
>
<el-input
v-model
.
trim=
"goodsAfterSaleForm.web_url"
placeholder=
"请输入京东或者淘宝的商品链接"
style=
"width:420px;"
></el-input
>
</el-form-item
>
<el-form-item
label=
'商品编码:'
prop=
"out_goods_id"
>
<el-input
v-model
.
trim=
"goodsAfterSaleForm.out_goods_id"
placeholder=
"请输入商品编码(非必须)"
style=
"width:420px;"
></el-input
>
</el-form-item
>
<!--<!–
<el-form-item
label=
'市场参考价链接:'
prop=
"web_url"
>
–>
--
>
<!--<!–
<el-input
v-model
.
trim=
"goodsAfterSaleForm.web_url"
placeholder=
"请输入京东或者淘宝的商品链接"
style=
"width:420px;"
></el-input>
–>
--
>
<!--<!–
</el-form-item>
–>
--
>
<!--
<el-form-item
label=
'商品编码:'
prop=
"out_goods_id"
>
--
>
<!--
<el-input
v-model
.
trim=
"goodsAfterSaleForm.out_goods_id"
placeholder=
"请输入商品编码(非必须)"
style=
"width:420px;"
></el-input>
--
>
<!--
</el-form-item>
--
>
</el-card
>
<!--
</el-card>
--
>
</el-form>
</div>
</
template
>
<
script
>
import
{
GetFreight
}
from
'@/api/module/goods'
import
{
getAreaList
}
from
'@/api/module/retreat/address'
import
draggable
from
'vuedraggable'
export
default
{
name
:
"goodsaftersale"
,
...
...
@@ -175,28 +174,19 @@
freight_id
:
310
,
delay_compensate
:
24
,
aftersale_time
:
7
,
// 参数
params
:[
{
'title'
:
''
,
'value'
:
''
}
],
//参数
goods_des
:
''
,
//关键词
producing_area
:
''
,
//产地
deliver_area
:
''
,
//发货地
unit
:
''
,
//单位
web_url
:
''
,
//外部市场链接
out_goods_id
:
''
//商品编码
],
},
goodsAfterSaleRules
:
{
stags
:
[{
type
:
'array'
,
required
:
true
,
message
:
'请选择至少一个服务标签'
,
trigger
:
'change'
}],
freight_id
:
[{
required
:
true
,
message
:
'请选择邮费模板'
,
trigger
:
'change'
}],
delay_compensate
:
[{
required
:
true
,
message
:
'请选择发货时效'
,
trigger
:
'change'
}],
aftersale_time
:
[{
required
:
true
,
message
:
'请选择售后时长'
,
trigger
:
'change'
}],
producing_area
:[{
required
:
true
,
message
:
'请选择商品产地'
,
trigger
:
'change'
}],
deliver_area
:
[{
required
:
true
,
message
:
'请选择商品发货地'
,
trigger
:
'change'
}],
unit
:
[{
required
:
true
,
message
:
'商品单位不能为空'
,
trigger
:
'blur'
}],
goods_brand
:
[{
required
:
true
,
message
:
'请选择商品品牌'
,
trigger
:
'change'
}]
},
tagOptions
:
[
{
id
:
2
,
tag
:
"假一赔十"
},
...
...
@@ -211,30 +201,17 @@
components
:
{
draggable
},
mounted
()
{
this
.
getFreightData
();
debugger
console
.
log
(
'售后数据:'
,
this
.
goodsaftersale
);
//
debugger
//
console.log('售后数据:',this.goodsaftersale);
if
(
this
.
goodsaftersale
)
{
this
.
goodsAfterSaleForm
=
this
.
goodsaftersale
;
}
},
created
()
{
// 获取 省
this
.
getArea
();
//
this.getArea();
},
methods
:
{
// 获取 省
getArea
()
{
let
limboNode
=
{
pid
:
0
};
getAreaList
(
limboNode
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
)
{
this
.
areaOptions
=
res
.
data
;
}
else
{
this
.
areaOptions
=
[];
}
});
},
// 添加参数
addparameter
(){
let
obj
=
{
...
...
@@ -283,11 +260,11 @@
flag
=
true
}
else
{
flag
=
false
if
(
this
.
goodsAfterSaleForm
.
producing_area
==
''
||
this
.
goodsAfterSaleForm
.
deliver_area
==
''
||
this
.
goodsAfterSaleForm
.
unit
==
''
){
sessionStorage
.
setItem
(
'clickbtm'
,
1
)
}
else
{
sessionStorage
.
setItem
(
'clickbtm'
,
2
)
}
//
if(this.goodsAfterSaleForm.producing_area==''||this.goodsAfterSaleForm.deliver_area==''||this.goodsAfterSaleForm.unit==''){
//
sessionStorage.setItem('clickbtm',1)
//
}else{
//
sessionStorage.setItem('clickbtm',2)
//
}
}
})
return
flag
...
...
src/views/system/goods/add/components/goodsinfomation.vue
浏览文件 @
97222c8e
...
...
@@ -10,34 +10,10 @@
</el-form-item>
<el-form-item
label=
'商品标题:'
prop=
"goods_name"
>
<el-input
v-model
.
trim=
"goodsInfoForm.goods_name"
placeholder=
"请输入商品标题"
style=
"width:420px;"
></el-input>
<span
class=
"tip-span ml20"
>
商品名称限制在50字以内,不要填写与商品无关的词
</span>
<el-input
v-model
.
trim=
"goodsInfoForm.goods_name"
maxlength=
"300"
show-word-limit
placeholder=
"请输入商品标题"
style=
"width:420px;"
></el-input>
<span
class=
"tip-span ml20"
>
商品名称限制在300字以内,不要填写与商品无关的词
</span>
</el-form-item>
<!--
<el-form-item
label=
'商品关键词:'
prop=
"goods_des"
>
<el-input
v-model
.
trim=
"goodsInfoForm.goods_des"
placeholder=
"请输入商品关键词"
style=
"width:420px;"
></el-input>
<span
class=
"tip-span ml20"
>
关键词之间用
<strong>
英文逗号
</strong>
分开,最多可以添加5个
</span>
</el-form-item>
-->
<!--
<el-form-item
label=
"商品产地:"
prop=
"producing_area"
>
<el-select
v-model
.
trim=
"goodsInfoForm.producing_area"
placeholder=
"请选择商品产地"
style=
"width: 420px;"
>
<el-option
v-for=
"item in areaOptions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
-->
<!--
<el-form-item
label=
"商品发货地:"
prop=
"deliver_area"
>
<el-select
v-model
.
trim=
"goodsInfoForm.deliver_area"
placeholder=
"请选择商品发货地"
style=
"width: 420px;"
>
<el-option
v-for=
"item in areaOptions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
-->
<!--
<el-form-item
label=
'商品单位:'
prop=
"unit"
>
<el-input
v-model
.
trim=
"goodsInfoForm.unit"
placeholder=
"请输入商品单位"
style=
"width:420px;"
></el-input>
</el-form-item>
-->
...
...
@@ -45,15 +21,52 @@
<el-select
v-model
.
trim=
"goodsInfoForm.brand_id"
placeholder=
"请选择商品品牌"
style=
"width: 420px;"
>
<el-option
v-for=
"item in brandOptions"
:key=
"item.id"
:label=
"item.brand_cn"
:value=
"item.id"
></el-option>
</el-select>
<el-link
class=
"edit-type-span el-icon-plus"
type=
"primary"
:underline=
"false"
@
click=
"toBrand"
>
新增品牌
</el-link>
<el-link
class=
"edit-type-span el-icon-plus"
type=
"primary"
:underline=
"false"
@
click=
"toPage('brand')"
>
新增品牌
</el-link>
</el-form-item>
<el-form-item
label=
"计量单位:"
prop=
"metering_unit"
>
<el-select
v-model
.
trim=
"goodsInfoForm.metering_unit"
placeholder=
"请选择商品计量单位"
style=
"width: 420px;"
>
<el-option
v-for=
"item in unitList"
:key=
"item.id"
:label=
"item.title"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"包装单位:"
prop=
"packaging_unit"
>
<el-select
v-model
.
trim=
"goodsInfoForm.packaging_unit"
placeholder=
"请选择商品包装单位"
style=
"width: 420px;"
>
<el-option
v-for=
"item in packageList"
:key=
"item.id"
:label=
"item.title"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"换算关系:"
prop=
"conversion_unit"
>
<el-input
v-model
.
trim=
"goodsInfoForm.conversion_unit"
placeholder=
"请输入换算关系都数量值"
style=
"width:420px;"
></el-input>
<span
class=
"tip-span ml20"
>
1包装单位=n计量单位,如:1箱=10个,请填写数字10
</span>
</el-form-item>
<el-form-item
label=
"商品产地:"
prop=
"producing_area_id"
>
<el-cascader
ref=
"producing_area"
v-model
.
trim=
"goodsInfoForm.producing_area_id"
:props=
"areaProps"
placeholder=
"请选择"
style=
"width:420px;"
size=
"mini"
@
change=
"matchIdName('producing_area')"
>
</el-cascader>
</el-form-item>
<el-form-item
label=
"商品发货地:"
prop=
"deliver_area_id"
>
<el-cascader
ref=
"deliver_area"
v-model
.
trim=
"goodsInfoForm.deliver_area_id"
:props=
"areaProps"
placeholder=
"请选择"
style=
"width:420px;"
size=
"mini"
@
change=
"matchIdName('deliver_area')"
>
</el-cascader>
</el-form-item>
<!--
<el-form-item
label=
'市场参考价链接:'
prop=
"web_url"
>
<el-input
v-model
.
trim=
"goodsInfoForm.web_url"
placeholder=
"请输入京东或者淘宝的商品链接"
style=
"width:420px;"
></el-input>
</el-form-item>
-->
<!--
<el-form-item
label=
'商品编码:'
prop=
"out_goods_id"
>
<el-input
v-model
.
trim=
"goodsInfoForm.out_goods_id"
placeholder=
"请输入商品编码(非必须)"
style=
"width:420px;"
></el-input>
</el-form-item>
-->
<div
style=
"display: flex;justify-content: flex-start;flex-direction: row;"
>
<el-form-item
label=
'税收分类:'
prop=
"ssfl"
>
<el-input
v-model
.
trim=
"goodsInfoForm.ssfl"
:disabled=
"true"
placeholder=
"请输入税收分类"
style=
"width:160px;"
></el-input>
</el-form-item>
<el-form-item
label=
'税率:'
prop=
"tax_rate"
label-width=
"100px"
>
<el-select
v-model
.
trim=
"goodsInfoForm.tax_rate"
placeholder=
"请选择商品税率"
style=
"width: 160px;"
>
<el-option
v-for=
"item in taxRateOptions"
:key=
"item.id"
:label=
"item.value"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</div>
<el-form-item
label=
"商品图片:"
prop=
"imgs"
>
<span
class=
"tip-span"
style=
"display: block;line-height: 34px;"
>
<i
style=
"margin: 10px;"
>
{{
goodsImgFileList
.
length
}}
/ 7
</i>
...
...
@@ -90,11 +103,49 @@
</el-dialog>
</el-form-item>
<!-- 更多设置 -->
<p
class=
"more-settings-p"
@
click=
"switchMoreSetting"
>
<span>
{{
!
isMoreSetting
?
"展开"
:
"收起"
}}
</span>
更多设置
<i
v-show=
"!isMoreSetting"
class=
"el-icon-arrow-down"
></i>
<i
v-show=
"isMoreSetting"
class=
"el-icon-arrow-up"
></i>
</p>
<transition
name=
"fade"
>
<div
v-show=
"isMoreSetting"
>
<el-form-item
label=
'市场参考价链接:'
>
<el-input
v-model
.
trim=
"goodsInfoForm.web_url"
placeholder=
"请输入京东或者淘宝的商品链接"
style=
"width:420px;"
></el-input>
</el-form-item>
<el-form-item
label=
"商品分组:"
>
<el-select
v-model
.
trim=
"goodsInfoForm.group"
placeholder=
"请选择商品分组"
style=
"width: 420px;"
>
<el-option
v-for=
"item in goodsGroupList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
<el-link
class=
"edit-type-span el-icon-plus"
type=
"primary"
:underline=
"false"
@
click=
"toPage('group')"
>
新增分组
</el-link>
</el-form-item>
<el-form-item
label=
"所属供应商:"
>
<el-select
v-model
.
trim=
"goodsInfoForm.supplier"
placeholder=
"请选择供应商"
style=
"width: 420px;"
>
<el-option
v-for=
"item in supplierList"
:key=
"item.id"
:label=
"item.title"
:value=
"item.id"
></el-option>
</el-select>
<el-link
class=
"edit-type-span el-icon-plus"
type=
"primary"
:underline=
"false"
@
click=
"toPage('supplier')"
>
新增供应商
</el-link>
</el-form-item>
<el-form-item
label=
"所属仓库:"
>
<el-select
v-model
.
trim=
"goodsInfoForm.storehouse"
v-el-select-loadmore=
"loadMoreTheme"
class=
"w-600"
placeholder=
"请选择仓库"
style=
"width: 420px;"
>
<el-option
v-for=
"item in warehouseList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
<el-link
class=
"edit-type-span el-icon-plus"
type=
"primary"
:underline=
"false"
@
click=
"toPage('warehouse')"
>
新增仓库
</el-link>
</el-form-item>
<el-form-item
label=
'商品标签:'
prop=
"goods_des"
>
<el-input
v-model
.
trim=
"goodsInfoForm.goods_des"
placeholder=
"请输入商品标签"
style=
"width:420px;"
></el-input>
<span
class=
"tip-span ml20"
>
关键词之间用
<strong>
英文逗号
</strong>
分开,最多可以添加5个
</span>
</el-form-item>
<el-form-item
label=
'商品视频:'
>
<span
class=
"tip-span"
style=
"display: block;line-height: 34px;"
>
最多上传一个视频(mp4格式),视频时长不超过30秒,
<span
style=
"margin-left: 20px;"
>
视频大小不超过10M,默认视频在图片前面
</span>
<span
style=
"margin-left: 20px;"
>
视频大小不超过10
0
M,默认视频在图片前面
</span>
</span>
<video
v-if=
"vediosrc"
style=
"width:300px;height:150px;float:left;margin:0 10px 0 0;"
v-bind:src=
"vediosrc"
...
...
@@ -110,6 +161,8 @@
<!-- v-if="videoform.showvideopath !='' && !videoflag" -->
</el-upload>
</el-form-item>
</div>
</transition>
</el-form>
<!-- 修改 商品分类目录 -->
...
...
@@ -127,9 +180,10 @@
</
template
>
<
script
>
import
{
NewGetCategory
,
NewGetCategoryData
,
GetFreight
,
UploadImg
,
getByCategoryData
,
uploadVideo
}
from
'@/api/module/goods'
import
{
NewGetCategory
Data
,
UploadImg
,
getByCategoryData
,
uploadVideo
,
synthesisList
}
from
'@/api/module/goods'
import
{
getBrandsInf
}
from
'@/api/module/brand/brand'
import
{
getAreaList
}
from
'@/api/module/retreat/address'
import
{
warehouseList
}
from
'@/api/module/mockTest'
// 仓库列表
import
draggable
from
'vuedraggable'
export
default
{
name
:
'goods'
,
...
...
@@ -153,6 +207,27 @@
};
}
},
directives
:
{
'el-select-loadmore'
:
{
bind
(
el
,
binding
)
{
// 获取element-ui定义好的scroll盒子
const
SELECTWRAP_DOM
=
el
.
querySelector
(
'.el-select-dropdown .el-select-dropdown__wrap'
);
SELECTWRAP_DOM
.
addEventListener
(
'scroll'
,
function
()
{
/**
* scrollHeight 获取元素内容高度(只读)
* scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.
* clientHeight 读取元素的可见高度(只读)
* 如果元素滚动到底, 下面等式返回true, 没有则返回false:
* ele.scrollHeight - ele.scrollTop === ele.clientHeight;
*/
const
condition
=
this
.
scrollHeight
-
this
.
scrollTop
<=
this
.
clientHeight
;
if
(
condition
)
{
binding
.
value
();
}
});
}
}
},
data
()
{
let
categoryIdCheck
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
goodsImgFileList
.
length
<
1
)
{
...
...
@@ -194,6 +269,9 @@
showvideopath
:
''
},
goodsvedioFileList
:
[],
taxRateOptions
:
[
{
id
:
0
,
value
:
'0'
}
],
// 税率
vediosrc
:
''
,
loadingapp
:
false
,
drag
:
false
,
...
...
@@ -204,29 +282,41 @@
goods_id
:
0
,
categoryStr
:
''
,
// 商品分类 地址拼接
categoryList
:
[],
// 商品分类 id集合的数组
goods_des
:
''
,
//
关键词
goods_des
:
''
,
//
商品标签
goods_name
:
''
,
// 商品标题
category_id
:
''
,
producing_area
:
''
,
// 产地
deliver_area
:
''
,
// 发货地
unit
:
''
,
// 单位
producing_area_id
:
''
,
// 产地id
producing_area
:
''
,
// 产地name
deliver_area_id
:
''
,
// 发货地id
deliver_area
:
''
,
// 发货地name
goods_brand
:
''
,
// 品牌
brand_id
:
''
,
// 品牌id
metering_unit
:
''
,
// 计量单位
packaging_unit
:
''
,
// 包装单位
conversion_unit
:
''
,
// 换算关系
ssfl
:
''
,
// 税收分类
tax_rate
:
0
,
// 税率
web_url
:
''
,
// 外部链接
group
:
''
,
// 商品分组
supplier
:
''
,
// 供应商
storehouse
:
''
,
// 仓库
out_goods_id
:
''
,
// 商品编码
imgs
:
[],
// 商品图片
video
:
''
},
isMoreSetting
:
false
,
// true-展开状态;false-收起状态
goodsInfoRules
:
{
categoryStr
:
[{
required
:
true
,
message
:
'商品分类不能为空'
,
trigger
:
'blur'
}],
goods_name
:
[
{
required
:
true
,
message
:
'请输入商品名称'
,
trigger
:
'blur'
},
{
min
:
3
,
max
:
50
,
message
:
'商品标题限制在3字符以上,50个字符以下'
,
trigger
:
'blur'
}
],
brand_id
:
[{
required
:
true
,
message
:
'请选择商品品牌'
,
trigger
:
'change'
}],
ssfl
:
[{
required
:
true
,
message
:
'请选择商品税收分类'
,
trigger
:
'change'
}],
// goods_des: [{required: true, validator: goodsDecCheck, trigger: 'blur'}],
// producing_area
:[{required: true, message: '请选择商品产地', trigger: 'change'}],
deliver_area
:
[{
required
:
true
,
message
:
'请选择商品发货地'
,
trigger
:
'change'
}],
unit
:
[{
required
:
true
,
message
:
'商品单位不能为空'
,
trigger
:
'blur'
}],
producing_area_id
:[{
required
:
true
,
message
:
'请选择商品产地'
,
trigger
:
'change'
}],
deliver_area
_id
:
[{
required
:
true
,
message
:
'请选择商品发货地'
,
trigger
:
'change'
}],
metering_
unit
:
[{
required
:
true
,
message
:
'商品单位不能为空'
,
trigger
:
'blur'
}],
goods_brand
:
[{
required
:
true
,
message
:
'请选择商品品牌'
,
trigger
:
'change'
}],
imgs
:
[{
required
:
true
,
message
:
'请上传商品图片'
,
validator
:
categoryIdCheck
}]
},
...
...
@@ -249,6 +339,27 @@
},
fuckoptions
:
[],
catefee
:
0
,
areaProps
:
{
checkStrictly
:
true
,
expandTrigger
:
'click'
,
emitPath
:
true
,
lazy
:
true
,
lazyLoad
:
this
.
areaLazyLoad
,
value
:
"id"
,
label
:
"name"
,
leaf
:
"leaf"
},
unitList
:
[],
// 计量单位
packageList
:
[],
// 包装单位
goodsGroupList
:
[],
//分组
supplierList
:
[],
// 供应商
warehouseList
:
[],
// 仓库
pageDataTheme
:
{
page
:
1
,
limit
:
20
,
// status: 1, // 已起用的
},
warehouseCount
:
0
,
// 仓库总数量
}
// return end
},
watch
:
{
...
...
@@ -262,8 +373,8 @@
created
()
{
// 获取 商品品牌
this
.
getBrands
();
//
获取类目
// this.getSSQArea
();
//
综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据
this
.
getSynthesisList
();
},
mounted
()
{
if
(
this
.
goodsinfodata
.
goods_id
)
{
...
...
@@ -279,13 +390,93 @@
}
else
{
this
.
goodsInfoForm
.
categoryStr
=
this
.
goodsinfodata
.
categoryStr
;
this
.
goodsInfoForm
.
categoryList
=
this
.
goodsinfodata
.
categoryList
;
let
categoryNameList
=
this
.
goodsinfodata
.
categoryStr
.
split
(
"/"
);
if
(
categoryNameList
.
length
===
3
)
{
this
.
goodsInfoForm
.
ssfl
=
categoryNameList
[
2
]
}
}
// 初始化 服务费率
this
.
getByCategoryFee
(
this
.
goodsInfoForm
.
categoryList
)
this
.
SSQGoodsList
=
this
.
goodsInfoForm
.
categoryList
this
.
getalllist
(
this
.
SSQGoodsList
)
this
.
getalllist
(
this
.
SSQGoodsList
)
},
methods
:
{
// 更多设置 初始化 数据
resetMoreSetting
()
{
let
resetPartData
=
{
web_url
:
''
,
group
:
''
,
supplier
:
''
,
storehouse
:
''
,
goods_des
:
''
,
video
:
''
};
this
.
delvideo
()
Object
.
assign
(
this
.
goodsInfoForm
,
resetPartData
)
},
// 产地
areaLazyLoad
(
node
,
resolve
)
{
this
.
getArea
(
node
,
resolve
);
},
// 商品产地
getArea
(
node
,
resolve
)
{
const
level
=
node
.
level
let
date
=
{}
if
(
level
===
0
)
{
date
=
{
pid
:
0
}
}
else
{
date
=
{
pid
:
node
.
value
}
}
getAreaList
(
date
).
then
(
res
=>
{
let
result
=
{}
result
=
res
.
data
if
(
level
===
0
)
{
result
.
forEach
(
item
=>
{
item
.
value
=
item
.
id
;
item
.
label
=
item
.
name
item
.
children
=
[]
item
.
leaf
=
0
})
}
if
(
level
===
1
)
{
result
.
forEach
(
item
=>
{
item
.
value
=
item
.
id
;
item
.
label
=
item
.
name
item
.
children
=
[]
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item
.
leaf
=
0
})
}
if
(
level
===
2
)
{
result
.
forEach
(
item
=>
{
item
.
value
=
item
.
id
;
item
.
label
=
item
.
name
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item
.
leaf
=
1
})
}
resolve
(
result
)
})
},
// 产地查处id对应的中文地址
matchIdName
(
typeName
)
{
let
areaLabelList
=
this
.
$refs
[
typeName
].
getCheckedNodes
()[
0
].
pathLabels
;
let
areaLastName
=
0
;
if
(
areaLabelList
.
length
>
0
)
{
areaLastName
=
areaLabelList
.
length
-
1
// 产地
if
(
typeName
===
"producing_area"
)
{
this
.
goodsInfoForm
.
producing_area
=
areaLabelList
[
areaLastName
]
}
// 发货地
if
(
typeName
===
"deliver_area"
)
{
this
.
goodsInfoForm
.
deliver_area
=
areaLabelList
[
areaLastName
]
}
}
},
handchange
()
{
//图片拖动结束
this
.
goodsInfoForm
.
imgs
=
[]
this
.
goodsImgFileList
.
forEach
(
item
=>
{
...
...
@@ -299,7 +490,7 @@
// 上传 视频 之前
beforeUpGoodsvedio
(
file
)
{
// debugger
let
isImgSize
=
(
file
.
size
/
1024
/
1024
)
>
10
;
let
isImgSize
=
(
file
.
size
/
1024
/
1024
)
>
10
0
;
if
(
file
.
type
!==
"video/mp4"
)
{
this
.
$message
({
...
...
@@ -311,7 +502,7 @@
if
(
isImgSize
)
{
this
.
$message
({
message
:
'上传视频大小不能超过10MB'
,
message
:
'上传视频大小不能超过10
0
MB'
,
type
:
"warning"
});
return
false
;
...
...
@@ -380,13 +571,68 @@
status
:
1
}
getBrandsInf
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
data
)
{
this
.
brandOptions
=
res
.
data
.
data
?
res
.
data
.
data
:
[];
}
else
{
this
.
brandOptions
=
[];
}
});
},
// 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据
getSynthesisList
()
{
synthesisList
().
then
(
res
=>
{
// 数据兼容
if
(
res
.
code
===
1
&&
res
.
data
)
{
// 包装单位
if
(
Array
.
isArray
(
res
.
data
.
goods_pack_list
))
{
this
.
packageList
=
res
.
data
.
goods_pack_list
}
// 计量单位
if
(
Array
.
isArray
(
res
.
data
.
goods_unit_list
))
{
this
.
unitList
=
res
.
data
.
goods_unit_list
}
// 商品分组
if
(
res
.
data
.
group_list
&&
Array
.
isArray
(
res
.
data
.
group_list
.
list
))
{
this
.
goodsGroupList
=
res
.
data
.
group_list
.
list
}
// 供应商
if
(
Array
.
isArray
(
res
.
data
.
operator_list
))
{
this
.
supplierList
=
res
.
data
.
operator_list
}
// 仓库
if
(
res
.
data
.
warehouse_list
&&
Array
.
isArray
(
res
.
data
.
warehouse_list
.
list
))
{
this
.
warehouseList
=
res
.
data
.
warehouse_list
.
list
// 默认一次数据最多20条,如果这个接口,返回仓库数据小于20条,说明仓库已经没有数据了,不用再进行滚动懒加载;否则仓库总数量,
// 可能多于20条,需要进行滚动懒加载
if
(
this
.
warehouseList
.
length
===
20
)
{
this
.
loadMoreTheme
()
}
}
}
else
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
message
?
res
.
message
:
""
});
}
});
},
// 仓库 滚动加载
loadMoreTheme
()
{
if
(
this
.
warehouseList
.
length
<
this
.
warehouseCount
)
{
this
.
pageDataTheme
.
page
++
;
this
.
getWarehouseList
();
}
},
// 仓库列表
getWarehouseList
()
{
warehouseList
(
this
.
pageDataTheme
).
then
(
res
=>
{
if
(
res
.
data
)
{
if
(
Array
.
isArray
(
res
.
data
.
list
)
&&
res
.
data
.
list
.
length
>
0
)
{
this
.
warehouseList
=
this
.
warehouseList
.
concat
(
res
.
data
.
list
);
this
.
warehouseCount
=
res
.
data
.
count
;
}
}
});
},
/* 修改 商品分类 类目 */
editType
()
{
// this.SSQGoodsList = [];
...
...
@@ -491,6 +737,7 @@
let
ssqLabelList
=
this
.
$refs
[
'ssqGoodsCascader'
].
getCheckedNodes
()[
0
].
pathLabels
;
this
.
goodsInfoForm
.
categoryList
=
this
.
SSQGoodsList
;
this
.
goodsInfoForm
.
categoryStr
=
ssqLabelList
[
0
]
+
'/'
+
ssqLabelList
[
1
]
+
'/'
+
ssqLabelList
[
2
];
this
.
goodsInfoForm
.
ssfl
=
ssqLabelList
[
2
];
this
.
editGoodsTypeDialog
=
false
;
this
.
$message
({
type
:
'success'
,
message
:
'修改成功'
});
// 修改类目后更新 服务费率
...
...
@@ -505,6 +752,10 @@
this
.
SSQGoodsList
=
[];
},
// 更多设置
switchMoreSetting
()
{
this
.
isMoreSetting
=
!
this
.
isMoreSetting
},
// 上传 商品图片,限制 7 张
limitImg5
()
{
...
...
@@ -609,9 +860,26 @@
}
},
// 维护品牌
toBrand
()
{
// 跳转到对应页面
toPage
(
name
)
{
switch
(
name
)
{
case
'brand'
:
{
this
.
$router
.
push
({
path
:
'/system/shop/brand'
});
break
;
}
case
'group'
:
{
this
.
$router
.
push
({
path
:
'/system/setup/commodityGroup'
});
break
;
}
case
'supplier'
:
{
this
.
$router
.
push
({
path
:
'/system/supplier'
});
break
;
}
case
'warehouse'
:
{
this
.
$router
.
push
({
path
:
'/system/warehouse'
});
break
;
}
}
},
/** 根据类目 获取服务费率
...
...
@@ -676,6 +944,22 @@
margin
:
0
20px
;
}
/*更多设置*/
.more-settings-p
{
display
:
inline-block
;
margin
:
20px
0
;
padding
:
0
0
0
66px
;
font-size
:
14px
;
font-weight
:
400
;
cursor
:
pointer
;
color
:
#1890ff
;
}
.more-settings-p
:hover
{
display
:
inline-block
;
color
:
#647dff
;
}
/* 一般提示性文字 */
.tip-span
{
color
:
#909399
;
...
...
@@ -715,4 +999,12 @@
.opendow
/
deep
/
.el-dialog
{
width
:
800px
;
}
.fade-enter-active
,
.fade-leave-active
{
transition
:
opacity
.5s
;
}
.fade-enter
,
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity
:
0
;
}
</
style
>
src/views/system/goods/add/components/goodsparameter.vue
浏览文件 @
97222c8e
<
template
>
<div
class=
"goods-parameter
"
>
<div
v-
show=
"isradioguide==
1"
>
<div
:class=
"['goods-parameter']
"
>
<div
v-
if=
"parameterdata.isradioguide ===
1"
>
<!--
<p
style=
"margin: 10px 0;color: #333;font-size: 14px;font-weight: 400;"
>
默认
</p>
-->
<el-table
border
size=
"small"
:data=
"singleSpecTable"
style=
"width:
8
0%;margin-right:10%;"
style=
"width:
10
0%;margin-right:10%;"
>
<el-table-column
align=
"center"
prop=
"
js_price"
label=
"协议价"
>
<el-table-column
align=
"center"
prop=
"
sc_price"
label=
"市场划线价"
>
<template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
js_price"
placeholder=
"请输入协议价"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
sc_price"
placeholder=
"请输入市场价"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"
sl_price"
label=
"结算
价"
>
<el-table-column
align=
"center"
prop=
"
price"
label=
"销售指导
价"
>
<
template
slot-scope=
"scope"
>
<
span>
{{
settleSLPriceFormatter
(
scope
.
row
.
js_price
)
}}
</span
>
<
el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.price"
placeholder=
"请输入指导价"
></el-input
>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"
price"
label=
"指导价"
>
<el-table-column
align=
"center"
prop=
"
js_price"
label=
"供货结算价"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
price"
placeholder=
"请输入指导价"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
js_price"
placeholder=
"请输入协议价"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"sc_price"
label=
"市场价"
>
<el-table-column
align=
"center"
label=
"成本核算价"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
sc_price"
placeholder=
"请输入市场价"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
prime_cost"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"stock"
label=
"库存量"
>
<el-table-column
align=
"center"
prop=
"stock"
label=
"库存"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.stock"
placeholder=
"请输入库存量"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"weight"
label=
"重量"
>
<el-table-column
align=
"center"
prop=
""
label=
"库存预警"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.stock_warning"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"weight"
label=
"重量(g)"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.weight"
placeholder=
"请输入重量"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"体积(m³)"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.volume"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"编码"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.goods_code"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"条形码"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
number=
"scope.row.bar_code"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<!-- <el-table-column align="center" prop="imgs9" label="图片">-->
<!-- <template slot-scope="scope">-->
<!-- <!–----------–>-->
...
...
@@ -57,16 +80,44 @@
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<div
class=
"tiered-pricing-con"
>
<el-checkbox
v-model=
"parameterdata.is_ladder"
>
启用阶梯定价
</el-checkbox>
<el-table
v-show=
"parameterdata.is_ladder"
border
size=
"small"
:data=
"parameterdata.ladder"
style=
"width: 80%;margin-right:10%;"
class=
"single-tiered-pricing-table"
>
<el-table-column
align=
"center"
prop=
""
label=
"规格"
>
<
template
slot-scope=
"scope"
>
<span>
默认
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
""
label=
"起订量"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
number=
"scope.row.quantity"
placeholder=
"起订量"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
""
label=
"价格"
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
number=
"scope.row.money"
placeholder=
"价格"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
""
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"delTieredPrice(scope.$index)"
v-if=
"parameterdata.ladder.length > 1"
size=
"mini"
type=
"text"
class=
"custom-button-danger"
>
删除
</el-button>
<el-divider
v-if=
"parameterdata.ladder.length > 1"
direction=
"vertical"
></el-divider>
<el-button
@
click=
"addTieredPrice"
size=
"mini"
type=
"text"
>
添加阶梯
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
v-if=
"parameterdata.specs&¶meterdata.specs.length > 0&&isradioguide==2"
class=
"single-spe-con"
>
<!-- {{parameterdata.specs_group}} -->
<div
v-if=
"parameterdata.specs&¶meterdata.specs.length > 0 && parameterdata.isradioguide === 2"
class=
"single-spe-con"
>
<el-table
border
size=
"small"
:data=
"parameterdata.specs_group"
:span-method=
"objectSpanMethod1"
style=
"width:
8
0%"
style=
"width:
10
0%"
:key=
"keyvalue"
>
<el-table-column
...
...
@@ -80,60 +131,90 @@
<!-- <template slot-scope="scope">
</template> -->
</el-table-column>
<el-table-column
align=
"center"
prop=
"
js_price"
label=
"协议
价"
>
<el-table-column
align=
"center"
prop=
"
sc_price"
label=
"市场划线
价"
>
<
template
slot=
"header"
>
<span>
协议
价
</span>
<el-tooltip
placemetn=
"top"
>
<span>
市场划线
价
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置价格
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('
js
_price')"
></span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('
sc
_price')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
js_price"
placeholder=
"请输入协议价
"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
sc_price"
placeholder=
"请输入
"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"sl_price"
label=
"结算价"
>
<el-table-column
align=
"center"
prop=
"price"
label=
"销售指导价"
>
<
template
slot=
"header"
>
<span>
销售指导价
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置价格
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('price')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<
span
class=
"sl-price-span-input"
>
{{
settleSLPriceFormatter
(
scope
.
row
.
js_price
)
}}
</span
>
<
el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.price"
placeholder=
"请输入"
></el-input
>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"price"
label=
"指导价"
>
<el-table-column
align=
"center"
prop=
"js_price"
label=
"供货结算价"
>
<
template
slot=
"header"
>
<span>
指导
价
</span>
<el-tooltip
placemetn=
"top"
>
<span>
供货结算
价
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置价格
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('price')"
></span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('
js_
price')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
price"
placeholder=
"请输入指导价
"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
js_price"
placeholder=
"请输入
"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"sc_price"
label=
"市场价"
>
<el-table-column
align=
"center"
prop=
"prime_cost"
label=
"成本核算价"
>
<
template
slot=
"header"
>
<span>
市场
价
</span>
<el-tooltip
placemetn=
"top"
>
<span>
成本核算
价
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置价格
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('
sc_price
')"
></span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('
prime_cost
')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
sc_price"
placeholder=
"请输入市场价
"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.
prime_cost"
placeholder=
"请输入
"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"stock"
label=
"库存量"
>
<!-- <el-table-column align="center" prop="sl_price" label="结算价">-->
<!-- <template slot-scope="scope">-->
<!-- <span class="sl-price-span-input">{{ settleSLPriceFormatter(scope.row.js_price) }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
align=
"center"
prop=
"stock"
label=
"库存"
>
<
template
slot=
"header"
>
<span>
库存
量
</span>
<span>
库存
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置数量
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('stock')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.stock"
placeholder=
"请输入库存量"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.stock"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"stock_warning"
label=
"库存预警"
>
<
template
slot=
"header"
>
<span>
库存预警
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置数量
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('stock_warning')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.stock_warning"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"weight"
label=
"重量"
>
<el-table-column
align=
"center"
prop=
"weight"
label=
"重量
(g)
"
>
<
template
slot=
"header"
>
<span>
重量
</span>
<el-tooltip
placemetn=
"top"
>
...
...
@@ -142,9 +223,49 @@
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.weight"
placeholder=
"请输入重量"
></el-input>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.weight"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"volume"
label=
"体积(m³)"
>
<
template
slot=
"header"
>
<span>
体积
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('volume')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.volume"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"goods_code"
label=
"编码"
>
<
template
slot=
"header"
>
<span>
编码
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('goods_code')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.goods_code"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"bar_code"
label=
"条形码"
>
<
template
slot=
"header"
>
<span>
条形码
</span>
<el-tooltip
placemetn=
"top"
>
<span
slot=
"content"
>
点击可批量设置
</span>
<span
class=
"spe-ali-icon0435 iconfont icon-iconset0435"
@
click=
"applyAllTable('bar_code')"
></span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
style=
"width:90%"
v-model
.
trim=
"scope.row.bar_code"
placeholder=
"请输入"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"thumb"
label=
"图片"
>
<
template
slot-scope=
"scope"
>
<span
...
...
@@ -164,8 +285,76 @@
</
template
>
</el-table-column>
</el-table>
<input
type=
"file"
style=
"display: none;"
ref=
"guideupimg"
accept=
"image/*"
@
change=
"changeIMG()"
>
<input
type=
"file"
style=
"display: none;"
ref=
"guideupimg"
accept=
"image/*"
@
change=
"changeIMG()"
>
</div>
<!-- 多规格,阶梯定价 -->
<div
v-if=
"parameterdata.is_ladder_spec && parameterdata.specs&¶meterdata.specs.length > 0 && parameterdata.isradioguide === 2"
>
<el-table
border
size=
"small"
:data=
"parameterdata.specs_group"
:span-method=
"objectSpanMethod1"
style=
"width: 100%"
:key=
"keyvalue"
>
<el-table-column
header-align=
"center"
align=
"center"
v-for=
"(item, index) in parameterdata.specs"
:key=
"index"
:prop=
"item.spec_name"
:label=
"item.spec_name"
>
<!-- <template slot-scope="scope">
</template> -->
</el-table-column>
<el-table-column
align=
"center"
label=
"起批量"
>
<!-- <template slot="header">-->
<!-- <span>起批量</span>-->
<!-- <el-tooltip placemetn="top">-->
<!-- <span slot="content">点击可批量设置</span>-->
<!-- <span class="spe-ali-icon0435 iconfont icon-iconset0435"></span>-->
<!-- </el-tooltip>-->
<!-- </template>-->
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
v-for=
"(iten,inde) in scope.row.ladder"
:key=
"inde"
style=
"width:90%"
v-model=
"scope.row.ladder[inde].quantity"
placeholder=
"请输入"
@
input=
"upChange"
class=
"custom-el-input-con"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"价格"
>
<!-- <template slot="header">-->
<!-- <span>价格</span>-->
<!-- <el-tooltip placemetn="top">-->
<!-- <span slot="content">点击可批量设置</span>-->
<!-- <span class="spe-ali-icon0435 iconfont icon-iconset0435"></span>-->
<!-- </el-tooltip>-->
<!-- </template>-->
<
template
slot-scope=
"scope"
>
<el-input
size=
"mini"
v-for=
"(iten,inde) in scope.row.ladder"
:key=
"inde"
style=
"width:90%"
v-model=
"scope.row.ladder[inde].money"
placeholder=
"请输入"
@
input=
"upChange"
class=
"custom-el-input-con"
></el-input>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
prop=
""
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<div
class=
"options-price-con"
>
<div>
<div
v-for=
"(iten,inde) in scope.row.ladder"
>
<el-button
@
click=
"delTieredPrice1(scope.$index,inde)"
v-if=
"scope.row.ladder.length > 1"
size=
"mini"
type=
"text"
class=
"custom-button-danger"
>
删除
</el-button>
<el-divider
v-if=
"scope.row.ladder.length > 1"
direction=
"vertical"
></el-divider>
</div>
</div>
<div>
<el-button
@
click=
"addTieredPrice1(scope.$index)"
size=
"mini"
type=
"text"
>
添加阶梯
</el-button>
</div>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</template>
...
...
@@ -178,11 +367,13 @@ export default {
parameterdata
:
{
type
:
Object
,
required
:
true
}
}
,
},
data
()
{
return
{
isradioguide
:
''
,
// isCustomPriceSingle: false, // 单规格-阶梯定价
// isCustomPriceSpec: false, // 多规格-阶梯定价
fuckVal
:
0
,
upimgindex
:
''
,
keyvalue
:
1
,
spacArr
:[],
...
...
@@ -192,12 +383,16 @@ export default {
/** 无规格 数据 */
singleSpecTable
:
[
{
js_price
:
''
,
// 协议
价
sl_price
:
''
,
// 结算
价
price
:
''
,
// 指导
价
sc_price
:
''
,
// 市场
价
sc_price
:
''
,
// 市场划线
价
price
:
''
,
// 销售指导
价
js_price
:
''
,
// 供货结算
价
prime_cost
:
''
,
// 成本核算
价
stock
:
''
,
// 库存
stock_warning
:
''
,
// 库存预警
weight
:
''
,
// 重量 g
volume
:
''
,
// 体积
goods_code
:
''
,
// 编码
bar_code
:
''
,
// 条码
}
],
singleSpecImgList
:
[],
...
...
@@ -219,35 +414,60 @@ export default {
}
// return end
},
watch
:{
'parameterdata'
:
function
(
val
)
{
this
.
orgGoodsPam
=
val
;
if
(
val
.
pamNameList
){
this
.
spacArr
=
val
.
pamNameList
}
},
},
created
()
{
this
.
cateFee
=
this
.
$store
.
state
.
user
.
cateFee
;
},
mounted
()
{
this
.
isradioguide
=
this
.
parameterdata
.
isradioguide
?
this
.
parameterdata
.
isradioguide
:
1
console
.
log
(
this
.
parameterdata
)
this
.
getSpanArr
(
this
.
parameterdata
);
this
.
keyvalue
++
if
(
this
.
parameterdata
.
singleSpecTable
&&
this
.
parameterdata
.
singleSpecTable
.
length
===
1
)
{
// debugger
if
(
this
.
parameterdata
.
singleSpecTable
&&
this
.
parameterdata
.
singleSpecTable
.
length
===
1
)
{
this
.
singleSpecTable
=
this
.
parameterdata
.
singleSpecTable
}
// console.log(439,this.parameterdata)
// 接受 多规格是否启用阶梯定价
this
.
$bus
.
$on
(
"customPriceSpec"
,(
data
)
=>
{
this
.
parameterdata
.
is_ladder_spec
=
data
this
.
keyvalue
++
})
},
beforeDestroy
()
{
this
.
$bus
.
$off
(
'customPriceSpec'
)
},
methods
:
{
parentMsg
(
val
)
{
console
.
log
(
val
,
'guangbo'
)
this
.
isradioguide
=
val
upChange
()
{
this
.
keyvalue
++
// this.$forceUpdate()
},
/** 初始化 商品售价 数据 */
initInfo
()
{
this
.
orgGoodsPam
=
{};
//this.singleSpecTable =
},
addTieredPrice1
(
index
){
let
priceItem
=
{
quantity
:
1
,
money
:
0
}
// this.parameterdata.specs_group[index].ladder.push(priceItem)
this
.
$set
(
this
.
parameterdata
.
specs_group
[
index
].
ladder
,
this
.
parameterdata
.
specs_group
[
index
].
ladder
.
length
,
priceItem
);
this
.
keyvalue
++
},
delTieredPrice1
(
index
,
inde
)
{
this
.
parameterdata
.
specs_group
[
index
].
ladder
.
splice
(
inde
,
1
)
this
.
keyvalue
++
},
// 添加阶梯
addTieredPrice
()
{
let
ladderItem
=
{
quantity
:
1
,
money
:
0
}
this
.
parameterdata
.
ladder
.
push
(
ladderItem
)
},
// 删除阶梯
delTieredPrice
(
index
)
{
this
.
parameterdata
.
ladder
.
splice
(
index
,
1
);
},
// ------ 无规格,上传图片相关 ------
limit5
()
{
this
.
$message
({
type
:
'warning'
,
message
:
'只能上传5张图片'
});
...
...
@@ -330,46 +550,28 @@ export default {
* 当多规格数据时候,才调用
* */
priceReduce
()
{
// debugger
if
(
this
.
parameterdata
.
pamTableList
&&
this
.
parameterdata
.
pamTableList
.
length
>
0
)
{
this
.
parameterdata
.
pamTableList
.
forEach
((
item
)
=>
{
if
(
item
[
0
].
js
_price
)
{
item
[
0
].
js_price
=
item
[
0
].
js
_price
/
100
;
if
(
item
[
0
].
sc
_price
)
{
item
[
0
].
sc_price
=
item
[
0
].
sc
_price
/
100
;
}
if
(
item
[
0
].
price
)
{
item
[
0
].
price
=
item
[
0
].
price
/
100
;
}
if
(
item
[
0
].
sc_price
)
{
item
[
0
].
sc_price
=
item
[
0
].
sc_price
/
100
;
if
(
item
[
0
].
js_price
)
{
item
[
0
].
js_price
=
item
[
0
].
js_price
/
100
;
}
if
(
item
[
0
].
sl_price
)
{
item
[
0
].
sl_price
=
item
[
0
].
sl_price
/
100
;
if
(
item
[
0
].
price_cost
)
{
item
[
0
].
price_cost
=
item
[
0
].
price_cost
/
100
;
}
})
}
// else {
// if(this.singleSpecTable[0].js_price) {
// this.singleSpecTable[0].js_price = this.singleSpecTable[0].js_price / 100
// }
// if(this.singleSpecTable[0].price) {
// this.singleSpecTable[0].price = this.singleSpecTable[0].price / 100
// }
// if(this.singleSpecTable[0].sc_price) {
// this.singleSpecTable[0].sc_price = this.singleSpecTable[0].sc_price / 100
// }
// if(this.singleSpecTable[0].sl_price) {
// this.singleSpecTable[0].sl_price = this.singleSpecTable[0].sl_price / 100
// }
// }
},
/** 一键应用所有 */
applyAllTable
(
key
)
{
// js_price: '', // 协议价
// sl_price: '', // 结算价
// price: '', // 指导价
// sc_price: '', // 市场价
// stock: '', // 库存
// weight: '', // 重量 g
let
text
=
''
let
pacee
=
''
if
(
key
==
'js_price'
){
...
...
@@ -509,6 +711,22 @@ export default {
}
}
},
// 表格合并 列单元格
// arraySpanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex > 2 && columnIndex != 6 && columnIndex != 7) { // 用于设置要合并开始的列号
// if (rowIndex === 0) { // 用于设置合并开始的行号
// return {
// rowspan: 100, // 合并的行数
// colspan: 1 // 合并的列数,设为0则直接不显示
// }
// } else {
// return {
// rowspan: 0,
// colspan: 0
// }
// }
// }
// },
// 合并行数
objectSpanMethod1
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
this
.
parameterdata
.
specs_group
&&
this
.
parameterdata
.
specs_group
.
length
>
0
)
{
...
...
@@ -628,7 +846,11 @@ p {
}
.goods-parameter
{
padding
:
20px
;
}
.goods-parameter-spe
{
padding-top
:
0
;
margin-top
:
-20px
;
}
.edit-type-span
{
...
...
@@ -695,4 +917,31 @@ p {
height
:
50px
;
}
}
.tiered-pricing-con
{
margin
:
20px
0
0
;
}
.single-tiered-pricing-table
{
margin
:
20px
0
0
;
}
.custom-button-danger
{
color
:
#F56C6C
;
}
.custom-button-danger
:hover
{
color
:
#ff4949
;
}
.custom-el-input-con
{
margin
:
3px
0
;
}
.options-price-con
{
display
:
flex
;
justify-content
:
center
;
flex-direction
:
row
;
align-items
:
center
;
}
</
style
>
src/views/system/goods/add/components/goodsspecifications.vue
浏览文件 @
97222c8e
...
...
@@ -46,8 +46,10 @@
<el-button
type=
"danger"
plain
icon=
"el-icon-delete"
size=
"mini"
@
click=
"deleteSpe(index)"
>
删除该规格
</el-button>
</div>
</div>
<div>
<el-checkbox
v-model=
"isCustomPriceSpec"
class=
"custom-price-check"
@
change=
"switchCustomPriceSpec"
>
启用阶梯定价
</el-checkbox>
<el-button
@
click=
"addSpe"
class=
"el-icon-plus"
size=
"mini"
>
添加规格
</el-button>
</div>
<!-- 添加 规格名称 -->
<el-dialog
...
...
@@ -88,6 +90,7 @@ export default {
},
data
()
{
return
{
isCustomPriceSpec
:
false
,
// 是否启用 阶梯定价
tableData7
:{},
speData
:
[],
// 商品规格总数据
specsGroup
:
{
...
...
@@ -113,7 +116,7 @@ export default {
/** 先获取 本地存储的localStorage **/
this
.
getLocalSpecNameOption
();
// 先判断是新增还是修改
//
console.log(123
,this.specificationsdata)
//
console.log(44444
,this.specificationsdata)
if
(
this
.
specificationsdata
.
length
===
0
)
{
this
.
$set
(
this
.
specsGroup
.
spec_value
,
this
.
specsGroup
.
spec_value
.
length
,
this
.
speParamName
);
this
.
speData
=
[];
...
...
@@ -132,6 +135,12 @@ export default {
// }
},
methods
:
{
switchCustomPriceSpec
()
{
this
.
$bus
.
$emit
(
"customPriceSpec"
,
this
.
isCustomPriceSpec
)
if
(
!
this
.
isCustomPriceSpec
)
{
console
.
log
(
151
,
this
.
specificationsdata
)
}
},
/** 初始化 商品规格数据 */
initInfo
()
{
// debugger
...
...
@@ -346,7 +355,7 @@ export default {
if
(
proSpeData
.
length
===
0
)
{
let
goodsPam
=
{
specs
:[],
isradioguide
:
1
isradioguide
:
2
};
this
.
$emit
(
'calcSpeTable'
,
goodsPam
);
}
else
{
...
...
@@ -358,43 +367,55 @@ export default {
}
// goodsParametersList newList
let
goodsParametersList
=
this
.
cartesian
(
proSpeData
);
debugger
//
debugger
for
(
let
index
=
0
;
index
<
goodsParametersList
.
length
;
index
++
)
{
var
listobj
=
{};
listobj
[
"js_price"
]
=
""
;
listobj
[
"sl_price"
]
=
""
;
listobj
[
"price"
]
=
""
;
listobj
[
"sc_price"
]
=
""
;
listobj
[
"price"
]
=
""
;
listobj
[
"js_price"
]
=
""
;
listobj
[
"prime_cost"
]
=
""
;
listobj
[
"stock"
]
=
""
;
listobj
[
"stock_warning"
]
=
""
;
listobj
[
"weight"
]
=
""
;
listobj
[
"volume"
]
=
""
;
listobj
[
"goods_code"
]
=
""
;
listobj
[
"bar_code"
]
=
""
;
listobj
[
"thumb"
]
=
""
;
listobj
[
"spec_values"
]
=
goodsParametersList
[
index
]
for
(
let
i
=
0
;
i
<
this
.
speData
.
length
;
i
++
)
{
debugger
if
(
this
.
speData
.
length
>
1
){
listobj
[
this
.
speData
[
i
].
spec_name
]
=
goodsParametersList
[
index
][
i
];
}
if
(
this
.
speData
.
length
==
1
){
debugger
listobj
[
this
.
speData
[
0
].
spec_name
]
=
goodsParametersList
[
index
];
}
}
specs_group
.
push
(
listobj
);
}
// goodsParametersList.forEach((item,index)=> {
// goodsPam.pamTableList.push(prePamTable)
// });
this
.
tableData7
[
'specs_group'
]
=
specs_group
this
.
tableData7
[
'specs'
]
=
this
.
speData
this
.
tableData7
[
'shopTypes'
]
=
this
.
cartesian
(
proSpeData
)
this
.
tableData7
[
'isradioguide'
]
=
2
if
(
this
.
isCustomPriceSpec
)
{
this
.
tableData7
.
specs_group
.
forEach
((
item
,
index
)
=>
{
item
[
'ladder'
]
=
[]
let
obj
=
{
quantity
:
1
,
money
:
0
}
item
[
'ladder'
].
push
(
obj
)
})
}
this
.
$emit
(
'calcSpeTable'
,
this
.
tableData7
);
console
.
log
(
this
.
tableData7
)
// this.switchCustomPriceSpec()
// if (this.tableData7.is_ladder_spec !== undefined) {
// this.tableData7.is_ladder_spec = this.isCustomPriceSpec
// }
console
.
log
(
399
,
this
.
tableData7
)
}
},
...
...
@@ -551,4 +572,8 @@ export default {
justify-content
:
center
;
align-items
:
center
;
}
.custom-price-check
{
margin
:
0
20px
0
0
;
}
</
style
>
src/views/system/goods/add/index.vue
浏览文件 @
97222c8e
...
...
@@ -40,15 +40,14 @@
<el-radio
:label=
"1"
>
单规格
</el-radio>
<el-radio
:label=
"2"
>
多规格
</el-radio>
</el-radio-group>
<el-link
class=
"edit-type-span el-icon-search"
type=
"primary"
:underline=
"false"
@
click=
"viewPriceExp"
>
查看各类价格说明
<el-link
class=
"edit-type-span el-icon-search"
type=
"primary"
:underline=
"false"
@
click=
"viewPriceExp"
>
查看各类价格说明
</el-link>
<span
class=
"tip-span"
>
所有商品价格均为含税价,必须开具发票
</span>
</p>
<GoodsSpecifications
v-show=
"radioguide==2"
ref=
"goodsspecifications"
:specificationsdata=
"specificationsdata"
@
calcSpeTable=
"calcSpeTable"
/>
<!--
<keep-alive>
-->
<GoodsParameter
:key=
"keyvalue"
ref=
"goodsparameter"
:parameterdata=
"parameterdata"
@
/>
<GoodsParameter
:key=
"keyvalue"
ref=
"goodsparameter"
:parameterdata=
"parameterdata"
/>
<!--
</keep-alive>
-->
</div>
</div>
...
...
@@ -88,27 +87,25 @@
>
<el-form
ref=
"workOrderForm"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"协议价:"
>
<span>
指您供货给下游的价格
</span>
</el-form-item>
<el-form-item
label=
"结算价:"
>
<span>
与云仓平台结算的价格,根据协议价自动计算
</span>
<el-form-item
label=
"市场划线价:"
>
<span>
市场原价
</span>
</el-form-item>
<el-form-item
label=
"
指导售
价:"
>
<span>
指导下游商户制定销售的价格
</span>
<el-form-item
label=
"
销售指导
价:"
>
<span>
供货场景下,定义为指导售价;销售场景下,定义为您的销售价
</span>
</el-form-item>
<el-form-item
label=
"
市场
价:"
>
<span>
市场售价,参考京东、天猫等平台的售
价
</span>
<el-form-item
label=
"
供货结算
价:"
>
<span>
本商品铺货到第三方平台的供货结算
价
</span>
</el-form-item>
<el-form-item>
<span
class=
"pre-price-tip"
>
商品价格均为含税价,必须开具发票。请准确填写并更新商品实际库存,超卖导致的虚假及延迟发货会引起用户投诉与平台判罚。
</span>
<el-form-item
label=
"成本核算价:"
>
<span
>
指本商品采购进货的成本价,仅自己可见
</span>
</el-form-item>
<!--
<el-form-item>
-->
<!--
<span
class=
"pre-price-tip"
>
商品价格均为含税价,必须开具发票。请准确填写并更新商品实际库存,超卖导致的虚假及延迟发货会引起用户投诉与平台判罚。
</span>
-->
<!--
</el-form-item>
-->
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"isViewPriceExp = false"
size=
"mini"
>
取 消
</el-button>
...
...
@@ -127,12 +124,6 @@
export
default
{
name
:
'Index'
,
// props: {
// option: {
// type: Number,
// required: true
// }
// },
components
:
{
Goodsinfomation
,
GoodsSpecifications
,
...
...
@@ -165,8 +156,7 @@
{
id
:
2
,
name
:
'商品规格'
},
{
id
:
3
,
name
:
'商品详情'
},
{
id
:
4
,
name
:
'商品参数'
},
{
id
:
5
,
name
:
'售后及服务'
},
{
id
:
6
,
name
:
'其他设置'
}
{
id
:
5
,
name
:
'售后及服务'
}
],
/* 商品信息 */
goodsinfodata
:
{
...
...
@@ -178,13 +168,14 @@
specificationsdata
:
[],
/* 商品售价 */
parameterdata
:
{
isradioguide
:
this
.
radioguide
,
singleSpecTable
:
[]
isradioguide
:
1
,
is_ladder
:
false
,
// 单规格,是否开启,阶梯定价
is_ladder_spec
:
false
,
// 多规格,是否开启,阶梯定价
singleSpecTable
:
[],
ladder
:
[
{
quantity
:
1
,
money
:
0
}
// 默认一个,处理方便一些
]
},
/* 商品详情 */
// imgdata: {
// description: ''
// },
description
:
''
,
/* 售后及服务 */
goodsaftersale
:
{
...
...
@@ -197,25 +188,18 @@
stags
:
[],
freight_id
:
310
,
delay_compensate
:
24
,
aftersale_time
:
7
,
goods_des
:
''
,
//关键词
producing_area
:
''
,
//产地
deliver_area
:
''
,
//发货地
unit
:
''
,
//单位
web_url
:
''
,
//外部市场链接
out_goods_id
:
''
//商品编码
aftersale_time
:
7
},
goodsAllData
:
{
submit
:
0
,
},
// 商品所有数据
TIMER
:
null
,
hehe
:
0
,
option
:
0
}
// return end
},
created
()
{
// option 商品的id
// option 商品的id
//debugger
this
.
option
=
Number
(
this
.
$route
.
query
.
goods_id
)
if
(
this
.
option
&&
this
.
option
!==
0
)
{
...
...
@@ -228,18 +212,26 @@
goods_id
:
res
.
data
.
goods_id
,
categoryStr
:
''
,
// 商品分类 地址拼接
categoryList
:
[],
// 商品分类 id集合的数组
// goods_des: res.data.goods_des, // 关键词
goods_des
:
res
.
data
.
goods_des
,
// 商品标签
goods_name
:
res
.
data
.
goods_name
,
// 商品标题
category_id
:
res
.
data
.
category_id
,
// producing_area: res.data.producing_area, // 产地
// deliver_area: res.data.deliver_area, // 发货地
// unit: res.data.unit, // 单位
metering_unit
:
res
.
data
.
metering_unit
,
// 计量单位
packaging_unit
:
res
.
data
.
packaging_unit
,
// 包装单位
conversion_unit
:
res
.
data
.
conversion_unit
,
// 换算关系
producing_area_id
:
""
,
// 产地的idlist
producing_area
:
res
.
data
.
producing_area
,
// 产地中文名称
deliver_area_id
:
""
,
// 发货地的idlist
deliver_area
:
res
.
data
.
deliver_area
,
// 发货地中文名称
tax_rate
:
res
.
data
.
tax_rate
,
// 税率
goods_brand
:
res
.
data
.
goods_brand
,
// 品牌
brand_id
:
res
.
data
.
brand_id
,
// 品牌
// web_url: res.data.web_url, // 外部链接
// out_goods_id: (res.data.out_goods_id == 0) ? '' : res.data.out_goods_id , // 商品编码
web_url
:
res
.
data
.
web_url
,
// 市场参考价链接
group
:
res
.
data
.
group
,
// 商品分组
supplier
:
res
.
data
.
supplier
,
// 供应商
storehouse
:
res
.
data
.
storehouse
,
// 仓库
imgs
:
res
.
data
.
imgs
,
// 商品图片
video
:
res
.
data
.
video
video
:
res
.
data
.
video
,
ssfl
:
(
res
.
data
.
category_three_id
&&
res
.
data
.
category_three_name
)
?
res
.
data
.
category_three_name
:
""
}
this
.
goodsinfodata
.
categoryStr
=
res
.
data
.
category_first_name
+
'/'
+
res
.
data
.
category_first_name
+
'/'
+
res
.
data
.
category_three_name
;
...
...
@@ -249,26 +241,51 @@
arr
[
2
]
=
res
.
data
.
category_three_id
;
this
.
goodsinfodata
.
categoryList
=
arr
;
// 产地
let
producing_area_list
=
res
.
data
.
producing_area_list
if
(
Array
.
isArray
(
producing_area_list
)
&&
producing_area_list
.
length
>
0
)
{
this
.
goodsinfodata
.
producing_area_id
=
producing_area_list
.
map
((
item
)
=>
{
return
item
.
id
});
}
// 发货地
let
deliver_area_list
=
res
.
data
.
deliver_area_list
if
(
Array
.
isArray
(
deliver_area_list
)
&&
deliver_area_list
.
length
>
0
)
{
this
.
goodsinfodata
.
deliver_area_id
=
deliver_area_list
.
map
((
item
)
=>
{
return
item
.
id
});
}
// 是否启用阶梯定价
// 商品规格, 售价由规格决定
if
(
res
.
data
.
specs
&&
res
.
data
.
specs
.
length
>
0
)
{
this
.
specificationsdata
=
res
.
data
.
specs
;
this
.
radioguide
=
2
this
.
parameterdata
.
isradioguide
=
2
this
.
parameterdata
.
is_ladder
=
false
this
.
parameterdata
.
is_ladder_spec
=
res
.
data
.
is_ladder
==
1
?
true
:
false
;
// this.$bus.$emit("FUCK",this.parameterdata.is_ladder_spec)
}
else
{
this
.
parameterdata
[
'specs'
]
=
[]
this
.
radioguide
=
1
this
.
parameterdata
.
isradioguide
=
1
this
.
parameterdata
.
is_ladder
=
res
.
data
.
is_ladder
==
1
?
true
:
false
;
this
.
parameterdata
.
is_ladder_spec
=
false
;
}
// debugger
// 商品售价
// 多规格
if
(
res
.
data
.
specs_group
&&
res
.
data
.
specs_group
.
length
>
0
)
{
//this.parameterdata
let
specs_group
=
res
.
data
.
specs_group
res
.
data
.
specs_group
.
forEach
((
item
)
=>
{
item
.
js_price
=
item
.
js_price
/
100
;
item
.
sl_price
=
item
.
js_price
/
100
;
item
.
price
=
item
.
price
/
100
;
item
.
sc_price
=
item
.
sc_price
/
100
;
item
.
price
=
item
.
price
/
100
;
item
.
js_price
=
item
.
js_price
/
100
;
item
.
prime_cost
=
item
.
prime_cost
/
100
;
})
let
goodsParametersList
=
this
.
cartesian
(
this
.
processData
(
res
.
data
.
specs
));
...
...
@@ -276,7 +293,6 @@
for
(
let
i
=
0
;
i
<
res
.
data
.
specs
.
length
;
i
++
)
{
if
(
res
.
data
.
specs
.
length
>
1
){
specs_group
[
index
][
res
.
data
.
specs
[
i
].
spec_name
]
=
goodsParametersList
[
index
][
i
];
}
if
(
res
.
data
.
specs
.
length
==
1
){
specs_group
[
index
][
res
.
data
.
specs
[
0
].
spec_name
]
=
goodsParametersList
[
index
];
...
...
@@ -289,23 +305,40 @@
this
.
parameterdata
[
'shopTypes'
]
=
goodsParametersList
}
else
{
// 单规格
this
.
parameterdata
.
pamTableList
=
[];
let
singleSpecObj
=
{
js_price
:
''
,
sl_price
:
''
,
price
:
''
,
sc_price
:
''
,
stock
:
''
,
weight
:
''
,
sc_price
:
''
,
// 市场划线价
price
:
''
,
// 销售指导价
js_price
:
''
,
// 供货结算价
prime_cost
:
''
,
// 成本核算价
stock
:
''
,
// 库存
stock_warning
:
''
,
// 库存预警
weight
:
''
,
// 重量 g
volume
:
''
,
// 体积
goods_code
:
''
,
// 编码
bar_code
:
''
,
// 条码
}
this
.
parameterdata
.
singleSpecTable
=
[];
singleSpecObj
.
js_price
=
res
.
data
.
js_price
/
100
;
singleSpecObj
.
sl_price
=
res
.
data
.
js_price
/
100
;
singleSpecObj
.
price
=
res
.
data
.
price
/
100
;
singleSpecObj
.
sc_price
=
res
.
data
.
sc_price
/
100
;
singleSpecObj
.
price
=
res
.
data
.
price
/
100
;
singleSpecObj
.
js_price
=
res
.
data
.
js_price
/
100
;
singleSpecObj
.
prime_cost
=
res
.
data
.
prime_cost
/
100
;
singleSpecObj
.
stock
=
res
.
data
.
stock
;
singleSpecObj
.
stock_warning
=
res
.
data
.
stock_warning
;
singleSpecObj
.
weight
=
res
.
data
.
weight
;
singleSpecObj
.
volume
=
res
.
data
.
volume
;
singleSpecObj
.
goods_code
=
res
.
data
.
goods_code
;
singleSpecObj
.
bar_code
=
res
.
data
.
bar_code
;
this
.
parameterdata
.
singleSpecTable
.
push
(
singleSpecObj
);
// 价格阶梯
if
(
res
.
data
.
ladder
.
length
>
0
)
{
this
.
parameterdata
.
ladder
=
res
.
data
.
ladder
.
map
((
item
)
=>
{
item
.
money
=
item
.
money
/
100
return
item
});
}
}
// 商品详情
...
...
@@ -313,11 +346,6 @@
// 商品参数 售后服务 其他设置
this
.
goodsaftersale
.
params
=
res
.
data
.
params
?
res
.
data
.
params
:[{
'title'
:
''
,
'value'
:
''
}]
//参数
this
.
goodsaftersale
.
goods_des
=
res
.
data
.
goods_des
//关键词
this
.
goodsaftersale
.
producing_area
=
res
.
data
.
producing_area
// 产地
this
.
goodsaftersale
.
deliver_area
=
res
.
data
.
deliver_area
// 发货地
this
.
goodsaftersale
.
unit
=
res
.
data
.
unit
// 单位
this
.
goodsaftersale
.
web_url
=
res
.
data
.
web_url
// 外部链接
this
.
goodsaftersale
.
out_goods_id
=
(
res
.
data
.
out_goods_id
==
0
)
?
''
:
res
.
data
.
out_goods_id
//商品编码
this
.
goodsaftersale
.
freight_id
=
res
.
data
.
freight_id
;
this
.
goodsaftersale
.
delay_compensate
=
res
.
data
.
delay_compensate
;
...
...
@@ -348,7 +376,7 @@
}
}
});
console
.
log
(
this
.
goodsaftersale
)
// console.log("售后数据:",
this.goodsaftersale)
}
else
{
this
.
isShowGoodsDetails
=
false
;
}
...
...
@@ -357,8 +385,8 @@
},
methods
:
{
radiochange
(
val
){
this
.
parameterdata
.
isradioguide
=
val
this
.
$refs
.
goodsparameter
.
parentMsg
(
val
)
this
.
parameterdata
.
isradioguide
=
this
.
radioguide
this
.
keyvalue
++
},
// 查看各类价格说明
viewPriceExp
()
{
...
...
@@ -368,8 +396,6 @@
calcSpeTable
(
data
)
{
this
.
keyvalue
++
this
.
parameterdata
=
data
;
// debugger
},
// 只有点击完最后一级,才会有值
SSQChange
()
{
...
...
@@ -462,70 +488,147 @@
// 保存/提交
save
()
{
// 此处变量 有顺序 校验时,电梯至某处
// 商品信息 是否填写完整
let
isGoodsInfoMsg
=
this
.
$refs
[
'goodsInfo'
].
validateGoodsInfoForm
();
debugger
// 商品规格 无需校验
let
spggRef
=
this
.
$refs
.
goodsspecifications
;
let
spggData
=
spggRef
.
speData
;
spggRef
.
upDateDom
();
// return;
// 商品售价,通过获取的数据,分别进行判断
// 商品售价,通过获取的数据,分别进行判断,
// 1-单规格和多规格【规格组合】数据进行处理;
// 2-单规格和多规格【阶梯定价】数据进行处理
let
isGoodsPrice
=
true
;
let
goodsPriceMsg
=
''
;
let
spsjData1
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
$refs
.
goodsparameter
.
singleSpecTable
));
let
spsjData2
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
$refs
.
goodsparameter
.
parameterdata
));
// 如果有,则说明有规格组合数据
let
goodsparameterData
=
this
.
$refs
.
goodsparameter
;
// 后续可以将spsjData1和spsjData2进行优化掉
// 阶梯定价-控制参数
this
.
goodsAllData
[
'is_ladder'
]
=
spsjData2
.
is_ladder
?
1
:
0
;
if
(
this
.
radioguide
===
1
)
{
this
.
goodsAllData
.
is_ladder
=
spsjData2
.
is_ladder
?
1
:
0
;
}
if
(
this
.
radioguide
===
2
)
{
this
.
goodsAllData
.
is_ladder
=
spsjData2
.
is_ladder_spec
?
1
:
0
;
}
this
.
goodsAllData
[
'ladder'
]
=
[]
// 阶梯定价数据
let
ladder
=
[]
// 多规格【规格组合】数据 -- start --//
if
(
this
.
radioguide
==
2
&&
spsjData2
.
specs_group
&&
spsjData2
.
specs_group
.
length
>
0
)
{
// debugger
for
(
let
i
=
0
;
i
<
spsjData2
.
specs_group
.
length
;
i
++
)
{
let
itemObj
=
spsjData2
.
specs_group
[
i
][
0
];
for
(
let
itemKey
in
itemObj
)
{
// 有多余字段,可能为空,需要对有效字段单独判断
// Number后,有三中情况:0,正数,负数,NaN
if
(
!
Number
(
itemObj
[
'
js_price'
])
||
Number
(
itemObj
[
'js
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
协议价不能为空,并且只能填大于0的数值
'
if
(
!
Number
(
itemObj
[
'
sc_price'
])
||
Number
(
itemObj
[
'sc
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
市场划线价不能为空,并且只能填大于0的数字
'
isGoodsPrice
=
false
;
break
}
else
if
(
!
Number
(
itemObj
[
'price'
])
||
Number
(
itemObj
[
'price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
指导价不能为空,并且只能填大于0的数值
'
goodsPriceMsg
=
'[ 商品售价 ]中,
销售指导价不能为空,并且只能填大于0的数字
'
isGoodsPrice
=
false
;
break
}
else
if
(
!
Number
(
itemObj
[
'
sc_price'
])
||
Number
(
itemObj
[
'sc
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
市场价不能为空,并且只能填大于0的数值
'
}
else
if
(
!
Number
(
itemObj
[
'
js_price'
])
||
Number
(
itemObj
[
'js
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
供货结算价不能为空,并且只能填大于0的数字
'
isGoodsPrice
=
false
;
break
}
else
if
(
!
Number
(
itemObj
[
'stock'
])
||
Number
(
itemObj
[
'stock'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,库存量不能为空,并且只能填大于0的整数'
isGoodsPrice
=
false
;
break
}
else
if
(
!
Number
(
itemObj
[
'weight'
])
||
Number
(
itemObj
[
'weight'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,商品重量不能为空,并且只能填大于0的数字'
isGoodsPrice
=
false
;
break
}
else
{
goodsPriceMsg
=
''
;
isGoodsPrice
=
true
;
}
// 多规格【阶梯定价】数据 -- start --//
if
(
this
.
goodsAllData
.
is_ladder
)
{
for
(
let
la
=
0
;
la
<
spsjData2
.
specs_group
[
i
][
ladder
].
length
;
la
++
)
{
let
ladderItem
=
spsjData2
.
specs_group
[
i
][
ladder
][
la
]
for
(
let
laKey
in
ladderItem
)
{
if
(
!
Number
(
ladderItem
[
'quantity'
])
||
Number
(
ladderItem
[
'quantity'
])
<
0
)
{
goodsPriceMsg
=
'[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的整数'
isGoodsPrice
=
false
;
break
;
}
else
if
(
!
Number
(
ladderItem
[
'money'
])
||
Number
(
ladderItem
[
'money'
])
<
0
)
{
goodsPriceMsg
=
'[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的数字'
isGoodsPrice
=
false
;
break
;
}
else
{
goodsPriceMsg
=
''
isGoodsPrice
=
true
;
}
}
}
}
else
{
spsjData2
.
specs_group
[
i
][
ladder
]
=
[]
}
// 多规格【阶梯定价】数据 -- end --//
}
if
(
!
isGoodsPrice
)
{
break
}
}
// 多规格【规格组合】数据 -- end --//
}
else
{
//
无规格组合数据
//
单规格组合数据【规格组合】数据 -- start --//
let
slingleSpeObj
=
spsjData1
[
0
];
if
(
!
Number
(
slingleSpeObj
[
'
js_price'
])
||
Number
(
slingleSpeObj
[
'js
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
协议价不能为空,并且只能填大于0的数值
'
if
(
!
Number
(
slingleSpeObj
[
'
sc_price'
])
||
Number
(
slingleSpeObj
[
'sc
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
市场划线价不能为空,并且只能填大于0的数字
'
isGoodsPrice
=
false
;
}
else
if
(
!
Number
(
slingleSpeObj
[
'price'
])
||
Number
(
slingleSpeObj
[
'price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
指导价不能为空,并且只能填大于0的数值
'
goodsPriceMsg
=
'[ 商品售价 ]中,
销售指导价不能为空,并且只能填大于0的数字
'
isGoodsPrice
=
false
;
}
else
if
(
!
Number
(
slingleSpeObj
[
'
sc_price'
])
||
Number
(
slingleSpeObj
[
'sc
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
市场价不能为空,并且只能填大于0的数值
'
}
else
if
(
!
Number
(
slingleSpeObj
[
'
js_price'
])
||
Number
(
slingleSpeObj
[
'js
_price'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,
供货结算价不能为空,并且只能填大于0的数字
'
isGoodsPrice
=
false
;
}
else
if
(
!
Number
(
slingleSpeObj
[
'stock'
])
||
Number
(
slingleSpeObj
[
'stock'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,库存量不能为空,并且只能填大于0的整数'
isGoodsPrice
=
false
;
}
else
if
(
!
Number
(
slingleSpeObj
[
'weight'
])
||
Number
(
slingleSpeObj
[
'weight'
])
<
0
)
{
goodsPriceMsg
=
'[ 商品售价 ]中,商品重量不能为空,并且只能填大于0的数字'
isGoodsPrice
=
false
;
}
else
{
goodsPriceMsg
=
''
isGoodsPrice
=
true
;
}
// 单规格【规格组合】数据 -- end --//
// 单规格【阶梯定价】数据 -- start --//
ladder
=
goodsparameterData
.
parameterdata
.
ladder
;
if
(
this
.
goodsAllData
.
is_ladder
)
{
if
(
ladder
.
length
>
0
)
{
for
(
let
la
=
0
;
la
<
ladder
.
length
;
la
++
)
{
let
ladderItem
=
ladder
[
la
]
for
(
let
laKey
in
ladderItem
)
{
if
(
!
Number
(
ladderItem
[
'quantity'
])
||
Number
(
ladderItem
[
'quantity'
])
<
0
)
{
goodsPriceMsg
=
'[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的整数'
isGoodsPrice
=
false
;
break
;
}
else
if
(
!
Number
(
ladderItem
[
'money'
])
||
Number
(
ladderItem
[
'money'
])
<
0
)
{
goodsPriceMsg
=
'[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的数字'
isGoodsPrice
=
false
;
break
;
}
else
{
goodsPriceMsg
=
''
isGoodsPrice
=
true
;
}
}
}
}
}
else
{
ladder
=
[]
}
// 单规格【阶梯定价】数据 -- end --//
}
// 商品详情 是否填写完整
...
...
@@ -535,6 +638,13 @@
// 售后服务 是否填写完整
let
isGoodsAfterSaleMsg
=
this
.
$refs
[
'goodsaftersale'
].
validateGoodsAfterSaleForm
();
// ----------- 自测用
// 获取 商品信息数据
// let fuck = this.$refs.goodsInfo.goodsInfoForm;
// console.log("商品信息:",fuck)
// return
// ----------- 自测用
if
(
!
isGoodsInfoMsg
)
{
this
.
$message
({
type
:
'error'
,
message
:
'商品信息未填写完整'
});
this
.
setFloorNavMountClick
(
0
);
...
...
@@ -555,14 +665,8 @@
}
if
(
!
isGoodsAfterSaleMsg
)
{
if
(
sessionStorage
.
getItem
(
'clickbtm'
)
==
1
){
this
.
$message
({
type
:
'error'
,
message
:
'其他设置未填写完整'
});
this
.
setFloorNavMountClick
(
5
);
}
else
if
(
sessionStorage
.
getItem
(
'clickbtm'
)
==
2
){
this
.
$message
({
type
:
'error'
,
message
:
'售后及服务未填写完整'
});
this
.
setFloorNavMountClick
(
4
);
}
return
}
...
...
@@ -572,8 +676,6 @@
// 品牌处理 goods_brand
let
brandOptions
=
this
.
$refs
.
goodsInfo
.
brandOptions
;
// debugger
// goods_brand
if
(
Array
.
isArray
(
brandOptions
)
&&
brandOptions
.
length
>
0
)
{
for
(
let
bi
=
0
;
bi
<
brandOptions
.
length
;
bi
++
)
{
if
(
Number
(
spxxData
.
brand_id
)
===
Number
(
brandOptions
[
bi
].
id
)
)
{
...
...
@@ -583,18 +685,24 @@
}
}
// 产地
spxxData
.
producing_area_id
=
spxxData
.
producing_area_id
[
spxxData
.
producing_area_id
.
length
-
1
]
// 发货地
spxxData
.
deliver_area_id
=
spxxData
.
deliver_area_id
[
spxxData
.
deliver_area_id
.
length
-
1
]
// 发货地数据处理,预留
// for(let ai = 0; ai
<
areaOptions
.
length
;
ai
++
)
{
// if ( Number(ssffData.deliver_area) === Number(areaOptions[ai].id) ) {
// ssffData.deliver_area = areaOptions[ai].name;
// break;
// }
// }
// console.log(500,spxxData);
if
(
spxxData
.
imgs
.
length
>
7
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'商品信息中,商品图片最大数量为7张,请检查'
});
this
.
setFloorNavMountClick
(
0
);
return
;
}
// 商品规格
// let spggData = this.$refs.goodsspecifications.speData;
//
// 商品售价,上面已经获取,
let
spsjData
=
{};
if
(
this
.
radioguide
==
2
&&
spsjData2
.
specs_group
&&
spsjData2
.
specs_group
.
length
>
0
)
{
...
...
@@ -604,6 +712,16 @@
spsjData
=
spsjData1
[
0
];
this
.
goodsAllData
[
'specs_group'
]
=
[]
this
.
goodsAllData
[
'specs'
]
=
[]
// 启用,才赋值,否则是空数组
if
(
this
.
goodsAllData
.
is_ladder
)
{
this
.
goodsAllData
.
ladder
=
ladder
// 进一步处理金额数据
this
.
goodsAllData
.
ladder
.
map
((
item
)
=>
{
item
.
money
=
item
.
money
*
10000
/
100
return
item
});
}
}
// 商品详情 数据
...
...
@@ -612,36 +730,20 @@
// 售后服务 数据
let
ssffData
=
this
.
$refs
.
goodsaftersale
.
goodsAfterSaleForm
;
// 产地数据处理
let
areaOptions
=
this
.
$refs
.
goodsaftersale
.
areaOptions
;
for
(
let
ai
=
0
;
ai
<
areaOptions
.
length
;
ai
++
)
{
if
(
Number
(
ssffData
.
producing_area
)
===
Number
(
areaOptions
[
ai
].
id
)
)
{
ssffData
.
producing_area
=
areaOptions
[
ai
].
name
;
break
;
}
}
// 发货地数据处理
for
(
let
ai
=
0
;
ai
<
areaOptions
.
length
;
ai
++
)
{
if
(
Number
(
ssffData
.
deliver_area
)
===
Number
(
areaOptions
[
ai
].
id
)
)
{
ssffData
.
deliver_area
=
areaOptions
[
ai
].
name
;
break
;
}
}
console
.
log
(
569
,
ssffData
);
if
(
ssffData
.
delay_compensate
==
72
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'发货时长不能超过48小时,请重新编辑'
});
return
}
// return
// 所有数据合并
Object
.
assign
(
this
.
goodsAllData
,
spxxData
,
spsjData
,
ssffData
);
this
.
goodsAllData
.
description
=
spxqData
// 经营类目,服务标签,需要单独处理数据格式
this
.
goodsAllData
.
category_id
=
spxxData
.
categoryList
.
slice
(
-
1
)[
0
]
?
spxxData
.
categoryList
.
slice
(
-
1
)[
0
]
:
''
;
if
(
this
.
goodsAllData
.
stags
)
{
this
.
goodsAllData
.
stags
=
this
.
goodsAllData
.
stags
.
toString
();
}
...
...
@@ -649,24 +751,28 @@
// 价格数字需要 乘以100
if
(
this
.
goodsAllData
.
specs_group
&&
this
.
goodsAllData
.
specs_group
.
length
>
0
)
{
this
.
goodsAllData
.
specs_group
.
forEach
((
item
)
=>
{
item
.
js_price
=
(
Number
(
item
.
js_price
)
*
1000
)
/
10
;
item
.
price
=
(
Number
(
item
.
price
)
*
1000
)
/
10
;
item
.
sc_price
=
(
Number
(
item
.
sc_price
)
*
1000
)
/
10
;
item
.
sl_price
=
(
Number
(
item
.
sl_price
)
*
1000
)
/
10
;
item
.
price
=
(
Number
(
item
.
price
)
*
1000
)
/
10
;
item
.
js_price
=
(
Number
(
item
.
js_price
)
*
1000
)
/
10
;
item
.
prime_cost
=
(
Number
(
item
.
prime_cost
)
*
1000
)
/
10
;
item
.
stock
=
Number
(
item
.
stock
);
item
.
stock_warning
=
Number
(
item
.
stock_warning
);
item
.
bar_code
=
Number
(
item
.
bar_code
);
})
delete
this
.
goodsAllData
.
js_price
;
delete
this
.
goodsAllData
.
price
;
delete
this
.
goodsAllData
.
sc_price
;
delete
this
.
goodsAllData
.
sl_price
;
delete
this
.
goodsAllData
.
price
;
delete
this
.
goodsAllData
.
js_price
;
delete
this
.
goodsAllData
.
prime_cost
;
delete
this
.
goodsAllData
.
stock
;
delete
this
.
goodsAllData
.
weight
;
}
else
{
this
.
goodsAllData
.
js_price
=
(
Number
(
this
.
goodsAllData
.
js_price
)
*
1000
)
/
10
this
.
goodsAllData
.
price
=
(
Number
(
this
.
goodsAllData
.
price
)
*
1000
)
/
10
this
.
goodsAllData
.
sc_price
=
(
Number
(
this
.
goodsAllData
.
sc_price
)
*
1000
)
/
10
this
.
goodsAllData
.
sl_price
=
(
Number
(
this
.
goodsAllData
.
sl_price
)
*
1000
)
/
10
this
.
goodsAllData
.
price
=
(
Number
(
this
.
goodsAllData
.
price
)
*
1000
)
/
10
this
.
goodsAllData
.
js_price
=
(
Number
(
this
.
goodsAllData
.
js_price
)
*
1000
)
/
10
this
.
goodsAllData
.
prime_cost
=
(
Number
(
this
.
goodsAllData
.
prime_cost
)
*
1000
)
/
10
this
.
goodsAllData
.
stock
=
Number
(
this
.
goodsAllData
.
stock
);
this
.
goodsAllData
.
stock_warning
=
Number
(
this
.
goodsAllData
.
stock_warning
);
this
.
goodsAllData
.
bar_code
=
Number
(
this
.
goodsAllData
.
bar_code
);
delete
this
.
goodsAllData
.
specs
;
delete
this
.
goodsAllData
.
specs_group
;
}
...
...
@@ -759,7 +865,6 @@
}
if
(
index
==
3
){
floor_item
=
this
.
$refs
.
goodsaftersale
.
$refs
.
paramsvalue
.
$el
console
.
log
(
floor_item
)
floor_offsetTop
=
floor_item
.
offsetTop
-
90
}
if
(
index
==
4
){
...
...
@@ -767,11 +872,6 @@
floor_offsetTop
=
floor_item
.
offsetTop
-
90
}
if
(
index
==
5
){
floor_item
=
this
.
$refs
.
goodsaftersale
.
$refs
.
outhervalue
.
$el
floor_offsetTop
=
floor_item
.
offsetTop
-
90
}
// 每次点击,对应dom需要滚动的高度
let
window_scrollTop
=
_this
.
$refs
.
scrollview
.
scrollTop
...
...
@@ -783,31 +883,27 @@
let
resList
=
[];
let
list
=
[];
for
(
let
i
=
0
;
i
<
6
;
i
++
)
{
if
(
i
==
0
||
i
==
1
||
i
==
2
)
{
for
(
let
i
=
0
;
i
<
6
;
i
++
)
{
if
(
i
==
0
||
i
==
1
||
i
==
2
)
{
let
floor_item
=
document
.
getElementsByClassName
(
'floor-item'
)
list
.
push
(
Number
(
floor_item
[
i
].
offsetHeight
));
}
if
(
i
==
3
)
{
if
(
i
==
3
)
{
list
.
push
(
Number
(
this
.
$refs
.
goodsaftersale
.
$refs
.
paramsvalue
.
$el
.
offsetHeight
));
}
if
(
i
==
4
)
{
if
(
i
==
4
)
{
list
.
push
(
Number
(
this
.
$refs
.
goodsaftersale
.
$refs
.
salesvalue
.
$el
.
offsetHeight
));
}
if
(
i
==
5
){
list
.
push
(
Number
(
this
.
$refs
.
goodsaftersale
.
$refs
.
outhervalue
.
$el
.
offsetHeight
));
}
}
resList
=
list
.
slice
(
index
)
for
(
let
j
=
0
;
j
<
resList
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
resList
.
length
;
j
++
)
{
hxz
+=
resList
[
j
]
}
if
(
hxz
>
floor_cont
.
offsetHeight
)
{
if
(
hxz
>
floor_cont
.
offsetHeight
)
{
timer
.
FLOOR_OFFSETTOP
=
floor_offsetTop
;
}
else
{
}
else
{
timer
.
FLOOR_OFFSETTOP
=
floor_cont
.
scrollHeight
-
floor_cont
.
offsetHeight
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论