Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
admin-base
Project
Project
Details
Activity
Releases
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
new-sing
admin-base
Commits
e9d96da5
Commit
e9d96da5
authored
Aug 13, 2019
by
赵茹林
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复标签页弹窗bug
更新静态文件CDN链接
parent
d0797f22
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
254 additions
and
312 deletions
+254
-312
index.html
index.html
+4
-5
Address.vue
src/components/framework/address-picker/Address.vue
+131
-152
newDialog.vue
src/components/monthOrder/newDialog.vue
+83
-106
tag.vue
src/components/system/tag.vue
+36
-49
No files found.
index.html
View file @
e9d96da5
...
@@ -4,17 +4,16 @@
...
@@ -4,17 +4,16 @@
<meta
charset=
"utf-8"
>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<meta
name=
"referrer"
content=
"never"
>
<meta
name=
"referrer"
content=
"never"
>
<link
rel=
"stylesheet"
href=
"https://
//
at.alicdn.com/t/font_746649_x1rivf5f5.css"
>
<link
rel=
"stylesheet"
href=
"https://at.alicdn.com/t/font_746649_x1rivf5f5.css"
>
<link
rel=
"stylesheet"
href=
"https://lib.baomitu.com/element-ui/2.11.1/theme-chalk/index.css"
>
<link
rel=
"stylesheet"
href=
"https://lib.baomitu.com/element-ui/2.11.1/theme-chalk/index.css"
>
<title>
唱唱启蒙-后台
</title>
<title>
唱唱启蒙-后台
</title>
</head>
</head>
<body>
<body>
<!-- 先引入 Vue -->
<!-- 先引入 Vue -->
<script
src=
"https://cdn.bootcss.com/vue/2.5.17/vue.js"
></script>
<script
src=
"https://lib.baomitu.com/vue/2.5.17/vue.min.js"
></script>
<!-- <script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script> -->
<script
src=
"https://lib.baomitu.com/vuex/3.0.1/vuex.min.js"
></script>
<script
src=
"https://unpkg.com/vuex@3.0.1"
></script>
<!-- 引入组件库 -->
<!-- 引入组件库 -->
<script
src=
"https://
cdn.bootcss
.com/axios/0.18.0/axios.min.js"
></script>
<script
src=
"https://
lib.baomitu
.com/axios/0.18.0/axios.min.js"
></script>
<script
src=
"https://lib.baomitu.com/element-ui/2.7.2/index.js"
></script>
<script
src=
"https://lib.baomitu.com/element-ui/2.7.2/index.js"
></script>
<div
id=
"app"
></div>
<div
id=
"app"
></div>
</body>
</body>
...
...
src/components/framework/address-picker/Address.vue
View file @
e9d96da5
This diff is collapsed.
Click to expand it.
src/components/monthOrder/newDialog.vue
View file @
e9d96da5
...
@@ -5,119 +5,96 @@
...
@@ -5,119 +5,96 @@
append-to-body
append-to-body
:visible
.
sync=
"newdialogObj.show"
:visible
.
sync=
"newdialogObj.show"
width=
"70%"
>
width=
"70%"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
:rules=
"rules"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
:rules=
"rules"
>
<el-row>
<el-col
:span=
"10"
>
<el-form-item
label=
"商品名称"
prop=
"goods_id"
>
<el-form-item
label=
"商品名称"
prop=
"goods_id"
>
<el-select
v-model=
"form.goods_id"
placeholder=
"请选择"
@
change=
"onOptionChange"
>
<el-select
v-model=
"form.goods_id"
placeholder=
"请选择"
@
change=
"onOptionChange"
>
<el-option
<el-option
v-for=
"(data,index) in goodsList"
v-for=
"(data,index) in goodsList"
:key=
"index"
:key=
"index"
:label=
"data | filterGoods"
:label=
"data | filterGoods"
:value=
"data.id"
>
:value=
"data.id"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<!--
<el-col
:span=
"10"
>
</el-col>
<el-form-item
label=
"期数名称"
prop=
"periods_id"
>
<!--
<el-col
:span=
"10"
>
<el-select
v-model=
"form.periods_id"
placeholder=
"请选择"
>
<el-form-item
label=
"期数名称"
prop=
"periods_id"
>
<el-option
<el-select
v-model=
"form.periods_id"
placeholder=
"请选择"
>
v-for=
"(data,index) in periodsList"
<el-option
:key=
"index"
v-for=
"(data,index) in periodsList"
:label=
"data.title"
:key=
"index"
:value=
"data.id"
>
:label=
"data.title"
</el-option>
:value=
"data.id"
>
</el-select>
</el-option>
</el-form-item>
</el-select>
</el-col>
-->
</el-form-item>
</el-col>
-->
<el-form-item
label=
"用户ID"
prop=
"user_id"
>
</el-row>
<el-input
width=
'100'
v-model=
"form.user_id"
></el-input>
<el-row>
<el-button
type=
"success"
@
click=
"onAddUser"
>
+添加用户
</el-button>
<el-col
:span=
"10"
>
</el-form-item>
<el-form-item
label=
"用户ID"
prop=
"user_id"
>
<el-input
width=
'100'
v-model=
"form.user_id"
></el-input>
<el-form-item
label=
"添加推广人"
>
<el-button
type=
"success"
@
click=
"onAddUser"
>
+添加用户
</el-button>
<!--
<el-input
v-model=
"form.invite_id"
></el-input>
-->
</el-form-item>
<el-select
</el-col>
v-model=
"form.invite_id"
<el-col
:span=
"10"
>
filterable
<el-form-item
label=
"添加推广人"
>
clearable
<!--
<el-input
v-model=
"form.invite_id"
></el-input>
-->
placeholder=
"请输入名称"
<el-select
:remote-method=
"remoteMethod"
v-model=
"form.invite_id"
>
filterable
<el-option
clearable
v-for=
"item in teacherList"
placeholder=
"请输入名称"
:key=
"item.id"
:remote-method=
"remoteMethod"
:label=
"item.name"
>
:value=
"item.user_id"
>
<el-option
</el-option>
v-for=
"item in teacherList"
</el-select>
:key=
"item.id"
</el-form-item>
:label=
"item.name"
:value=
"item.user_id"
>
</el-option>
<el-form-item
label=
"支付类型"
prop=
"order_type"
>
</el-select>
<el-select
v-model=
"form.order_type"
placeholder=
"请选择"
>
</el-form-item>
<el-option
</el-col>
v-for=
"item in buyWayOptioms"
</el-row>
:key=
"item.id"
<el-row>
:label=
"item.name"
<el-col
:span=
"10"
>
:value=
"item.id"
<el-form-item
label=
"支付类型"
prop=
"order_type"
>
:disabled=
"item.disabled"
>
<el-select
v-model=
"form.order_type"
placeholder=
"请选择"
>
</el-option>
<el-option
</el-select>
v-for=
"item in buyWayOptioms"
</el-form-item>
:key=
"item.id"
<el-form-item
label=
"实付金额(元)"
prop=
"money"
>
:label=
"item.name"
<el-input-number
v-model=
"form.money"
></el-input-number>
:value=
"item.id"
</el-form-item>
:disabled=
"item.disabled"
>
<el-form-item
label=
"支付时间"
prop=
"pay_at"
>
</el-option>
<el-date-picker
</el-select>
v-model=
"form.pay_at"
</el-form-item>
type=
"datetime"
</el-col>
:picker-options=
"pickerOptions1"
<el-col
:span=
"10"
>
default-time=
"12:00:00"
<el-form-item
label=
"实付金额(元)"
prop=
"money"
>
placeholder=
"选择日期时间"
>
<el-input-number
v-model=
"form.money"
></el-input-number>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
<el-form-item
label=
"备注"
>
</el-row>
<el-input
type=
"textarea"
v-model=
"form.desc"
></el-input>
<el-row>
</el-form-item>
<el-col
:span=
"10"
>
<el-form-item
label=
"订单号"
>
<el-form-item
label=
"支付时间"
prop=
"pay_at"
>
<el-input
v-model=
"form.out_trade_no"
></el-input>
<el-date-picker
</el-form-item>
v-model=
"form.pay_at"
<vue-address
:province=
"form.province"
:city=
"form.city"
:district=
"form.district"
:detail=
"form.address"
:mobile=
"form.receive_mobile"
:name=
"form.receive_name"
@
change=
"handlerAddressChange"
>
type=
"datetime"
</vue-address>
:picker-options=
"pickerOptions1"
</el-form>
default-time=
"12:00:00"
placeholder=
"选择日期时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"备注"
>
<el-input
type=
"textarea"
v-model=
"form.desc"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"10"
v-if=
"form.order_type!=2"
>
<el-form-item
label=
"订单号"
>
<el-input
v-model=
"form.out_trade_no"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<vue-address
:province=
"form.province"
:city=
"form.city"
:district=
"form.district"
:detail=
"form.address"
:mobile=
"form.receive_mobile"
:name=
"form.receive_name"
@
change=
"handlerAddressChange"
>
</vue-address>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"newdialogObj.show = false"
>
取 消
</el-button>
<el-button
@
click=
"newdialogObj.show = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"saveAddOrder(form)"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"saveAddOrder(form)"
>
确定
</el-button>
</div>
</div>
<el-dialog
:modal=
"false"
:visible
.
sync=
"addShow"
>
<el-dialog
:modal=
"false"
:visible
.
sync=
"addShow"
>
<el-form
label-width=
"90px"
>
<el-form
label-width=
"90px"
>
<!--
<el-form-item
label=
"用户id"
>
-->
<!--
<el-form-item
label=
"用户id"
>
-->
<!--
<el-input
v-model=
"addId"
></el-input>
-->
<!--
<el-input
v-model=
"addId"
></el-input>
-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<el-row>
<el-row>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
...
...
src/components/system/tag.vue
View file @
e9d96da5
...
@@ -2,19 +2,15 @@
...
@@ -2,19 +2,15 @@
<div
class=
"admin-refresh"
v-loading=
"loading"
>
<div
class=
"admin-refresh"
v-loading=
"loading"
>
<div
class=
"section-search search-single"
>
<div
class=
"section-search search-single"
>
<el-form
ref=
"searchFrom"
:model=
"searchFrom"
label-width=
"80px"
inline
>
<el-form
label-width=
"80px"
inline
>
<el-form-item>
<el-form-item>
<!--
<el-cascader
style=
"width: 280px"
placeholder=
"选择标签"
:props=
"searchProps"
clearable
></el-cascader>
-->
<el-input
placeholder=
"输入标签名搜索"
v-model=
"filterText"
></el-input>
<el-input
placeholder=
"输入标签名搜索"
v-model=
"filterText"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<div
class=
"search-btn-wrapper"
>
<div
class=
"search-btn-wrapper"
>
<!--
<el-button
@
click=
"onSearch"
type=
"primary"
plain
>
搜索
</el-button>
-->
<!--
<el-button
@
click=
"onSearch"
type=
"primary"
plain
>
搜索
</el-button>
-->
<el-button
@
click=
"dialog
Toggle
"
type=
"warning"
plain
>
高级搜索
</el-button>
<el-button
@
click=
"dialog
User.show = !dialogUser.show;
"
type=
"warning"
plain
>
高级搜索
</el-button>
<!--
<el-button
v-if=
"!$store.state.readonly"
@
click=
"onAdd"
type=
"success"
plain
>
新增标签
</el-button>
-->
<!--
<el-button
v-if=
"!$store.state.readonly"
@
click=
"onAdd"
type=
"success"
plain
>
新增标签
</el-button>
-->
</div>
</div>
</el-form-item>
</el-form-item>
...
@@ -25,7 +21,7 @@
...
@@ -25,7 +21,7 @@
<el-tree
<el-tree
:data=
"treeData"
:data=
"treeData"
node-key=
"id"
ref=
"tagTree"
node-key=
"id"
ref=
"tagTree"
:props=
"
tagProps
"
:props=
"
{children: 'children', label: 'name'}
"
:indent="40"
:indent="40"
@node-expand="tagExpand"
@node-expand="tagExpand"
@node-collapse="tagCollapse"
@node-collapse="tagCollapse"
...
@@ -52,38 +48,46 @@
...
@@ -52,38 +48,46 @@
</el-tree>
</el-tree>
</div>
</div>
<el-dialog
:title=
"dialog.title"
:visible
.
sync=
"dialog.show"
width=
"800px"
title=
"高级搜索"
>
<el-dialog
:title=
"dialog.title"
:visible
.
sync=
"dialog.show"
width=
"500px"
>
<el-form
ref=
"dialogForm"
:rules=
"dialog.form.rules"
:model=
"dialog.form"
label-width=
"100px"
>
<el-form-item
label=
"ID:"
prop=
"id"
style=
"display: none;"
>
<el-input
v-model=
"dialog.form.id"
maxlength=
"10"
type=
"text"
></el-input>
</el-form-item>
<el-form-item
label=
"PID:"
prop=
"pid"
style=
"display: none;"
>
<el-input
v-model=
"dialog.form.pid"
maxlength=
"10"
type=
"text"
></el-input>
</el-form-item>
<el-form-item
label=
"标签名称:"
prop=
"name"
>
<el-input
v-model=
"dialog.form.name"
maxlength=
"10"
type=
"text"
></el-input>
</el-form-item>
<el-form-item
label=
"标签备注:"
prop=
"cover"
>
<el-input
v-model=
"dialog.form.cover"
maxlength=
"50"
type=
"textarea"
:rows=
"3"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogToggle"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogSave"
>
确定
</el-button>
</span>
</el-dialog>
<el-dialog
:visible
.
sync=
"dialogUser.show"
width=
"800px"
title=
"高级搜索"
>
<div
style=
"display: flex;margin-bottom: 20px;"
>
<div
style=
"display: flex;margin-bottom: 20px;"
>
<el-button
style=
"margin-right: 20px; width: 70px;"
type=
"primary"
v-if=
"!$store.state.readonly && $store.state.export"
plain
:disabled=
"!tableData.length"
@
click=
"exportExcel"
>
导出
</el-button>
<el-button
style=
"margin-right: 20px; width: 70px;"
type=
"primary"
v-if=
"!$store.state.readonly && $store.state.export"
plain
:disabled=
"!tableData.length"
@
click=
"exportExcel"
>
导出
</el-button>
<el-cascader
<el-cascader
style=
"width: calc(100% - 90px)"
placeholder=
"选择标签"
clearable
@
change=
"conditionsChange"
style=
"width: calc(100% - 90px)"
placeholder=
"选择标签"
clearable
@
change=
"conditionsChange"
:options=
"treeDataOrigin"
:props=
"
{ value: 'id', label: 'name', multiple: true, checkStrictly: true }">
</el-cascader>
:options=
"treeDataOrigin"
:props=
"
{ value: 'id', label: 'name', multiple: true, checkStrictly: true }">
</el-cascader>
</div>
</div>
<el-table
:data=
"tableData"
border
>
<el-table
:data=
"tableData"
border
>
<el-table-column
className=
"f-c"
label=
"用户"
>
<el-table-column
className=
"f-c"
label=
"用户"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<img
class=
"avatar"
:src=
"scope.row.avatar"
>
{{
scope
.
row
.
nickname
}}
<br>
(ID:
{{
scope
.
row
.
user_id
}}
)
<img
class=
"avatar"
:src=
"scope.row.avatar"
>
{{
scope
.
row
.
nickname
}}
<br>
(ID:
{{
scope
.
row
.
user_id
}}
)
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"baby_name"
label=
"宝宝名称"
></el-table-column>
<el-table-column
prop=
"baby_name"
label=
"宝宝名称"
></el-table-column>
<el-table-column
prop=
"birthday"
label=
"宝宝生日"
></el-table-column>
<el-table-column
prop=
"birthday"
label=
"宝宝生日"
></el-table-column>
<el-table-column
prop=
"sex"
label=
"宝宝性别"
:formatter=
"sexFormatter"
></el-table-column>
<el-table-column
prop=
"sex"
label=
"宝宝性别"
:formatter=
"sexFormatter"
></el-table-column>
<el-table-column
prop=
"mobile"
label=
"手机号码"
></el-table-column>
<el-table-column
prop=
"mobile"
label=
"手机号码"
></el-table-column>
<!--<el-table-column label="操作" v-if="!$store.state.readonly" width="100">
<template slot-scope="scope">
<el-button size="mini" plain type="primary" @click="onEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>-->
</el-table>
</el-table>
<page
:total=
"total"
:limit=
"limit"
@
pageChange=
"onPageChange"
@
sizeChange=
"onSizeChange"
/>
<page
:total=
"total"
:limit=
"limit"
@
pageChange=
"onPageChange"
@
sizeChange=
"onSizeChange"
/>
<!--<span slot="footer" class="dialog-footer">
<el-button @click="dialogToggle">取消</el-button>
<el-button type="primary" @click="dialogSave">确定</el-button>
</span>-->
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -99,28 +103,15 @@
...
@@ -99,28 +103,15 @@
conditions
:
[],
conditions
:
[],
filterText
:
''
,
filterText
:
''
,
tagProps
:
{
children
:
'children'
,
label
:
'name'
},
tagExpanded
:
[
0
],
tagExpanded
:
[
0
],
tagExpandedWait
:
''
,
tagExpandedWait
:
''
,
searchFrom
:
{
id
:
''
,
name
:
''
,
mobile
:
''
,
id_card
:
''
,
type
:
''
,
status
:
''
,
start_in
:
''
,
over_in
:
''
},
startTime
:
[],
tableData
:
[],
tableData
:
[],
treeData
:
[],
treeData
:
[],
treeDataOrigin
:
[],
treeDataOrigin
:
[],
dialogUser
:
{
show
:
false
},
dialog
:
{
dialog
:
{
title
:
''
,
title
:
''
,
show
:
false
,
show
:
false
,
...
@@ -173,19 +164,18 @@
...
@@ -173,19 +164,18 @@
this
.
getUserData
()
this
.
getUserData
()
},
},
getUserData
(){
getUserData
(){
// 搜索用户
let
json
=
{
let
json
=
{
conditions
:
JSON
.
stringify
(
this
.
conditions
),
conditions
:
JSON
.
stringify
(
this
.
conditions
),
limit
:
this
.
limit
,
limit
:
this
.
limit
,
page
:
this
.
nowPage
page
:
this
.
nowPage
}
}
getTagUserApi
(
json
).
then
(
res
=>
{
getTagUserApi
(
json
).
then
(
res
=>
{
this
.
tableData
=
res
.
list
this
.
tableData
=
res
.
list
})
})
},
},
filterNode
(
value
,
data
)
{
filterNode
(
value
,
data
)
{
// 搜索标签
if
(
!
value
)
return
true
;
if
(
!
value
)
return
true
;
return
data
.
name
.
indexOf
(
value
)
!==
-
1
;
return
data
.
name
.
indexOf
(
value
)
!==
-
1
;
},
},
...
@@ -239,21 +229,20 @@
...
@@ -239,21 +229,20 @@
});
});
},
},
tagExpand
(
data
,
node
,
el
)
{
tagExpand
(
data
,
node
,
el
)
{
// 标签展开(记录树的状态)
//console.log(node)
//console.log(node)
if
(
node
.
expanded
)
{
if
(
node
.
expanded
)
{
this
.
tagExpanded
.
push
(
node
.
data
.
id
)
this
.
tagExpanded
.
push
(
node
.
data
.
id
)
}
}
},
},
tagCollapse
(
data
,
node
,
el
)
{
// 标签收起(记录树的状态)
tagCollapse
(
data
,
node
,
el
)
{
//console.log(node)
//console.log(node)
if
(
node
.
expanded
)
{
if
(
node
.
expanded
)
{
this
.
tagExpanded
.
splice
(
this
.
tagExpanded
.
findIndex
(
item
=>
item
==
node
.
data
.
id
),
1
)
this
.
tagExpanded
.
splice
(
this
.
tagExpanded
.
findIndex
(
item
=>
item
==
node
.
data
.
id
),
1
)
}
}
},
},
getData
()
{
getData
()
{
// 获取标签
getTagApi
().
then
(
res
=>
{
getTagApi
().
then
(
res
=>
{
this
.
treeDataOrigin
=
res
;
this
.
treeDataOrigin
=
res
;
this
.
treeData
=
[{
this
.
treeData
=
[{
...
@@ -266,7 +255,6 @@
...
@@ -266,7 +255,6 @@
weight
:
0
,
weight
:
0
,
}]
}]
});
});
},
},
onAdd
(
node
)
{
onAdd
(
node
)
{
...
@@ -281,10 +269,9 @@
...
@@ -281,10 +269,9 @@
});
});
},
},
onEdit
(
node
,
data
)
{
onEdit
(
node
,
data
)
{
console
.
log
(
el
)
//console.log(node)
console
.
log
(
node
)
//console.log(data)
console
.
log
(
data
)
let
item
=
node
.
data
;
let
item
=
node
.
data
;
this
.
dialogToggle
();
this
.
dialogToggle
();
this
.
dialogReset
();
this
.
dialogReset
();
...
@@ -302,7 +289,7 @@
...
@@ -302,7 +289,7 @@
},
},
conditionsChange
(
val
){
conditionsChange
(
val
){
console
.
log
(
val
);
//
console.log(val);
let
arr
=
[];
let
arr
=
[];
if
(
val
.
length
)
{
if
(
val
.
length
)
{
val
.
forEach
(
v
=>
{
val
.
forEach
(
v
=>
{
...
...
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