Commit a49dae2b authored by 赵茹林's avatar 赵茹林

标签页 新增搜索、高级搜索、导出、权限配置

9个期数搜索框更新
parent a23277cf
...@@ -198,6 +198,12 @@ html, body { ...@@ -198,6 +198,12 @@ html, body {
&.width-320 { &.width-320 {
max-width: 320px; max-width: 320px;
} }
&.width-360 {
max-width: 360px;
}
&.width-400 {
max-width: 400px;
}
&.width-480 { &.width-480 {
max-width: 480px; max-width: 480px;
} }
...@@ -232,4 +238,19 @@ html, body { ...@@ -232,4 +238,19 @@ html, body {
} }
} }
.el-table {
.f-c > div {
display: flex !important;
flex-flow: row;
justify-content: flex-start;
align-items: center;
}
.avatar {
width: 50px;
margin-right: 8px;
border-radius: 50%;
height: 50px;
}
}
</style> </style>
...@@ -140,8 +140,7 @@ export default { ...@@ -140,8 +140,7 @@ export default {
goods_id: null, goods_id: null,
teacherList: [], teacherList: [],
goodsList: [], goodsList: [],
periodList: [], //periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -343,12 +342,12 @@ export default { ...@@ -343,12 +342,12 @@ export default {
this.limit = val; this.limit = val;
this.getChannelTransList(); this.getChannelTransList();
}, },
getPeriodsOtherList() { /*getPeriodsOtherList() {
let json = { limit: 1000, page: 1,max_watch_num:20 }; let json = { limit: 1000, page: 1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
this.periodList = res.list; this.periodList = res.list;
}); });
}, },*/
getChannelTransList() { getChannelTransList() {
let json = { let json = {
limit: this.limit, limit: this.limit,
......
...@@ -157,8 +157,7 @@ export default { ...@@ -157,8 +157,7 @@ export default {
list: [], list: [],
goods_id: null, goods_id: null,
teacherList: [], teacherList: [],
periodList: [], //periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -204,7 +203,6 @@ export default { ...@@ -204,7 +203,6 @@ export default {
]; ];
} }
}, },
propertyList: [],
spanArr: [], spanArr: [],
contentSpanArr: [], contentSpanArr: [],
searchFrom: { searchFrom: {
...@@ -391,12 +389,12 @@ export default { ...@@ -391,12 +389,12 @@ export default {
this.limit = val; this.limit = val;
this.getChannelTransList(); this.getChannelTransList();
}, },
getPeriodsOtherList() { /*getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
this.periodList = res.list; this.periodList = res.list;
}); });
}, },*/
getChannelTransList() { getChannelTransList() {
let json = { let json = {
limit: this.limit, limit: this.limit,
......
...@@ -65,13 +65,15 @@ ...@@ -65,13 +65,15 @@
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
:popper-class="'refresh-select-multi width-480'"
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
clearable clearable
filterable> filterable>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="组ID"> <el-form-item label="组ID">
...@@ -443,6 +445,9 @@ export default { ...@@ -443,6 +445,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
}); });
}, },
......
...@@ -36,13 +36,15 @@ ...@@ -36,13 +36,15 @@
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
:popper-class="'refresh-select-multi width-480'"
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
clearable clearable
filterable> filterable>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -58,12 +60,11 @@ ...@@ -58,12 +60,11 @@
:header-cell-style="{background:'#5f5f5f',color:'#fff'}" :header-cell-style="{background:'#5f5f5f',color:'#fff'}"
:data="list" :data="list"
size="mini" size="mini"
height="calc(100vh - 210px)"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:span-method="arraySpanMethod" :span-method="arraySpanMethod"
> >
<el-table-column prop="periods_title" align="center" min-width="80" fixed label="期数名称"> <!--height="calc(100vh - 210px)"-->
</el-table-column> <el-table-column prop="periods_title" align="center" min-width="80" fixed label="期数名称"></el-table-column>
<el-table-column prop="is_other" min-width="160" align="left" fixed label="渠道信息"> <el-table-column prop="is_other" min-width="160" align="left" fixed label="渠道信息">
<template slot-scope="scope"> <template slot-scope="scope">
来源:{{scope.row.is_other==0?"内部":"外部"}}<br> 来源:{{scope.row.is_other==0?"内部":"外部"}}<br>
...@@ -109,7 +110,6 @@ export default { ...@@ -109,7 +110,6 @@ export default {
"wait_join_num", "wait_join_num",
"other_wait_join_num" "other_wait_join_num"
], ],
periodList:[],
searchFrom: { searchFrom: {
payTime: [], payTime: [],
start_at: "", start_at: "",
...@@ -196,6 +196,9 @@ export default { ...@@ -196,6 +196,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
}); });
}, },
...@@ -292,10 +295,12 @@ export default { ...@@ -292,10 +295,12 @@ export default {
<style scoped lang="less"> <style scoped lang="less">
.searchFrom{ .searchFrom{
position: absolute; /*position: absolute;
top: 20px; top: 20px;*/
}
.el-table{
/*margin-top: 130px;*/
} }
.el-table{margin-top: 130px;}
/deep/.el-table--enable-row-hover .el-table__body tr:hover > td { /deep/.el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #fff; background-color: #fff;
} }
...@@ -306,6 +311,6 @@ export default { ...@@ -306,6 +311,6 @@ export default {
max-width: 100% !important; max-width: 100% !important;
} }
.el-main .content .router-block .child-view { .el-main .content .router-block .child-view {
height: 100vh; /*height: 100vh;*/
} }
</style> </style>
...@@ -11,8 +11,7 @@ ...@@ -11,8 +11,7 @@
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="{shortcuts:[today,yesterday,last7Day,last30Day]}" :picker-options="{shortcuts:[today,yesterday,last7Day,last30Day]}"
:default-time="['00:00:00','23:59:59']" :default-time="['00:00:00','23:59:59']"
@change="getChannelTransList" @change="getChannelTransList"></el-date-picker>
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="开结课日期"> <el-form-item label="开结课日期">
<el-date-picker <el-date-picker
...@@ -24,8 +23,7 @@ ...@@ -24,8 +23,7 @@
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="{shortcuts:[classToday,classYesterday,classLast7Day,classLast30Day]}" :picker-options="{shortcuts:[classToday,classYesterday,classLast7Day,classLast30Day]}"
:default-time="['00:00:00','23:59:59']" :default-time="['00:00:00','23:59:59']"
@change="getChannelTransList" @change="getChannelTransList"></el-date-picker>
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="渠道code"> <el-form-item label="渠道code">
<el-input v-model="searchFrom.invite_type" style="width: 110px"></el-input> <el-input v-model="searchFrom.invite_type" style="width: 110px"></el-input>
...@@ -38,25 +36,23 @@ ...@@ -38,25 +36,23 @@
clearable clearable
placeholder="请选择" placeholder="请选择"
style="width: 150px" style="width: 150px"
@change="selectChange" @change="selectChange">
>
<el-option <el-option
v-for="(data,index) in watchList" v-for="(data,index) in watchList"
:key="index" :key="index"
:label="data.title" :label="data.title"
:value="data.id" :value="data.id"></el-option>
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
filterable filterable>
> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="组ID"> <el-form-item label="组ID">
...@@ -69,15 +65,13 @@ ...@@ -69,15 +65,13 @@
placeholder="请选择" placeholder="请选择"
@change="changeTeacher" @change="changeTeacher"
clearable clearable
style="width: 100px" style="width: 100px">
>
<el-option label="暂不分配" value="0"></el-option> <el-option label="暂不分配" value="0"></el-option>
<el-option <el-option
v-for="(data,index) in teacherList" v-for="(data,index) in teacherList"
:key="index" :key="index"
:label="data.name" :label="data.name"
:value="data.id" :value="data.id"></el-option>
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -92,15 +86,13 @@ ...@@ -92,15 +86,13 @@
:data="list" :data="list"
@sort-change="sortMethod" @sort-change="sortMethod"
:style="{width: width+'px'}" :style="{width: width+'px'}"
fixed fixed>
>
<el-table-column prop="periods_title" label="期数名称" ></el-table-column> <el-table-column prop="periods_title" label="期数名称" ></el-table-column>
<el-table-column <el-table-column
prop="duration_over_at" prop="duration_over_at"
label="开课看课时间" label="开课看课时间"
style="font-size:12px;" style="font-size:12px;"
width="200" width="200">
>
<template slot-scope="scope"> <template slot-scope="scope">
开课日期:{{scope.row.start_at}} 开课日期:{{scope.row.start_at}}
<br> <br>
...@@ -164,7 +156,6 @@ export default { ...@@ -164,7 +156,6 @@ export default {
teacherList: [], teacherList: [],
goodsList: [], goodsList: [],
periodList: [], periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -453,6 +444,9 @@ export default { ...@@ -453,6 +444,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
console.log(320) console.log(320)
}); });
......
...@@ -35,13 +35,13 @@ ...@@ -35,13 +35,13 @@
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
filterable filterable>
> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="转化前商品"> <el-form-item label="转化前商品">
...@@ -193,7 +193,6 @@ export default { ...@@ -193,7 +193,6 @@ export default {
teacherList: [], teacherList: [],
goodsList: [], goodsList: [],
periodList: [], periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -473,6 +472,9 @@ export default { ...@@ -473,6 +472,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
console.log(320) console.log(320)
}); });
......
...@@ -37,13 +37,13 @@ ...@@ -37,13 +37,13 @@
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
filterable filterable>
> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -117,7 +117,6 @@ export default { ...@@ -117,7 +117,6 @@ export default {
teacherList: [], teacherList: [],
goodsList: [], goodsList: [],
periodList: [], periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -355,6 +354,9 @@ export default { ...@@ -355,6 +354,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
}); });
}, },
......
...@@ -29,8 +29,7 @@ ...@@ -29,8 +29,7 @@
clearable clearable
placeholder="请选择" placeholder="请选择"
style="width: 150px" style="width: 150px"
@change="selectChange" @change="selectChange">
>
<el-option <el-option
v-for="(data,index) in watchList" v-for="(data,index) in watchList"
:key="index" :key="index"
...@@ -41,12 +40,13 @@ ...@@ -41,12 +40,13 @@
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
filterable> filterable>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -121,7 +121,6 @@ export default { ...@@ -121,7 +121,6 @@ export default {
teacherList: [], teacherList: [],
goodsList: [], goodsList: [],
periodList: [], periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -358,6 +357,9 @@ export default { ...@@ -358,6 +357,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
}); });
}, },
......
...@@ -35,12 +35,13 @@ ...@@ -35,12 +35,13 @@
</el-form-item> </el-form-item>
<el-form-item label="期数名称" prop="periods_title"> <el-form-item label="期数名称" prop="periods_title">
<el-select <el-select
style="width: 480px"
placeholder="请选择" placeholder="请选择"
v-model="searchFrom.periods_id" v-model="searchFrom.periods_id"
@change="onPeriodChange" @change="onPeriodChange"
multiple multiple
filterable> filterable>
<el-option v-for="item in periodList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in periodList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="老师"> <el-form-item label="老师">
...@@ -164,7 +165,6 @@ export default { ...@@ -164,7 +165,6 @@ export default {
teacherList: [], teacherList: [],
goodsList: [], goodsList: [],
periodList: [], periodList: [],
total: 0,
today: { today: {
text: "今天", text: "今天",
onClick: () => { onClick: () => {
...@@ -456,6 +456,9 @@ export default { ...@@ -456,6 +456,9 @@ export default {
getPeriodsOtherList() { getPeriodsOtherList() {
let json = { limit: 1000,page:1,max_watch_num:20 }; let json = { limit: 1000,page:1,max_watch_num:20 };
getPeriodsOtherListApi(json).then(res => { getPeriodsOtherListApi(json).then(res => {
res.list.forEach(val=>{
val.label = `【${val.goods_id}${val.title}${val.watch_num}课时(${val.start_at.slice(5).replace('-', '')})-d${val.has_watch_num}`
})
this.periodList = res.list; this.periodList = res.list;
}); });
}, },
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<el-form-item label="活动方案"> <el-form-item label="活动方案">
<el-select <el-select
v-model="newIntegral.source" v-model="newIntegral.source"
:prop-class="'refresh-select-multi width-480'" :popper-class="'refresh-select-multi width-480'"
style="width: 480px" placeholder="请选择" filterable> style="width: 480px" placeholder="请选择" filterable>
<el-option <el-option
v-for="(data,index) in classSource" v-for="(data,index) in classSource"
......
...@@ -54,6 +54,8 @@ ...@@ -54,6 +54,8 @@
.menu-block{ .menu-block{
float: left; float: left;
height: 100%; height: 100%;
background-color: #333333;
/*height: calc(100vh - 60px);*/
/*overflow: auto; /*overflow: auto;
position: fixed; position: fixed;
left: 0; left: 0;
...@@ -69,9 +71,9 @@ ...@@ -69,9 +71,9 @@
height: 100%; height: 100%;
position: relative; position: relative;
.child-view{ .child-view{
height: calc(100% - 40px); /*height: calc(100% - 40px);
width: 100%; width: 100%;
overflow-y: auto; overflow-y: auto;*/
} }
} }
} }
......
<template> <template>
<div class="user"> <div class="user">
<el-form ref="searchFrom" :model="searchFrom" label-width="100px" inline="" class="search-form"> <el-form ref="searchFrom" :model="searchFrom" label-width="100px" inline="" class="search-form">
<el-form-item label="课程标题"> <el-form-item label="课程标题">
<el-input v-model="searchFrom.title"></el-input> <el-input v-model="searchFrom.title"></el-input>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<div class="search-btn-block"> <div class="search-btn-block">
<el-button type="primary" plain @click="getUser" icon="el-icon-search">搜索</el-button> <el-button type="primary" plain @click="getUser" icon="el-icon-search">搜索</el-button>
<el-button type="success" plain @click="add" v-if="!$store.state.readonly" icon="el-icon-plus">新增课程</el-button> <el-button type="success" plain @click="add" v-if="!$store.state.readonly" icon="el-icon-plus">新增课程</el-button>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-tabs v-model="searchFrom.type" type="card" style="background: white;padding-top: 10px" @tab-click="getUser"> <el-tabs v-model="searchFrom.type" type="card" style="background: white;padding-top: 10px" @tab-click="getUser">
<el-tab-pane label="全部" name="-1"></el-tab-pane> <el-tab-pane label="全部" name="-1"></el-tab-pane>
<el-tab-pane label="日课" name="1"></el-tab-pane> <el-tab-pane label="日课" name="1"></el-tab-pane>
<el-tab-pane label="月课" name="0"></el-tab-pane> <el-tab-pane label="月课" name="0"></el-tab-pane>
</el-tabs> </el-tabs>
<el-table <el-table :data="userList">
:data="userList"
style="width: 100%">
<el-table-column <el-table-column
prop="title" prop="title"
label="课程名"> label="课程名">
...@@ -181,8 +179,8 @@ ...@@ -181,8 +179,8 @@
margin: 0; margin: 0;
} }
.user{ .user{
height: 100%; /*height: 100%;*/
overflow: auto; /*overflow: auto;*/
padding: 20px 0; padding: 20px 0;
.btn-content{ .btn-content{
text-align: center; text-align: center;
......
...@@ -8,8 +8,7 @@ ...@@ -8,8 +8,7 @@
height="calc(100vh - 60px)" height="calc(100vh - 60px)"
size="mini" size="mini"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:span-method="arraySpanMethod" :span-method="arraySpanMethod">
>
<el-table-column min-width="180" prop="wait_join_num" align="left" fixed="left" label="期数总状况"> <el-table-column min-width="180" prop="wait_join_num" align="left" fixed="left" label="期数总状况">
<template slot-scope="scope"> <template slot-scope="scope">
期数名称:{{scope.row.title}} 期数名称:{{scope.row.title}}
......
<template> <template>
<div> <div>
<el-dialog <el-dialog :title="dialogObj.title" :visible.sync="dialogObj.show">
:title="dialogObj.title"
:visible.sync="dialogObj.show"
>
<el-table <el-table
:data="goodList" :data="goodList"
style="width: 100%" style="width: 100%"
row-key="id" row-key="id"
highlight-current-row highlight-current-row
@current-change="handleCurrentChange"> @current-change="handleCurrentChange">
<el-table-column <el-table-column prop="id" label="商品ID"></el-table-column>
prop="id"
label="商品ID">
</el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
label="名称"> label="名称">
......
...@@ -6,7 +6,9 @@ ...@@ -6,7 +6,9 @@
<el-input v-model="title" placeholder="请输入内容" style="width: 150px" clearable></el-input> <el-input v-model="title" placeholder="请输入内容" style="width: 150px" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="商品名称"> <el-form-item label="商品名称">
<el-select v-model="goodsId" filterable placeholder="请选择" style="width: 150px" @change="onSearch" clearable> <el-select
:popper-class="'refresh-select-multi width-400'" style="width: 400px"
v-model="goodsId" filterable placeholder="请选择" @change="onSearch" clearable>
<el-option <el-option
v-for="(data,index) in goodList" v-for="(data,index) in goodList"
:key="index" :key="index"
......
...@@ -2,26 +2,23 @@ ...@@ -2,26 +2,23 @@
<div> <div>
<el-dialog <el-dialog
:title="dialogObj.title" :title="dialogObj.title"
center center append-to-body
append-to-body
:visible.sync="show" :visible.sync="show"
width="800px"> width="800px">
<div v-loading="loading"> <div v-loading="loading">
<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-form-item label="商品名称" prop="goods_id">
<el-col :span="10"> <el-select
<el-form-item label="商品名称" prop="goods_id"> :popper-class="'refresh-select-multi width-480'" style="width: 480px"
<el-select v-model="form.goods_id" placeholder="请选择" @change="onOptionChange" :disabled="form.id ? true : false"> v-model="form.goods_id" placeholder="请选择" @change="onOptionChange" :disabled="form.id ? true : false">
<el-option <el-option
v-for="(data,index) in goodList" v-for="(data,index) in goodList"
: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>
</el-row>
<el-form-item label="期数名称" prop="title"> <el-form-item label="期数名称" prop="title">
<el-input v-model="form.title"></el-input> <el-input v-model="form.title"></el-input>
</el-form-item> </el-form-item>
...@@ -83,10 +80,10 @@ ...@@ -83,10 +80,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> </div>
<div slot="footer" class="dialog-footer">
<el-button @click="show = false">取 消</el-button> <el-button @click="show = false">取 消</el-button>
<el-button type="primary" @click="sub">确 定</el-button> <el-button type="primary" @click="sub">确 定</el-button>
</span>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
......
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
limit: 10, limit: 10,
roleList:[], roleList:[],
exportMenuList:[ exportMenuList:[
'2-3','5-10','5-2','5-1','5-3','5-8','5-9','3-1','7-9','6-3' '2-3','5-10','5-2','5-1','5-3','5-8','5-9','3-1','7-9','6-3', '10-8'
], ],
dialog:{ dialog:{
title:'新增角色', title:'新增角色',
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</el-table-column> </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"/>
<el-dialog :title="dialog.title" :visible.sync="dialog.show" width="500px"> <el-dialog :title="dialog.title" :visible.sync="dialog.show" width="800px">
<el-form ref="dialogForm" :rules="dialog.form.rules" :model="dialog.form" label-width="100px"> <el-form ref="dialogForm" :rules="dialog.form.rules" :model="dialog.form" label-width="100px">
<el-form-item label="真实姓名:" prop="name"> <el-form-item label="真实姓名:" prop="name">
...@@ -334,7 +334,7 @@ ...@@ -334,7 +334,7 @@
} }
.user { .user {
height: 100%; /*height: 100%;*/
overflow: auto; overflow: auto;
padding: 20px 0; padding: 20px 0;
......
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
<style lang="less" scoped> <style lang="less" scoped>
.user { .user {
height: 100%; /*height: 100%;*/
overflow: auto; overflow: auto;
padding: 20px 0; padding: 20px 0;
......
...@@ -4,15 +4,17 @@ ...@@ -4,15 +4,17 @@
<div class="section-search search-single"> <div class="section-search search-single">
<el-form ref="searchFrom" :model="searchFrom" label-width="80px" inline> <el-form ref="searchFrom" :model="searchFrom" label-width="80px" inline>
<el-form-item> <el-form-item>
<el-cascader <!--<el-cascader
style="width: 280px" placeholder="选择标签" style="width: 280px" placeholder="选择标签"
:props="searchProps" clearable></el-cascader> :props="searchProps" clearable></el-cascader>-->
<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="onSearch" type="warning" plain>高级搜索</el-button> <el-button @click="dialogToggle" 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>
...@@ -21,275 +23,81 @@ ...@@ -21,275 +23,81 @@
<div class="tag-tree"> <div class="tag-tree">
<el-tree <el-tree
:data="tableData" :data="treeData"
node-key="id" node-key="id" ref="tagTree"
:props="tagProps" :props="tagProps"
:indent="40" :indent="40"
@node-expand="tagExpand" @node-expand="tagExpand"
@node-collapse="tagCollapse" @node-collapse="tagCollapse"
:filter-node-method="filterNode"
:default-expanded-keys="tagExpanded" :default-expanded-keys="tagExpanded"
:expand-on-click-node="false"> :expand-on-click-node="true">
<div class="custom-tree-node" slot-scope="{ node, data }"> <div class="custom-tree-node" slot-scope="{ node, data }">
<el-tag class="tag-tree-item" effect="plain" size="medium">{{node.label}}</el-tag> <el-tag class="tag-tree-item" effect="plain" size="medium">{{node.label}}</el-tag>
<div style="display: flex"> <div style="display: flex">
<el-link type="success" size="mini" plain @click.stop="onAdd(node)">新增子标签 ({{node.level}}级)</el-link> <!--<span>{{node.data.cover}}</span>-->
<el-link v-if="node.level != 1" type="warning" size="mini" plain @click.stop="onEdit(node, data, el)">编辑</el-link> <el-popover
placement="right-start"
title="标签备注"
width="200"
trigger="hover"
:disabled="!node.data.cover"
:content="node.data.cover ? node.data.cover : '暂无备注'">
<el-link @click.stop class="cover-link" slot="reference" :disabled="!node.data.cover">备注</el-link>
</el-popover>
<el-link v-if="node.level < 4 && !$store.state.readonly" type="success" size="mini" plain @click.stop="onAdd(node)">新增子标签 ({{node.level}}级)</el-link>
<el-link v-if="node.level != 1 && !$store.state.readonly" type="warning" size="mini" plain @click.stop="onEdit(node, data)">编辑</el-link>
</div> </div>
</div> </div>
</el-tree> </el-tree>
</div> </div>
<el-dialog :title="dialog.title" :visible.sync="dialog.show" width="500px"> <el-dialog :title="dialog.title" :visible.sync="dialog.show" width="800px" title="高级搜索">
<el-form ref="dialogForm" :rules="dialog.form.rules" :model="dialog.form" label-width="100px"> <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-form-item label="ID:" prop="id" style="display: none;"> <el-cascader
<el-input v-model="dialog.form.id" maxlength="10" type="text"></el-input> style="width: calc(100% - 90px)" placeholder="选择标签" clearable @change="conditionsChange"
</el-form-item> :options="treeDataOrigin" :props="{ value: 'id', label: 'name', multiple: true, checkStrictly: true }"></el-cascader>
<el-form-item label="PID:" prop="pid" style="display: none;"> </div>
<el-input v-model="dialog.form.pid" maxlength="10" type="text"></el-input>
</el-form-item> <el-table :data="tableData" border>
<el-table-column className="f-c" label="用户">
<el-form-item label="标签名称:" prop="name"> <template slot-scope="scope">
<el-input v-model="dialog.form.name" maxlength="10" type="text"></el-input> <img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}<br>(ID:{{scope.row.user_id}})
</el-form-item> </template>
<el-form-item label="标签备注:" prop="cover"> </el-table-column>
<el-input v-model="dialog.form.cover" maxlength="50" type="textarea" :rows="3"></el-input>
</el-form-item> <el-table-column prop="baby_name" label="宝宝名称"></el-table-column>
</el-form> <el-table-column prop="birthday" label="宝宝生日"></el-table-column>
<el-table-column prop="sex" label="宝宝性别" :formatter="sexFormatter"></el-table-column>
<span slot="footer" class="dialog-footer"> <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>
<page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/>
<!--<span slot="footer" class="dialog-footer">
<el-button @click="dialogToggle">取消</el-button> <el-button @click="dialogToggle">取消</el-button>
<el-button type="primary" @click="dialogSave">确定</el-button> <el-button type="primary" @click="dialogSave">确定</el-button>
</span> </span>-->
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {getTagApi, postTagApi, putTagApi} from "../../service/api"; import {getTagApi, postTagApi, putTagApi, getTagUserApi, exportExcelApi} from "../../service/api";
import page from '../framework/page';
let sid = 0, id = 1000;
export default { export default {
name: "index", name: "index",
data() { data() {
return { return {
conditions: [],
options: [{ filterText: '',
value: 'zhinan',
label: '指南',
children: [{
value: 'shejiyuanze',
label: '设计原则',
children: [{
value: 'yizhi',
label: '一致'
}, {
value: 'fankui',
label: '反馈'
}, {
value: 'xiaolv',
label: '效率'
}, {
value: 'kekong',
label: '可控'
}]
}, {
value: 'daohang',
label: '导航',
children: [{
value: 'cexiangdaohang',
label: '侧向导航'
}, {
value: 'dingbudaohang',
label: '顶部导航'
}]
}]
}, {
value: 'zujian',
label: '组件',
children: [{
value: 'basic',
label: 'Basic',
children: [{
value: 'layout',
label: 'Layout 布局'
}, {
value: 'color',
label: 'Color 色彩'
}, {
value: 'typography',
label: 'Typography 字体'
}, {
value: 'icon',
label: 'Icon 图标'
}, {
value: 'button',
label: 'Button 按钮'
}]
}, {
value: 'form',
label: 'Form',
children: [{
value: 'radio',
label: 'Radio 单选框'
}, {
value: 'checkbox',
label: 'Checkbox 多选框'
}, {
value: 'input',
label: 'Input 输入框'
}, {
value: 'input-number',
label: 'InputNumber 计数器'
}, {
value: 'select',
label: 'Select 选择器'
}, {
value: 'cascader',
label: 'Cascader 级联选择器'
}, {
value: 'switch',
label: 'Switch 开关'
}, {
value: 'slider',
label: 'Slider 滑块'
}, {
value: 'time-picker',
label: 'TimePicker 时间选择器'
}, {
value: 'date-picker',
label: 'DatePicker 日期选择器'
}, {
value: 'datetime-picker',
label: 'DateTimePicker 日期时间选择器'
}, {
value: 'upload',
label: 'Upload 上传'
}, {
value: 'rate',
label: 'Rate 评分'
}, {
value: 'form',
label: 'Form 表单'
}]
}, {
value: 'data',
label: 'Data',
children: [{
value: 'table',
label: 'Table 表格'
}, {
value: 'tag',
label: 'Tag 标签'
}, {
value: 'progress',
label: 'Progress 进度条'
}, {
value: 'tree',
label: 'Tree 树形控件'
}, {
value: 'pagination',
label: 'Pagination 分页'
}, {
value: 'badge',
label: 'Badge 标记'
}]
}, {
value: 'notice',
label: 'Notice',
children: [{
value: 'alert',
label: 'Alert 警告'
}, {
value: 'loading',
label: 'Loading 加载'
}, {
value: 'message',
label: 'Message 消息提示'
}, {
value: 'message-box',
label: 'MessageBox 弹框'
}, {
value: 'notification',
label: 'Notification 通知'
}]
}, {
value: 'navigation',
label: 'Navigation',
children: [{
value: 'menu',
label: 'NavMenu 导航菜单'
}, {
value: 'tabs',
label: 'Tabs 标签页'
}, {
value: 'breadcrumb',
label: 'Breadcrumb 面包屑'
}, {
value: 'dropdown',
label: 'Dropdown 下拉菜单'
}, {
value: 'steps',
label: 'Steps 步骤条'
}]
}, {
value: 'others',
label: 'Others',
children: [{
value: 'dialog',
label: 'Dialog 对话框'
}, {
value: 'tooltip',
label: 'Tooltip 文字提示'
}, {
value: 'popover',
label: 'Popover 弹出框'
}, {
value: 'card',
label: 'Card 卡片'
}, {
value: 'carousel',
label: 'Carousel 走马灯'
}, {
value: 'collapse',
label: 'Collapse 折叠面板'
}]
}]
}, {
value: 'ziyuan',
label: '资源',
children: [{
value: 'axure',
label: 'Axure Components'
}, {
value: 'sketch',
label: 'Sketch Templates'
}, {
value: 'jiaohu',
label: '组件交互文档'
}]
}],
searchProps: {
lazy: true,
multiple: true,
checkStrictly: true,
lazyLoad (node, resolve) {
const { level } = node;
setTimeout(() => {
const nodes = Array.from({ length: level + 1 })
.map(item => ({
value: ++sid,
label: `选项${sid}`,
leaf: level >= 2
}));
// 通过调用resolve将子节点数据返回,通知组件数据加载完成
resolve(nodes);
}, 1000);
}
},
tagProps: { tagProps: {
children: 'children', children: 'children',
...@@ -311,6 +119,8 @@ ...@@ -311,6 +119,8 @@
}, },
startTime: [], startTime: [],
tableData: [], tableData: [],
treeData: [],
treeDataOrigin: [],
dialog: { dialog: {
title: '', title: '',
show: false, show: false,
...@@ -331,17 +141,63 @@ ...@@ -331,17 +141,63 @@
loading: false loading: false
} }
}, },
//components: { page }, components: { page },
watch: {
filterText(val) {
this.$refs.tagTree.filter(val);
}
},
mounted() { mounted() {
this.getData() this.getData()
}, },
methods: { methods: {
sexFormatter(item){
if(item.sex==0){
return '保密'
}
if(item.sex==1){
return '男'
}
if(item.sex==2){
return '女'
}
},
onPageChange(val) {
this.nowPage = val
this.getUserData()
},
onSizeChange(val) {
this.limit = val;
this.nowPage = 1;
this.getUserData()
},
getUserData(){
let json = {
conditions: JSON.stringify(this.conditions),
limit: this.limit,
page: this.nowPage
}
getTagUserApi(json).then(res=>{
this.tableData = res.list
})
},
filterNode(value, data) {
if (!value) return true;
return data.name.indexOf(value) !== -1;
},
dialogToggle() { dialogToggle() {
this.dialog.show = !this.dialog.show; this.dialog.show = !this.dialog.show;
if (!this.dialog.show) { if (!this.dialog.show) {
this.dialogReset(); this.dialogReset();
} }
/*if (this.tableData.length && this.tableData[0] == 0) { // 未初始化
this.getUserData();
}*/
}, },
dialogReset(callback) { dialogReset(callback) {
this.$nextTick(()=>{ this.$nextTick(()=>{
...@@ -384,52 +240,27 @@ ...@@ -384,52 +240,27 @@
}, },
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)
} }
}, },
/*append(data) {
console.log(data)
const newChild = { id: id++, label: 'testtest', children: [] };
if (!data.children) {
this.$set(data, 'children', []);
}
data.children.push(newChild);
},
remove(node, data) {
console.log(node)
const parent = node.parent;
const children = parent.data.children || parent.data;
const index = children.findIndex(d => d.id === data.id);
children.splice(index, 1);
},*/
getData() { getData() {
/*function addLable(data) {
data.forEach(val => {
val.label = val.name;
if (val.children && val.children.length) {
addLable(val.children)
}
})
};*/
getTagApi().then(res => { getTagApi().then(res => {
this.tableData = [{ this.treeDataOrigin = res;
this.treeData = [{
children: res, children: res,
cover: '', cover: '',
created_at: '', created_at: '',
id: 0, id: 0,
label: '所有标签',
name: '所有标签', name: '所有标签',
pid: 0, pid: 0,
weight: 0, weight: 0,
...@@ -450,7 +281,7 @@ ...@@ -450,7 +281,7 @@
}); });
}, },
onEdit(node,data,el) { onEdit(node,data) {
console.log(el) console.log(el)
console.log(node) console.log(node)
console.log(data) console.log(data)
...@@ -469,6 +300,28 @@ ...@@ -469,6 +300,28 @@
onSearch(){ onSearch(){
this.getData(); this.getData();
}, },
conditionsChange(val){
console.log(val);
let arr = [];
if(val.length) {
val.forEach(v => {
arr.push(v[v.length - 1])
})
this.conditions = arr;
this.getUserData();
} else {
this.conditions = arr;
this.tableData = [];
}
},
exportExcel() {
let json = {
conditions: JSON.stringify(this.conditions),
}
exportExcelApi(`api/admin/advanced/search/export`, json, '标签用户列表');
}
} }
} }
</script> </script>
...@@ -501,6 +354,12 @@ ...@@ -501,6 +354,12 @@
.el-link { .el-link {
font-size: 12px; font-size: 12px;
&.cover-link {
margin-right: 10px;
line-height: 28px;
}
&:hover:after { &:hover:after {
bottom: 2px; bottom: 2px;
} }
......
<template> <template>
<div class="user" v-loading="loading"> <div class="user" v-loading="loading">
<el-form ref="searchFrom" :model="searchFrom" label-width="80px" inline> <el-form ref="searchFrom" :model="searchFrom" label-width="80px" inline>
<el-form-item label="ID"> <el-form-item label="ID">
<el-input v-model="searchFrom.userId"></el-input> <el-input v-model="searchFrom.userId"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="昵称"> <el-form-item label="昵称">
<el-input v-model="searchFrom.nickName"></el-input> <el-input v-model="searchFrom.nickName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="电话"> <el-form-item label="电话">
<el-input v-model="searchFrom.mobile"></el-input> <el-input v-model="searchFrom.mobile"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="等级"> <el-form-item label="等级">
<el-input v-model="searchFrom.level"></el-input> <el-input v-model="searchFrom.level"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <!--<el-form-item label="标签">
<div class="flexRow"> <el-cascader
<el-button type="primary" plain @click="getUser">搜索</el-button> style="width: 320px" placeholder="选择标签" clearable @change="tagChange"
<!--<el-button type="success" plain @click="syncUser">同步最新数据</el-button>--> :options="options" :props="{ multiple: true, checkStrictly: true }"></el-cascader>
</div> </el-form-item>-->
</el-form-item> <el-form-item>
<div class="flexRow">
<el-button type="primary" plain @click="getUser">搜索</el-button>
<!--<el-button type="success" plain @click="syncUser">同步最新数据</el-button>-->
</div>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
:data="userList" :data="userList"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column className="f-c" label="用户">
className="f-c"
label="用户">
<template slot-scope="scope"> <template slot-scope="scope">
<img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}(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 <el-table-column prop="mobile" label="手机号"></el-table-column>
prop="mobile" <el-table-column prop="created_at" label="注册时间" width="105px" sortable></el-table-column>
label="手机号"> <el-table-column prop="last_login_at" label="最后登录" width="105px" sortable></el-table-column>
</el-table-column> <!--<el-table-column prop="last_login_at" label="最后登录时间" width="120px" sortable></el-table-column>-->
<el-table-column <el-table-column prop="baby_name" label="宝宝名称"></el-table-column>
prop="created_at" <el-table-column prop="birthday" label="宝宝生日" width="105px"></el-table-column>
label="注册时间" sortable> <el-table-column prop="sex" label="宝宝性别" width="80px" :formatter="sexFormatter"></el-table-column>
</el-table-column> <el-table-column label="操作" width="100px">
<el-table-column
prop="last_login_at"
label="最后登录时间" sortable>
</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="sex"
label="宝宝性别" :formatter="sexFormatter" >
</el-table-column>
<el-table-column
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" plain type="primary" @click="goToDetail(scope.row.user_id)"> <el-button size="mini" plain type="primary" @click="goToDetail(scope.row.user_id)">查看详情</el-button>
查看详情
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -123,6 +106,9 @@ ...@@ -123,6 +106,9 @@
this.getUser() this.getUser()
}, },
methods:{ methods:{
tagChange() {
},
sexFormatter(item){ sexFormatter(item){
if(item.sex==0){ if(item.sex==0){
return '保密' return '保密'
...@@ -204,16 +190,10 @@ ...@@ -204,16 +190,10 @@
} }
</script> </script>
<style scoped lang="less"> <style lang="less">
@import "../../util/public"; /*@import "../../util/public";*/
.avatar {
width: 50px;
margin-right: 5px;
border-radius: 50%;
height: 50px;
}
.user{ .user{
height: 100%; /*height: 100%;*/
overflow: auto; overflow: auto;
padding: 20px 0; padding: 20px 0;
.btn-content{ .btn-content{
...@@ -228,11 +208,3 @@ ...@@ -228,11 +208,3 @@
} }
</style> </style>
<style>
.f-c > div {
display: flex !important;
flex-flow: row;
justify-content: flex-start;
align-items: center;
}
</style>
...@@ -97,24 +97,19 @@ ...@@ -97,24 +97,19 @@
</el-table> </el-table>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="periods_title" label="期数名称">
prop="periods_title"
label="期数名称">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="{name:'class', query: { goods_id: scope.row.goods_id, periods_id: scope.row.periods_id}}" > <router-link :to="{name:'class', query: { goods_id: scope.row.goods_id, periods_id: scope.row.periods_id}}" >
{{scope.row.periods_title}} {{scope.row.periods_title}}
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="看课权限">
label="看课权限">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.is_view_course === 1 ? '是' : '否'}} {{scope.row.is_view_course === 1 ? '是' : '否'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column className="f-c" label="老师">
className="f-c"
label="老师">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="`/teacher/${scope.row.teacher_id}`" > <router-link :to="`/teacher/${scope.row.teacher_id}`" >
<div class="f-c"> <div class="f-c">
...@@ -125,24 +120,11 @@ ...@@ -125,24 +120,11 @@
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="join_num" label="加入人数"></el-table-column>
prop="join_num" <el-table-column prop="max_join_num" label="最大加入人数"></el-table-column>
label="加入人数"> <el-table-column prop="start_at" label="开课时间"></el-table-column>
</el-table-column> <el-table-column prop="created_at" label="创建时间"></el-table-column>
<el-table-column <el-table-column label="操作" width="340px">
prop="max_join_num"
label="最大加入人数">
</el-table-column>
<el-table-column
prop="start_at"
label="开课时间">
</el-table-column>
<el-table-column
prop="created_at"
label="创建时间">
</el-table-column>
<el-table-column
label="操作" width="400px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="showUser(scope.row)" size="mini" type="primary"> 班级成员</el-button> <el-button @click="showUser(scope.row)" size="mini" type="primary"> 班级成员</el-button>
<el-button size="mini" type="warning" v-if="!$store.state.readonly" @click="editPrivilege(scope.row)" >编辑</el-button> <el-button size="mini" type="warning" v-if="!$store.state.readonly" @click="editPrivilege(scope.row)" >编辑</el-button>
......
...@@ -1337,6 +1337,14 @@ export const postTagApi = function (json) { ...@@ -1337,6 +1337,14 @@ export const postTagApi = function (json) {
export const putTagApi = function (json) { export const putTagApi = function (json) {
return Vue.prototype.$put(`${_baseUrl}api/admin/category/${json.category_id}`, json) return Vue.prototype.$put(`${_baseUrl}api/admin/category/${json.category_id}`, json)
}; };
// 根据标签搜索用户
export const getTagUserApi = function (json) {
return Vue.prototype.$fetch(`${_baseUrl}api/admin/advanced/search`, json)
};
// 根据标签搜索用户
export const TagUserApi = function (json) {
return Vue.prototype.$fetch(`${_baseUrl}api/admin/advanced/search`, json)
};
// 获取员工列表 // 获取员工列表
export const getStaffListApi = function (json) { export const getStaffListApi = function (json) {
return Vue.prototype.$fetch(`${_baseUrl}api/admin/staff/list`, json) return Vue.prototype.$fetch(`${_baseUrl}api/admin/staff/list`, json)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment