Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
link-tools
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vue-plugins
link-tools
Commits
b325f655
Commit
b325f655
authored
Sep 12, 2018
by
无尘
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add link-tools commponent
parent
e57cc476
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
5157 additions
and
0 deletions
+5157
-0
README.md
README.md
+87
-0
linktools.vue
linktools.vue
+2521
-0
linktoolspage.vue
linktoolspage.vue
+2549
-0
No files found.
README.md
View file @
b325f655
# 链接工具组件
## 链接工具(弹窗版)
-
原svn: https://182.254.134.223/svn/gic/02.需求/gicProject/xcx/src/components/linktools/linktools.vue
```
<!--
/**
* 链接小工具组件(弹窗) by fairyly on 2018/06/15
* 组件调用
*/
<linktools :projectName="projectName" :linkToolsVisible="linkToolsVisible" :showType="showType" @linkSelect="linkSelect"/>
import Linktools from 'components/linktools/linktools.vue'
// 链接小工具参数
projectName: '', // 当前项目名
linkToolsVisible: false,
// 显示场景类型
showType: 0, ,插件默认0:显示全部 ; 1: (底部导航);2: (公众号菜单:只有小程序的,没有h5)
// methods
// linktools
// 显示事件
showLinkDialog() {
this.linkToolsVisible = true;
},
linkSelect(val) {
console.log(val)
// 关闭时隐藏
this.linkToolsVisible = false;
}
components: {
Linktools
}
-->
```
## 链接工具(页面内)
-
原svn: https://182.254.134.223/svn/gic/02.需求/gicProject/xcx/src/components/linktools/linktoolspage.vue
```
<!--
/**
* 链接小工具组件(页面内) by fairyly on 2018/06/15
* 组件调用
*/
<linktoolspage :projectName="projectName" ref="childlinktoolspage" v-if="menuForm.style=='4'" :linkToolsVisible="linkToolsVisible" :showType="showType" @linkSelect="linkSelect"/>
import Linktoolspage from 'components/linktools/linktoolspage.vue'
// 链接小工具参数
projectName: '', // 当前项目名
linkToolsVisible: false,
// 显示场景类型
showType: 0, ,插件默认0:显示全部 ; 1: (底部导航);2: (公众号菜单:只有小程序的,没有h5)
// methods
// linktools
showLinkDialog() {
this.linkToolsVisible = true;
},
// 使用页保存方法
saveInfo() {
var that = this;
// 父组件调用子组件方法
that.$refs.childlinktoolspage.confirmLinkSelect();
},
linkSelect(val) {
console.log(val)
// 关闭时隐藏
this.linkToolsVisible = false;
}
components: {
Linktools
}
-->
```
linktools.vue
0 → 100644
View file @
b325f655
<!--
/**
* 链接小工具组件(弹窗) by fairyly on 2018/06/15
* 组件调用
*/
<linktools :showType="showType" :linkToolsVisible="linkToolsVisible" @linkSelect="linkSelect"/>
import Linktools from 'components/linktools/linktools.vue'
// 链接小工具参数
linkToolsVisible: false, //显示参数
showType: 0, // 显示类型,插件默认0:显示全部 ,1: (底部导航);2: (公众号菜单:只有小程序的,没有h5)
// methods
// linktools
showLinkDialog() {
this.linkToolsVisible = true;
},
linkSelect(val) {
console.log(val)
// 关闭时隐藏
this.linkToolsVisible = false;
}
components: {
Linktools
}
-->
<
template
>
<!-- 链接小工具 -->
<div
class=
"link-tools-contain"
>
<el-dialog
:class=
"activeName == 'first'? 'min-1026':'min-720'"
title=
"链接小工具"
:visible
.
sync=
"mylinkToolsVisible"
:before-close=
"handleClose"
>
<!-- 链接类型 -->
<div
class=
"links-types"
>
<label
class=
"types-title"
>
链接类型
</label>
<el-select
v-model=
"linksType"
placeholder=
"请选择"
@
change=
"linksTypeChange"
>
<el-option
v-for=
"item in linksTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<!-- 二级下拉 -->
<el-select
v-model=
"twoLevelValue"
placeholder=
"请选择"
v-if=
"twoLevelVisible"
@
change=
"twoLevelValueChange"
>
<el-option
v-for=
"item in twoLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<!-- 三级下拉 -->
<div
class=
"three-level-wrap"
v-if=
"threeLevelVisible"
>
<!-- 三级单选 -->
<el-select
v-model=
"threeLevelValue"
placeholder=
"请选择"
v-if=
"threeLeveloneVisible"
@
change=
"threeSingleValueChange"
>
<el-option
v-for=
"item in threeLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<!-- 商品分类链接 -->
<treeselect
v-if=
"threeLevelTreeVisible"
v-model=
"threeLevelValue"
:options=
"goodsCategoryOptions"
:normalizer=
"normalizer"
:default-expand-level=
"1"
placeholder=
"所有分类"
noOptionsText=
"暂无数据"
noResultsText=
"无数据"
@
select=
"goodsCategorySelect"
/>
<!-- 搜索后出现下列 -->
<el-select
v-if=
"threeLevelSearchVisible"
v-model=
"threeLevelValue"
multiple
filterable
remote
reserve-keyword
placeholder=
"请输入关键词"
:remote-method=
"remoteMethod"
@
change=
"threeLevelValueChange"
>
<el-option
v-for=
"item in threeLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</div>
<!-- h5 -->
<div
class=
"h5link-contain"
v-if=
"h5linkVisible"
>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
进入条件
</label>
<el-select
class=
"conditionType-select"
v-model=
"h5linkObj.conditionType"
placeholder=
"请选择进入条件"
>
<el-option
v-for=
"item in h5linkObj.conditionTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
名称
</label>
<el-input
v-model=
"h5linkObj.name"
placeholder=
"请输入名称"
></el-input>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
网址
</label>
<el-input
v-model=
"h5linkObj.url"
placeholder=
"请输入网址"
></el-input><a
class=
"h5link-help"
href=
"http://doc.demogic.com/doc/index.php?s=/41&page_id=441"
target=
"_blank"
>
【帮助文档】请联系公司技术人员查看文档配置标准链接
</a>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
固定参数
</label>
<el-input
v-model=
"h5linkObj.fixParam"
type=
"textarea"
resize=
"none"
:rows=
"4"
placeholder=
"请输入固定参数(可选)"
></el-input>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
时间戳开关
</label>
<el-switch
v-model=
"h5linkObj.timeSwitch"
@
change=
"timeSwitch($event,h5linkObj.timeSwitch)"
></el-switch>
<!--
<el-select
class=
"dynamic-param-select"
v-model=
"h5linkObj.dynamicPara"
multiple
placeholder=
"请选择动态参数(可选)"
>
<el-option
v-for=
"item in h5linkObj.dynamicParaOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
-->
</div>
</div>
<!-- 商品链接 -->
<div
class=
"goods-links-contian"
v-if=
"goodsLinksVisible"
>
<div
class=
"links-tools-row"
>
<!-- 品类 -->
<treeselect
v-model=
"category"
:options=
"categoryOptions"
:normalizer=
"normalizer"
:default-expand-level=
"1"
:flat=
"true"
placeholder=
"所有品类"
noOptionsText=
"暂无数据"
noResultsText=
"无数据"
no-children-text=
"无数据"
:load-options=
"loadOptions"
:beforeClearAll =
"beforeClearCategory"
@
select=
"categorySelect"
/>
<!-- 分类树形结构 -->
<treeselect
v-model=
"classify"
:options=
"classifyOptions"
:normalizer=
"normalizer"
:default-expand-level=
"1"
placeholder=
"所有分类"
noOptionsText=
"暂无数据"
noResultsText=
"无数据"
noChildrenText=
"无数据"
:beforeClearAll =
"beforeClearClassify"
@
select=
"classifySelect"
/>
<el-input
class=
"links-tools-input"
placeholder=
"请输入商品名称/货号"
v-model=
"searchGoods"
@
keyup
.
native=
"(value) => toSearchInput(value)"
clearable
@
clear=
"clearInput"
>
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i>
</el-input>
</div>
<!-- 商品列表 -->
<div
class=
"goods-link-content"
>
<ul
class=
"goods-link-list"
>
<li
:class=
"item.mallProId == selectGoodId? 'goods-link-item goodSelect': 'goods-link-item'"
v-for=
"(item, index) in goodsList"
:key=
"index"
@
click=
"selectGoodLinkItem(item)"
>
<img
:src=
"item.mallProImageUrl"
alt=
"商品图片"
/>
<div
class=
"inline-block goods-message"
>
<p
class=
"limit-2 pro-name"
>
{{
item
.
proName
}}
</p>
<p
class=
"gray-color pro-code"
>
货号:
{{
item
.
proCode
}}
</p>
<span
class=
"pro-price"
>
¥
{{
item
.
mallProSpuPrice
}}
</span>
</div>
</li>
</ul>
</div>
<!-- 分页 -->
<div
class=
"links-tools-page"
>
<el-pagination
@
size-change=
"linkSizeChange"
@
current-change=
"linkCurrentChange"
:current-page=
"currentPage"
:page-sizes=
"[9]"
:page-size=
"pageSize"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
<!-- 底部按钮 -->
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancelLinkSelect"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirmLinkSelect"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
// 使用树形插件
// import the component
import
Treeselect
from
'@riophae/vue-treeselect'
;
// import axios from 'axios'
import
qs
from
'qs'
;
export
default
{
name
:
'links'
,
props
:
[
'linkToolsVisible'
,
'showType'
,
'projectName'
],
data
()
{
return
{
// 项目名
repProjectName
:
'gic-web'
,
// 项目名
linkShowType
:
0
,
//传参数判断显示类型
activeName
:
'first'
,
// ---------------------------
twoLevelVisible
:
false
,
// 二级下拉
threeLevelVisible
:
false
,
// 三级整个
// 链接类型
linksType
:
''
,
linksTypeOptions
:
[
// {
// id: '1',
// value: 'shoplink',
// label: '商城链接'
// },
// {
// id: '2',
// value: 'memberlink',
// label: '会员功能链接'
// },
// {
// id: '3',
// value: 'definelink',
// label: '自定义页面'
// },
// {
// id: '4',
// value: 'h5link',
// label: 'H5页面'
// },
// {
// id: '5',
// value: 'otherlink',
// label: '其他小程序'
// }
],
// 二级数据
twoLevelValue
:
''
,
twoLevelOptions
:
[
// {
// id: '1',
// value: 'shoplink',
// label: '商城链接'
// },
],
// 三级数据
threeLeveloneVisible
:
false
,
// 三级中第一个下拉单选
threeLevelTreeVisible
:
false
,
// 三级中第二个下拉树形结构
threeLevelSearchVisible
:
false
,
// 三级中第三个搜索下拉
threeLevelValue
:
''
,
threeLevelOptions
:
[
// {
// id: '1',
// value: 'shoplink',
// label: '商城链接'
// },
],
// h5link
h5linkVisible
:
false
,
h5linkObj
:
{
name
:
''
,
url
:
''
,
fixParam
:
''
,
timeSwitch
:
false
,
// 默认false->0: 关闭; true->1: 开启
dynamicPara
:
''
,
dynamicParaOptions
:
[
// 2018.6.12 动态参数目前让写页面
{
value
:
'openid'
,
label
:
'openid'
},
{
value
:
'unionid'
,
label
:
'unionid'
},
{
value
:
'wxOpenid'
,
label
:
'wxOpenid'
},
{
value
:
'appkey'
,
label
:
'appkey'
},
{
value
:
'enterpriseId'
,
label
:
'enterpriseId'
},
{
value
:
'appid'
,
label
:
'appid'
},
{
value
:
'memberID'
,
label
:
'memberID'
},
],
// 进入条件
conditionType
:
'0'
,
conditionTypeOptions
:[
{
value
:
'0'
,
label
:
'不限'
},
{
value
:
'1'
,
label
:
'开卡会员'
},
{
value
:
'2'
,
label
:
'认证会员'
},
]
},
// ---------------------------
// ---------------------------
// 父组件传递的 props
mylinkToolsVisible
:
this
.
linkToolsVisible
,
// 商品链接
goodsLinksVisible
:
false
,
searchGoods
:
''
,
category
:
null
,
// 品类
categoryOptions
:
[
// {
// key: 'a',
// name: 'a',
// subOptions: [ {
// key: 'aa',
// name: 'aa',
// } ],
// }
],
normalizer
(
node
/*, id */
)
{
// there is an extra `id` argument,
// which could be useful if you have multiple instances
// of vue-treeselect that share the same `normalizer` function
return
{
id
:
node
.
key
,
label
:
node
.
name
,
children
:
node
.
subOptions
,
}
},
// 商品列表数据
selectGoodId
:
''
,
goodsList
:
[
// {
// id:'111',
// proName: '美商海盗船Gaming系列 K70 RGB Rapidfire',
// proCode: "errerr",
// mallProImageUrl: 'https://pic01-10001430.image.myqcloud.com/adb6387e-a3f4-4b7f-a7dd-1b7fe242f9f7',
// mallProSpuPrice: 567
// }
],
// 分页
currentPage
:
1
,
// 当前页
pageSize
:
9
,
// 一页显示的个数
total
:
0
,
// 总数
// 分类
classify
:
null
,
classifyOptions
:
[
// {
// key: 'b',
// name: 'b',
// subOptions: [ {
// key: 'bb',
// name: 'bb',
// } ],
// }
],
// 商品分类
goodsCategory
:
null
,
goodsCategoryOptions
:
[
// {
// key: 'a',
// name: 'a',
// subOptions: [
// {
// key: 'aa',
// name: 'aa',
// }
// ],
// }
],
// 保存需要的参数
oneLevelTypeValue
:
''
,
twoLevelSelectValue
:
''
,
threeLevelSelectValue
:
''
,
// 触发传递的对象
selectLinkObj
:
{
id
:
''
,
name
:
''
,
url
:
''
,
params
:
''
,
timeSwitch
:
0
},
// 获取 location origin
baseUrl
:
''
,
}
},
beforeMount
()
{
var
that
=
this
var
host
=
window
.
location
.
origin
;
console
.
log
(
"当前host:"
,
host
)
if
(
host
.
indexOf
(
'localhost'
)
!=
'-1'
)
{
that
.
baseUrl
=
'http://gicdev.demogic.com'
;
}
else
{
that
.
baseUrl
=
host
}
},
methods
:
{
// --------------------------------------------------
// 选择类型改变 (一级选择,保存选择类型)
linksTypeChange
:
function
(
e
)
{
var
that
=
this
console
.
log
(
"选择的链接Id:"
+
e
)
var
selectOneItem
=
''
;
that
.
linksTypeOptions
.
forEach
(
function
(
ele
,
inde
){
if
(
ele
.
linkId
==
e
)
{
selectOneItem
=
ele
}
})
// 保存选择的类型
that
.
oneLevelTypeValue
=
selectOneItem
.
type
;
console
.
log
(
"that.oneLevelTypeValue:"
,
that
.
oneLevelTypeValue
)
console
.
log
(
"一级选择的类型:"
,
selectOneItem
)
// 判断出现下拉内容/h5部分
// 每次修改选择类型,清空已选择的值
that
.
selectLinkObj
.
name
=
''
;
that
.
selectLinkObj
.
url
=
''
;
that
.
selectLinkObj
.
params
=
''
;
that
.
twoLevelSelectValue
=
''
;
that
.
threeLevelSelectValue
=
''
;
// 如果是 h5,二级,三级隐藏,
var
type
=
selectOneItem
.
type
==
5
?
true
:
false
;
that
.
setOneLevelVisible
(
type
,
selectOneItem
)
},
// set onelevel visible
setOneLevelVisible
(
type
,
selectOneItem
)
{
var
that
=
this
;
if
(
type
)
{
// 设置选择的 id
that
.
selectLinkObj
.
id
=
selectOneItem
.
linkId
;
console
.
log
(
"一级选择obj:"
,
that
.
selectLinkObj
)
that
.
h5linkVisible
=
true
;
// h5 链接参数输入部分显示
that
.
twoLevelVisible
=
false
;
// 二级部分隐藏
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
goodsLinksVisible
=
false
;
// 商品链接列表部分
}
else
{
// 不是 h5,显示二级,隐藏三级
that
.
h5linkVisible
=
false
;
// h5 链接参数输入部分隐藏
that
.
twoLevelVisible
=
true
;
// 二级部分显示
that
.
twoLevelOptions
=
[];
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
goodsLinksVisible
=
false
;
// 商品链接列表部分
that
.
twoLevelValue
=
''
;
// 清空二级数据
that
.
threeLevelValue
=
''
;
// 清空三级数据
// 如果是自定义
if
(
selectOneItem
.
type
==
6
)
{
console
.
log
(
"自定义:"
,
selectOneItem
)
that
.
selectLinkObj
.
id
=
selectOneItem
.
linkId
;
// that.selectLinkObj.name = selectOneItem.label;
that
.
selectLinkObj
.
url
=
selectOneItem
.
content
;
that
.
getDefinePage
();
console
.
log
(
that
.
selectLinkObj
)
return
false
;
}
// 清空设置选择的 id
that
.
selectLinkObj
.
id
=
''
;
console
.
log
(
"一级选择obj:"
,
that
.
selectLinkObj
)
// 获取二级列表数据
that
.
getLinksList
(
selectOneItem
.
linkId
,
2
)
}
},
// twoLevelValueChange (二级选择,保存选择类型)
twoLevelValueChange
(
e
)
{
var
that
=
this
console
.
log
(
"二级选择值:"
,
e
)
// 判断自定义
if
(
that
.
oneLevelTypeValue
==
6
)
{
var
selectDefineItem
=
''
that
.
twoLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
id
)
{
selectDefineItem
=
ele
;
}
})
that
.
selectLinkObj
.
name
=
selectDefineItem
.
label
;
that
.
selectLinkObj
.
params
=
{
pageId
:
e
}
console
.
log
(
'二级选择是自定义:'
,
that
.
twoLevelOptions
,
that
.
selectLinkObj
)
return
;
}
var
selectTwoItem
=
''
;
that
.
twoLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
linkId
)
{
selectTwoItem
=
ele
;
}
})
console
.
log
(
"二级选择的类型:"
,
selectTwoItem
)
// 每次选择清空原有选择参数
that
.
selectLinkObj
.
params
=
''
;
// 设置选择的 id
that
.
selectLinkObj
.
id
=
e
;
console
.
log
(
"二级选择的 obj: "
,
that
.
selectLinkObj
.
id
)
// 判断是否结束, 1:结束;
if
(
selectTwoItem
.
type
==
1
||
selectTwoItem
.
type
==
4
||
selectTwoItem
.
type
==
6
)
{
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
threeLevelValue
=
''
;
// 清空三级数据
that
.
twoLevelSelectValue
=
''
;
// 清空门店签到
that
.
threeLevelSelectValue
=
''
;
//清空商品分类
// 清空已经选择
that
.
selectLinkObj
.
name
=
''
;
that
.
selectLinkObj
.
url
=
''
;
// 如果选择商品链接
if
(
selectTwoItem
.
type
==
4
){
that
.
getGoodsList
();
// 获取商品列表
that
.
getGoodsCategory
();
// 获取商品品类
that
.
getGoodsClassify
();
// 获取商品分类
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
goodsLinksVisible
=
true
;
// 商品链接列表部分显示
return
false
;
}
that
.
twoLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
value
)
{
console
.
log
(
ele
);
that
.
selectLinkObj
.
name
=
ele
.
label
;
that
.
selectLinkObj
.
url
=
ele
.
content
;
}
})
console
.
log
(
"二级结束选择的链接:"
,
that
.
selectLinkObj
);
}
else
{
// 判断三级中下拉/下拉树形/搜索下拉
that
.
goodsLinksVisible
=
false
;
// 商品列表隐藏
that
.
threeLevelVisible
=
true
;
// 三级部分显示
that
.
threeLevelValue
=
''
;
// 清空三级数据
that
.
twoLevelSelectValue
=
''
;
that
.
threeLevelSelectValue
=
''
;
var
twoType
=
selectTwoItem
.
type
;
// 判断三级显示的下拉组件
that
.
setThreeVisible
(
twoType
,
selectTwoItem
)
// 如果是门店,直接返回,需要输入后搜索出现下拉列表
if
(
twoType
==
2
)
{
that
.
twoLevelSelectValue
=
'sign'
;
return
false
;
}
if
(
twoType
==
3
)
{
that
.
twoLevelSelectValue
=
'goodsCate'
;
that
.
getGoodsClassify
();
return
false
;
}
// 获取三级列表数据
that
.
getLinksList
(
selectTwoItem
.
linkId
,
3
,
twoType
)
}
},
// set threelevel visible
setThreeVisible
(
type
,
selectTwoItem
)
{
var
that
=
this
switch
(
type
)
{
// 如果下拉显示
case
0
:
// 单选
that
.
threeLeveloneVisible
=
true
;
// 三级中第一个下拉单选
that
.
threeLevelTreeVisible
=
false
;
// 三级中第二个下拉树形结构
that
.
threeLevelSearchVisible
=
false
;
// 三级中第三个搜索下拉
break
;
case
2
:
// 搜索下拉
that
.
threeLeveloneVisible
=
false
;
// 三级中第一个下拉单选
that
.
threeLevelTreeVisible
=
false
;
// 三级中第二个下拉树形结构
that
.
threeLevelSearchVisible
=
true
;
// 三级中第三个搜索下拉
// 设置链接 门店签到
that
.
selectLinkObj
.
name
=
selectTwoItem
.
name
;
that
.
selectLinkObj
.
url
=
selectTwoItem
.
content
;
console
.
log
(
"二级结束选择的链接:"
,
that
.
selectLinkObj
);
break
;
case
3
:
// 树形结构
that
.
threeLevelValue
=
null
;
that
.
threeLeveloneVisible
=
false
;
// 三级中第一个下拉单选
that
.
threeLevelTreeVisible
=
true
;
// 三级中第二个下拉树形结构
that
.
threeLevelSearchVisible
=
false
;
// 三级中第三个搜索下拉
// 设置链接 商品分类
that
.
selectLinkObj
.
name
=
selectTwoItem
.
name
;
that
.
selectLinkObj
.
url
=
selectTwoItem
.
content
;
break
;
}
},
// 获取商品品类
getGoodsCategory
()
{
var
that
=
this
var
para
=
{
filterGoods
:
1
,
parentId
:
''
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/list_mall_goods_category'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
;
var
onelevelCategory
=
''
;
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
forEach
(
function
(
ele
,
index
){
if
(
ele
.
parentId
==
'-1'
)
{
ele
.
subOptions
=
[];
ele
.
key
=
ele
.
mallCategoryId
onelevelCategory
=
ele
;
resData
.
result
.
splice
(
index
,
1
);
}
})
console
.
log
(
"resdata: "
,
resData
)
var
list
=
resData
.
result
,
lists
=
resData
.
result
;
list
.
forEach
(
function
(
ele
,
index
)
{
if
(
ele
.
isLeaf
==
0
)
{
ele
.
subOptions
=
null
;
}
ele
.
key
=
ele
.
mallCategoryId
;
lists
.
forEach
(
function
(
el
,
ind
)
{
el
.
key
=
el
.
mallCategoryId
;
if
(
el
.
parentId
==
ele
.
mallCategoryId
){
console
.
log
(
index
,
ind
)
ele
.
subOptions
=
[]
ele
.
subOptions
.
push
(
el
)
list
.
splice
(
ind
,
1
)
}
})
})
console
.
log
(
"list:"
,
list
,
onelevelCategory
)
list
.
forEach
(
function
(
ele
,
index
){
onelevelCategory
.
subOptions
.
push
(
ele
)
})
that
.
categoryOptions
=
[];
that
.
categoryOptions
.
push
(
onelevelCategory
);
console
.
log
(
"list:"
,
that
.
categoryOptions
)
return
false
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// 获取商品分类
getGoodsClassify
()
{
var
that
=
this
var
para
=
{
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/list_mall_goods_tag_tree'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
var
list
=
[
resData
.
result
],
lists
=
resData
.
result
;
// list.forEach(function(ele,index) {
// ele.subOptions = [];
// ele.name = ele.tagName;
// ele.key = ele.mallProTagId;
// lists.forEach(function(el,ind) {
// ele.name = ele.tagName;
// ele.key = ele.mallProTagId;
// if(el.parentId == ele.mallProTagId ){
// ele.subOptions.push(el)
// }
// })
// })
// that.goodsCategoryOptions = [];
// that.classifyOptions = [];
// list.forEach(function(ele,index){
// if (ele.parentId == '-1') {
// that.goodsCategoryOptions.push(ele);
// that.classifyOptions.push(ele);
// }
// })
list
.
forEach
(
function
(
ele
,
index
)
{
ele
.
name
=
ele
.
tagName
;
ele
.
key
=
ele
.
mallProTagId
;
if
(
!!
ele
.
childTagList
)
{
ele
.
subOptions
=
that
.
checkChildren
(
ele
.
childTagList
)
}
})
that
.
goodsCategoryOptions
=
list
;
that
.
classifyOptions
=
list
;
// that.classifyOptions = list;
console
.
log
(
"list:"
,
list
,
that
.
goodsCategoryOptions
)
// console.log(that.goodsCategoryOptions)
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
checkChildren
(
childTagList
)
{
var
that
=
this
if
(
!!
childTagList
)
{
childTagList
.
forEach
(
function
(
ele
,
index
){
ele
.
name
=
ele
.
tagName
;
ele
.
key
=
ele
.
mallProTagId
;
if
(
!!
ele
.
childTagList
)
{
ele
.
subOptions
=
that
.
checkChildren
(
ele
.
childTagList
)
}
})
}
// console.log(childTagList)
return
childTagList
;
},
// threeLevelValueChange
threeLevelValueChange
(
e
)
{
var
that
=
this
console
.
log
(
e
,
that
.
threeLevelValue
)
},
// threeSingleValueChange
threeSingleValueChange
(
e
)
{
var
that
=
this
console
.
log
(
e
,
that
.
threeLevelValue
)
var
selThreeItem
=
''
;
that
.
threeLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
linkId
)
{
selThreeItem
=
ele
;
}
})
// 非门店签到
that
.
selectLinkObj
.
id
=
e
;
that
.
selectLinkObj
.
url
=
selThreeItem
.
content
;
that
.
selectLinkObj
.
name
=
selThreeItem
.
name
},
// 获取自定义列表
getDefinePage
()
{
var
that
=
this
;
var
para
=
{
pageType
:
1
,
title
:
''
,
currentPage
:
1
,
pageSize
:
50
,
status
:
1
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-admin/list-page'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
pageId
;
ele
.
label
=
ele
.
title
;
ele
.
value
=
ele
.
pageId
})
console
.
log
(
"自定义列表:"
,
resData
.
result
.
result
)
that
.
twoLevelOptions
=
resData
.
result
.
result
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// --------------------------------------------------
// -------------------------------------------
// 选择树形节点方法
// 商品链接部分 categorySelect
categorySelect
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
category
)
that
.
category
=
node
.
key
// 重新获取商品列表
// that.getGoodsList();
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
beforeClearCategory
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
)
that
.
category
=
null
;
// 重新获取商品列表
// that.getGoodsList();
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
loadOptions
({
action
,
parentNode
,
callback
})
{
// Typically, do the AJAX stuff here.
// Once the server has responded,
// assign children options to the parent node & call the callback.
// We just use `setTimeout()` here to simulate an async operation
// instead of requesting a real API server for demo purpose.
var
that
=
this
console
.
log
(
action
,
parentNode
,
callback
)
if
(
action
===
"LOAD_CHILDREN_OPTIONS"
)
{
if
(
parentNode
.
key
)
{
that
.
getChildrenNode
(
parentNode
,
parentNode
.
key
)
}
}
},
// 获取子节点方法
getChildrenNode
(
parentNode
,
parentId
)
{
var
that
=
this
var
para
=
{
filterGoods
:
1
,
parentId
:
parentId
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/list_mall_goods_category'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
forEach
(
function
(
ele
,
index
){
if
(
ele
.
isLeaf
==
0
)
{
ele
.
subOptions
=
null
;
}
else
{
ele
.
subOptions
=
[]
}
ele
.
key
=
ele
.
mallCategoryId
})
parentNode
.
subOptions
=
resData
.
result
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// classifySelect 分类
classifySelect
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
classify
)
that
.
classify
=
node
.
key
// 重新获取商品列表
// that.getGoodsList();
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
beforeClearClassify
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
classify
)
that
.
classify
=
null
;
// 重新获取商品列表
// that.getGoodsList();
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
// 商品分类 goodsCategorySelect
goodsCategorySelect
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
threeLevelValue
)
// 调用
// that.selectLinkItem()
},
// --------------------------------------------
// 关闭
handleClose
(
done
)
{
var
that
=
this
that
.
$confirm
(
'确认关闭?'
)
.
then
(
_
=>
{
done
();
that
.
mylinkToolsVisible
=
false
;
console
.
log
(
this
.
mylinkToolsVisible
)
that
.
$emit
(
'linkSelect'
)
})
.
catch
(
_
=>
{
console
.
log
(
'取消关闭'
)
});
},
// 分页
linkSizeChange
(
val
)
{
var
that
=
this
console
.
log
(
`每页
${
val
}
条`
,
that
.
pageSize
);
that
.
pageSize
=
val
;
// 请求商品列表
that
.
getGoodsList
();
},
// 页码变化触发
linkCurrentChange
(
val
)
{
var
that
=
this
console
.
log
(
`当前页:
${
val
}
`
,
that
.
currentPage
);
that
.
currentPage
=
val
;
// 请求商品列表
that
.
getGoodsList
();
},
// 选择商品链接
selectGoodLinkItem
(
item
){
var
that
=
this
console
.
log
(
item
)
that
.
selectGoodId
=
item
.
mallProId
;
// 调用函数传递链接/名字
that
.
selectLinkItem
(
item
)
},
// 选择链接以后调用函数
selectLinkItem
(
item
)
{
var
that
=
this
console
.
log
(
item
)
that
.
selectLinkObj
.
name
=
item
.
proName
;
that
.
selectLinkObj
.
url
=
item
.
url
;
that
.
selectLinkObj
.
params
=
{
"proId"
:
item
.
mallProId
};
// 2018.6.28修改参数 proId
// that.$emit('linkSelect')
},
// 搜索输入
toSearchInput
:
function
(
value
)
{
var
that
=
this
;
console
.
log
(
"搜索////////:"
,
that
.
searchGoods
,
value
)
// 搜索重置当前页 为 1
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
// 清空输入
clearInput
:
function
(
e
)
{
var
that
=
this
;
console
.
log
(
e
,
that
.
searchGoods
);
// 搜索重置当前页 为 1
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
// 获取商品列表
getGoodsList
()
{
var
that
=
this
console
.
log
(
"获取商品列表"
)
var
para
=
{
pageNum
:
that
.
currentPage
,
searchparams
:
that
.
searchGoods
||
''
,
pageSize
:
that
.
pageSize
,
// 品类
mallCategoryId
:
that
.
category
,
tagId
:
that
.
classify
,
// 分类
requestProject
:
that
.
repProjectName
};
// that.currentPage = 1;
// that.pageSize = 10;
// that.total = 50;
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/page-mall-goods'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
that
.
goodsList
=
resData
.
result
.
result
that
.
total
=
resData
.
result
.
totalCount
console
.
log
(
that
.
total
)
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// 搜索后出现下拉列表
// 搜索
remoteMethod
(
query
)
{
var
that
=
this
;
console
.
log
(
"query:"
,
query
,
that
.
threeLevelValue
)
var
that
=
this
;
if
(
query
!==
''
)
{
// 获取搜索列表数据
that
.
getStoreList
(
query
,
that
.
threeLevelValue
);
}
else
{
that
.
threeLevelOptions
=
[];
}
},
// h5 时间开关
timeSwitch
(
e
,
obj
)
{
var
that
=
this
console
.
log
(
e
,
obj
)
},
// 取消操作
cancelLinkSelect
()
{
var
that
=
this
this
.
$confirm
(
'确认关闭?'
,
''
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
''
}).
then
(()
=>
{
console
.
log
(
"点击确认"
)
that
.
$emit
(
'linkSelect'
)
}).
catch
(()
=>
{
console
.
log
(
"取消 取消关闭"
)
});
},
// 确认操作
confirmLinkSelect
()
{
var
that
=
this
console
.
log
(
that
.
linksType
,
that
.
twoLevelValue
,
that
.
threeLevelValue
,
that
.
h5linkObj
.
conditionType
)
// 如果选择 h5 判断选择的链接
if
(
that
.
oneLevelTypeValue
==
5
)
{
if
(
!
that
.
h5linkObj
.
name
.
trim
()
||
!
that
.
h5linkObj
.
url
.
trim
())
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请填写链接内容"
})
return
;
}
that
.
selectLinkObj
.
conditionType
=
that
.
h5linkObj
.
conditionType
;
that
.
selectLinkObj
.
name
=
that
.
h5linkObj
.
name
;
that
.
selectLinkObj
.
url
=
that
.
h5linkObj
.
url
;
// +'?'+that.h5linkObj.fixParam+'&'+that.h5linkObj.dynamicPara;
that
.
selectLinkObj
.
params
=
that
.
h5linkObj
.
fixParam
that
.
selectLinkObj
.
timeSwitch
=
(
that
.
h5linkObj
.
timeSwitch
==
true
?
1
:
0
)
console
.
log
(
that
.
selectLinkObj
)
// that.selectLinkObj.fixParam = that.h5linkObj.fixParam;
// that.selectLinkObj.dynamicPara = that.h5linkObj.dynamicPara;
// 触发父组件方法,传递参数
that
.
transData
();
return
;
}
// 如果选择的自定义页面
if
(
that
.
oneLevelTypeValue
==
6
)
{
if
(
!
that
.
twoLevelValue
.
trim
())
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请选择自定义页面"
})
return
;
}
// 触发父组件方法,传递参数
console
.
log
(
that
.
selectLinkObj
)
that
.
transData
();
return
;
}
// 如果门店签到
console
.
log
(
"门店签到:"
,
that
.
twoLevelSelectValue
)
// console.log(that.checkTwoLevel(that.twoLevelSelectValue))
if
(
that
.
twoLevelSelectValue
==
'sign'
){
// console.log("///////",that.checkTwoLevel(that.twoLevelSelectValue))
if
(
!
that
.
checkTwoLevel
(
that
.
twoLevelSelectValue
)){
return
false
;
}
return
false
;
}
// 如果是商品分类
if
(
that
.
twoLevelSelectValue
==
'goodsCate'
){
if
(
!
that
.
checkTwoLevel
(
that
.
twoLevelSelectValue
)){
return
false
;
}
return
false
;
}
console
.
log
(
that
.
selectLinkObj
)
if
(
!!
that
.
selectLinkObj
.
name
&&!!
that
.
selectLinkObj
.
id
)
{
// 触发父组件方法,传递参数
that
.
transData
();
}
else
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请选择链接"
})
}
},
checkTwoLevel
(
v
)
{
var
that
=
this
console
.
log
(
that
.
threeLevelValue
)
if
(
!
that
.
threeLevelValue
||
!
that
.
threeLevelValue
.
length
)
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请选择"
+
(
v
==
'sign'
?
'门店'
:
'商品分类'
)
})
return
false
;
}
that
.
selectLinkObj
.
url
=
that
.
selectLinkObj
.
url
;
// +'?'+that.threeLevelValue
that
.
selectLinkObj
.
params
=
{
"storeId"
:
that
.
threeLevelValue
}
// 触发父组件方法,传递参数
that
.
transData
();
},
// 重置所有组件
resetAll
()
{
var
that
=
this
that
.
h5linkVisible
=
false
;
that
.
linksType
=
''
;
that
.
twoLevelVisible
=
false
;
// 二级下拉
that
.
threeLevelVisible
=
false
;
// 三级整个
that
.
goodsLinksVisible
=
false
;
// 商品列表隐藏
that
.
twoLevelValue
=
''
;
// 清空所有选择的
that
.
twoLevelSelectValue
=
''
;
that
.
threeLevelValue
=
''
;
// 清空所有选择的
that
.
selectLinkObj
=
{
url
:
''
,
name
:
''
}
that
.
currentPage
=
1
;
that
.
total
=
0
;
that
.
pageSize
=
9
;
that
.
searchGoods
=
''
;
that
.
classify
=
null
;
that
.
category
=
null
;
that
.
h5linkObj
.
name
=
''
;
that
.
h5linkObj
.
url
=
''
;
that
.
h5linkObj
.
fixParam
=
''
;
that
.
h5linkObj
.
dynamicPara
=
''
;
},
// 触发父组件方法,传递参数
transData
()
{
var
that
=
this
;
that
.
$emit
(
'linkSelect'
,
that
.
selectLinkObj
)
that
.
resetAll
();
},
// 获取一级列表
getLinksList
(
parentId
,
num
,
twoType
)
{
var
that
=
this
;
// 如果不传传的显示类型,设置
twoType
=
twoType
?
twoType
:
''
;
var
para
=
{
parentId
:
parentId
,
requestProject
:
that
.
repProjectName
,
linkScene
:
that
.
linkShowType
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-plug/list-link-data'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
that
.
setLevelListOptions
(
parentId
,
resData
.
result
,
num
,
twoType
)
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
setLevelListOptions
(
parentId
,
result
,
num
,
twoType
)
{
var
that
=
this
// 设置一级
if
(
parentId
==
0
)
{
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
linkId
;
ele
.
label
=
ele
.
name
;
ele
.
value
=
ele
.
linkId
;
})
that
.
linksTypeOptions
=
result
console
.
log
(
"获取一级类型: "
,
that
.
linksTypeOptions
)
return
;
}
// 设置二级
if
(
num
==
2
&&
result
[
0
])
{
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
linkId
;
ele
.
label
=
ele
.
name
;
ele
.
value
=
ele
.
linkId
})
that
.
twoLevelOptions
=
result
console
.
log
(
"获取二级类型: "
,
that
.
twoLevelOptions
)
return
;
}
// 设置三级
if
(
num
==
3
&&
result
[
0
])
{
// 如果是分类
// if (twoType == 3) {
// return false;
// }
// 如果是单选下拉
if
(
twoType
==
0
)
{
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
linkId
;
ele
.
label
=
ele
.
name
;
ele
.
value
=
ele
.
linkId
})
that
.
threeLevelOptions
=
result
}
console
.
log
(
"获取三级类型: "
,
that
.
threeLevelOptions
)
return
;
}
},
// 获取门店列表
getStoreList
(
query
,
threeLevelValue
)
{
var
that
=
this
console
.
log
(
threeLevelValue
.
toString
())
var
para
=
{
searchParam
:
query
,
selectedIds
:
threeLevelValue
.
toString
(),
flag
:
null
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-plug/query-store-by-code-name'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
storeId
;
ele
.
label
=
ele
.
storeName
;
ele
.
value
=
ele
.
storeId
})
that
.
threeLevelOptions
=
resData
.
result
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
toLogin
()
{
var
that
=
this
;
var
para
=
{
loginName
:
'damogic'
,
password
:
'1'
,
eid
:
'ff808081593917d90159398ec6340012'
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-auth/do-login'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
that
.
getLinksList
(
0
,
1
)
})
.
catch
(
function
(
error
)
{
console
.
log
(
"error:"
,
error
);
})
}
},
watch
:
{
linkToolsVisible
(
val
)
{
console
.
log
(
val
)
this
.
mylinkToolsVisible
=
val
;
// 新增linkToolsVisible的watch,监听变更并同步到linkToolsVisible上
},
// isWx(val) {
// var that = this
// that.isWxapp = val;
// },
showType
(
val
)
{
var
that
=
this
that
.
linkShowType
=
val
||
0
;
},
projectName
:
function
(
newData
,
oldData
){
var
that
=
this
;
// console.log("新数据:",newData,oldData)
that
.
repProjectName
=
newData
||
'gic-web'
;
},
},
mounted
(){
var
that
=
this
;
that
.
repProjectName
=
that
.
projectName
||
'gic-web'
;
// 获取 showType
that
.
linkShowType
=
that
.
showType
||
0
;
that
.
getLinksList
(
0
,
1
)
},
components
:
{
Treeselect
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.el-tab-pane
{
min-height
:
200px
;
}
.vue-treeselect
{
display
:
inline-block
;
vertical-align
:
top
;
}
/* .vue-treeselect /deep/ .vue-treeselect__single-value {
color: #ff0000;
}*/
.inline-block
{
display
:
inline-block
;
}
.goods-link-content
{
padding
:
15px
0
20px
0
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
.goods-link-list
{
font-size
:
0
;
li
:
nth-child
(
3
n
+
3
)
{
margin-right
:
0
;
}
}
}
.goods-link-item
{
display
:
inline-block
;
width
:
310px
;
padding
:
10px
10px
;
/*height: 110px;*/
border
:
1px
solid
#e7e7eb
;
margin-right
:
7px
;
margin-bottom
:
10px
;
cursor
:
pointer
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.goods-link-item
img
{
width
:
80px
;
height
:
80px
;
display
:
inline-block
;
/*margin-top: 10px;*/
}
.goods-message
{
width
:
65%
;
/*margin-top: 10px;*/
vertical-align
:
top
;
margin-left
:
5px
;
white-space
:
normal
;
word-break
:
break-all
;
font-size
:
14px
;
}
.links-tools-row
/
deep
/
{
/*overflow: hidden;*/
font-size
:
0
;
.vue-treeselect+.vue-treeselect{
margin-left
:
10px
;
}
}
.links-tools-row
{
/*overflow: hidden;*/
font-size
:
0
;
.vue-treeselect+.vue-treeselect{
margin-left
:
10px
;
}
}
/* 分页 */
.links-tools-page
{
text-align
:
right
;
}
.goods-category
{
height
:
300px
;
overflow
:
auto
;
}
/* 自定义 */
.definepage
{
height
:
300px
;
overflow
:
auto
;
.definepage-ul
{
li
{
height
:
50px
;
line-height
:
50px
;
cursor
:
pointer
;
&:hover
{
background
:
#f5f5f8
;
}
}
}
}
/************************************************/
.links-types
{
font-size
:
0
;
.types-title
{
display
:
inline-block
;
width
:
69px
;
text-align
:
right
;
font-size
:
14px
;
padding-right
:
10px
;
}
.el-select
+
.el-select
{
margin-left
:
10px
;
}
.el-select.el-select--large
+
.el-select.el-select--large
{
margin-left
:
10px
;
}
/* 三级 wrap */
.three-level-wrap
{
display
:
inline-block
;
vertical-align
:
top
;
margin-left
:
10px
;
}
}
/* 商品链接 */
.goods-links-contian
{
margin-top
:
30px
;
padding
:
20px
;
border
:
1px
solid
#e8e8e8
;
border-radius
:
2px
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
.links-tools-row
{
font-size
:
0
;
}
.goods-link-item
{
&:hover
{
border
:
1px
solid
#409EFF
;
}
&
.goodSelect
{
border
:
1px
solid
#409EFF
;
}
.limit-2
{
width
:
100%
;
display
:
-webkit-box
;
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
2
;
white-space
:
pre-wrap
;
word-break
:
break-all
;
overflow
:
hidden
;
line-height
:
18px
;
max-height
:
36px
;
}
.pro-name
{
color
:
#303133
;
}
.pro-code
{
margin
:
5px
0
;
width
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.gray-color
{
color
:
#909399
;
font-size
:
14px
;
line-height
:
18px
;
}
.pro-price
{
display
:
inline-block
;
width
:
100%
;
color
:
#303133
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
}
}
/* h5链接 */
.h5link-row
{
width
:
100%
;
margin-top
:
22px
;
label
{
display
:
inline-block
;
width
:
71px
;
margin-right
:
7px
;
text-align
:
right
;
}
.el-input
,
.el-textarea
{
width
:
450px
;
}
.el-textarea
{
vertical-align
:
top
;
}
.h5link-help
{
padding-left
:
10px
;
font-size
:
10px
;
color
:
#5073FD
;
}
.dynamic-param-select
{
vertical-align
:
top
;
}
}
/* tab linktools*/
.link-tools-contain
/
deep
/
{
.vue-treeselect-helper-zoom-effect-off
{
transform
:
none
!important
;
}
/**
* Animations
*/
@keyframes
vue-treeselect-animation-fade-in
{
0
%
{
opacity
:
0
;
}
}
@keyframes
vue-treeselect-animation-bounce
{
0
%,
100
%
{
transform
:
scale
(
0
);
}
50
%
{
transform
:
scale
(
1
);
}
}
@keyframes
vue-treeselect-animation-rotate
{
100
%
{
transform
:
rotate
(
360deg
);
}
}
/**
* Transitions
*/
.vue-treeselect__multi-value-item--transition-enter-active
,
.vue-treeselect__multi-value-item--transition-leave-active
{
transition-duration
:
200ms
;
transition-property
:
transform
,
opacity
;
}
.vue-treeselect__multi-value-item--transition-enter-active
{
transition-timing-function
:
ease-out-circ
;
}
.vue-treeselect__multi-value-item--transition-leave-active
{
transition-timing-function
:
ease-out-cubic
;
position
:
absolute
;
}
.vue-treeselect__multi-value-item--transition-enter
,
.vue-treeselect__multi-value-item--transition-leave-to
{
transform
:
scale
(
0.7
);
opacity
:
0
;
}
.vue-treeselect__multi-value-item--transition-move
{
transition
:
200ms
transform
ease-out-quart
;
}
.vue-treeselect__menu--transition-enter-active
,
.vue-treeselect__menu--transition-leave-active
{
/* to be overriden */
}
.vue-treeselect__menu--transition-enter
,
.vue-treeselect__menu--transition-leave-to
{
/* to be overriden */
}
.vue-treeselect__list--transition-enter-active
,
.vue-treeselect__list--transition-leave-active
{
/* to be overriden */
}
.vue-treeselect__list--transition-enter
,
.vue-treeselect__list--transition-leave-to
{
/* to be overriden */
}
/**
* Namespace
*/
.vue-treeselect
{
position
:
relative
;
text-align
:
left
;
}
.vue-treeselect
div
,
.vue-treeselect
span
{
box-sizing
:
border-box
;
}
.vue-treeselect
svg
{
fill
:
currentColor
;
}
/**
* Control
*/
.vue-treeselect__control
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
height
:
36px
;
border
:
1px
solid
#ddd
;
border-radius
:
5px
;
background
:
#fff
;
transition-duration
:
200ms
;
transition-property
:
border-color
,
box-shadow
,
width
,
height
,
background-color
,
opacity
;
transition-timing-function
:
ease-out-cubic
;
}
.vue-treeselect
:not
(
.vue-treeselect--disabled
)
:not
(
.vue-treeselect--focused
)
.vue-treeselect__control
:hover
{
border-color
:
#cfcfcf
;
}
.vue-treeselect--focused
:not
(
.vue-treeselect--open
)
.vue-treeselect__control
{
border-color
:
#039BE5
;
box-shadow
:
0
0
0
3px
rgba
(
3
,
155
,
229
,
0.1
);
}
.vue-treeselect--disabled
.vue-treeselect__control
{
background-color
:
#f9f9f9
;
}
.vue-treeselect--open
.vue-treeselect__control
,
.vue-treeselect__control
:hover
{
border-color
:
#cfcfcf
;
}
.vue-treeselect--open.vue-treeselect--open-below
.vue-treeselect__control
{
border-bottom-left-radius
:
0
;
border-bottom-right-radius
:
0
;
}
.vue-treeselect--open.vue-treeselect--open-above
.vue-treeselect__control
{
border-top-left-radius
:
0
;
border-top-right-radius
:
0
;
}
.vue-treeselect__value-container
,
.vue-treeselect__multi-value
{
width
:
100%
;
vertical-align
:
middle
;
}
.vue-treeselect__value-container
{
display
:
table-cell
;
position
:
relative
;
}
.vue-treeselect--searchable
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__value-container
{
cursor
:
text
;
}
.vue-treeselect__multi-value
{
display
:
inline-block
;
}
.vue-treeselect--has-value
.vue-treeselect__multi-value
{
margin-bottom
:
5px
;
}
.vue-treeselect__placeholder
,
.vue-treeselect__single-value
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
padding-left
:
5px
;
padding-right
:
5px
;
position
:
absolute
;
top
:
0
;
right
:
0
;
bottom
:
0
;
left
:
0
;
line-height
:
34px
;
user-select
:
none
;
pointer-events
:
none
;
}
.vue-treeselect__placeholder
{
color
:
#BDBDBD
;
}
.vue-treeselect__single-value
{
color
:
#333
;
}
.vue-treeselect--focused.vue-treeselect--searchable
.vue-treeselect__single-value
{
color
:
#BDBDBD
;
}
.vue-treeselect__multi-value-item-container
{
display
:
inline-block
;
padding-top
:
5px
;
padding-right
:
5px
;
vertical-align
:
top
;
}
.vue-treeselect__multi-value-item
{
display
:
inline-table
;
background
:
#E3F2FD
;
padding
:
2px
0
;
border
:
1px
solid
transparent
;
border-radius
:
2px
;
color
:
#039BE5
;
font-size
:
12px
;
vertical-align
:
top
;
}
.vue-treeselect
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__multi-value-item
:not
(
.vue-treeselect__multi-value-item-disabled
)
:hover
{
cursor
:
pointer
;
background
:
#E3F2FD
;
color
:
#039BE5
;
}
.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-disabled
{
cursor
:
default
;
background
:
#F5F5F5
;
color
:
#757575
;
}
.vue-treeselect--disabled
.vue-treeselect__multi-value-item
{
cursor
:
default
;
background
:
#fff
;
border-color
:
#e5e5e5
;
color
:
#555
;
}
.vue-treeselect__value-remove
,
.vue-treeselect__multi-value-label
{
display
:
table-cell
;
padding
:
0
5px
;
vertical-align
:
middle
;
}
.vue-treeselect__value-remove
{
cursor
:
pointer
;
color
:
#039BE5
;
padding-left
:
5px
;
border-left
:
1px
solid
#fff
;
line-height
:
0
;
}
.vue-treeselect__multi-value-item
:hover
.vue-treeselect__value-remove
{
color
:
#E53935
;
}
.vue-treeselect--disabled
.vue-treeselect__value-remove
,
.vue-treeselect__multi-value-item-disabled
.vue-treeselect__value-remove
{
display
:
none
;
}
.vue-treeselect__value-remove
>
svg
{
width
:
6px
;
height
:
6px
;
}
.vue-treeselect__multi-value-label
{
padding-right
:
5px
;
white-space
:
pre-line
;
user-select
:
none
;
}
.vue-treeselect__limit-tip
{
display
:
inline-block
;
padding-top
:
5px
;
padding-right
:
5px
;
vertical-align
:
top
;
}
.vue-treeselect__limit-tip-text
{
cursor
:
default
;
display
:
block
;
margin
:
2px
0
;
padding
:
1px
0
;
color
:
#BDBDBD
;
font-size
:
12px
;
font-weight
:
600
;
}
.vue-treeselect__input-container
{
display
:
block
;
max-width
:
100%
;
outline
:
none
;
}
.vue-treeselect--single
.vue-treeselect__input-container
{
font-size
:
inherit
;
height
:
100%
;
}
.vue-treeselect--multi
.vue-treeselect__input-container
{
display
:
inline-block
;
font-size
:
12px
;
vertical-align
:
top
;
}
.vue-treeselect--searchable
.vue-treeselect__input-container
{
padding-left
:
5px
;
padding-right
:
5px
;
}
.vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value
.vue-treeselect__input-container
{
padding-top
:
5px
;
padding-left
:
0
;
}
.vue-treeselect--disabled
.vue-treeselect__input-container
{
display
:
none
;
}
.vue-treeselect__input
,
.vue-treeselect__sizer
{
margin
:
0
;
line-height
:
inherit
;
font-family
:
inherit
;
font-size
:
inherit
;
}
.vue-treeselect__input
{
max-width
:
100%
;
margin
:
0
;
padding
:
0
;
border
:
0
;
outline
:
none
;
box-sizing
:
content-box
;
box-shadow
:
none
;
background
:
none
transparent
;
line-height
:
1
;
vertical-align
:
middle
;
}
.vue-treeselect__input
::-ms-clear
{
display
:
none
;
}
.vue-treeselect--single
.vue-treeselect__input
{
width
:
100%
;
height
:
100%
;
}
.vue-treeselect--multi
.vue-treeselect__input
{
padding-top
:
3px
;
padding-bottom
:
3px
;
}
.vue-treeselect--has-value
.vue-treeselect__input
{
line-height
:
inherit
;
vertical-align
:
top
;
}
.vue-treeselect__sizer
{
position
:
absolute
;
top
:
0
;
left
:
0
;
visibility
:
hidden
;
height
:
0
;
overflow
:
scroll
;
white-space
:
pre
;
}
.vue-treeselect__x-container
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
cursor
:
pointer
;
color
:
#ccc
;
animation
:
200ms
vue-treeselect-animation-fade-in
ease-out-circ
;
}
.vue-treeselect__x-container
:hover
{
color
:
#E53935
;
}
.vue-treeselect__x
{
width
:
8px
;
height
:
8px
;
}
.vue-treeselect__control-arrow-container
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
cursor
:
pointer
;
}
.vue-treeselect--disabled
.vue-treeselect__control-arrow-container
{
cursor
:
default
;
}
.vue-treeselect__control-arrow
{
width
:
9px
;
height
:
9px
;
color
:
#ccc
;
}
.vue-treeselect
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__control-arrow-container
:hover
.vue-treeselect__control-arrow
{
color
:
#616161
;
}
.vue-treeselect--disabled
.vue-treeselect__control-arrow
{
opacity
:
0.35
;
}
.vue-treeselect__control-arrow--rotated
{
transform
:
rotateZ
(
180deg
);
}
/**
* Menu
*/
.vue-treeselect__menu
{
cursor
:
default
;
padding-top
:
5px
;
padding-bottom
:
5px
;
display
:
block
;
position
:
absolute
;
right
:
0
;
left
:
0
;
z-index
:
999
;
overflow-x
:
hidden
;
overflow-y
:
auto
;
border
:
1px
solid
#cfcfcf
;
background
:
#fff
;
line-height
:
180%
;
-webkit-overflow-scrolling
:
touch
;
}
.vue-treeselect--open-below
.vue-treeselect__menu
{
border-bottom-left-radius
:
5px
;
border-bottom-right-radius
:
5px
;
top
:
100%
;
margin-top
:
-1px
;
border-top-color
:
#f2f2f2
;
box-shadow
:
0
1px
0
rgba
(
0
,
0
,
0
,
0.06
);
}
.vue-treeselect--open-above
.vue-treeselect__menu
{
border-top-left-radius
:
5px
;
border-top-right-radius
:
5px
;
bottom
:
100%
;
margin-bottom
:
-1px
;
border-bottom-color
:
#f2f2f2
;
}
.vue-treeselect__indent-level-0
.vue-treeselect__option
{
padding-left
:
5px
;
}
.vue-treeselect__indent-level-0
.vue-treeselect__tip
{
padding-left
:
25px
;
}
.vue-treeselect__indent-level-1
.vue-treeselect__option
{
padding-left
:
25px
;
}
.vue-treeselect__indent-level-1
.vue-treeselect__tip
{
padding-left
:
45px
;
}
.vue-treeselect__indent-level-2
.vue-treeselect__option
{
padding-left
:
45px
;
}
.vue-treeselect__indent-level-2
.vue-treeselect__tip
{
padding-left
:
65px
;
}
.vue-treeselect__indent-level-3
.vue-treeselect__option
{
padding-left
:
65px
;
}
.vue-treeselect__indent-level-3
.vue-treeselect__tip
{
padding-left
:
85px
;
}
.vue-treeselect__indent-level-4
.vue-treeselect__option
{
padding-left
:
85px
;
}
.vue-treeselect__indent-level-4
.vue-treeselect__tip
{
padding-left
:
105px
;
}
.vue-treeselect__indent-level-5
.vue-treeselect__option
{
padding-left
:
105px
;
}
.vue-treeselect__indent-level-5
.vue-treeselect__tip
{
padding-left
:
125px
;
}
.vue-treeselect__indent-level-6
.vue-treeselect__option
{
padding-left
:
125px
;
}
.vue-treeselect__indent-level-6
.vue-treeselect__tip
{
padding-left
:
145px
;
}
.vue-treeselect__indent-level-7
.vue-treeselect__option
{
padding-left
:
145px
;
}
.vue-treeselect__indent-level-7
.vue-treeselect__tip
{
padding-left
:
165px
;
}
.vue-treeselect__indent-level-8
.vue-treeselect__option
{
padding-left
:
165px
;
}
.vue-treeselect__indent-level-8
.vue-treeselect__tip
{
padding-left
:
185px
;
}
.vue-treeselect__option
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
}
.vue-treeselect__option--highlight
{
background
:
#F5F5F5
;
}
.vue-treeselect--single
.vue-treeselect__option--selected
{
background
:
#E3F2FD
;
font-weight
:
600
;
}
.vue-treeselect--single
.vue-treeselect__option--selected
:hover
{
background
:
#E3F2FD
;
}
.vue-treeselect__option--hide
{
display
:
none
;
}
.vue-treeselect__option-arrow-container
,
.vue-treeselect__option-arrow-placeholder
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
}
.vue-treeselect__option-arrow-container
{
cursor
:
pointer
;
}
.vue-treeselect__option-arrow
{
display
:
inline-block
;
width
:
9px
;
height
:
9px
;
color
:
#ccc
;
vertical-align
:
middle
;
transition
:
200ms
transform
ease-out-expo
;
transform
:
rotateZ
(
-90deg
);
}
.vue-treeselect__option-arrow-container
:hover
.vue-treeselect__option-arrow
,
.vue-treeselect--branch-nodes-disabled
.vue-treeselect__option
:hover
.vue-treeselect__option-arrow
{
color
:
#616161
;
}
.vue-treeselect__option-arrow--rotated
{
transform
:
rotateZ
(
0
);
}
.vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter
{
transform
:
rotateZ
(
-90deg
)
!important
;
}
.vue-treeselect__label-container
{
display
:
table-cell
;
vertical-align
:
middle
;
cursor
:
pointer
;
display
:
table
;
width
:
100%
;
table-layout
:
fixed
;
color
:
inherit
;
}
.vue-treeselect__option--disabled
.vue-treeselect__label-container
{
cursor
:
not-allowed
;
color
:
rgba
(
0
,
0
,
0
,
0.25
);
}
.vue-treeselect__checkbox-container
{
display
:
table-cell
;
width
:
20px
;
min-width
:
20px
;
height
:
100%
;
text-align
:
center
;
vertical-align
:
middle
;
}
.vue-treeselect__checkbox
{
display
:
block
;
margin
:
auto
;
width
:
12px
;
height
:
12px
;
border-width
:
1px
;
border-style
:
solid
;
border-radius
:
2px
;
position
:
relative
;
transition
:
200ms
all
ease-out-circ
;
}
.vue-treeselect__check-mark
,
.vue-treeselect__minus-mark
{
display
:
block
;
position
:
absolute
;
left
:
1px
;
top
:
1px
;
background-repeat
:
no-repeat
;
opacity
:
0
;
transition
:
200ms
all
ease
;
}
.vue-treeselect__checkbox--unchecked
{
border-color
:
#E0E0E0
;
background
:
#fff
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--unchecked
{
border-color
:
#039BE5
;
background
:
#fff
;
}
.vue-treeselect__checkbox--indeterminate
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--indeterminate
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__checkbox--checked
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--checked
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__checkbox--disabled
{
border-color
:
#E0E0E0
;
background-color
:
#f7f7f7
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--disabled
{
border-color
:
#E0E0E0
;
background-color
:
#f7f7f7
;
}
.vue-treeselect__label
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
display
:
table-cell
;
padding-left
:
5px
;
max-width
:
100%
;
vertical-align
:
middle
;
cursor
:
inherit
;
}
.vue-treeselect__count
{
font-weight
:
400
;
opacity
:
0.6
;
}
.vue-treeselect__tip
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
color
:
#757575
;
}
.vue-treeselect__tip-text
{
display
:
table-cell
;
vertical-align
:
middle
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
width
:
100%
;
padding-left
:
5px
;
font-size
:
12px
;
}
.vue-treeselect__error-tip
.vue-treeselect__retry
{
cursor
:
pointer
;
font-style
:
normal
;
font-weight
:
600
;
text-decoration
:
none
;
color
:
#039BE5
;
}
.vue-treeselect__icon-container
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
}
.vue-treeselect--single
.vue-treeselect__icon-container
{
padding-left
:
5px
;
}
.vue-treeselect__icon-warning
{
display
:
block
;
margin
:
auto
;
border-radius
:
50%
;
position
:
relative
;
width
:
12px
;
height
:
12px
;
background
:
#FB8C00
;
}
.vue-treeselect__icon-warning
::after
{
display
:
block
;
position
:
absolute
;
content
:
""
;
left
:
5px
;
top
:
2.5px
;
width
:
2px
;
height
:
1px
;
border
:
0
solid
#fff
;
border-top-width
:
5px
;
border-bottom-width
:
1px
;
}
.vue-treeselect__icon-error
{
display
:
block
;
margin
:
auto
;
border-radius
:
50%
;
position
:
relative
;
width
:
12px
;
height
:
12px
;
background
:
#E53935
;
}
.vue-treeselect__icon-error
::before
,
.vue-treeselect__icon-error
::after
{
display
:
block
;
position
:
absolute
;
content
:
""
;
background
:
#fff
;
transform
:
rotate
(
45deg
);
}
.vue-treeselect__icon-error
::before
{
width
:
6px
;
height
:
2px
;
left
:
3px
;
top
:
5px
;
}
.vue-treeselect__icon-error
::after
{
width
:
2px
;
height
:
6px
;
left
:
5px
;
top
:
3px
;
}
.vue-treeselect__icon-loader
{
display
:
block
;
margin
:
auto
;
position
:
relative
;
width
:
12px
;
height
:
12px
;
text-align
:
center
;
animation
:
1.6s
vue-treeselect-animation-rotate
linear
infinite
;
}
.vue-treeselect__icon-loader
::before
,
.vue-treeselect__icon-loader
::after
{
border-radius
:
50%
;
position
:
absolute
;
content
:
""
;
left
:
0
;
top
:
0
;
display
:
block
;
width
:
100%
;
height
:
100%
;
opacity
:
0.6
;
animation
:
1.6s
vue-treeselect-animation-bounce
ease-in-out
infinite
;
}
.vue-treeselect__icon-loader
::before
{
background
:
#039BE5
;
}
.vue-treeselect__icon-loader
::after
{
background
:
#B3E5FC
;
animation-delay
:
-0.8s
;
}
.vue-treeselect
{
display
:
inline-block
;
vertical-align
:
top
;
}
.el-tabs__content
{
overflow
:
auto
;
}
.el-dialog__body
{
border-bottom
:
1px
solid
#e7e7eb
;
}
.el-dialog__footer
{
padding
:
10px
20px
;
}
.el-tree
{
.el-tree-node
{
padding
:
8px
0
;
}
}
.el-dialog
{
/*min-width: 1051px;*/
.el-dialog__header
{
border-bottom
:
1px
solid
#e7e7eb
;
}
}
.min-720
{
.el-dialog
{
min-width
:
720px
;
}
}
.min-1026
{
.el-dialog
{
min-width
:
1026px
;
}
}
.links-tools-input
{
width
:
217px
;
vertical-align
:
top
;
float
:
right
;
/*/deep/ .el-input__inner{
height: 36px;
line-height: 36px;
}*/
}
.vue-treeselect__single-value
{
line-height
:
40px
;
}
/* 不显示每页显示几个 */
.el-pagination__sizes
{
display
:
none
;
}
.vue-treeselect
{
width
:
217px
;
font-size
:
14px
;
.vue-treeselect__control
{
height
:
40px
;
/*line-height: 36px;*/
cursor
:
pointer
;
}
.vue-treeselect__placeholder
{
line-height
:
40px
;
font-size
:
13.3333px
;
}
.vue-treeselect--searchable
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__value-container
{
cursor
:
pointer
;
}
}
.vue-treeselect__control-arrow
{
display
:
none
;
}
.vue-treeselect__control-arrow-container
{
position
:
relative
;
}
.vue-treeselect__control-arrow-container
:after
,
.vue-treeselect__control-arrow-container
:before
{
border
:
6px
solid
transparent
;
border-left
:
6px
solid
#fff
;
width
:
0
;
height
:
0
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
margin-left
:
-6px
;
content
:
' '
;
margin-top
:
-3px
;
-webkit-transform
:
rotate
(
90deg
);
-moz-transform
:
rotate
(
90deg
);
-o-transform
:
rotate
(
90deg
);
transform
:
rotate
(
90deg
);
-webkit-transition
:
-webkit-transform
.3s
;
transition
:
-webkit-transform
.3s
;
transition
:
transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
}
.vue-treeselect__control-arrow-container
:before
{
border-left-color
:
#c0c4cc
;
top
:
52%
;
}
.vue-treeselect--focused
.vue-treeselect__control-arrow-container
:after
,
.vue-treeselect--focused
.vue-treeselect__control-arrow-container
:before
{
margin-top
:
-6px
;
-webkit-transform
:
rotateZ
(
-90deg
);
-moz-transform
:
rotateZ
(
-90deg
);
-o-transform
:
rotateZ
(
-90deg
);
transform
:
rotateZ
(
-90deg
);
-webkit-transition
:
-webkit-transform
.3s
;
transition
:
-webkit-transform
.3s
;
transition
:
transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
}
.vue-treeselect--focused
.vue-treeselect__control-arrow-container
:before
{
border-left-color
:
#c0c4cc
;
top
:
47%
;
}
.vue-treeselect--has-value
.vue-treeselect__multi-value
{
margin-bottom
:
0
;
}
}
</
style
>
linktoolspage.vue
0 → 100644
View file @
b325f655
<!--
/**
* 链接小工具组件(页面内) by fairyly on 2018/06/15
* 组件调用
*/
<linktoolspage :showType="showType" :linkToolsVisible="linkToolsVisible" @linkSelect="linkSelect"/>
import Linktoolspage from 'components/linktools/linktoolspage.vue'
// 链接小工具参数
linkToolsVisible: false, //显示参数
showType: 0, // 显示类型,插件默认 0:显示全部 ,1: (底部导航);2: (公众号菜单:只有小程序的,没有h5)
// methods
// linktools
showLinkDialog() {
this.linkToolsVisible = true;
},
linkSelect(val) {
console.log(val)
// 关闭时隐藏
this.linkToolsVisible = false;
}
components: {
Linktools
}
-->
<
template
>
<!-- 链接小工具 -->
<div
class=
"link-tools-contain"
>
<div
:class=
"activeName == 'first'? 'min-1028':'min-720'"
>
<div
class=
"el-dialog"
>
<div
class=
"el-dialog__body"
>
<!-- 链接类型 -->
<div
class=
"links-types"
>
<label
class=
"types-title"
>
链接类型
</label>
<el-select
v-model=
"linksType"
placeholder=
"请选择"
@
change=
"linksTypeChange"
>
<el-option
v-for=
"item in linksTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<!-- 二级下拉 -->
<el-select
v-model=
"twoLevelValue"
placeholder=
"请选择"
v-if=
"twoLevelVisible"
@
change=
"twoLevelValueChange"
>
<el-option
v-for=
"item in twoLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<!-- 三级下拉 -->
<div
class=
"three-level-wrap"
v-if=
"threeLevelVisible"
>
<!-- 三级单选 -->
<el-select
v-model=
"threeLevelValue"
placeholder=
"请选择"
v-if=
"threeLeveloneVisible"
@
change=
"threeSingleValueChange"
>
<el-option
v-for=
"item in threeLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<!-- 商品分类链接 -->
<treeselect
v-if=
"threeLevelTreeVisible"
v-model=
"threeLevelValue"
:options=
"goodsCategoryOptions"
:normalizer=
"normalizer"
:default-expand-level=
"1"
placeholder=
"所有分类"
noOptionsText=
"暂无数据"
noResultsText=
"无数据"
@
select=
"goodsCategorySelect"
/>
<!-- 搜索后出现下列 -->
<el-select
v-if=
"threeLevelSearchVisible"
v-model=
"threeLevelValue"
multiple
filterable
remote
reserve-keyword
placeholder=
"请输入关键词"
:remote-method=
"remoteMethod"
@
change=
"threeLevelValueChange"
>
<el-option
v-for=
"item in threeLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</div>
<!-- h5 -->
<div
class=
"h5link-contain"
v-if=
"h5linkVisible"
>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
进入条件
</label>
<el-select
class=
"conditionType-select"
v-model=
"h5linkObj.conditionType"
placeholder=
"请选择进入条件"
>
<el-option
v-for=
"item in h5linkObj.conditionTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
名称
</label>
<el-input
v-model=
"h5linkObj.name"
placeholder=
"请输入名称"
></el-input>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
网址
</label>
<el-input
v-model=
"h5linkObj.url"
placeholder=
"请输入网址"
></el-input><a
class=
"h5link-help"
href=
"http://doc.demogic.com/doc/index.php?s=/41&page_id=441"
target=
"_blank"
>
【帮助文档】请联系公司技术人员查看文档配置标准链接
</a>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
固定参数
</label>
<el-input
v-model=
"h5linkObj.fixParam"
type=
"textarea"
resize=
"none"
:rows=
"4"
placeholder=
"请输入固定参数(可选)"
></el-input>
</div>
<div
class=
"h5link-row"
>
<label
class=
"h5link-title"
>
时间戳开关
</label>
<el-switch
v-model=
"h5linkObj.timeSwitch"
@
change=
"timeSwitch($event,h5linkObj.timeSwitch)"
></el-switch>
<!--
<el-select
class=
"dynamic-param-select"
v-model=
"h5linkObj.dynamicPara"
multiple
placeholder=
"请选择动态参数(可选)"
>
<el-option
v-for=
"item in h5linkObj.dynamicParaOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
-->
</div>
</div>
<!-- 商品链接 -->
<div
class=
"goods-links-contian"
v-if=
"goodsLinksVisible"
>
<div
class=
"links-tools-row"
>
<!-- 品类 -->
<treeselect
v-model=
"category"
:options=
"categoryOptions"
:normalizer=
"normalizer"
:default-expand-level=
"1"
:flat=
"true"
placeholder=
"所有品类"
noOptionsText=
"暂无数据"
noResultsText=
"无数据"
no-children-text=
"无数据"
:load-options=
"loadOptions"
:beforeClearAll =
"beforeClearCategory"
@
select=
"categorySelect"
/>
<!-- 分类树形结构 -->
<treeselect
v-model=
"classify"
:options=
"classifyOptions"
:normalizer=
"normalizer"
:default-expand-level=
"1"
placeholder=
"所有分类"
noOptionsText=
"暂无数据"
noResultsText=
"无数据"
noChildrenText=
"无数据"
:beforeClearAll =
"beforeClearClassify"
@
select=
"classifySelect"
/>
<el-input
class=
"links-tools-input"
placeholder=
"请输入商品名称/货号"
v-model=
"searchGoods"
@
keyup
.
native=
"(value) => toSearchInput(value)"
clearable
@
clear=
"clearInput"
>
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i>
</el-input>
</div>
<!-- 商品列表 -->
<div
class=
"goods-link-content"
>
<ul
class=
"goods-link-list"
>
<li
:class=
"item.mallProId == selectGoodId? 'goods-link-item goodSelect': 'goods-link-item'"
v-for=
"(item, index) in goodsList"
@
click=
"selectGoodLinkItem(item)"
>
<img
:src=
"item.mallProImageUrl"
alt=
"商品图片"
/>
<div
class=
"inline-block goods-message"
>
<p
class=
"limit-2 pro-name"
>
{{
item
.
proName
}}
</p>
<p
class=
"gray-color pro-code"
>
货号:
{{
item
.
proCode
}}
</p>
<span
class=
"pro-price"
>
¥
{{
item
.
mallProSpuPrice
}}
</span>
</div>
</li>
</ul>
</div>
<!-- 分页 -->
<div
class=
"links-tools-page"
>
<el-pagination
@
size-change=
"linkSizeChange"
@
current-change=
"linkCurrentChange"
:current-page=
"currentPage"
:page-sizes=
"[9]"
:page-size=
"pageSize"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
<!-- 底部按钮 -->
<span
slot=
"footer"
class=
"dialog-footer"
>
<!--
<el-button
@
click=
"cancelLinkSelect"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirmLinkSelect"
>
确 定
</el-button>
-->
</span>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
// 使用树形插件
// import the component
import
Treeselect
from
'@riophae/vue-treeselect'
;
// import axios from 'axios'
import
qs
from
'qs'
;
export
default
{
name
:
'links'
,
props
:
[
'linkToolsVisible'
,
'showType'
,
'projectName'
],
data
()
{
return
{
repProjectName
:
'gic-web'
,
// 项目名
activeName
:
'first'
,
linkShowType
:
0
,
//传参数判断显示类型
// ---------------------------
twoLevelVisible
:
false
,
// 二级下拉
threeLevelVisible
:
false
,
// 三级整个
// 链接类型
linksType
:
''
,
linksTypeOptions
:
[
// {
// id: '1',
// value: 'shoplink',
// label: '商城链接'
// },
// {
// id: '2',
// value: 'memberlink',
// label: '会员功能链接'
// },
// {
// id: '3',
// value: 'definelink',
// label: '自定义页面'
// },
// {
// id: '4',
// value: 'h5link',
// label: 'H5页面'
// },
// {
// id: '5',
// value: 'otherlink',
// label: '其他小程序'
// }
],
// 二级数据
twoLevelValue
:
''
,
twoLevelOptions
:
[
// {
// id: '1',
// value: 'shoplink',
// label: '商城链接'
// },
],
// 三级数据
threeLeveloneVisible
:
false
,
// 三级中第一个下拉单选
threeLevelTreeVisible
:
false
,
// 三级中第二个下拉树形结构
threeLevelSearchVisible
:
false
,
// 三级中第三个搜索下拉
threeLevelValue
:
''
,
threeLevelOptions
:
[
// {
// id: '1',
// value: 'shoplink',
// label: '商城链接'
// },
],
// h5link
h5linkVisible
:
false
,
h5linkObj
:
{
name
:
''
,
url
:
''
,
fixParam
:
''
,
timeSwitch
:
false
,
// 默认false->0: 关闭; true->1: 开启
dynamicPara
:
''
,
dynamicParaOptions
:
[
// 2018.6.12 动态参数目前让写页面
{
value
:
'openid'
,
label
:
'openid'
},
{
value
:
'unionid'
,
label
:
'unionid'
},
{
value
:
'wxOpenid'
,
label
:
'wxOpenid'
},
{
value
:
'appkey'
,
label
:
'appkey'
},
{
value
:
'enterpriseId'
,
label
:
'enterpriseId'
},
{
value
:
'appid'
,
label
:
'appid'
},
{
value
:
'memberID'
,
label
:
'memberID'
},
],
// 进入条件
conditionType
:
'0'
,
conditionTypeOptions
:[
{
value
:
'0'
,
label
:
'不限'
},
{
value
:
'1'
,
label
:
'开卡会员'
},
{
value
:
'2'
,
label
:
'认证会员'
},
]
},
// ---------------------------
// ---------------------------
// 父组件传递的 props
mylinkToolsVisible
:
this
.
linkToolsVisible
,
// 商品链接
goodsLinksVisible
:
false
,
searchGoods
:
''
,
category
:
null
,
// 品类
categoryOptions
:
[
// {
// key: 'a',
// name: 'a',
// subOptions: [ {
// key: 'aa',
// name: 'aa',
// } ],
// }
],
normalizer
(
node
/*, id */
)
{
// there is an extra `id` argument,
// which could be useful if you have multiple instances
// of vue-treeselect that share the same `normalizer` function
return
{
id
:
node
.
key
,
label
:
node
.
name
,
children
:
node
.
subOptions
,
}
},
// 商品列表数据
selectGoodId
:
''
,
goodsList
:
[
// {
// id:'111',
// proName: '美商海盗船Gaming系列 K70 RGB Rapidfire',
// proCode: "errerr",
// mallProImageUrl: 'https://pic01-10001430.image.myqcloud.com/adb6387e-a3f4-4b7f-a7dd-1b7fe242f9f7',
// mallProSpuPrice: 567
// }
],
// 分页
currentPage
:
1
,
// 当前页
pageSize
:
9
,
// 一页显示的个数
total
:
0
,
// 总数
// 分类
classify
:
null
,
classifyOptions
:
[
// {
// key: 'b',
// name: 'b',
// subOptions: [ {
// key: 'bb',
// name: 'bb',
// } ],
// }
],
// 商品分类
goodsCategory
:
null
,
goodsCategoryOptions
:
[
// {
// key: 'a',
// name: 'a',
// subOptions: [
// {
// key: 'aa',
// name: 'aa',
// }
// ],
// }
],
// 保存需要的参数
oneLevelTypeValue
:
''
,
twoLevelSelectValue
:
''
,
threeLevelSelectValue
:
''
,
// 触发传递的对象
selectLinkObj
:
{
id
:
''
,
name
:
''
,
url
:
''
,
params
:
''
,
timeSwitch
:
0
},
// 获取 location origin
baseUrl
:
''
,
}
},
beforeMount
()
{
var
that
=
this
var
host
=
window
.
location
.
origin
;
console
.
log
(
"当前host:"
,
host
)
if
(
host
.
indexOf
(
'localhost'
)
!=
'-1'
)
{
that
.
baseUrl
=
'http://gicdev.demogic.com'
;
}
else
{
that
.
baseUrl
=
host
}
},
methods
:
{
// --------------------------------------------------
// 选择类型改变 (一级选择,保存选择类型)
linksTypeChange
:
function
(
e
)
{
var
that
=
this
console
.
log
(
"选择的链接Id:"
+
e
)
var
selectOneItem
=
''
;
that
.
linksTypeOptions
.
forEach
(
function
(
ele
,
inde
){
if
(
ele
.
linkId
==
e
)
{
selectOneItem
=
ele
}
})
// 保存选择的类型
that
.
oneLevelTypeValue
=
selectOneItem
.
type
;
console
.
log
(
"that.oneLevelTypeValue:"
,
that
.
oneLevelTypeValue
)
console
.
log
(
"一级选择的类型:"
,
selectOneItem
)
// 判断出现下拉内容/h5部分
// 每次修改选择类型,清空已选择的值
that
.
selectLinkObj
.
name
=
''
;
that
.
selectLinkObj
.
url
=
''
;
that
.
selectLinkObj
.
params
=
''
;
that
.
twoLevelSelectValue
=
''
;
that
.
threeLevelSelectValue
=
''
;
// 如果是 h5,二级,三级隐藏,
var
type
=
selectOneItem
.
type
==
5
?
true
:
false
;
that
.
setOneLevelVisible
(
type
,
selectOneItem
)
},
// set onelevel visible
setOneLevelVisible
(
type
,
selectOneItem
)
{
var
that
=
this
;
if
(
type
)
{
// 设置选择的 id
that
.
selectLinkObj
.
id
=
selectOneItem
.
linkId
;
console
.
log
(
"一级选择obj:"
,
that
.
selectLinkObj
)
that
.
h5linkVisible
=
true
;
// h5 链接参数输入部分显示
that
.
twoLevelVisible
=
false
;
// 二级部分隐藏
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
goodsLinksVisible
=
false
;
// 商品链接列表部分
}
else
{
// 不是 h5,显示二级,隐藏三级
that
.
h5linkVisible
=
false
;
// h5 链接参数输入部分隐藏
that
.
twoLevelVisible
=
true
;
// 二级部分显示
that
.
twoLevelOptions
=
[];
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
goodsLinksVisible
=
false
;
// 商品链接列表部分
that
.
twoLevelValue
=
''
;
// 清空二级数据
that
.
threeLevelValue
=
''
;
// 清空三级数据
// 如果是自定义
if
(
selectOneItem
.
type
==
6
)
{
console
.
log
(
"自定义:"
,
selectOneItem
)
that
.
selectLinkObj
.
id
=
selectOneItem
.
linkId
;
// that.selectLinkObj.name = selectOneItem.label;
that
.
selectLinkObj
.
url
=
selectOneItem
.
content
;
that
.
getDefinePage
();
console
.
log
(
that
.
selectLinkObj
)
return
false
;
}
// 清空设置选择的 id
that
.
selectLinkObj
.
id
=
''
;
console
.
log
(
"一级选择obj:"
,
that
.
selectLinkObj
)
// 获取二级列表数据
that
.
getLinksList
(
selectOneItem
.
linkId
,
2
)
}
},
// twoLevelValueChange (二级选择,保存选择类型)
twoLevelValueChange
(
e
)
{
var
that
=
this
console
.
log
(
"二级选择值:"
,
e
)
// 判断自定义
if
(
that
.
oneLevelTypeValue
==
6
)
{
var
selectDefineItem
=
''
that
.
twoLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
id
)
{
selectDefineItem
=
ele
;
}
})
that
.
selectLinkObj
.
name
=
selectDefineItem
.
label
;
that
.
selectLinkObj
.
params
=
{
pageId
:
e
}
console
.
log
(
'二级选择是自定义:'
,
that
.
twoLevelOptions
,
that
.
selectLinkObj
)
return
;
}
var
selectTwoItem
=
''
;
that
.
twoLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
linkId
)
{
selectTwoItem
=
ele
;
}
})
console
.
log
(
"二级选择的类型:"
,
selectTwoItem
)
// 每次选择清空原有选择参数
that
.
selectLinkObj
.
params
=
''
;
// 设置选择的 id
that
.
selectLinkObj
.
id
=
e
;
console
.
log
(
"二级选择的 obj: "
,
that
.
selectLinkObj
.
id
)
// 判断是否结束, 1:结束;
if
(
selectTwoItem
.
type
==
1
||
selectTwoItem
.
type
==
4
||
selectTwoItem
.
type
==
6
)
{
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
threeLevelValue
=
''
;
// 清空三级数据
that
.
twoLevelSelectValue
=
''
;
// 清空门店签到
that
.
threeLevelSelectValue
=
''
;
//清空商品分类
// 清空已经选择
that
.
selectLinkObj
.
name
=
''
;
that
.
selectLinkObj
.
url
=
''
;
// 如果选择商品链接
if
(
selectTwoItem
.
type
==
4
){
that
.
getGoodsList
();
// 获取商品列表
that
.
getGoodsCategory
();
// 获取商品品类
that
.
getGoodsClassify
();
// 获取商品分类
that
.
threeLevelVisible
=
false
;
// 三级部分隐藏
that
.
goodsLinksVisible
=
true
;
// 商品链接列表部分显示
return
false
;
}
that
.
twoLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
value
)
{
that
.
selectLinkObj
.
name
=
ele
.
label
;
that
.
selectLinkObj
.
url
=
ele
.
content
;
}
})
console
.
log
(
"二级结束选择的链接:"
,
that
.
selectLinkObj
);
}
else
{
// 判断三级中下拉/下拉树形/搜索下拉
that
.
goodsLinksVisible
=
false
;
// 商品列表隐藏
that
.
threeLevelVisible
=
true
;
// 三级部分显示
that
.
threeLevelValue
=
''
;
// 清空三级数据
that
.
twoLevelSelectValue
=
''
;
that
.
threeLevelSelectValue
=
''
;
var
twoType
=
selectTwoItem
.
type
;
// 判断三级显示的下拉组件
that
.
setThreeVisible
(
twoType
,
selectTwoItem
)
// 如果是门店,直接返回,需要输入后搜索出现下拉列表
if
(
twoType
==
2
)
{
that
.
twoLevelSelectValue
=
'sign'
;
return
false
;
}
if
(
twoType
==
3
)
{
that
.
twoLevelSelectValue
=
'goodsCate'
;
that
.
getGoodsClassify
();
return
false
;
}
// 获取三级列表数据
that
.
getLinksList
(
selectTwoItem
.
linkId
,
3
,
twoType
)
}
},
// set threelevel visible
setThreeVisible
(
type
,
selectTwoItem
)
{
var
that
=
this
switch
(
type
)
{
// 如果下拉显示
case
0
:
// 单选
that
.
threeLeveloneVisible
=
true
;
// 三级中第一个下拉单选
that
.
threeLevelTreeVisible
=
false
;
// 三级中第二个下拉树形结构
that
.
threeLevelSearchVisible
=
false
;
// 三级中第三个搜索下拉
break
;
case
2
:
// 搜索下拉
that
.
threeLeveloneVisible
=
false
;
// 三级中第一个下拉单选
that
.
threeLevelTreeVisible
=
false
;
// 三级中第二个下拉树形结构
that
.
threeLevelSearchVisible
=
true
;
// 三级中第三个搜索下拉
// 设置链接 门店签到
that
.
selectLinkObj
.
name
=
selectTwoItem
.
name
;
that
.
selectLinkObj
.
url
=
selectTwoItem
.
content
;
console
.
log
(
"二级结束选择的链接:"
,
that
.
selectLinkObj
);
break
;
case
3
:
// 树形结构
that
.
threeLevelValue
=
null
;
that
.
threeLeveloneVisible
=
false
;
// 三级中第一个下拉单选
that
.
threeLevelTreeVisible
=
true
;
// 三级中第二个下拉树形结构
that
.
threeLevelSearchVisible
=
false
;
// 三级中第三个搜索下拉
// 设置链接 商品分类
that
.
selectLinkObj
.
name
=
selectTwoItem
.
name
;
that
.
selectLinkObj
.
url
=
selectTwoItem
.
content
;
break
;
}
},
// 获取商品品类
getGoodsCategory
()
{
var
that
=
this
var
para
=
{
filterGoods
:
1
,
parentId
:
''
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/list_mall_goods_category'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
;
var
onelevelCategory
=
''
;
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
forEach
(
function
(
ele
,
index
){
if
(
ele
.
parentId
==
'-1'
)
{
ele
.
subOptions
=
[];
ele
.
key
=
ele
.
mallCategoryId
onelevelCategory
=
ele
;
resData
.
result
.
splice
(
index
,
1
);
}
})
console
.
log
(
"resdata: "
,
resData
)
var
list
=
resData
.
result
,
lists
=
resData
.
result
;
list
.
forEach
(
function
(
ele
,
index
)
{
if
(
ele
.
isLeaf
==
0
)
{
ele
.
subOptions
=
null
;
}
ele
.
key
=
ele
.
mallCategoryId
;
lists
.
forEach
(
function
(
el
,
ind
)
{
el
.
key
=
el
.
mallCategoryId
;
if
(
el
.
parentId
==
ele
.
mallCategoryId
){
console
.
log
(
index
,
ind
)
ele
.
subOptions
=
[]
ele
.
subOptions
.
push
(
el
)
list
.
splice
(
ind
,
1
)
}
})
})
console
.
log
(
"list:"
,
list
,
onelevelCategory
)
list
.
forEach
(
function
(
ele
,
index
){
onelevelCategory
.
subOptions
.
push
(
ele
)
})
that
.
categoryOptions
=
[];
that
.
categoryOptions
.
push
(
onelevelCategory
);
console
.
log
(
"list:"
,
that
.
categoryOptions
)
return
false
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// 获取商品分类
getGoodsClassify
()
{
var
that
=
this
var
para
=
{
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/list_mall_goods_tag_tree'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
var
list
=
[
resData
.
result
],
lists
=
resData
.
result
;
// list.forEach(function(ele,index) {
// ele.subOptions = [];
// ele.name = ele.tagName;
// ele.key = ele.mallProTagId;
// lists.forEach(function(el,ind) {
// ele.name = ele.tagName;
// ele.key = ele.mallProTagId;
// if(el.parentId == ele.mallProTagId ){
// ele.subOptions.push(el)
// }
// })
// })
// that.goodsCategoryOptions = [];
// that.classifyOptions = [];
// list.forEach(function(ele,index){
// if (ele.parentId == '-1') {
// that.goodsCategoryOptions.push(ele);
// that.classifyOptions.push(ele);
// }
// })
list
.
forEach
(
function
(
ele
,
index
)
{
ele
.
name
=
ele
.
tagName
;
ele
.
key
=
ele
.
mallProTagId
;
if
(
!!
ele
.
childTagList
)
{
ele
.
subOptions
=
that
.
checkChildren
(
ele
.
childTagList
)
}
})
that
.
goodsCategoryOptions
=
list
;
that
.
classifyOptions
=
list
;
// that.classifyOptions = list;
console
.
log
(
"list:"
,
list
,
that
.
goodsCategoryOptions
)
// console.log(that.goodsCategoryOptions)
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
checkChildren
(
childTagList
)
{
var
that
=
this
if
(
!!
childTagList
)
{
childTagList
.
forEach
(
function
(
ele
,
index
){
ele
.
name
=
ele
.
tagName
;
ele
.
key
=
ele
.
mallProTagId
;
if
(
!!
ele
.
childTagList
)
{
ele
.
subOptions
=
that
.
checkChildren
(
ele
.
childTagList
)
}
})
}
// console.log(childTagList)
return
childTagList
;
},
// threeLevelValueChange
threeLevelValueChange
(
e
)
{
var
that
=
this
console
.
log
(
e
,
that
.
threeLevelValue
)
},
// threeSingleValueChange
threeSingleValueChange
(
e
)
{
var
that
=
this
console
.
log
(
e
,
that
.
threeLevelValue
)
var
selThreeItem
=
''
;
that
.
threeLevelOptions
.
forEach
(
function
(
ele
,
index
){
if
(
e
==
ele
.
linkId
)
{
selThreeItem
=
ele
;
}
})
// 非门店签到
that
.
selectLinkObj
.
id
=
e
;
that
.
selectLinkObj
.
url
=
selThreeItem
.
content
;
that
.
selectLinkObj
.
name
=
selThreeItem
.
name
},
// 获取自定义列表
getDefinePage
()
{
var
that
=
this
;
var
para
=
{
pageType
:
1
,
title
:
''
,
currentPage
:
1
,
pageSize
:
50
,
status
:
1
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-admin/list-page'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
pageId
;
ele
.
label
=
ele
.
title
;
ele
.
value
=
ele
.
pageId
})
console
.
log
(
"自定义列表:"
,
resData
.
result
.
result
)
that
.
twoLevelOptions
=
resData
.
result
.
result
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// --------------------------------------------------
// -------------------------------------------
// 选择树形节点方法
// 商品链接部分 categorySelect
categorySelect
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
category
)
that
.
category
=
node
.
key
// 重新获取商品列表
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
beforeClearCategory
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
)
that
.
category
=
null
;
// 重新获取商品列表
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
loadOptions
({
action
,
parentNode
,
callback
})
{
// Typically, do the AJAX stuff here.
// Once the server has responded,
// assign children options to the parent node & call the callback.
// We just use `setTimeout()` here to simulate an async operation
// instead of requesting a real API server for demo purpose.
var
that
=
this
console
.
log
(
action
,
parentNode
,
callback
)
if
(
action
===
"LOAD_CHILDREN_OPTIONS"
)
{
if
(
parentNode
.
key
)
{
that
.
getChildrenNode
(
parentNode
,
parentNode
.
key
)
}
}
},
// 获取子节点方法
getChildrenNode
(
parentNode
,
parentId
)
{
var
that
=
this
var
para
=
{
filterGoods
:
1
,
parentId
:
parentId
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/list_mall_goods_category'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
"获取子节点数据"
,
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
forEach
(
function
(
ele
,
index
){
if
(
ele
.
isLeaf
==
0
)
{
ele
.
subOptions
=
null
;
}
else
{
ele
.
subOptions
=
[]
}
ele
.
key
=
ele
.
mallCategoryId
})
parentNode
.
subOptions
=
resData
.
result
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// classifySelect 分类
classifySelect
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
classify
)
that
.
classify
=
node
.
key
// 重新获取商品列表
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
beforeClearClassify
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
classify
)
that
.
classify
=
null
;
// 重新获取商品列表
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
// 商品分类 goodsCategorySelect
goodsCategorySelect
(
node
,
id
)
{
var
that
=
this
console
.
log
(
node
,
id
,
that
.
threeLevelValue
)
// 调用
// that.selectLinkItem()
},
// --------------------------------------------
// 关闭
handleClose
(
done
)
{
var
that
=
this
that
.
$confirm
(
'确认关闭?'
)
.
then
(
_
=>
{
done
();
that
.
mylinkToolsVisible
=
false
;
console
.
log
(
this
.
mylinkToolsVisible
)
that
.
$emit
(
'linkSelect'
)
})
.
catch
(
_
=>
{
console
.
log
(
'取消关闭'
)
});
},
// 分页
linkSizeChange
(
val
)
{
var
that
=
this
console
.
log
(
`每页
${
val
}
条`
,
that
.
pageSize
);
that
.
pageSize
=
val
;
// 请求商品列表
that
.
getGoodsList
();
},
// 页码变化触发
linkCurrentChange
(
val
)
{
var
that
=
this
console
.
log
(
`当前页:
${
val
}
`
,
that
.
currentPage
);
that
.
currentPage
=
val
;
// 请求商品列表
that
.
getGoodsList
();
},
// 选择商品链接
selectGoodLinkItem
(
item
){
var
that
=
this
console
.
log
(
item
)
that
.
selectGoodId
=
item
.
mallProId
;
// 调用函数传递链接/名字
that
.
selectLinkItem
(
item
)
},
// 选择链接以后调用函数
selectLinkItem
(
item
)
{
var
that
=
this
console
.
log
(
item
)
that
.
selectLinkObj
.
name
=
item
.
proName
;
that
.
selectLinkObj
.
url
=
item
.
url
;
that
.
selectLinkObj
.
params
=
{
"proId"
:
item
.
mallProId
};
// 2018.6.28修改参数 proId
// that.$emit('linkSelect')
},
// 搜索输入
toSearchInput
:
function
(
value
)
{
var
that
=
this
;
console
.
log
(
"搜索////////:"
,
that
.
searchGoods
,
value
)
// 搜索重置当前页 为 1
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
// 清空输入
clearInput
:
function
(
e
)
{
var
that
=
this
;
console
.
log
(
e
,
that
.
searchGoods
);
// 搜索重置当前页 为 1
if
(
that
.
currentPage
==
1
)
{
that
.
getGoodsList
();
}
else
{
that
.
currentPage
=
1
;
that
.
getGoodsList
();
}
},
// 获取商品列表
getGoodsList
()
{
var
that
=
this
console
.
log
(
"获取商品列表"
)
var
para
=
{
pageNum
:
that
.
currentPage
,
searchparams
:
that
.
searchGoods
||
''
,
pageSize
:
that
.
pageSize
,
// 品类
mallCategoryId
:
that
.
category
,
tagId
:
that
.
classify
,
// 分类
requestProject
:
that
.
repProjectName
};
// that.currentPage = 1;
// that.pageSize = 10;
// that.total = 50;
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-mall/page-mall-goods'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
that
.
goodsList
=
resData
.
result
.
result
that
.
total
=
resData
.
result
.
totalCount
console
.
log
(
that
.
total
)
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
// 搜索后出现下拉列表
// 搜索
remoteMethod
(
query
)
{
var
that
=
this
;
console
.
log
(
"query:"
,
query
,
that
.
threeLevelValue
)
var
that
=
this
;
if
(
query
!==
''
)
{
// 获取搜索列表数据
that
.
getStoreList
(
query
,
that
.
threeLevelValue
);
}
else
{
that
.
threeLevelOptions
=
[];
}
},
// h5 时间开关
timeSwitch
(
e
,
obj
)
{
var
that
=
this
console
.
log
(
e
,
obj
)
},
// 取消操作
cancelLinkSelect
()
{
var
that
=
this
this
.
$confirm
(
'确认关闭?'
,
''
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
''
}).
then
(()
=>
{
console
.
log
(
"点击确认"
)
that
.
$emit
(
'linkSelect'
)
}).
catch
(()
=>
{
console
.
log
(
"取消 取消关闭"
)
});
},
// 确认操作
confirmLinkSelect
()
{
var
that
=
this
console
.
log
(
that
.
linksType
,
that
.
twoLevelValue
,
that
.
threeLevelValue
)
// 如果选择 h5 判断选择的链接
if
(
that
.
oneLevelTypeValue
==
5
)
{
if
(
!
that
.
h5linkObj
.
name
.
trim
()
||
!
that
.
h5linkObj
.
url
.
trim
())
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请填写链接内容"
})
return
;
}
that
.
selectLinkObj
.
conditionType
=
that
.
h5linkObj
.
conditionType
;
that
.
selectLinkObj
.
name
=
that
.
h5linkObj
.
name
;
that
.
selectLinkObj
.
url
=
that
.
h5linkObj
.
url
;
// +'?'+that.h5linkObj.fixParam+'&'+that.h5linkObj.dynamicPara;
that
.
selectLinkObj
.
params
=
that
.
h5linkObj
.
fixParam
that
.
selectLinkObj
.
timeSwitch
=
(
that
.
h5linkObj
.
timeSwitch
==
true
?
1
:
0
)
console
.
log
(
that
.
selectLinkObj
)
// that.selectLinkObj.fixParam = that.h5linkObj.fixParam;
// that.selectLinkObj.dynamicPara = that.h5linkObj.dynamicPara;
// 触发父组件方法,传递参数
that
.
transData
();
return
;
}
// 如果选择的自定义页面
if
(
that
.
oneLevelTypeValue
==
6
)
{
if
(
!
that
.
twoLevelValue
.
trim
())
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请选择自定义页面"
})
return
;
}
// 触发父组件方法,传递参数
console
.
log
(
that
.
selectLinkObj
)
that
.
transData
();
return
;
}
// 如果门店签到
console
.
log
(
"门店签到:"
,
that
.
twoLevelSelectValue
)
// console.log(that.checkTwoLevel(that.twoLevelSelectValue))
if
(
that
.
twoLevelSelectValue
==
'sign'
){
// console.log("///////",that.checkTwoLevel(that.twoLevelSelectValue))
if
(
!
that
.
checkTwoLevel
(
that
.
twoLevelSelectValue
)){
return
false
;
}
return
false
;
}
// 如果是商品分类
if
(
that
.
twoLevelSelectValue
==
'goodsCate'
){
if
(
!
that
.
checkTwoLevel
(
that
.
twoLevelSelectValue
)){
return
false
;
}
return
false
;
}
console
.
log
(
that
.
selectLinkObj
)
if
(
!!
that
.
selectLinkObj
.
name
&&!!
that
.
selectLinkObj
.
id
)
{
// 触发父组件方法,传递参数
that
.
transData
();
}
else
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请选择链接"
})
}
},
checkTwoLevel
(
v
)
{
var
that
=
this
console
.
log
(
that
.
threeLevelValue
)
if
(
!
that
.
threeLevelValue
||
!
that
.
threeLevelValue
.
length
)
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
"请选择"
+
(
v
==
'sign'
?
'门店'
:
'商品分类'
)
})
return
false
;
}
that
.
selectLinkObj
.
url
=
that
.
selectLinkObj
.
url
;
// +'?'+that.threeLevelValue
that
.
selectLinkObj
.
params
=
{
"storeId"
:
that
.
threeLevelValue
}
// 触发父组件方法,传递参数
that
.
transData
();
},
// 重置所有组件
resetAll
()
{
var
that
=
this
that
.
h5linkVisible
=
false
;
that
.
linksType
=
''
;
that
.
twoLevelVisible
=
false
;
// 二级下拉
that
.
threeLevelVisible
=
false
;
// 三级整个
that
.
goodsLinksVisible
=
false
;
// 商品列表隐藏
that
.
twoLevelValue
=
''
;
// 清空所有选择的
that
.
twoLevelSelectValue
=
''
;
that
.
threeLevelValue
=
''
;
// 清空所有选择的
that
.
selectLinkObj
=
{
url
:
''
,
name
:
''
}
that
.
currentPage
=
1
;
that
.
total
=
0
;
that
.
pageSize
=
9
;
that
.
searchGoods
=
''
;
that
.
classify
=
null
;
that
.
category
=
null
;
that
.
h5linkObj
.
name
=
''
;
that
.
h5linkObj
.
url
=
''
;
that
.
h5linkObj
.
fixParam
=
''
;
// that.h5linkObj.dynamicPara ='';
},
// 触发父组件方法,传递参数
transData
()
{
var
that
=
this
;
that
.
$emit
(
'linkSelect'
,
that
.
selectLinkObj
)
that
.
resetAll
();
},
// 获取一级列表/二级列表
getLinksList
(
parentId
,
num
,
twoType
)
{
var
that
=
this
;
// 如果不传传的显示类型,设置
twoType
=
twoType
?
twoType
:
''
;
var
para
=
{
parentId
:
parentId
,
requestProject
:
that
.
repProjectName
,
linkScene
:
that
.
linkShowType
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-plug/list-link-data'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
that
.
setLevelListOptions
(
parentId
,
resData
.
result
,
num
,
twoType
)
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
setLevelListOptions
(
parentId
,
result
,
num
,
twoType
)
{
var
that
=
this
// 设置一级
if
(
parentId
==
0
)
{
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
linkId
;
ele
.
label
=
ele
.
name
;
ele
.
value
=
ele
.
linkId
;
})
that
.
linksTypeOptions
=
result
console
.
log
(
"获取一级类型: "
,
that
.
linksTypeOptions
)
return
;
}
// 设置二级
if
(
num
==
2
&&
result
[
0
])
{
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
linkId
;
ele
.
label
=
ele
.
name
;
ele
.
value
=
ele
.
linkId
})
that
.
twoLevelOptions
=
result
console
.
log
(
"获取二级类型: "
,
that
.
twoLevelOptions
)
return
;
}
// 设置三级
if
(
num
==
3
&&
result
[
0
])
{
// 如果是分类
// if (twoType == 3) {
// return false;
// }
// 如果是单选下拉
if
(
twoType
==
0
)
{
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
linkId
;
ele
.
label
=
ele
.
name
;
ele
.
value
=
ele
.
linkId
})
that
.
threeLevelOptions
=
result
}
console
.
log
(
"获取三级类型: "
,
that
.
threeLevelOptions
)
return
;
}
},
// 获取门店列表
getStoreList
(
query
,
threeLevelValue
)
{
var
that
=
this
console
.
log
(
threeLevelValue
.
toString
())
var
para
=
{
searchParam
:
query
,
selectedIds
:
threeLevelValue
.
toString
(),
flag
:
null
,
requestProject
:
that
.
repProjectName
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-plug/query-store-by-code-name'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
var
resData
=
res
.
data
if
(
resData
.
errorCode
==
0
)
{
resData
.
result
.
forEach
(
function
(
ele
,
index
){
ele
.
id
=
ele
.
storeId
;
ele
.
label
=
ele
.
storeName
;
ele
.
value
=
ele
.
storeId
})
that
.
threeLevelOptions
=
resData
.
result
return
;
}
that
.
$message
.
error
({
duration
:
1000
,
message
:
resData
.
message
})
})
.
catch
(
function
(
error
)
{
console
.
log
(
error
);
// that.toLogin()
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
})
});
},
toLogin
()
{
var
that
=
this
;
var
para
=
{
loginName
:
'damogic'
,
password
:
'1'
,
eid
:
'ff808081593917d90159398ec6340012'
}
that
.
axios
.
post
(
that
.
baseUrl
+
'/api-auth/do-login'
,
qs
.
stringify
(
para
))
.
then
((
res
)
=>
{
console
.
log
(
res
,
res
.
data
,
res
.
data
.
errorCode
)
that
.
getLinksList
(
0
,
1
)
})
.
catch
(
function
(
error
)
{
console
.
log
(
"error:"
,
error
);
})
}
},
watch
:
{
linkToolsVisible
(
val
)
{
console
.
log
(
val
)
this
.
mylinkToolsVisible
=
val
;
// 新增linkToolsVisible的watch,监听变更并同步到linkToolsVisible上
},
// isWx(val) {
// var that = this
// that.isWxapp = val;
// },
showType
(
val
)
{
var
that
=
this
that
.
linkShowType
=
val
||
0
;
},
projectName
:
function
(
newData
,
oldData
){
var
that
=
this
;
// console.log("新数据:",newData,oldData)
that
.
repProjectName
=
newData
||
'gic-web'
;
},
},
mounted
(){
// console.log('00000');
var
that
=
this
;
// 项目名
that
.
repProjectName
=
that
.
projectName
||
'gic-web'
;
// that.toLogin()
// 获取 ShowType
that
.
linkShowType
=
that
.
showType
||
0
;
that
.
getLinksList
(
0
)
},
components
:
{
Treeselect
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
/************************************************/
/* tab linktools*/
.link-tools-contain
/
deep
/
{
.vue-treeselect-helper-zoom-effect-off
{
transform
:
none
!important
;
}
/**
* Animations
*/
@keyframes
vue-treeselect-animation-fade-in
{
0
%
{
opacity
:
0
;
}
}
@keyframes
vue-treeselect-animation-bounce
{
0
%,
100
%
{
transform
:
scale
(
0
);
}
50
%
{
transform
:
scale
(
1
);
}
}
@keyframes
vue-treeselect-animation-rotate
{
100
%
{
transform
:
rotate
(
360deg
);
}
}
/**
* Transitions
*/
.vue-treeselect__multi-value-item--transition-enter-active
,
.vue-treeselect__multi-value-item--transition-leave-active
{
transition-duration
:
200ms
;
transition-property
:
transform
,
opacity
;
}
.vue-treeselect__multi-value-item--transition-enter-active
{
transition-timing-function
:
ease-out-circ
;
}
.vue-treeselect__multi-value-item--transition-leave-active
{
transition-timing-function
:
ease-out-cubic
;
position
:
absolute
;
}
.vue-treeselect__multi-value-item--transition-enter
,
.vue-treeselect__multi-value-item--transition-leave-to
{
transform
:
scale
(
0.7
);
opacity
:
0
;
}
.vue-treeselect__multi-value-item--transition-move
{
transition
:
200ms
transform
ease-out-quart
;
}
.vue-treeselect__menu--transition-enter-active
,
.vue-treeselect__menu--transition-leave-active
{
/* to be overriden */
}
.vue-treeselect__menu--transition-enter
,
.vue-treeselect__menu--transition-leave-to
{
/* to be overriden */
}
.vue-treeselect__list--transition-enter-active
,
.vue-treeselect__list--transition-leave-active
{
/* to be overriden */
}
.vue-treeselect__list--transition-enter
,
.vue-treeselect__list--transition-leave-to
{
/* to be overriden */
}
/**
* Namespace
*/
.vue-treeselect
{
position
:
relative
;
text-align
:
left
;
}
.vue-treeselect
div
,
.vue-treeselect
span
{
box-sizing
:
border-box
;
}
.vue-treeselect
svg
{
fill
:
currentColor
;
}
/**
* Control
*/
.vue-treeselect__control
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
height
:
36px
;
border
:
1px
solid
#ddd
;
border-radius
:
5px
;
background
:
#fff
;
transition-duration
:
200ms
;
transition-property
:
border-color
,
box-shadow
,
width
,
height
,
background-color
,
opacity
;
transition-timing-function
:
ease-out-cubic
;
}
.vue-treeselect
:not
(
.vue-treeselect--disabled
)
:not
(
.vue-treeselect--focused
)
.vue-treeselect__control
:hover
{
border-color
:
#cfcfcf
;
}
.vue-treeselect--focused
:not
(
.vue-treeselect--open
)
.vue-treeselect__control
{
border-color
:
#039BE5
;
box-shadow
:
0
0
0
3px
rgba
(
3
,
155
,
229
,
0.1
);
}
.vue-treeselect--disabled
.vue-treeselect__control
{
background-color
:
#f9f9f9
;
}
.vue-treeselect--open
.vue-treeselect__control
,
.vue-treeselect__control
:hover
{
border-color
:
#cfcfcf
;
}
.vue-treeselect--open.vue-treeselect--open-below
.vue-treeselect__control
{
border-bottom-left-radius
:
0
;
border-bottom-right-radius
:
0
;
}
.vue-treeselect--open.vue-treeselect--open-above
.vue-treeselect__control
{
border-top-left-radius
:
0
;
border-top-right-radius
:
0
;
}
.vue-treeselect__value-container
,
.vue-treeselect__multi-value
{
width
:
100%
;
vertical-align
:
middle
;
}
.vue-treeselect__value-container
{
display
:
table-cell
;
position
:
relative
;
}
.vue-treeselect--searchable
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__value-container
{
cursor
:
text
;
}
.vue-treeselect__multi-value
{
display
:
inline-block
;
}
.vue-treeselect--has-value
.vue-treeselect__multi-value
{
margin-bottom
:
5px
;
}
.vue-treeselect__placeholder
,
.vue-treeselect__single-value
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
padding-left
:
5px
;
padding-right
:
5px
;
position
:
absolute
;
top
:
0
;
right
:
0
;
bottom
:
0
;
left
:
0
;
line-height
:
34px
;
user-select
:
none
;
pointer-events
:
none
;
}
.vue-treeselect__placeholder
{
color
:
#BDBDBD
;
}
.vue-treeselect__single-value
{
color
:
#333
;
}
.vue-treeselect--focused.vue-treeselect--searchable
.vue-treeselect__single-value
{
color
:
#BDBDBD
;
}
.vue-treeselect__multi-value-item-container
{
display
:
inline-block
;
padding-top
:
5px
;
padding-right
:
5px
;
vertical-align
:
top
;
}
.vue-treeselect__multi-value-item
{
display
:
inline-table
;
background
:
#E3F2FD
;
padding
:
2px
0
;
border
:
1px
solid
transparent
;
border-radius
:
2px
;
color
:
#039BE5
;
font-size
:
12px
;
vertical-align
:
top
;
}
.vue-treeselect
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__multi-value-item
:not
(
.vue-treeselect__multi-value-item-disabled
)
:hover
{
cursor
:
pointer
;
background
:
#E3F2FD
;
color
:
#039BE5
;
}
.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-disabled
{
cursor
:
default
;
background
:
#F5F5F5
;
color
:
#757575
;
}
.vue-treeselect--disabled
.vue-treeselect__multi-value-item
{
cursor
:
default
;
background
:
#fff
;
border-color
:
#e5e5e5
;
color
:
#555
;
}
.vue-treeselect__value-remove
,
.vue-treeselect__multi-value-label
{
display
:
table-cell
;
padding
:
0
5px
;
vertical-align
:
middle
;
}
.vue-treeselect__value-remove
{
cursor
:
pointer
;
color
:
#039BE5
;
padding-left
:
5px
;
border-left
:
1px
solid
#fff
;
line-height
:
0
;
}
.vue-treeselect__multi-value-item
:hover
.vue-treeselect__value-remove
{
color
:
#E53935
;
}
.vue-treeselect--disabled
.vue-treeselect__value-remove
,
.vue-treeselect__multi-value-item-disabled
.vue-treeselect__value-remove
{
display
:
none
;
}
.vue-treeselect__value-remove
>
svg
{
width
:
6px
;
height
:
6px
;
}
.vue-treeselect__multi-value-label
{
padding-right
:
5px
;
white-space
:
pre-line
;
user-select
:
none
;
}
.vue-treeselect__limit-tip
{
display
:
inline-block
;
padding-top
:
5px
;
padding-right
:
5px
;
vertical-align
:
top
;
}
.vue-treeselect__limit-tip-text
{
cursor
:
default
;
display
:
block
;
margin
:
2px
0
;
padding
:
1px
0
;
color
:
#BDBDBD
;
font-size
:
12px
;
font-weight
:
600
;
}
.vue-treeselect__input-container
{
display
:
block
;
max-width
:
100%
;
outline
:
none
;
}
.vue-treeselect--single
.vue-treeselect__input-container
{
font-size
:
inherit
;
height
:
100%
;
}
.vue-treeselect--multi
.vue-treeselect__input-container
{
display
:
inline-block
;
font-size
:
12px
;
vertical-align
:
top
;
}
.vue-treeselect--searchable
.vue-treeselect__input-container
{
padding-left
:
5px
;
padding-right
:
5px
;
}
.vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value
.vue-treeselect__input-container
{
padding-top
:
5px
;
padding-left
:
0
;
}
.vue-treeselect--disabled
.vue-treeselect__input-container
{
display
:
none
;
}
.vue-treeselect__input
,
.vue-treeselect__sizer
{
margin
:
0
;
line-height
:
inherit
;
font-family
:
inherit
;
font-size
:
inherit
;
}
.vue-treeselect__input
{
max-width
:
100%
;
margin
:
0
;
padding
:
0
;
border
:
0
;
outline
:
none
;
box-sizing
:
content-box
;
box-shadow
:
none
;
background
:
none
transparent
;
line-height
:
1
;
vertical-align
:
middle
;
}
.vue-treeselect__input
::-ms-clear
{
display
:
none
;
}
.vue-treeselect--single
.vue-treeselect__input
{
width
:
100%
;
height
:
100%
;
}
.vue-treeselect--multi
.vue-treeselect__input
{
padding-top
:
3px
;
padding-bottom
:
3px
;
}
.vue-treeselect--has-value
.vue-treeselect__input
{
line-height
:
inherit
;
vertical-align
:
top
;
}
.vue-treeselect__sizer
{
position
:
absolute
;
top
:
0
;
left
:
0
;
visibility
:
hidden
;
height
:
0
;
overflow
:
scroll
;
white-space
:
pre
;
}
.vue-treeselect__x-container
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
cursor
:
pointer
;
color
:
#ccc
;
animation
:
200ms
vue-treeselect-animation-fade-in
ease-out-circ
;
}
.vue-treeselect__x-container
:hover
{
color
:
#E53935
;
}
.vue-treeselect__x
{
width
:
8px
;
height
:
8px
;
}
.vue-treeselect__control-arrow-container
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
cursor
:
pointer
;
}
.vue-treeselect--disabled
.vue-treeselect__control-arrow-container
{
cursor
:
default
;
}
.vue-treeselect__control-arrow
{
width
:
9px
;
height
:
9px
;
color
:
#ccc
;
}
.vue-treeselect
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__control-arrow-container
:hover
.vue-treeselect__control-arrow
{
color
:
#616161
;
}
.vue-treeselect--disabled
.vue-treeselect__control-arrow
{
opacity
:
0.35
;
}
.vue-treeselect__control-arrow--rotated
{
transform
:
rotateZ
(
180deg
);
}
/**
* Menu
*/
.vue-treeselect__menu
{
cursor
:
default
;
padding-top
:
5px
;
padding-bottom
:
5px
;
display
:
block
;
position
:
absolute
;
right
:
0
;
left
:
0
;
z-index
:
999
;
overflow-x
:
hidden
;
overflow-y
:
auto
;
border
:
1px
solid
#cfcfcf
;
background
:
#fff
;
line-height
:
180%
;
-webkit-overflow-scrolling
:
touch
;
}
.vue-treeselect--open-below
.vue-treeselect__menu
{
border-bottom-left-radius
:
5px
;
border-bottom-right-radius
:
5px
;
top
:
100%
;
margin-top
:
-1px
;
border-top-color
:
#f2f2f2
;
box-shadow
:
0
1px
0
rgba
(
0
,
0
,
0
,
0.06
);
}
.vue-treeselect--open-above
.vue-treeselect__menu
{
border-top-left-radius
:
5px
;
border-top-right-radius
:
5px
;
bottom
:
100%
;
margin-bottom
:
-1px
;
border-bottom-color
:
#f2f2f2
;
}
.vue-treeselect__indent-level-0
.vue-treeselect__option
{
padding-left
:
5px
;
}
.vue-treeselect__indent-level-0
.vue-treeselect__tip
{
padding-left
:
25px
;
}
.vue-treeselect__indent-level-1
.vue-treeselect__option
{
padding-left
:
25px
;
}
.vue-treeselect__indent-level-1
.vue-treeselect__tip
{
padding-left
:
45px
;
}
.vue-treeselect__indent-level-2
.vue-treeselect__option
{
padding-left
:
45px
;
}
.vue-treeselect__indent-level-2
.vue-treeselect__tip
{
padding-left
:
65px
;
}
.vue-treeselect__indent-level-3
.vue-treeselect__option
{
padding-left
:
65px
;
}
.vue-treeselect__indent-level-3
.vue-treeselect__tip
{
padding-left
:
85px
;
}
.vue-treeselect__indent-level-4
.vue-treeselect__option
{
padding-left
:
85px
;
}
.vue-treeselect__indent-level-4
.vue-treeselect__tip
{
padding-left
:
105px
;
}
.vue-treeselect__indent-level-5
.vue-treeselect__option
{
padding-left
:
105px
;
}
.vue-treeselect__indent-level-5
.vue-treeselect__tip
{
padding-left
:
125px
;
}
.vue-treeselect__indent-level-6
.vue-treeselect__option
{
padding-left
:
125px
;
}
.vue-treeselect__indent-level-6
.vue-treeselect__tip
{
padding-left
:
145px
;
}
.vue-treeselect__indent-level-7
.vue-treeselect__option
{
padding-left
:
145px
;
}
.vue-treeselect__indent-level-7
.vue-treeselect__tip
{
padding-left
:
165px
;
}
.vue-treeselect__indent-level-8
.vue-treeselect__option
{
padding-left
:
165px
;
}
.vue-treeselect__indent-level-8
.vue-treeselect__tip
{
padding-left
:
185px
;
}
.vue-treeselect__option
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
}
.vue-treeselect__option--highlight
{
background
:
#F5F5F5
;
}
.vue-treeselect--single
.vue-treeselect__option--selected
{
background
:
#E3F2FD
;
font-weight
:
600
;
}
.vue-treeselect--single
.vue-treeselect__option--selected
:hover
{
background
:
#E3F2FD
;
}
.vue-treeselect__option--hide
{
display
:
none
;
}
.vue-treeselect__option-arrow-container
,
.vue-treeselect__option-arrow-placeholder
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
}
.vue-treeselect__option-arrow-container
{
cursor
:
pointer
;
}
.vue-treeselect__option-arrow
{
display
:
inline-block
;
width
:
9px
;
height
:
9px
;
color
:
#ccc
;
vertical-align
:
middle
;
transition
:
200ms
transform
ease-out-expo
;
transform
:
rotateZ
(
-90deg
);
}
.vue-treeselect__option-arrow-container
:hover
.vue-treeselect__option-arrow
,
.vue-treeselect--branch-nodes-disabled
.vue-treeselect__option
:hover
.vue-treeselect__option-arrow
{
color
:
#616161
;
}
.vue-treeselect__option-arrow--rotated
{
transform
:
rotateZ
(
0
);
}
.vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter
{
transform
:
rotateZ
(
-90deg
)
!important
;
}
.vue-treeselect__label-container
{
display
:
table-cell
;
vertical-align
:
middle
;
cursor
:
pointer
;
display
:
table
;
width
:
100%
;
table-layout
:
fixed
;
color
:
inherit
;
}
.vue-treeselect__option--disabled
.vue-treeselect__label-container
{
cursor
:
not-allowed
;
color
:
rgba
(
0
,
0
,
0
,
0.25
);
}
.vue-treeselect__checkbox-container
{
display
:
table-cell
;
width
:
20px
;
min-width
:
20px
;
height
:
100%
;
text-align
:
center
;
vertical-align
:
middle
;
}
.vue-treeselect__checkbox
{
display
:
block
;
margin
:
auto
;
width
:
12px
;
height
:
12px
;
border-width
:
1px
;
border-style
:
solid
;
border-radius
:
2px
;
position
:
relative
;
transition
:
200ms
all
ease-out-circ
;
}
.vue-treeselect__check-mark
,
.vue-treeselect__minus-mark
{
display
:
block
;
position
:
absolute
;
left
:
1px
;
top
:
1px
;
background-repeat
:
no-repeat
;
opacity
:
0
;
transition
:
200ms
all
ease
;
}
.vue-treeselect__checkbox--unchecked
{
border-color
:
#E0E0E0
;
background
:
#fff
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--unchecked
{
border-color
:
#039BE5
;
background
:
#fff
;
}
.vue-treeselect__checkbox--indeterminate
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--indeterminate
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__checkbox--checked
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--checked
{
border-color
:
#039BE5
;
background
:
#039BE5
;
}
.vue-treeselect__checkbox--disabled
{
border-color
:
#E0E0E0
;
background-color
:
#f7f7f7
;
}
.vue-treeselect__label-container
:hover
.vue-treeselect__checkbox--disabled
{
border-color
:
#E0E0E0
;
background-color
:
#f7f7f7
;
}
.vue-treeselect__label
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
display
:
table-cell
;
padding-left
:
5px
;
max-width
:
100%
;
vertical-align
:
middle
;
cursor
:
inherit
;
}
.vue-treeselect__count
{
font-weight
:
400
;
opacity
:
0.6
;
}
.vue-treeselect__tip
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
color
:
#757575
;
}
.vue-treeselect__tip-text
{
display
:
table-cell
;
vertical-align
:
middle
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
width
:
100%
;
padding-left
:
5px
;
font-size
:
12px
;
}
.vue-treeselect__error-tip
.vue-treeselect__retry
{
cursor
:
pointer
;
font-style
:
normal
;
font-weight
:
600
;
text-decoration
:
none
;
color
:
#039BE5
;
}
.vue-treeselect__icon-container
{
display
:
table-cell
;
vertical-align
:
middle
;
width
:
20px
;
text-align
:
center
;
line-height
:
0
;
}
.vue-treeselect--single
.vue-treeselect__icon-container
{
padding-left
:
5px
;
}
.vue-treeselect__icon-warning
{
display
:
block
;
margin
:
auto
;
border-radius
:
50%
;
position
:
relative
;
width
:
12px
;
height
:
12px
;
background
:
#FB8C00
;
}
.vue-treeselect__icon-warning
::after
{
display
:
block
;
position
:
absolute
;
content
:
""
;
left
:
5px
;
top
:
2.5px
;
width
:
2px
;
height
:
1px
;
border
:
0
solid
#fff
;
border-top-width
:
5px
;
border-bottom-width
:
1px
;
}
.vue-treeselect__icon-error
{
display
:
block
;
margin
:
auto
;
border-radius
:
50%
;
position
:
relative
;
width
:
12px
;
height
:
12px
;
background
:
#E53935
;
}
.vue-treeselect__icon-error
::before
,
.vue-treeselect__icon-error
::after
{
display
:
block
;
position
:
absolute
;
content
:
""
;
background
:
#fff
;
transform
:
rotate
(
45deg
);
}
.vue-treeselect__icon-error
::before
{
width
:
6px
;
height
:
2px
;
left
:
3px
;
top
:
5px
;
}
.vue-treeselect__icon-error
::after
{
width
:
2px
;
height
:
6px
;
left
:
5px
;
top
:
3px
;
}
.vue-treeselect__icon-loader
{
display
:
block
;
margin
:
auto
;
position
:
relative
;
width
:
12px
;
height
:
12px
;
text-align
:
center
;
animation
:
1.6s
vue-treeselect-animation-rotate
linear
infinite
;
}
.vue-treeselect__icon-loader
::before
,
.vue-treeselect__icon-loader
::after
{
border-radius
:
50%
;
position
:
absolute
;
content
:
""
;
left
:
0
;
top
:
0
;
display
:
block
;
width
:
100%
;
height
:
100%
;
opacity
:
0.6
;
animation
:
1.6s
vue-treeselect-animation-bounce
ease-in-out
infinite
;
}
.vue-treeselect__icon-loader
::before
{
background
:
#039BE5
;
}
.vue-treeselect__icon-loader
::after
{
background
:
#B3E5FC
;
animation-delay
:
-0.8s
;
}
.vue-treeselect
{
display
:
inline-block
;
vertical-align
:
top
;
}
/* .vue-treeselect /deep/ .vue-treeselect__single-value {
color: #ff0000;
}*/
.inline-block
{
display
:
inline-block
;
}
.goods-link-content
{
padding
:
15px
0
20px
0
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
.goods-link-list
{
font-size
:
0
;
li
:
nth-child
(
3
n
+
3
)
{
margin-right
:
0
;
}
}
}
.goods-link-item
{
display
:
inline-block
;
width
:
310px
;
padding
:
10px
10px
;
/*height: 110px;*/
border
:
1px
solid
#e7e7eb
;
margin-right
:
7px
;
margin-bottom
:
10px
;
cursor
:
pointer
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.goods-link-item
img
{
width
:
80px
;
height
:
80px
;
display
:
inline-block
;
/*margin-top: 10px;*/
}
.goods-message
{
width
:
65%
;
/*margin-top: 10px;*/
vertical-align
:
top
;
margin-left
:
5px
;
white-space
:
normal
;
word-break
:
break-all
;
font-size
:
14px
;
}
.links-tools-row
/
deep
/
{
/*overflow: hidden;*/
font-size
:
0
;
.vue-treeselect+.vue-treeselect{
margin-left
:
10px
;
}
}
.links-tools-row
{
font-size
:
0
;
.vue-treeselect+.vue-treeselect{
margin-left
:
10px
;
}
}
/* 分页 */
.links-tools-page
{
text-align
:
right
;
}
.goods-category
{
height
:
300px
;
overflow
:
auto
;
}
/* 自定义 */
.definepage
{
height
:
300px
;
overflow
:
auto
;
.definepage-ul
{
li
{
height
:
50px
;
line-height
:
50px
;
cursor
:
pointer
;
&:hover
{
background
:
#f5f5f8
;
}
}
}
}
.links-types
{
font-size
:
0
;
.types-title
{
display
:
inline-block
;
width
:
69px
;
text-align
:
right
;
font-size
:
14px
;
padding-right
:
12px
;
}
.el-select
+
.el-select
{
margin-left
:
10px
;
}
/* 三级 wrap */
.three-level-wrap
{
display
:
inline-block
;
vertical-align
:
top
;
margin-left
:
10px
;
}
}
/* 商品链接 */
.goods-links-contian
{
margin-top
:
30px
;
padding
:
20px
;
border
:
1px
solid
#e8e8e8
;
border-radius
:
2px
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
.links-tools-row
{
font-size
:
0
;
}
.goods-link-item
{
&:hover
{
border
:
1px
solid
#409EFF
;
}
&
.goodSelect
{
border
:
1px
solid
#409EFF
;
}
.limit-2
{
width
:
100%
;
display
:
-webkit-box
;
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
2
;
white-space
:
pre-wrap
;
word-break
:
break-all
;
overflow
:
hidden
;
line-height
:
18px
;
max-height
:
36px
;
}
.pro-name
{
color
:
#303133
;
}
.pro-code
{
margin
:
5px
0
;
width
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.gray-color
{
color
:
#909399
;
font-size
:
14px
;
line-height
:
18px
;
}
.pro-price
{
display
:
inline-block
;
width
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
color
:
#303133
;
}
}
}
/* h5链接 */
.h5link-row
{
width
:
100%
;
margin-top
:
22px
;
label
{
display
:
inline-block
;
width
:
71px
;
margin-right
:
7px
;
text-align
:
right
;
}
.el-input
,
.el-textarea
{
width
:
450px
;
}
.el-textarea
{
vertical-align
:
top
;
}
.h5link-help
{
padding-left
:
10px
;
font-size
:
10px
;
color
:
#5073FD
;
}
.dynamic-param-select
{
vertical-align
:
top
;
}
}
.el-tabs__content
{
overflow
:
auto
;
}
.el-dialog__body
{
/*border-bottom: 1px solid #e7e7eb;*/
padding
:
0
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.el-dialog__footer
{
padding
:
10px
20px
;
}
.dialog-footer
{
display
:
inline-block
;
padding
:
10px
20px
;
width
:
100%
;
text-align
:
right
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.el-tree
{
.el-tree-node
{
padding
:
8px
0
;
}
}
.el-dialog
{
/*min-width: 1051px;*/
/*margin: 0 0 50px;*/
/*border: 1px solid #e8e8e8;*/
margin
:
0
;
box-shadow
:
none
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
.el-dialog__header
{
border-bottom
:
1px
solid
#e7e7eb
;
}
}
.min-720
{
.el-dialog
{
min-width
:
720px
;
}
}
.min-1028
{
.el-dialog
{
min-width
:
986px
;
}
}
.links-tools-input
{
width
:
217px
;
vertical-align
:
top
;
float
:
right
;
/*/deep/ .el-input__inner{
height: 36px;
line-height: 36px;
}*/
}
.vue-treeselect__single-value
{
line-height
:
40px
;
}
/* 不显示每页显示几个 */
.el-pagination__sizes
{
display
:
none
;
}
.vue-treeselect
{
width
:
217px
;
font-size
:
14px
;
.vue-treeselect__control
{
height
:
40px
;
/*line-height: 36px;*/
cursor
:
pointer
;
}
.vue-treeselect__placeholder
{
line-height
:
40px
;
font-size
:
13.3333px
;
}
.vue-treeselect--searchable
:not
(
.vue-treeselect--disabled
)
.vue-treeselect__value-container
{
cursor
:
pointer
;
}
}
.vue-treeselect
div
,
.vue-treeselect
span
{
-webkit-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.vue-treeselect__control
{
padding-left
:
5px
;
padding-right
:
5px
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
height
:
40px
;
border
:
1px
solid
#ddd
;
border-radius
:
5px
;
background
:
#fff
;
-webkit-transition-duration
:
200ms
;
transition-duration
:
200ms
;
-webkit-transition-property
:
border-color
,
width
,
height
,
background-color
,
opacity
,
-webkit-box-shadow
;
transition-property
:
border-color
,
width
,
height
,
background-color
,
opacity
,
-webkit-box-shadow
;
transition-property
:
border-color
,
box-shadow
,
width
,
height
,
background-color
,
opacity
;
transition-property
:
border-color
,
box-shadow
,
width
,
height
,
background-color
,
opacity
,
-webkit-box-shadow
;
-webkit-transition-timing-function
:
cubic-bezier
(
0.215
,
0.61
,
0.355
,
1
);
transition-timing-function
:
cubic-bezier
(
0.215
,
0.61
,
0.355
,
1
);
}
.vue-treeselect__control-arrow
{
display
:
none
;
}
.vue-treeselect__control-arrow-container
{
position
:
relative
;
}
.vue-treeselect__control-arrow-container
:after
,
.vue-treeselect__control-arrow-container
:before
{
border
:
6px
solid
transparent
;
border-left
:
6px
solid
#fff
;
width
:
0
;
height
:
0
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
margin-left
:
-6px
;
content
:
' '
;
margin-top
:
-3px
;
-webkit-transform
:
rotate
(
90deg
);
-moz-transform
:
rotate
(
90deg
);
-o-transform
:
rotate
(
90deg
);
transform
:
rotate
(
90deg
);
-webkit-transition
:
-webkit-transform
.3s
;
transition
:
-webkit-transform
.3s
;
transition
:
transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
}
.vue-treeselect__control-arrow-container
:before
{
border-left-color
:
#c0c4cc
;
top
:
52%
;
}
.vue-treeselect--focused
.vue-treeselect__control-arrow-container
:after
,
.vue-treeselect--focused
.vue-treeselect__control-arrow-container
:before
{
margin-top
:
-6px
;
-webkit-transform
:
rotateZ
(
-90deg
);
-moz-transform
:
rotateZ
(
-90deg
);
-o-transform
:
rotateZ
(
-90deg
);
transform
:
rotateZ
(
-90deg
);
-webkit-transition
:
-webkit-transform
.3s
;
transition
:
-webkit-transform
.3s
;
transition
:
transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
;
}
.vue-treeselect--focused
.vue-treeselect__control-arrow-container
:before
{
border-left-color
:
#c0c4cc
;
top
:
47%
;
}
.vue-treeselect--has-value
.vue-treeselect__multi-value
{
margin-bottom
:
0
;
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment