Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-3
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
office
haoban-3
Commits
3176d2a3
Commit
3176d2a3
authored
Sep 16, 2022
by
Jings
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 页面添加
parent
9e9115f8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1453 additions
and
0 deletions
+1453
-0
add-relatecopy.vue
src/components/company/add-relatecopy.vue
+430
-0
goodsShowSetCopy.vue
src/views/apps/shoppingCenter/goodsShowSetCopy.vue
+277
-0
guide-setting-copy.vue
src/views/enterprise/guide-setting-copy.vue
+746
-0
no-data_icon.png
static/img/no-data_icon.png
+0
-0
No files found.
src/components/company/add-relatecopy.vue
0 → 100644
View file @
3176d2a3
<!--
* @Descripttion : 当前组件信息
* @Author : 无尘
* @Date : 2020-02-13 16:13:59
* @LastEditors: Drama
* @LastEditTime: 2022-09-15 13:33:03
* @FilePath: /haoban-3/src/components/company/add-relatecopy.vue
-->
<!--
<add-relate :departObj="departObj" @refreshData="refreshData"></add-relate>
import addRelate from '@/components/company/add-relate.vue';
-->
<
template
>
<el-dialog
custom-class=
"add-remote-dialog"
width=
"600px"
title=
"新增关联"
:visible
.
sync=
"departVisible"
append-to-body
:before-close=
"handleClose"
>
<el-form
:model=
"partForm"
label-width=
"95px"
:rules=
"rules"
ref=
"partForm"
class=
"dialog-form"
>
<!--
<el-form-item
label=
""
prop=
"salerName"
>
<el-popover
placement=
"bottom"
title=
""
width=
"457"
v-model=
"visible"
>
<div
class=
"daily-store-select"
>
<div
class=
"select-search"
>
<el-input
placeholder=
"请输入code/手机号搜索进行账号关联"
clearable
maxlength=
"40"
v-model=
"searchSelect"
style=
"width: 100%"
prefix-icon=
"el-icon-search"
@
keyup
.
native=
"(value) => toInput(value, searchSelect)"
@
clear=
"clearSearch"
>
</el-input>
</div>
<div
class=
"el-scrollbar define-search-select"
>
<div
class=
"el-select-dropdown__wrap el-scrollbar__wrap"
style=
"margin-bottom: -5px; margin-right: -5px"
>
<ul
class=
"el-scrollbar__view el-select-dropdown__list"
>
<li
:class=
"['el-select-dropdown__item', item.clerkId == selectId ? 'selected hover' : '']"
v-for=
"item in storeData"
:key=
"item.clerkId"
@
click=
"checkStore(item)"
>
<div
class=
"flex flex-space-between"
>
<div
style=
"line-height: 26px"
>
<span
class=
"block text-ellipsis"
>
{{
item
.
clerkName
}}
(
{{
item
.
clerkCode
}}
)
</span>
<div
class=
"text-ellipsis font-12 color-909399"
>
{{
item
.
storeName
||
'--'
}}
</div>
</div>
<span
v-if=
"item.clerkId == selectId"
class=
"font-12 color-2f54eb el-icon-check flex-align-center"
style=
"display: flex"
></span>
<span
v-if=
"item.relationStatus == 1"
class=
"font-12 color-909399"
>
已添加不能关联
</span><el-button
v-if=
"item.relationStatus == 1"
class=
"m-l-10"
type=
"text"
@
click
.
stop=
"toUnbind(item)"
>
解绑
</el-button>
</div>
</li>
<li
v-if=
"!storeData.length"
class=
"text-center"
><span>
暂无数据
</span></li>
</ul>
</div>
</div>
</div>
<div
class=
"show-select-num cursor-pointer w-558"
slot=
"reference"
>
<div>
{{
partForm
.
salerName
}}
<span
v-if=
"!partForm.salerName"
class=
"font-14 color-c0c4cc"
>
请输入code/手机号搜索进行账号关联
</span></div>
</div>
</el-popover>
</el-form-item>
-->
<el-form-item
label=
"关联角色"
prop=
"glrole"
>
<el-radio-group
v-model=
"partForm.glrole"
>
<el-radio
:label=
"1"
>
导购
</el-radio>
<el-radio
:label=
"2"
>
区经/督导
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"关联账号"
prop=
"clerkId"
class=
"test-wrap"
>
<dm-select-scroller
v-model=
"partForm.clerkId"
placeholder=
"请选择"
:data=
"brandList"
:props=
"props"
:width=
"352"
@
load=
"load"
@
remote-search=
"remoteSearch"
:total-count=
"totalCount"
:clearable=
"true"
></dm-select-scroller>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
class=
"btn-class"
@
click=
"cancel"
>
取消
</el-button>
<el-button
class=
"btn-class"
type=
"primary"
:loading=
"loading"
@
click=
"submitForm('partForm')"
>
确定
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
limitInput
from
'@/components/limit-input.vue'
;
import
{
getRequest
,
postRequest
}
from
'@/api/api'
;
import
errMsg
from
'@/common/js/error'
;
import
showMsg
from
'@/common/js/showmsg'
;
import
{
_debounce
}
from
'@/common/js/public'
;
export
default
{
name
:
'add-relate'
,
components
:
{
limitInput
},
props
:
{
departObj
:
{
type
:
[
Object
,
Array
],
default
()
{
return
{};
}
}
},
data
()
{
return
{
partForm
:
{
salerName
:
''
,
glrole
:
1
,
// TODO: 关联角色 导购 区经/督导
clerkId
:
''
},
brandParams
:
{
pageNum
:
1
,
pageSize
:
10
,
search
:
''
},
// TODO: 远程搜索参数
rules
:
{
salerName
:
[
{
required
:
true
,
message
:
'请选择导购'
,
trigger
:
'change'
}
]
},
searchSelect
:
''
,
storeData
:
[],
selectId
:
''
,
departVisible
:
true
,
loading
:
false
,
visible
:
false
,
brandList
:
[],
// TODO: 远程搜索数组
totalCount
:
0
,
props
:
{
label
:
'clerkName'
,
value
:
'clerkId'
,
childLabel
:
'storeName'
}
};
},
methods
:
{
// TODO: 加载更多
load
()
{
console
.
log
(
'load'
);
this
.
brandParams
.
pageNum
++
;
this
.
getRemoteAccountList
();
},
// TODO: 远程搜索方法
remoteSearch
(
query
)
{
this
.
brandParams
.
search
=
query
;
this
.
brandParams
.
pageNum
=
1
;
this
.
getRemoteAccountList
();
},
// TODO: 获取远程关联账号数据
getRemoteAccountList
(
test
)
{
if
(
this
.
brandParams
.
pageNum
==
1
)
{
this
.
brandList
=
[];
}
// if (!this.brandParams.search) return;
// getRequest('/', { ...this.brandParams }).then(res => {
// // TODO: 逻辑确认
// });
console
.
log
(
'zoule'
);
console
.
log
(
this
.
brandParams
.
search
,
'search--'
);
console
.
log
(
this
.
partForm
.
clerkId
,
'id--'
);
let
testArray
=
[
{
clerkName
:
'admin'
,
clerkCode
:
'1'
,
clerkId
:
'8e414a85362c436dad66385eadd2f318'
,
enterpriseName
:
null
,
enterpriseId
:
'ff8080815dacd3a2015dacd3ef5c0000'
,
storeId
:
'ff808081732e0c720173325c1cf5001c'
,
storeName
:
'8300105乌鲁木齐新市汇嘉时代百货Yatlas哈哈哈哈哈哈哈哈哈哈'
,
relationStatus
:
0
,
staffId
:
null
,
staffName
:
null
},
{
clerkName
:
'admin222'
,
clerkCode
:
'1333'
,
clerkId
:
'8e414a85362c436dad66385eadd2f31822'
,
enterpriseName
:
null
,
enterpriseId
:
'ff8080815dacd3a2015dacd3ef5c000033'
,
storeId
:
'ff808081732e0c720173325c1cf5001c44'
,
storeName
:
'号码摩托'
,
relationStatus
:
0
,
staffId
:
null
,
staffName
:
null
}
];
this
.
brandList
=
testArray
;
// getRequest('/haoban-manage3-web/search-clerk-relation', {
// search: test ? test : this.brandParams.search
// })
// .then(res => {
// let resData = res.data;
// if (resData.errorCode == 1) {
// this.brandList = resData.result || [];
// return;
// }
// errMsg.errorMsg(resData);
// })
// .catch(function(error) {
// this.$message.error({
// duration: 1000,
// message: error.message
// });
// });
},
/**
* 显示pop
*/
showPop
()
{
const
that
=
this
;
that
.
visible
=
true
;
},
/**
* 解绑
*/
toUnbind
(
row
)
{
const
that
=
this
;
that
.
$confirm
(
`导购账号(
${
row
.
clerkName
}
)已绑定
${
row
.
staffName
}
,是否确认解绑?`
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
that
.
visible
=
true
;
that
.
postUnbind
(
row
);
})
.
catch
(()
=>
{
that
.
visible
=
true
;
});
},
postUnbind
(
row
)
{
const
that
=
this
;
let
para
=
{
staffId
:
row
.
staffId
,
clerkId
:
row
.
clerkId
};
postRequest
(
'/haoban-manage3-web/del-clerk-relation'
,
para
)
.
then
(
res
=>
{
let
resData
=
res
.
data
;
if
(
resData
.
errorCode
==
1
)
{
showMsg
.
showmsg
(
'解绑成功'
,
'success'
);
that
.
getData
();
that
.
visible
=
true
;
return
;
}
errMsg
.
errorMsg
(
resData
);
})
.
catch
(
function
(
error
)
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
});
});
},
/**
* 选择
*/
checkStore
(
item
)
{
const
that
=
this
;
if
(
item
.
relationStatus
==
1
)
{
return
false
;
}
that
.
selectId
=
item
.
clerkId
;
that
.
partForm
.
salerName
=
item
.
clerkName
;
that
.
$set
(
that
.
partForm
,
'salerName'
,
item
.
clerkName
);
that
.
$forceUpdate
();
that
.
$nextTick
(()
=>
{
that
.
$refs
[
'partForm'
].
validate
(
valid
=>
{
if
(
valid
)
{
return
false
;
}
});
});
},
/**
* 输入
*/
toInput
:
_debounce
(
function
(
e
,
value
)
{
const
that
=
this
;
if
(
that
.
searchSelect
.
trim
()
==
''
)
{
return
false
;
}
that
.
getData
();
},
500
),
// 搜索清除
clearSearch
()
{
const
that
=
this
;
that
.
storeData
=
[];
},
/**
* 关闭弹窗
*/
handleClose
(
done
)
{
const
that
=
this
;
that
.
$refs
[
'partForm'
].
resetFields
();
that
.
$emit
(
'refreshData'
,
'close'
);
done
();
},
cancel
()
{
const
that
=
this
;
that
.
$refs
[
'partForm'
].
resetFields
();
that
.
$emit
(
'refreshData'
,
'close'
);
},
/**
* 确定保存
*/
submitForm
:
_debounce
(
function
(
form
)
{
const
that
=
this
;
that
.
loading
=
true
;
that
.
$refs
[
form
].
validate
(
valid
=>
{
if
(
valid
)
{
that
.
postAdd
();
}
else
{
that
.
loading
=
false
;
return
false
;
}
});
},
300
),
postAdd
()
{
const
that
=
this
;
let
params
=
{
staffId
:
that
.
departObj
.
staffId
,
// clerkId: that.selectId
clerkId
:
that
.
partForm
.
clerkId
};
console
.
log
(
params
,
'cscsc'
);
that
.
loading
=
false
;
return
;
postRequest
(
'/haoban-manage3-web/add-clerk-relation'
,
params
)
.
then
(
res
=>
{
let
resData
=
res
.
data
;
that
.
loading
=
false
;
if
(
resData
.
errorCode
==
1
)
{
showMsg
.
showmsg
(
'添加成功'
,
'success'
);
that
.
$emit
(
'refreshData'
,
that
.
partForm
);
return
false
;
}
errMsg
.
errorMsg
(
resData
);
})
.
catch
(
function
(
error
)
{
that
.
loading
=
false
;
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
});
});
},
getData
()
{
const
that
=
this
;
let
para
=
{
search
:
that
.
searchSelect
};
getRequest
(
'/haoban-manage3-web/search-clerk-relation'
,
para
)
.
then
(
res
=>
{
let
resData
=
res
.
data
;
if
(
resData
.
errorCode
==
1
)
{
that
.
storeData
=
resData
.
result
||
[];
return
;
}
errMsg
.
errorMsg
(
resData
);
})
.
catch
(
function
(
error
)
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
});
});
}
},
watch
:
{
departObj
(
newData
)
{
// const that = this;
if
(
Object
.
keys
(
newData
).
length
)
{
// that.partForm = newData;
}
}
},
mounted
()
{
// const that = this;
// that.getData();
/* if (Object.keys(that.departObj).length) {
that.partForm = that.departObj;
} */
// TODO: 初始化加载
// this.getRemoteAccountList();
}
};
</
script
>
<
style
lang=
"less"
scoped
>
/
deep
/
.add-remote-dialog
{
//
.el-dialog
{
//
height
:
221px
;
//
}
.el-dialog__header
{
padding
:
24px
24px
0
24px
;
.el-dialog__title
{
line-height
:
25px
;
font-size
:
16px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
color
:
#37383a
;
}
}
.el-dialog__body
{
padding
:
30px
;
}
}
//
.damolish
.el-select-dropdown
.el-select-dropdown__empty
{
//
width
:
352px
;
//
}
//
.damolish
.el-select-dropdown
.el-select-dropdown__item
{
//
height
:
45px
;
//
line-height
:
45px
;
//
}
.w-95
{
width
:
95px
;
}
.w-352
{
width
:
352px
;
}
.m-l-30
{
margin-left
:
30px
;
}
.w-319
{
width
:
319px
;
}
.w-558
{
width
:
558px
;
}
.btn-class
{
box-sizing
:
border-box
;
padding
:
5px
24px
;
width
:
80px
;
height
:
32px
;
}
.damolish
.el-popper
{
min-width
:
352px
;
}
.text-ellipsis
{
max-width
:
200px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
</
style
>
src/views/apps/shoppingCenter/goodsShowSetCopy.vue
0 → 100644
View file @
3176d2a3
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: Drama
* @LastEditTime: 2022-09-14 11:21:41
-->
<
template
>
<div
class=
"app-detail-wrap"
>
<!--
<div
class=
"app-detail-pane border-box p-20"
>
<div
class=
"m-b-20"
>
<span
class=
"font-14 p-r-10"
>
商品展示:
</span>
<el-checkbox
v-model=
"myCustomData.salesGoodsFlag"
>
已上架商品
</el-checkbox><el-checkbox
v-model=
"myCustomData.notSalesGoodsFlag"
>
未上架商品
</el-checkbox>
</div>
<div><el-switch
v-model=
"myCustomData.showPriceFlag"
></el-switch><span
class=
"font-14 color-303133 p-l-10"
>
商品详情屏蔽价格
</span><span
class=
"font-12 color-909399 p-l-10"
>
注:开启后,商品列表及商品详情中会屏蔽价格字段。关闭后显示价格。
</span></div>
<div
class=
"m-t-46"
>
<el-button
v-if=
"$getButtonLimit($buttonCode.saveGoodsSet)"
:limit-code=
"$buttonCode.saveGoodsSet"
type=
"primary"
:loading=
"loading"
@
click=
"submit('searchFlag')"
:disabled=
"$store.state.wxEnterpriseType"
>
保 存
</el-button>
</div>
</div>
-->
<div
class=
"p-l-40 border-box p-t-30"
>
<el-form
v-model=
"myCustomData"
label-width=
"130px"
>
<el-form-item
label=
"商品展示"
><el-checkbox
v-model=
"myCustomData.salesGoodsFlag"
>
已上架商品
</el-checkbox><el-checkbox
v-model=
"myCustomData.notSalesGoodsFlag"
>
未上架商品
</el-checkbox></el-form-item>
<el-form-item
label=
"商品详情价格"
prop=
"showPriceFlag"
>
<div
class=
"setting-radio-item"
>
<el-radio
v-model=
"myCustomData.showPriceFlag"
:label=
"false"
>
屏蔽
</el-radio>
<div
class=
"set-tip-txt"
>
商品列表及商品详情中不显示价格字段
</div>
</div>
<div
class=
"setting-radio-item"
>
<el-radio
v-model=
"myCustomData.showPriceFlag"
:label=
"true"
>
不屏蔽
</el-radio>
<div
class=
"set-tip-txt"
>
商品列表及商品详情中显示价格字段
</div>
</div>
</el-form-item>
<!-- TODO: 字段确定 -->
<el-form-item
label=
"商品品类名称"
prop=
"test"
>
<div
class=
"setting-radio-item m-b-30"
>
<el-radio
v-model=
"myCustomData.test"
label=
"1"
>
一级品类名称
</el-radio>
<div
v-show=
"myCustomData.test == 1"
class=
"tip-fixed"
>
好办小程序 [客户详情] - [消费记录]的消费衣橱商品将按照此设置划分
</div>
</div>
<div
class=
"setting-radio-item m-b-30"
>
<el-radio
v-model=
"myCustomData.test"
label=
"2"
>
二级品类名称
</el-radio>
<div
v-show=
"myCustomData.test == 2"
class=
"tip-fixed"
>
好办小程序 [客户详情] - [消费记录]的消费衣橱商品将按照此设置划分
</div>
</div>
<div
class=
"setting-radio-item m-b-30"
>
<el-radio
v-model=
"myCustomData.test"
label=
"3"
>
三级品类名称
</el-radio>
<div
v-show=
"myCustomData.test == 3"
class=
"tip-fixed"
>
好办小程序 [客户详情] - [消费记录]的消费衣橱商品将按照此设置划分
</div>
</div>
</el-form-item>
</el-form>
</div>
<!-- TODO: save按钮 -->
<div
class=
"fixed-save-btn border-box"
v-if=
"$getButtonLimit($buttonCode.saveGoodsSet)"
>
<el-button
:limit-code=
"$buttonCode.saveGoodsSet"
type=
"primary"
:loading=
"loading"
@
click=
"submit('searchFlag')"
:disabled=
"$store.state.wxEnterpriseType"
>
保存
</el-button>
</div>
</div>
</
template
>
<
script
>
import
showMsg
from
'@/common/js/showmsg'
;
import
errMsg
from
'@/common/js/error'
;
import
{
_debounce
}
from
'@/common/js/public'
;
import
{
postRequest
}
from
'@/api/api'
;
export
default
{
name
:
'app-detail'
,
props
:
{
brandId
:
{
type
:
String
,
default
()
{
return
''
;
}
}
},
data
()
{
return
{
projectName
:
''
,
// 当前项目名
wxEnterpriseRelatedId
:
sessionStorage
.
getItem
(
'userInfos'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'userInfos'
)).
wxEnterpriseId
:
''
,
myCustomData
:
{
salesGoodsFlag
:
false
,
notSalesGoodsFlag
:
false
,
showPriceFlag
:
false
,
test
:
'1'
},
activeId
:
'1'
,
loading
:
false
};
},
methods
:
{
/**
* 保存
*/
submit
:
_debounce
(
function
(
type
)
{
const
that
=
this
;
that
.
loading
=
true
;
that
.
setData
(
type
);
},
500
),
/**
* 保存-API
*/
setData
(
type
)
{
const
that
=
this
;
let
para
=
{
enterpriseId
:
that
.
brandId
,
// wxEnterpriseRelatedId: that.wxEnterpriseRelatedId,
salesGoodsFlag
:
that
.
myCustomData
.
salesGoodsFlag
?
1
:
'0'
,
notSalesGoodsFlag
:
that
.
myCustomData
.
notSalesGoodsFlag
?
1
:
'0'
,
showPriceFlag
:
that
.
myCustomData
.
showPriceFlag
?
1
:
'0'
};
console
.
log
(
para
,
'para---'
);
const
url
=
'/haoban-app-aggregation-web/save-goods-setting'
;
postRequest
(
url
,
para
)
.
then
(
res
=>
{
let
resData
=
res
.
data
;
that
.
loading
=
false
;
that
.
getCustomerSet
();
if
(
resData
.
errorCode
==
1
)
{
showMsg
.
showmsg
(
'保存成功'
,
'success'
);
return
;
}
errMsg
.
errorMsg
(
resData
);
})
.
catch
(
function
(
error
)
{
that
.
loading
=
false
;
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
});
});
},
/**
* 获取数据
*/
getCustomerSet
(
brandId
)
{
const
that
=
this
;
let
para
=
{
enterpriseId
:
that
.
brandId
,
wxEnterpriseRelatedId
:
that
.
wxEnterpriseRelatedId
};
postRequest
(
'/haoban-app-aggregation-web/find-goods-setting'
,
para
)
.
then
(
res
=>
{
let
resData
=
res
.
data
;
if
(
resData
.
errorCode
==
1
)
{
if
(
!!
resData
.
result
)
{
that
.
myCustomData
.
salesGoodsFlag
=
resData
.
result
.
salesGoodsFlag
==
1
?
true
:
false
;
that
.
myCustomData
.
notSalesGoodsFlag
=
resData
.
result
.
notSalesGoodsFlag
==
1
?
true
:
false
;
that
.
myCustomData
.
showPriceFlag
=
resData
.
result
.
showPriceFlag
==
1
?
true
:
false
;
}
return
;
}
errMsg
.
errorMsg
(
resData
);
})
.
catch
(
function
(
error
)
{
that
.
$message
.
error
({
duration
:
1000
,
message
:
error
.
message
});
});
}
},
watch
:
{
brandId
:
function
(
newData
,
oldData
)
{
const
that
=
this
;
if
(
newData
)
{
that
.
getCustomerSet
(
that
.
brandId
);
}
}
},
mounted
()
{
const
that
=
this
;
if
(
that
.
brandId
)
{
that
.
getCustomerSet
(
that
.
brandId
);
}
},
components
:
{}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.w-500
{
width
:
500px
;
}
.w-195
{
width
:
195px
;
}
.color-1890ff
{
color
:
#2f54eb
;
}
.p-20
{
padding
:
20px
;
}
.p-l-38
{
padding-left
:
38px
;
}
.p-l-199
{
padding-left
:
199px
;
}
.p-t-30
{
padding-top
:
30px
;
}
.m-b-30
{
margin-bottom
:
30px
;
}
.damolish
.el-form-item
{
margin-bottom
:
30px
;
}
.damolish
.el-button
{
padding
:
8px
26px
;
}
.app-detail-wrap
{
height
:
100%
;
background
:
#fff
;
.el-tabs
{
background
:
#fff
;
>>>
.el-tabs__nav-wrap
{
/* height: 48px;
line-height: 48px; */
&::after
{
height
:
1px
;
}
/* .el-tabs__nav-scroll {
padding-left: 20px;
} */
}
}
.condition-tip
{
width
:
740px
;
.el-alert--info
{
background
:
#e6f7ff
;
border
:
1px
solid
rgba
(
145
,
213
,
255
,
1
);
.el-alert__icon
{
font-size
:
12px
;
}
}
}
.setting-radio-item
{
position
:
relative
;
&
+
.setting-radio-item
{
margin-top
:
15px
;
}
.set-tip-txt
,
.tip-fixed
{
padding
:
0
0
0
25px
;
font-size
:
12px
;
font-weight
:
400
;
color
:
#909399
;
line-height
:
15px
;
}
.tip-fixed
{
position
:
absolute
;
top
:
10
;
}
}
.fixed-save-btn
{
position
:
fixed
;
display
:
flex
;
-webkit-box-pack
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
justify-content
:
center
;
bottom
:
0
;
width
:
calc
(
100%
-
206px
);
height
:
56px
;
background
:
#ffffff
;
box-shadow
:
1px
-2px
8px
0px
rgba
(
220
,
223
,
230
,
0.6
);
}
}
</
style
>
src/views/enterprise/guide-setting-copy.vue
0 → 100644
View file @
3176d2a3
<!--
* @Description:
* @Version: 1.0
* @Author: Drama
* @Date: 2022-09-14 11:09:43
* @LastEditors: Drama
* @LastEditTime: 2022-09-16 14:49:14
* @FilePath: /haoban-3/src/views/enterprise/guide-setting-copy.vue
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<
template
>
<div
class=
"app-detail-wrap"
>
<div
class=
"border-box p-t-30 p-l-26 p-r-211"
>
<el-form
v-model=
"roleForm"
label-width=
"100px"
>
<el-form-item
label=
"应用权限"
required
>
<div
class=
"dis-f"
>
<div
class=
"title-wrap border-box border-radio-2"
>
<div
class=
" border-box tag-wrap F-S-14 F-C-BLACK dis-center border-radio-2 cursor-pointer"
v-for=
"(item, index) in titleList"
:key=
"index"
:class=
"[activeNum == index ? 'checked-status' : '', item.isEmpty ? 'empted-status' : '']"
@
click=
"chooseType(index)"
>
{{
item
.
title
}}
</div>
</div>
<div
v-if=
"isShowErrorTip"
class=
"error-tip border-box border-radio-2"
>
<i
class=
"el-icon-warning"
></i>
<div
class=
"F-C-BLACK F-S-12 m-l-9"
>
当前有未填项
</div>
</div>
</div>
</el-form-item>
<el-form-item
label=
""
prop=
""
class=
""
>
<!-- TODO: 权限树 是否使用vue-gic-auth-tree组件 -->
<!--
<div
class=
"right-config"
>
<div
class=
"title"
>
<p>
权限设置
</p>
</div>
</div>
-->
<!--
<div
class=
"right-wrap_ account-limit-wrap expend"
v-loading=
"loading"
>
<elNewTree
:data=
"treeData"
show-checkbox
ref=
"tree1"
node-key=
"rightId"
:default-checked-keys=
"withoutParents"
:default-expanded-keys=
"setDefaultExpandedKeys(treeData)"
:props=
"defaultProps"
>
</elNewTree>
</div>
-->
<vue-gic-auth-tree
class=
"auth-tree"
:data=
"treeData"
show-checkbox
ref=
"tree"
node-key=
"menuCode"
:default-checked-keys=
"withoutParents"
default-expand-all
:props=
"defaultProps"
showButtonFlag
></vue-gic-auth-tree>
</el-form-item>
</el-form>
</div>
<!-- TODO: save按钮 -->
<div
class=
"fixed-save-btn border-box"
v-if=
"$getButtonLimit($buttonCode.saveGoodsSet)"
>
<el-button
:limit-code=
"$buttonCode.saveGoodsSet"
type=
"primary"
:loading=
"loading"
@
click=
"submit"
:disabled=
"$store.state.wxEnterpriseType"
>
保存
</el-button>
</div>
</div>
</
template
>
<
script
>
import
elNewTree
from
'@/components/tree/tree'
;
import
{
deepClone
,
debounce
,
arrToTree
}
from
'@/utils'
;
import
{
getRequest
}
from
'@/api/api'
;
export
default
{
name
:
'GuideSetting'
,
components
:
{
elNewTree
},
data
()
{
return
{
roleForm
:
{},
titleList
:
[
{
title
:
'导购'
,
isEmpty
:
false
},
{
title
:
'店长'
,
isEmpty
:
false
},
{
title
:
'区经/督导'
,
isEmpty
:
false
}
],
activeNum
:
0
,
defaultProps
:
{
children
:
'menuBOList'
,
label
:
'menuName'
},
withoutParents
:
[],
//不包含父节点
treeData
:
[],
withoutParents_0
:
[],
withoutParents_1
:
[],
withoutParents_2
:
[],
curMenuCode_0
:
[],
// 拷贝当前节点了的按钮
curMenuCode_1
:
[],
curMenuCode_2
:
[],
roleId_0
:
''
,
roleId_1
:
''
,
roleId_2
:
''
,
copyMenu
:
[],
loading
:
false
,
isShowErrorTip
:
false
};
},
computed
:
{
setDefaultExpandedKeys
()
{
return
treeData
=>
treeData
.
map
(
el
=>
el
.
rightId
);
}
},
mounted
()
{
// TODO: 测试数据
// this.treeData = [
// {
// menuCode: 'workbench',
// menuName: '工作台',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 0,
// menuSort: 0,
// parentCode: 0,
// statusFlag: 1,
// createTime: 1663145657000,
// updateTime: 1663145657000,
// routePath: '',
// menuBOList: [
// {
// menuCode: 'dataSummary',
// menuName: '数据面板',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145657000,
// updateTime: 1663145657000,
// routePath: '',
// menuBOList: []
// },
// {
// menuCode: 'customer',
// menuName: '我的顾客',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/list/list',
// menuBOList: [
// {
// menuLevel: null,
// menuName: '全品牌搜索',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/list/search/search',
// menuUrl: 'pages/hbapp/customer/list/list',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerList_allSearch',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '分配会员',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/distributeMember/distributeMember',
// menuUrl: 'pages/hbapp/customer/list/list',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerList_distribute',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '离职继承',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/dimissionInherit/inheritMain/inheritMain',
// menuUrl: 'pages/hbapp/customer/list/list',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerList_inheritCustomer',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '群发助手',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/massTextingAssistant/massTextingDetail/massTextingDetail',
// menuUrl: 'pages/hbapp/customer/list/list',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerList_massAssistant',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '会员导出',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/fileExport/exportList/exportList',
// menuUrl: 'pages/hbapp/customer/list/list',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerList_customerExport',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '导购二维码',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/list/guideQRCode/guideQRCode',
// menuUrl: 'pages/hbapp/customer/list/list',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerList_clerkQRCode',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '联系好友',
// updateTime: 1663145658000,
// routePath: '',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_connectFriend',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '添加好友',
// updateTime: 1663145658000,
// routePath: '',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_addFriend',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '电话',
// updateTime: 1663145658000,
// routePath: '',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_call',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '短信',
// updateTime: 1663145658000,
// routePath: '',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_smsMsg',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '分配导购',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/detail/changeGuide/changgeGuide',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_mainClerkExchange',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '打标签',
// updateTime: 1663145658000,
// routePath: '',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_mark',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// },
// {
// menuLevel: null,
// menuName: '客户跟进',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/customer/list/guideQRCode/guideQRCode',
// menuUrl: 'pages/hbapp/customer/detail/detail',
// parentCode: 'customer',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'customerDetail_clerkQRCode',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// }
// ]
// },
// {
// menuCode: 'marketingTask',
// menuName: '营销任务',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/marketingTask/taskList/taskList',
// menuBOList: [
// {
// menuLevel: null,
// menuName: '指派任务',
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/task/phoneTaskDistribute/phoneTaskDistribute',
// menuUrl: 'pages/hbapp/marketingTask/phoneTaskList/phoneTaskList',
// parentCode: 'marketingTask',
// createTime: 1663145658000,
// menuBOList: [],
// menuCode: 'marketingTaskList_distribute',
// menuType: 1,
// iconUrl: '',
// menuSort: 0,
// statusFlag: 1
// }
// ]
// },
// {
// menuCode: 'dashboard',
// menuName: '看数据',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/reportManagement/summaryReport/summaryReport',
// menuBOList: []
// },
// {
// menuCode: 'dailyReport',
// menuName: '云日报',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/dailyReport/list/list',
// menuBOList: []
// },
// {
// menuCode: 'kpi',
// menuName: '月指标',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/kpi/monthlyList/monthlyList',
// menuBOList: []
// },
// {
// menuCode: 'commodityCenter',
// menuName: '商品中心',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/commodityCenter/commodityList/commondityList',
// menuBOList: []
// },
// {
// menuCode: 'orderComment',
// menuName: '订单评价',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/orderComment/orderComment/orderComment',
// menuBOList: []
// },
// {
// menuCode: 'writeOff',
// menuName: '扫码核销',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/cancelVerification/scan/scan',
// menuBOList: []
// },
// {
// menuCode: 'commission',
// menuName: '订单评价',
// menuUrl: 'pages/workbench/workbench',
// iconUrl: '',
// menuLevel: null,
// menuType: 1,
// menuSort: 0,
// parentCode: 'workbench',
// statusFlag: 1,
// createTime: 1663145658000,
// updateTime: 1663145658000,
// routePath: 'pages/hbapp/commission/commissionReport/commissionReport',
// menuBOList: []
// }
// ]
// }
// ];
this
.
getMenuRoleList
();
},
methods
:
{
chooseType
(
index
)
{
this
.
titleList
.
forEach
(
item
=>
{
item
.
isEmpty
=
false
;
});
let
isChooseList
=
this
.
$refs
.
tree
.
getCheckedKeys
().
concat
(
this
.
$refs
.
tree
.
getHalfCheckedKeys
());
// 切换tab时 缓存上个tag选择的节点
this
[
'withoutParents_'
+
this
.
activeNum
]
=
[...
isChooseList
];
this
.
activeNum
=
index
;
this
.
treeData
=
deepClone
(
this
.
copyMenu
);
this
.
withoutParents
=
this
[
'withoutParents_'
+
this
.
activeNum
];
this
.
isShowErrorTip
=
false
;
this
.
activeNum
=
index
;
},
// TODO: 获取类型选择菜单
getQueryMenuList
()
{
// index 当前页签
let
clerkType
=
0
;
if
(
this
.
activeNum
==
2
)
{
clerkType
=
3
;
}
else
{
clerkType
=
this
.
activeNum
;
}
let
params
=
{
clerkType
};
getRequest
(
'/haoban-manage3-web/role/queryMenuByClerkType'
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
0
)
{
if
(
res
.
data
.
result
)
{
// 接口当前选中
this
.
treeData
=
deepClone
(
this
.
copyMenu
);
let
resData
=
res
.
data
;
let
menuCodes
=
[
'customerList_allSearch'
,
'workbench'
,
'customer'
];
// let menuCodes = resData.result.menuCodes;
this
[
'roleId_'
+
this
.
activeNum
]
=
resData
.
result
.
roleId
;
this
[
'curMenuCode_'
+
this
.
activeNum
]
=
[...
menuCodes
];
// 保存当前类别选中状态,保存的时候用用于记录操作的区别
let
assginArr
=
[...
new
Set
(
this
[
'withoutParents_'
+
this
.
activeNum
].
concat
(
menuCodes
))];
this
.
withoutParents
=
[...
assginArr
];
console
.
log
(
assginArr
,
'去重'
);
console
.
log
(
this
.
withoutParents
,
'当前-----'
);
}
else
{
this
.
treeData
=
deepClone
(
this
.
copyMenu
);
this
.
withoutParents
=
[];
console
.
log
(
this
.
withoutParents
,
'aasdsadsa'
);
}
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
},
// TODO: 获取菜单列表
getMenuRoleList
()
{
const
that
=
this
;
let
query
=
{
clerkType
:
this
.
activeNum
};
getRequest
(
'/haoban-manage3-web/role/getHaobanMenuTreeList'
,
query
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
0
)
{
if
(
res
.
data
.
result
)
{
let
resData
=
res
.
data
;
let
arr
=
resData
.
result
;
arr
.
forEach
(
item
=>
{
if
(
item
.
menuType
==
0
)
{
item
.
parentCode
=
0
;
}
if
(
item
.
menuBOList
.
length
)
{
item
.
menuBOList
=
item
.
menuBOList
.
filter
(
data
=>
data
.
menuType
!=
2
);
}
});
that
.
treeData
=
arrToTree
(
arr
,
0
,
{
idName
:
'menuCode'
,
parentIdName
:
'parentCode'
,
childName
:
'menuBOList'
});
that
.
copyMenu
=
deepClone
(
that
.
treeData
);
that
.
getQueryMenuList
();
}
else
{
this
.
treeData
=
[];
}
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
},
submit
:
debounce
(
function
()
{
let
currentChooseList
=
this
.
$refs
.
tree
.
getCheckedKeys
().
concat
(
this
.
$refs
.
tree
.
getHalfCheckedKeys
());
this
[
'withoutParents_'
+
this
.
activeNum
]
=
[...
currentChooseList
];
console
.
log
(
this
.
withoutParents_0
);
console
.
log
(
this
.
withoutParents_1
);
console
.
log
(
this
.
withoutParents_2
);
let
errFlag_0
=
this
.
withoutParents_0
.
length
?
true
:
false
;
let
errFlag_1
=
this
.
withoutParents_1
.
length
?
true
:
false
;
let
errFlag_2
=
this
.
withoutParents_2
.
length
?
true
:
false
;
if
(
!
errFlag_0
||
!
errFlag_1
||
!
errFlag_2
)
{
this
.
$set
(
this
.
titleList
[
0
],
'isEmpty'
,
!
errFlag_0
);
this
.
$set
(
this
.
titleList
[
1
],
'isEmpty'
,
!
errFlag_1
);
this
.
$set
(
this
.
titleList
[
2
],
'isEmpty'
,
!
errFlag_2
);
}
})
}
};
</
script
>
<
style
lang=
"scss"
>
.auth-tree
.iconfont.auth-expanded
{
font-family
:
'element-icons'
!important
;
}
.auth-tree
.el-tree-node__expand-icon.auth-tree-arrow
{
font-family
:
'element-icons'
!important
;
}
</
style
>
<
style
lang=
"less"
scoped
>
.el-icon-warning
{
width
:
12px
;
font-size
:
12px
;
color
:
#fa8c16
;
}
.m-l-9
{
margin-left
:
9px
;
}
.p-l-26
{
padding-left
:
26px
;
}
.p-r-211
{
padding-right
:
211px
;
}
.F-S-14
{
font-size
:
14px
;
}
.F-S-12
{
font-size
:
12px
;
}
.F-C-BLACK
{
color
:
#303133
;
}
.border-radio-2
{
border-radius
:
2px
;
}
.dis-f
{
display
:
flex
;
}
.p-t-30
{
padding-top
:
30px
;
}
.damolish
.el-button
{
padding
:
8px
26px
;
}
.dis-center
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.app-detail-wrap
{
height
:
100%
;
background
:
#fff
;
.title-wrap
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-around
;
padding
:
4px
13px
4px
4px
;
width
:
201px
;
height
:
32px
;
/* transform: translateY(-5px); */
border
:
1px
solid
#dcdfe6
;
background
:
#ffffff
;
.tag-wrap
{
padding
:
0px
10px
;
height
:
24px
;
}
.checked-status
{
background
:
#ebeffe
;
color
:
#2f54eb
;
}
.empted-status
{
color
:
#f5222d
;
background
:
rgba
(
245
,
34
,
45
,
0.11
);
}
}
.error-tip
{
display
:
flex
;
align-items
:
center
;
width
:
129px
;
padding
:
4px
0px
4px
17px
;
height
:
32px
;
margin-left
:
8px
;
background
:
#fcf6f1
;
}
.right-config
{
font-size
:
14px
;
.title
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
height
:
50px
;
box-sizing
:
border-box
;
padding
:
15px
20px
15px
30px
;
color
:
#303133
;
border
:
1px
solid
#e4e7ed
;
p
{
font-weight
:
600
;
}
}
}
}
/* 权限设置 */
.account-limit-wrap
{
font-size
:
0px
;
.limit-item
{
display
:
flex
;
border
:
1px
solid
#dcdfe6
;
border-radius
:
4px
;
margin-bottom
:
10px
;
.fl-item
{
flex
:
0
0
225px
;
width
:
225px
;
background
:
rgb
(
246
,
246
,
246
);
border-right
:
1px
solid
#dcdfe6
;
font-size
:
16px
;
font-weight
:
500
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
.opr-icon
{
color
:
#919191
;
font-size
:
13px
;
padding
:
6px
3px
3px
;
margin-right
:
12px
;
cursor
:
pointer
;
}
}
.fr-item
{
flex
:
1
;
width
:
100%
;
color
:
#595959
;
.item-title
{
height
:
45px
;
line-height
:
45px
;
padding-left
:
20px
;
font-weight
:
500
;
background
:
rgb
(
246
,
246
,
246
);
}
}
}
}
.expend
{
height
:
auto
;
}
.right-wrap_
{
width
:
100%
;
height
:
100%
;
box-sizing
:
border-box
;
}
.fixed-save-btn
{
position
:
fixed
;
display
:
flex
;
-webkit-box-pack
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
justify-content
:
center
;
bottom
:
0
;
width
:
calc
(
100%
-
206px
);
height
:
56px
;
background
:
#ffffff
;
box-shadow
:
1px
-2px
8px
0px
rgba
(
220
,
223
,
230
,
0.6
);
}
</
style
>
static/img/no-data_icon.png
0 → 100755
View file @
3176d2a3
1.81 KB
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