Commit 4b6bc265 authored by chenyishuai@singsingenglish.com's avatar chenyishuai@singsingenglish.com

812

parents bcf74f68 d0797f22
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<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.7.2/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>
......
...@@ -303,9 +303,9 @@ ...@@ -303,9 +303,9 @@
"dev": true "dev": true
}, },
"async-validator": { "async-validator": {
"version": "1.8.2", "version": "1.8.5",
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.2.tgz", "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
"integrity": "sha1-t3WXIm6WJC+NUxwNRq4pX2JCK6Q=", "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
"requires": { "requires": {
"babel-runtime": "6.x" "babel-runtime": "6.x"
} }
...@@ -2574,8 +2574,8 @@ ...@@ -2574,8 +2574,8 @@
}, },
"deepmerge": { "deepmerge": {
"version": "1.5.2", "version": "1.5.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz",
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
}, },
"define-properties": { "define-properties": {
"version": "1.1.2", "version": "1.1.2",
...@@ -2878,9 +2878,9 @@ ...@@ -2878,9 +2878,9 @@
"dev": true "dev": true
}, },
"element-ui": { "element-ui": {
"version": "2.4.3", "version": "2.11.1",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.4.3.tgz", "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.11.1.tgz?cache=0&sync_timestamp=1564126738326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-ui%2Fdownload%2Felement-ui-2.11.1.tgz",
"integrity": "sha512-fHcpUGbJsfP1mvfErdnn4A7MglNbfL4uiukGHRZaFy1K7HhVKEpLficNqUtaYS3SKjKnzpkSdZkrJJCR1aNICw==", "integrity": "sha1-K2f57uPtouaISHPBxYnL4w2anWA=",
"requires": { "requires": {
"async-validator": "~1.8.1", "async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0", "babel-helper-vue-jsx-merge-props": "^2.0.0",
...@@ -6123,7 +6123,7 @@ ...@@ -6123,7 +6123,7 @@
}, },
"normalize-wheel": { "normalize-wheel": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
}, },
"npm-run-path": { "npm-run-path": {
...@@ -9249,9 +9249,9 @@ ...@@ -9249,9 +9249,9 @@
"dev": true "dev": true
}, },
"resize-observer-polyfill": { "resize-observer-polyfill": {
"version": "1.5.0", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.0.tgz", "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-M2AelyJDVR/oLnToJLtuDJRBBWUGUvvGigj1411hXhAdyFWqMaqHp7TixW3FpiLuVaikIcR1QL+zqoJoZlOgpg==" "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
}, },
"resolve": { "resolve": {
"version": "1.8.1", "version": "1.8.1",
...@@ -10049,8 +10049,8 @@ ...@@ -10049,8 +10049,8 @@
}, },
"throttle-debounce": { "throttle-debounce": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", "resolved": "http://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz",
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
}, },
"through2": { "through2": {
"version": "2.0.3", "version": "2.0.3",
......
...@@ -76,16 +76,17 @@ export default { ...@@ -76,16 +76,17 @@ export default {
}; };
</script> </script>
<style > <style lang="less">
#app { #app {
height: 100%; height: 100%;
} }
html,
body { html, body {
height: 100%; height: 100%;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.el-collapse-item__arrow { .el-collapse-item__arrow {
margin-left: 0; margin-left: 0;
} }
......
<template> <template>
<el-dialog <el-dialog :title="dialogObj.title" :visible.sync="dialogObj.show">
:title="dialogObj.title"
:visible.sync="dialogObj.show"
>
<el-form ref="form" :model="form" label-width="120px"> <el-form ref="form" :model="form" label-width="120px">
<el-form-item label="期数" v-if="!this.dialogObj.periodsId"> <el-form-item label="期数" v-if="!this.dialogObj.periodsId">
<el-cascader <el-cascader
class="refresh-cascader-multi width-480"
style="width: 480px"
:options="goodsList" :options="goodsList"
:props="{value:'id',label:'name'}" :props="{value:'id',label:'name'}"
@active-item-change="handleItemChange" @active-item-change="handleItemChange"
@change="changePeriods" @change="changePeriods"></el-cascader>
>
</el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="老师"> <el-form-item label="老师">
<el-select v-model="form.teacher_id" placeholder="请选择" filterable @change="selectName(teacherList,form.teacher_id)"> <el-select v-model="form.teacher_id" placeholder="请选择" filterable @change="selectName(teacherList,form.teacher_id)">
...@@ -29,8 +26,11 @@ ...@@ -29,8 +26,11 @@
<el-form-item label="最大学员"> <el-form-item label="最大学员">
<el-input-number v-model="form.max_join_num"></el-input-number> <el-input-number v-model="form.max_join_num"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="招生来源"> <el-form-item label="活动方案">
<el-select v-model="form.source" placeholder="请选择" filterable> <el-select
v-model="form.source" placeholder="请选择" filterable
:popper-class="'refresh-select-multi width-480'"
style="width: 480px">
<el-option <el-option
v-for="(data,index) in classSource" v-for="(data,index) in classSource"
:key="index" :key="index"
...@@ -38,21 +38,21 @@ ...@@ -38,21 +38,21 @@
:value="data.type" > :value="data.type" >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item > </el-form-item>
<el-form-item label="班级二维码"> <!--<el-form-item label="班级二维码">
<!--<el-input v-model="form.qr"></el-input>--> &lt;!&ndash;<el-input v-model="form.qr"></el-input>&ndash;&gt;
<el-upload <el-upload
action="/api/public/upload/zone" action="/api/public/upload/zone"
:http-request="uploadFile" :http-request="uploadFile"
:class="{disabled:!uploadShow}" :class="{disabled:!uploadShow}"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
list-type="picture-card" list-type="picture-card"
:file-list="imageList" :file-list="imageList"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccess"
:on-remove="handleRemove"> :on-remove="handleRemove">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>-->
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogObj.show = false">取 消</el-button> <el-button @click="dialogObj.show = false">取 消</el-button>
......
<template> <template>
<div class="class"> <div class="class admin-refresh">
<div class="form-block"> <div class="form-block section-search search-single">
<el-form label-width="90px" inline> <el-form label-width="90px" inline>
<el-form-item label="期数"> <el-form-item>
<el-cascader <el-cascader
:popper-class="'refresh-cascader-multi width-560'"
placeholder="请选择期数" style="width: 560px" filterable
:options="goodsList" :options="goodsList"
:props="{value:'id',label:'name'}" :props="{value:'id',label:'name'}"
@active-item-change="handleItemChange" @active-item-change="handleItemChange"
@change="changePeriods" @change="changePeriods"
filterable v-model="selectedGoods"></el-cascader>
v-model="selectedGoods"
></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="老师"> <el-form-item>
<el-select <el-select
filterable filterable
v-model="teacher_id" v-model="teacher_id"
placeholder="请选择" placeholder="请选择老师"
@change="getClassList" @change="getClassList" clearable>
clearable
>
<el-option <el-option
v-for="(data,index) in teacherList" v-for="(data,index) in teacherList"
:key="index" :key="index"
:label="data.teacher_name" :label="data.teacher_name"
:value="data.teacher_id" :value="data.teacher_id"></el-option>
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label> <el-form-item label>
<el-button type="primary" @click="getClassList">搜索</el-button> <el-button type="primary" @click="getClassList">搜索</el-button>
</el-form-item> </el-form-item>
<el-form-item style="float: right"> <el-form-item style="float: right">
<el-button @click="onAdd" type="success" v-if="!$store.state.readonly">+添加班级</el-button> <div class="search-btn-wrapper">
<el-button type="success" @click="sendMsg">发送活动通知</el-button> <el-button @click="onAdd" type="success" v-if="!$store.state.readonly">+添加班级</el-button>
<el-button type="success" @click="sendMsg">发送活动通知</el-button>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div v-if="title && title.title " class="intro"> <div v-if="title && title.title " class="intro">
<el-table <el-table border size="mini" :data="[title]"
border style="display: block;margin: 10px auto;background: transparent">
size="mini" <el-table-column label="期数名称" width="280px">
style="display: block;margin: 20px auto;background: transparent" <template slot-scope="scope">
:data="[title]" <span style="white-space: normal">{{periodName}}</span>
> </template>
<el-table-column label="期数名称" prop="title"></el-table-column> </el-table-column>
<el-table-column label="可看课包数" prop="watch_num"></el-table-column> <el-table-column label="可看课包数" prop="watch_num"></el-table-column>
<el-table-column label="已看课包数" prop="has_watch_num"></el-table-column> <el-table-column label="已看课包数" prop="has_watch_num"></el-table-column>
<el-table-column label="开始时间" prop="start_at"></el-table-column> <el-table-column label="开始时间" prop="start_at"></el-table-column>
...@@ -60,7 +59,7 @@ ...@@ -60,7 +59,7 @@
</el-form> </el-form>
</div> </div>
<div> <div>
<el-table @expand-change="changeRow" :data="classList" style="width: 100%"> <el-table @expand-change="changeRow" :data="classList">
<el-table-column type="expand"> <el-table-column type="expand">
<template slot-scope="scope"> <template slot-scope="scope">
<el-table :data="[scope.row]" style="width: 100%"> <el-table :data="[scope.row]" style="width: 100%">
...@@ -98,44 +97,42 @@ ...@@ -98,44 +97,42 @@
</el-table> </el-table>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="班级名称"> <el-table-column label="班级名称" width="200px">
<template slot-scope="scope">{{scope.row.class_name}}</template> <template slot-scope="scope">{{scope.row.class_name}}</template>
</el-table-column> </el-table-column>
<el-table-column prop="qr" label="班级二维码"> <!--<el-table-column prop="qr" label="班级二维码">
<template slot-scope="scope"> <template slot-scope="scope">
<a :href="scope.row.qr" v-if="scope.row.qr" target="_blank"> <a :href="scope.row.qr" v-if="scope.row.qr" target="_blank">
<img class="avatar" :src="scope.row.qr" alt="二维码" /> <img class="avatar" :src="scope.row.qr" alt="二维码"/>
</a> </a>
<p v-if="!scope.row.qr">--</p> <p v-if="!scope.row.qr">&#45;&#45;</p>
</template> </template>
</el-table-column> </el-table-column>-->
<el-table-column prop="teacher_name" label="班主任"></el-table-column> <el-table-column prop="teacher_name" label="班主任" width="120px"></el-table-column>
<el-table-column label="老师状态"> <el-table-column label="老师状态" width="80px">
<template slot-scope="scope">{{scope.row.teacher_status === 0 ? '带班' : '不带班'}}</template> <template slot-scope="scope">{{scope.row.teacher_status === 0 ? '带班' : '不带班'}}</template>
</el-table-column> </el-table-column>
<el-table-column label="班级类型"> <el-table-column label="班级类型" width="80px">
<template slot-scope="scope">{{scope.row.type | classTypeFilter}}</template> <template slot-scope="scope">{{scope.row.type | classTypeFilter}}</template>
</el-table-column> </el-table-column>
<el-table-column prop="max_join_num" label="最大人数"></el-table-column> <el-table-column prop="max_join_num" label="最大人数" width="100px"></el-table-column>
<el-table-column prop="join_num" label="现有人数"></el-table-column> <el-table-column prop="join_num" label="现有人数" width="100px"></el-table-column>
<el-table-column prop="source" label="招生来源"> <el-table-column prop="source" label="活动方案">
<template slot-scope="scope">{{scope.row.source | classSourceFilter}}</template> <template slot-scope="scope">{{scope.row.source | classSourceFilter}}</template>
</el-table-column> </el-table-column>
<el-table-column width="250" label="操作"> <el-table-column label="操作" width="246">
<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 <el-button
@click="editClass(scope.row)" @click="editClass(scope.row)"
size="mini" size="mini"
v-if="!$store.state.readonly" v-if="!$store.state.readonly"
type="warning" type="warning">编辑</el-button>
>编辑</el-button>
<el-button <el-button
@click="delClass(scope.row)" @click="delClass(scope.row)"
size="mini" size="mini"
v-if="$store.state.deletePermission && !$store.state.readonly" v-if="$store.state.deletePermission && !$store.state.readonly"
type="danger" type="danger">删除</el-button>
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -224,7 +221,16 @@ export default { ...@@ -224,7 +221,16 @@ export default {
}, },
percent(val) { percent(val) {
return (val * 100).toFixed(2) + "%"; return (val * 100).toFixed(2) + "%";
} },
},
computed: {
periodName: function () {
if (this.selectedGoods.length) {
return `【${this.selectedGoods[0]}${this.title.title}${this.title.watch_num}课时(${this.title.start_at.slice(5).replace('-', '')})-d${this.title.has_watch_num}`
} else {
return ''
}
},
}, },
mounted() { mounted() {
this.initPage(); this.initPage();
...@@ -364,6 +370,7 @@ export default { ...@@ -364,6 +370,7 @@ export default {
getGoodsListApi(json).then(res => { getGoodsListApi(json).then(res => {
console.log(res); console.log(res);
res.list.forEach(i => { res.list.forEach(i => {
//i.name = `【${i.id}】`
i.name = i.name =
"[" + "[" +
i.id + i.id +
...@@ -466,15 +473,9 @@ export default { ...@@ -466,15 +473,9 @@ export default {
data.transform_rate = 0; data.transform_rate = 0;
}); });
this.title = res.periods; this.title = res.periods;
this.title.count_join_num = res.count.count_join_num this.title.count_join_num = res.count.count_join_num ? res.count.count_join_num : "暂无";
? res.count.count_join_num this.title.count_max_join_num = res.count.count_max_join_num ? res.count.count_max_join_num : "暂无";
: "暂无"; this.title.count_teacher_num = res.count.count_teacher_num ? res.count.count_teacher_num : "暂无";
this.title.count_max_join_num = res.count.count_max_join_num
? res.count.count_max_join_num
: "暂无";
this.title.count_teacher_num = res.count.count_teacher_num
? res.count.count_teacher_num
: "暂无";
this.countObj = res.count ? res.count : ""; this.countObj = res.count ? res.count : "";
this.classList = res.list; this.classList = res.list;
this.total = res.total; this.total = res.total;
...@@ -536,7 +537,7 @@ export default { ...@@ -536,7 +537,7 @@ export default {
<style scoped lang="less"> <style scoped lang="less">
.class { .class {
padding: 20px 0; /*padding: 20px 0;*/
} }
.intro .el-form-item { .intro .el-form-item {
margin-bottom: 0; margin-bottom: 0;
......
This diff is collapsed.
...@@ -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,
......
...@@ -35,8 +35,7 @@ ...@@ -35,8 +35,7 @@
placeholder="请选择" placeholder="请选择"
style="width: 150px" style="width: 150px"
clearable clearable
@change="selectChange" @change="selectChange">
>
<el-option <el-option
v-for="(data,index) in watchList" v-for="(data,index) in watchList"
:key="index" :key="index"
...@@ -52,8 +51,7 @@ ...@@ -52,8 +51,7 @@
placeholder="请选择" placeholder="请选择"
style="width: 150px" style="width: 150px"
@change="getChannelTransList" @change="getChannelTransList"
clearable clearable>
>
<el-option <el-option
v-for="(data,index) in typeList" v-for="(data,index) in typeList"
:key="index" :key="index"
...@@ -67,13 +65,15 @@ ...@@ -67,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">
...@@ -86,8 +86,7 @@ ...@@ -86,8 +86,7 @@
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"
...@@ -104,14 +103,7 @@ ...@@ -104,14 +103,7 @@
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table border :span-method="objectSpanMethod" :data="list" :style="{width: width+'px'}" fixed>
border
:span-method="objectSpanMethod"
:data="list"
:style="{width: width+'px'}"
fixed
>
<!-- <div <!-- <div
class="no-data" class="no-data"
v-if="list.length == 0" v-if="list.length == 0"
...@@ -121,13 +113,14 @@ ...@@ -121,13 +113,14 @@
<el-table-column prop="invite_type" label="渠道类型"></el-table-column> <el-table-column prop="invite_type" label="渠道类型"></el-table-column>
<!-- <el-table-column prop="watch_num" label="商品课时数"></el-table-column> --> <!-- <el-table-column prop="watch_num" label="商品课时数"></el-table-column> -->
<el-table-column prop="goods_name" label="商品名称" width="180"></el-table-column> <el-table-column prop="goods_name" label="商品名称" width="180"></el-table-column>
<el-table-column prop="periods_title" label="期数名称"></el-table-column> <el-table-column prop="periods_title" label="期数名称">
<!--<template slot-scope="scope">
{{periodName(scope.row)}}
</template>-->
</el-table-column>
<el-table-column <el-table-column
prop="duration_over_at" prop="duration_over_at" label="开课看课时间"
label="开课看课时间" style="font-size:12px;" width="200">
style="font-size:12px;"
width="200"
>
<template slot-scope="scope"> <template slot-scope="scope">
开课日期:{{scope.row.start_at}} 开课日期:{{scope.row.start_at}}
<br> <br>
...@@ -175,7 +168,6 @@ export default { ...@@ -175,7 +168,6 @@ export default {
typeList:[], typeList:[],
width: 0, width: 0,
nowPage: 1, nowPage: 1,
total: 0,
limit: 20, limit: 20,
list: [], list: [],
goods_id: null, goods_id: null,
...@@ -273,7 +265,6 @@ export default { ...@@ -273,7 +265,6 @@ export default {
]; ];
} }
}, },
propertyList: [],
spanArr: [], spanArr: [],
contentSpanArr: [], contentSpanArr: [],
searchFrom: { searchFrom: {
...@@ -300,6 +291,10 @@ export default { ...@@ -300,6 +291,10 @@ export default {
}, },
components: { page }, components: { page },
methods: { methods: {
periodName(row) {
//return `【${row.goods_id}】${row.periods_title}${row.watch_num}课时(${row.start_at.slice(5).replace('-', '')})-d${this.title.has_watch_num}`
//return `【${row.goods_id}】${row.periods_title}${row.watch_num}课时(${row.start_at.slice(5).replace('-', '')})`
},
seachData() { seachData() {
this.total = 0; this.total = 0;
this.nowPage = 1; this.nowPage = 1;
...@@ -450,6 +445,9 @@ export default { ...@@ -450,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;
}); });
}, },
......
<template> <template>
<div> <div style="padding-top: 20px;">
<el-form ref="searchFrom" class="searchFrom" :model="searchFrom" label-width="100px" inline> <el-form ref="searchFrom" class="searchFrom" :model="searchFrom" label-width="100px" inline>
<el-form-item label="进量日期"> <el-form-item label="进量日期">
<el-date-picker <el-date-picker
...@@ -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,10 @@ ...@@ -58,12 +60,10 @@
: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">
> <!--height="calc(100vh - 210px)"-->
<el-table-column prop="periods_title" align="center" min-width="80" fixed label="期数名称"> <el-table-column prop="periods_title" align="center" min-width="80" fixed label="期数名称"></el-table-column>
</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 +109,6 @@ export default { ...@@ -109,7 +109,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 +195,9 @@ export default { ...@@ -196,6 +195,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 +294,12 @@ export default { ...@@ -292,10 +294,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 +310,6 @@ export default { ...@@ -306,6 +310,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;
}); });
}, },
......
<template> <template>
<el-dialog :visible.sync="newIntegral.show" width="800px" center :title="newIntegral.id ? '修改兑换码' : '生成兑换码'"> <el-dialog :visible.sync="newIntegral.show" width="800px" center :title="newIntegral.id ? '修改兑换码' : '生成兑换码'">
<el-form label-width="150px" :model="newIntegral" ref="newIntegral"> <el-form label-width="150px" :model="newIntegral" ref="newIntegral">
<el-form-item label="名称" <el-form-item label="名称" prop="name"
prop="name" :rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]">
:rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]">
<el-row :gutter="20">
<el-col :span="20">
<el-input v-model="newIntegral.name"/> <el-input v-model="newIntegral.name"/>
</el-col>
</el-row>
</el-form-item> </el-form-item>
<el-form-item label="商品" <el-form-item label="商品" prop="goods_id"
prop="goods_id" :rules="[{ required: true, message: '请选择商品', trigger: 'change' }]">
:rules="[{ required: true, message: '请选择商品', trigger: 'change' }]">
<el-row :gutter="20">
<el-col :span="20">
<el-select v-model="newIntegral.goods_id" filterable> <el-select v-model="newIntegral.goods_id" filterable>
<el-option v-for="data in goodsList" :key="data.id" :label="`【${data.id}】${data.name}`" :value="data.id"/> <el-option v-for="data in goodsList" :key="data.id" :label="`【${data.id}】${data.name}`" :value="data.id"/>
</el-select> </el-select>
</el-col>
</el-row>
</el-form-item> </el-form-item>
<el-form-item label="招生来源"> <el-form-item label="活动方案">
<el-select v-model="newIntegral.source" placeholder="请选择" filterable> <el-select
v-model="newIntegral.source"
:popper-class="'refresh-select-multi width-480'"
style="width: 480px" placeholder="请选择" filterable>
<el-option <el-option
v-for="(data,index) in classSource" v-for="(data,index) in classSource"
:key="index" :key="index"
...@@ -31,45 +24,30 @@ ...@@ -31,45 +24,30 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item > </el-form-item >
<el-form-item label="数量" <el-form-item label="数量" prop="num"
prop="num" :rules="[{ required: true, message: '请输入数量', trigger: 'blur' }]">
:rules="[{ required: true, message: '请输入数量', trigger: 'blur' }]"> <el-input-number v-model="newIntegral.num"/>
<el-row :gutter="20">
<el-col :span="20">
<el-input-number v-model="newIntegral.num"/>
</el-col>
</el-row>
</el-form-item> </el-form-item>
<el-form-item label="失效时间" <el-form-item label="失效时间" prop="expire_at"
prop="expire_at" :rules="[{ required: true, message: '请选择失效时间', trigger: 'change' }]">
:rules="[{ required: true, message: '请选择失效时间', trigger: 'change' }]"> <el-date-picker
<el-row :gutter="20"> v-model="newIntegral.expire_at"
<el-col :span="20"> type="datetime"
<el-date-picker format="yyyy-MM-dd HH:mm:ss"
v-model="newIntegral.expire_at" value-format="yyyy-MM-dd HH:mm:ss"
type="datetime" :picker-options="pickerOptions0"
format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期">
value-format="yyyy-MM-dd HH:mm:ss" </el-date-picker>
:picker-options="pickerOptions0"
placeholder="选择日期">
</el-date-picker>
</el-col>
</el-row>
</el-form-item> </el-form-item>
<el-form-item label="备注" <el-form-item label="备注" prop="desc"
prop="desc" :rules="[{ required: true, message: '请填写备注信息', trigger: 'blur' }]">
:rules="[{ required: true, message: '请填写备注信息', trigger: 'blur' }]"> <el-input v-model="newIntegral.desc"/>
<el-row :gutter="20">
<el-col :span="20">
<el-input v-model="newIntegral.desc"/>
</el-col>
</el-row>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="newIntegral.show = false">取 消</el-button> <el-button @click="newIntegral.show = false">取 消</el-button>
<el-button type="primary" @click="onAdd">确 定</el-button> <el-button type="primary" @click="onAdd">确 定</el-button>
</span> </div>
</el-dialog> </el-dialog>
</template> </template>
......
...@@ -10,46 +10,25 @@ ...@@ -10,46 +10,25 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" plain @click="getList">搜索</el-button> <el-button type="primary" plain @click="getList">搜索</el-button>
<el-button type="success" plain @click="addIntegral" v-if="!$store.state.readonly">生成兑换码</el-button> <el-button type="success" plain @click="addIntegral" v-if="!$store.state.readonly">生成兑换码</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table :data="list" size="small">
:data="list" <el-table-column prop="name" label="名称"></el-table-column>
size="small" <el-table-column prop="goods_name" label="商品">
style="width: 100%">
<el-table-column
prop="name"
label="名称">
</el-table-column>
<el-table-column
prop="goods_name"
label="商品">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.goods_id}}{{scope.row.goods_name}} {{scope.row.goods_id}}{{scope.row.goods_name}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="num" label="数量" width="80px"></el-table-column>
prop="num" <el-table-column prop="source" label="活动方案">
label="数量"> <template slot-scope="scope">{{scope.row.source | classSourceFilter}}</template>
</el-table-column> </el-table-column>
<el-table-column prop="source" label="招生来源"> <el-table-column prop="desc" label="备注"/>
<template slot-scope="scope">{{scope.row.source | classSourceFilter}}</template> <el-table-column prop="expire_at" label="失效时间" width="90px"/>
</el-table-column> <el-table-column prop="created_at" label="创建时间" width="90px"/>
<el-table-column <el-table-column label="操作" width="180">
prop="desc"
label="备注"
/>
<el-table-column
prop="expire_at"
label="失效时间"
/>
<el-table-column
prop="created_at"
label="创建时间"
/>
<el-table-column
label="操作" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="onDetail(scope.row)">查看详情</el-button> <el-button type="primary" size="mini" @click="onDetail(scope.row)">查看详情</el-button>
<el-button type="warning" size="mini" v-if="!$store.state.readonly" @click="onEdit(scope.row)">编辑</el-button> <el-button type="warning" size="mini" v-if="!$store.state.readonly" @click="onEdit(scope.row)">编辑</el-button>
......
...@@ -54,7 +54,14 @@ ...@@ -54,7 +54,14 @@
.menu-block{ .menu-block{
float: left; float: left;
height: 100%; height: 100%;
overflow: auto; background-color: #333333;
/*height: calc(100vh - 60px);*/
/*overflow: auto;
position: fixed;
left: 0;
top: 60px;
bottom: 0;
z-index: 10;*/
} }
.content{ .content{
display: flex; display: flex;
...@@ -64,9 +71,9 @@ ...@@ -64,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;*/
} }
} }
} }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<el-menu <el-menu
:default-active="$route.path" :default-active="$route.path"
:router="true" :router="true"
:unique-opened="true"
text-color="#fff" text-color="#fff"
background-color="#333333" background-color="#333333"
active-text-color="#ffd04b" active-text-color="#ffd04b"
......
<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;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<el-input type="password" v-model="login.password" placeholder="密码"></el-input> <el-input type="password" v-model="login.password" placeholder="密码"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button class="btn" size="medium" type="primary" @click="submitForm"></el-button> <el-button class="btn" size="medium" type="primary" @click="submitForm"></el-button>
<router-link class="fr" :to="{name:'register'}" > <router-link class="fr" :to="{name:'register'}" >
班主任注册入口 班主任注册入口
</router-link> </router-link>
......
...@@ -5,11 +5,9 @@ ...@@ -5,11 +5,9 @@
align="center" align="center"
:header-cell-style="{background:'#5f5f5f',color:'#fff'}" :header-cell-style="{background:'#5f5f5f',color:'#fff'}"
:data="list" :data="list"
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>
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="last_login_at" prop="last_login_at"
label="最后登时间" sortable> label="最后登时间" sortable>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
v-if="!$store.state.readonly" v-if="!$store.state.readonly"
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
prop="user_role"> prop="user_role">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="登名" label="登名"
prop="user_name"> prop="user_name">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
......
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,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:'新增角色',
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<el-form-item> <el-form-item>
<!--<div class="flexRow">--> <!--<div class="flexRow">-->
<el-button @click="onSearch" type="primary" plain>搜索</el-button> <el-button @click="onSearch" type="primary" plain>搜索</el-button>
<el-button @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>
</el-form> </el-form>
...@@ -74,14 +74,14 @@ ...@@ -74,14 +74,14 @@
{{scope.row.status == 0 ? '在职' : '离职'}} {{scope.row.status == 0 ? '在职' : '离职'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" v-if="!$store.state.readonly" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" plain type="primary" @click="onEdit(scope.row)">编辑</el-button> <el-button size="mini" plain type="primary" @click="onEdit(scope.row)">编辑</el-button>
</template> </template>
</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">
...@@ -213,7 +213,6 @@ ...@@ -213,7 +213,6 @@
this.dialog.form.type = ''; this.dialog.form.type = '';
this.dialog.form.in_at = '';*/ this.dialog.form.in_at = '';*/
this.$nextTick(()=>{ this.$nextTick(()=>{
console.log('tick')
this.$refs['dialogForm'].resetFields(); this.$refs['dialogForm'].resetFields();
}) })
}, },
...@@ -335,7 +334,7 @@ ...@@ -335,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;
......
This diff is collapsed.
...@@ -139,43 +139,20 @@ ...@@ -139,43 +139,20 @@
</el-table> </el-table>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="periods_title" label="期数名称"></el-table-column>
prop="periods_title" <el-table-column prop="class_name" label="班级名称"></el-table-column>
label="期数名称"> <el-table-column prop="join_num" label="已进班人数" width="90px"></el-table-column>
</el-table-column> <el-table-column prop="need_add_teacher_num" label="需加好友数" width="90px"></el-table-column>
<el-table-column <el-table-column prop="max_join_num" label="最大班级人数" width="105px"></el-table-column>
prop="class_name" <el-table-column prop="start_at" label="开课时间" width="110px"></el-table-column>
label="班级名称"> <el-table-column prop="source" label="活动方案">
</el-table-column>
<el-table-column
prop="join_num"
label="已进班人数">
</el-table-column>
<el-table-column
prop="need_add_teacher_num"
label="需加好友数">
</el-table-column>
<el-table-column
prop="max_join_num"
label="最大班级人数">
</el-table-column>
<el-table-column
prop="start_at"
label="开课时间">
</el-table-column>
<el-table-column
prop="source"
label="招生来源">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.source | classSource}} {{scope.row.source | classSource}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="操作" width="100">
label="操作" width="280">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="showUser(scope.row)" size="mini" plain type="primary"> <el-button @click="showUser(scope.row)" size="mini" plain type="primary">班级成员</el-button>
班级成员
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
<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>
......
...@@ -12,8 +12,7 @@ ...@@ -12,8 +12,7 @@
</el-form-item> </el-form-item>
<el-form-item label="商品名称"> <el-form-item label="商品名称">
<el-select v-model="searchFrom.goods_id" placeholder="请选择" filterable style="width: 150px" @change="getList" clearable> <el-select v-model="searchFrom.goods_id" placeholder="请选择" filterable style="width: 150px" @change="getList" clearable>
<el-option v-for="(data,index) in goodList" :key="index" :label="data | filterGoods" :value="data.id"> <el-option v-for="(data,index) in goodList" :key="index" :label="data | filterGoods" :value="data.id"></el-option>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="来源" class="test"> <el-form-item label="来源" class="test">
...@@ -23,8 +22,7 @@ ...@@ -23,8 +22,7 @@
</el-form-item> </el-form-item>
<el-form-item label="订单状态"> <el-form-item label="订单状态">
<el-select multiple v-model="searchFrom.status" style="width: 230px" placeholder="请选择" @change="getList" clearable> <el-select multiple v-model="searchFrom.status" style="width: 230px" placeholder="请选择" @change="getList" clearable>
<el-option v-for="item in orderStatusOption" :key="item.id" :label="item.value" :value="item.id"> <el-option v-for="item in orderStatusOption" :key="item.id" :label="item.value" :value="item.id"></el-option>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="沟通情况"> <el-form-item label="沟通情况">
...@@ -53,6 +51,19 @@ ...@@ -53,6 +51,19 @@
<el-form-item label="子订单号"> <el-form-item label="子订单号">
<el-input v-model="searchFrom.sub_order_id"></el-input> <el-input v-model="searchFrom.sub_order_id"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="活动方案">
<el-select
v-model="searchFrom.class_source" placeholder="请选择" filterable
@change="getList" style="width: 320px" clearable
:popper-class="'refresh-select-multi width-320'">
<el-option
v-for="(data,index) in activityPlan"
:key="index"
:label="data.name"
:value="data.type">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="下单时间"> <el-form-item label="下单时间">
<el-date-picker <el-date-picker
v-model="searchFrom.createTime" v-model="searchFrom.createTime"
...@@ -110,22 +121,15 @@ ...@@ -110,22 +121,15 @@
<div style="position: absolute;top: 10px;right: 10px;font-size: 14px" v-if="$store.state.distribution"> <div style="position: absolute;top: 10px;right: 10px;font-size: 14px" v-if="$store.state.distribution">
老师: 老师:
<el-select size="small" v-model="teacherId" placeholder="请选择" clearable style="width: 150px" filterable> <el-select size="small" v-model="teacherId" placeholder="请选择" clearable style="width: 150px" filterable>
<el-option label="暂不分配" value="0"> <el-option label="暂不分配" value="0"></el-option>
</el-option> <el-option v-for="(data,index) in teacherList" :key="index" :label="data.name" :value="data.id"></el-option>
<el-option v-for="(data,index) in teacherList" :key="index" :label="data.name" :value="data.id">
</el-option>
</el-select> </el-select>
<el-button size="small" type="success" @click="pullAll">批量分配</el-button> <el-button size="small" type="success" @click="pullAll">批量分配</el-button>
<el-button size="small" type="primary" @click="initOeder">手动添加外部订单</el-button> <el-button size="small" type="primary" @click="initOeder">手动添加外部订单</el-button>
</div> </div>
</div> </div>
<el-table :data="list" size="mini" style="width: 100%" <el-table :data="list" size="mini" style="width: 100%" @selection-change="handleSelectionChange">
@selection-change="handleSelectionChange"> <el-table-column type="selection" :selectable="selectedFlag" width="40"></el-table-column>
<el-table-column
type="selection"
:selectable="selectedFlag"
width="55">
</el-table-column>
<el-table-column prop="order_id" width="80" label="订单号"> <el-table-column prop="order_id" width="80" label="订单号">
<template slot-scope="scope"> <template slot-scope="scope">
<p>主订单号:{{scope.row.order_id}}</p> <p>主订单号:{{scope.row.order_id}}</p>
...@@ -136,13 +140,11 @@ ...@@ -136,13 +140,11 @@
</el-table-column> --> </el-table-column> -->
<el-table-column prop="nickname" label="购买人"> <el-table-column prop="nickname" label="购买人">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.user_id !== 0' > <div v-if='scope.row.user_id !== 0'>
<img class="avatar" :src="scope.row.avatar" /> <img class="avatar" :src="scope.row.avatar" />
<div>{{scope.row.nickname}}<br>(ID:{{scope.row.user_id}})</div> <div>{{scope.row.nickname}}<br>(ID:{{scope.row.user_id}})</div>
</div> </div>
<div v-if='scope.row.user_id === 0'> <div v-if='scope.row.user_id === 0'>用户未绑定</div>
暂未绑定用户
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="periods_title" label="期数"> <el-table-column prop="periods_title" label="期数">
...@@ -156,7 +158,7 @@ ...@@ -156,7 +158,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="teacher_name" label="班级老师"> <el-table-column prop="teacher_name" label="班级老师">
</el-table-column> </el-table-column>
<el-table-column prop="class_source" width="80" label="招生来源"> <el-table-column prop="class_source" width="80" label="活动方案">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.class_source|classType}} {{scope.row.class_source|classType}}
</template> </template>
...@@ -176,12 +178,12 @@ ...@@ -176,12 +178,12 @@
<template slot-scope="scope"> <template slot-scope="scope">
姓名:{{scope.row.receiver_name}} 姓名:{{scope.row.receiver_name}}
<br> <br>
tel{{scope.row.receiver_phone}} 电话{{scope.row.receiver_phone}}
<br> <br>
{{scope.row.receiver_province}} {{scope.row.receiver_city}} {{scope.row.receiver_area}} {{scope.row.receiver_address}} {{scope.row.receiver_province}} {{scope.row.receiver_city}} {{scope.row.receiver_area}} {{scope.row.receiver_address}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="active_at" label="时间" width="190"> <el-table-column prop="active_at" label="时间" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<p>激活时间:{{scope.row.active_at === '0000-00-00 00:00:00'?'未激活':scope.row.active_at}}</p> <p>激活时间:{{scope.row.active_at === '0000-00-00 00:00:00'?'未激活':scope.row.active_at}}</p>
<p>下单时间:{{scope.row.create_time}}</p> <p>下单时间:{{scope.row.create_time}}</p>
...@@ -195,12 +197,12 @@ ...@@ -195,12 +197,12 @@
</el-table-column> </el-table-column>
<el-table-column class="editBox" label="操作" fixed="right" v-if="!$store.state.readonly" width="130"> <el-table-column class="editBox" label="操作" fixed="right" v-if="!$store.state.readonly" width="130">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="initClearOtherOrder(scope.row.order_id)" size="mini" plain type="primary">清除激活信息</el-button> <div class="cell-btn-vertical">
<el-button @click="editNote(scope.row.id, scope.row.desc)" size="mini" plain type="primary">编辑备注</el-button> <el-button @click="initClearOtherOrder(scope.row.order_id)" size="mini" plain type="primary">清除激活信息</el-button>
<el-button @click="onRefund(scope.row.id, scope.row.money)" type="warning" plain size="mini" v-if="(scope.row.status === 1 || scope.row.status === 4|| scope.row.status === 5) && $store.state.orderRefund"> <el-button @click="editNote(scope.row.id, scope.row.desc)" size="mini" plain type="primary">编辑备注</el-button>
退款 <el-button @click="onRefund(scope.row.id, scope.row.money)" type="warning" plain size="mini" v-if="(scope.row.status === 1 || scope.row.status === 4|| scope.row.status === 5) && $store.state.orderRefund">退款</el-button>
</el-button> <el-button @click="editAdress(scope.row)" v-if="!$store.state.readonly" size="mini" plain type="success">编辑地址</el-button>
<el-button @click="editAdress(scope.row)" v-if="!$store.state.readonly" size="mini" plain type="success">编辑地址</el-button> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -365,6 +367,7 @@ export default { ...@@ -365,6 +367,7 @@ export default {
}; };
return { return {
importDialog:false, importDialog:false,
activityPlan: [],
adressDialog:false, adressDialog:false,
postOtherOrderDialog:false, postOtherOrderDialog:false,
postOtherOrderData:{}, postOtherOrderData:{},
...@@ -414,17 +417,15 @@ export default { ...@@ -414,17 +417,15 @@ export default {
nowPage: 1, nowPage: 1,
total: 0, total: 0,
limit: 10, limit: 10,
useTypeList: [ useTypeList: [{
{ user_buy: 0,
user_buy: 0, value: "未绑定"
value: "未绑定" }, {
}, user_buy: 1,
{ value: "已绑定"
user_buy: 1, }],
value: "已绑定"
}
],
searchFrom: { searchFrom: {
class_source: '',
goods_id: "", goods_id: "",
mobile: "", mobile: "",
active_at:[], active_at:[],
...@@ -504,6 +505,7 @@ export default { ...@@ -504,6 +505,7 @@ export default {
this.getGoodsOption(); this.getGoodsOption();
this.getTeacherList(); this.getTeacherList();
getSourceStudentApi().then(res=>{ getSourceStudentApi().then(res=>{
this.activityPlan = res;
let obj = {} let obj = {}
res.forEach((item,index)=>{ res.forEach((item,index)=>{
obj[item.type]=item.name obj[item.type]=item.name
...@@ -765,10 +767,11 @@ export default { ...@@ -765,10 +767,11 @@ export default {
json.active_start_at = this.searchFrom.active_at[0]; json.active_start_at = this.searchFrom.active_at[0];
json.active_end_at = this.searchFrom.active_at[1] json.active_end_at = this.searchFrom.active_at[1]
} }
if (this.searchFrom.pullTime&&this.searchFrom.pullTime.length === 2){ if (this.searchFrom.pullTime && this.searchFrom.pullTime.length === 2) {
json.pay_start_at = this.searchFrom.pullTime[0]; json.pay_start_at = this.searchFrom.pullTime[0];
json.pay_end_at = this.searchFrom.pullTime[1]; json.pay_end_at = this.searchFrom.pullTime[1];
} }
this.searchFrom.class_source ? json.class_source = this.searchFrom.class_source : '';
getyunjiApi(json).then(res => { getyunjiApi(json).then(res => {
this.total = res.total; this.total = res.total;
this.list = res.list ? res.list : []; this.list = res.list ? res.list : [];
...@@ -870,7 +873,7 @@ export default { ...@@ -870,7 +873,7 @@ export default {
}; };
</script> </script>
<style scoped> <style lang="less" scoped>
.sms { .sms {
padding: 20px 0; padding: 20px 0;
} }
...@@ -883,7 +886,6 @@ export default { ...@@ -883,7 +886,6 @@ export default {
min-width: 50px; min-width: 50px;
margin-right: 10px; margin-right: 10px;
height: 50px; height: 50px;
border-radius: 50%; border-radius: 50%;
} }
.el-form-item__content{height:32px;} .el-form-item__content{height:32px;}
......
...@@ -2,6 +2,7 @@ import store from "@/store" ...@@ -2,6 +2,7 @@ import store from "@/store"
import Router from 'vue-router' import Router from 'vue-router'
import Cookie from '../util/cookie' import Cookie from '../util/cookie'
const router =new Router({ const router =new Router({
scrollBehavior: () => ({y: 0}),
routes: [ routes: [
{ {
path: '/', path: '/',
......
...@@ -1266,6 +1266,26 @@ export const putSourceStudentApi = function (type,json) { ...@@ -1266,6 +1266,26 @@ export const putSourceStudentApi = function (type,json) {
return Vue.prototype.$put(`${_baseUrl}api/admin/source/student/edit/${type}`,json) return Vue.prototype.$put(`${_baseUrl}api/admin/source/student/edit/${type}`,json)
}; };
// /api/admin/source/student/list // /api/admin/source/student/list
// 获取标签
export const getTagApi = function (json) {
return Vue.prototype.$fetch(`${_baseUrl}api/admin/category/list/3`, json)
};
// 新增标签
export const postTagApi = function (json) {
return Vue.prototype.$post(`${_baseUrl}api/admin/category/add/3`, json)
};
// 编辑标签
export const putTagApi = function (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)
...@@ -1286,13 +1306,13 @@ export const getStaffRecordApi = function (json) { ...@@ -1286,13 +1306,13 @@ export const getStaffRecordApi = function (json) {
export const getTeacherTypeListApi = function (json) { export const getTeacherTypeListApi = function (json) {
return Vue.prototype.$fetch(`${_baseUrl}api/admin/teacher/type/list`, json) return Vue.prototype.$fetch(`${_baseUrl}api/admin/teacher/type/list`, json)
}; };
export const postTeacherTypeListApi = function (json) { export const postTeacherTypeListApi = function (json) {
return Vue.prototype.$post(`${_baseUrl}api/admin/teacher/type/add`, json) return Vue.prototype.$post(`${_baseUrl}api/admin/teacher/type/add`, json)
}; };
export const putTeacherTypeListApi = function (json) { export const putTeacherTypeListApi = function (json) {
return Vue.prototype.$put(`${_baseUrl}api/admin/teacher/type/edit/${json.type}`, json) return Vue.prototype.$put(`${_baseUrl}api/admin/teacher/type/edit/${json.type}`, json)
}; };
export const postMediaConvertApi = function (json) { export const postMediaConvertApi = function (json) {
return Vue.prototype.$post(`${_baseUrl}api/public/media/convert`, json) return Vue.prototype.$post(`${_baseUrl}api/public/media/convert`, json)
}; };
///api/public/media/convert ///api/public/media/convert
\ No newline at end of file
...@@ -167,7 +167,7 @@ export default [{ ...@@ -167,7 +167,7 @@ export default [{
{ {
name: '', name: '',
value: '用户管理', value: '用户管理',
icon: 'icon-laoshi', icon: 'icon-yonghu',
list: [ list: [
{ {
value: '用户列表', value: '用户列表',
...@@ -630,6 +630,17 @@ export default [{ ...@@ -630,6 +630,17 @@ export default [{
component: e => require(['@/components/system/staffRecord'], e), component: e => require(['@/components/system/staffRecord'], e),
} }
}, },
{
value: '标签管理',
routerName: 'tag',
path: '/tag',
cover: '10-8',
router: {
path: '/tag',
name: 'tag',
component: e => require(['@/components/system/tag'], e),
}
},
{ {
value: '员工管理', value: '员工管理',
routerName: 'staff', routerName: 'staff',
......
...@@ -19,40 +19,42 @@ ...@@ -19,40 +19,42 @@
padding: 10px; padding: 10px;
margin: 10px 0; margin: 10px 0;
} }
.new-block{ .new-block{
margin: 10px; margin: 10px;
text-align: right; text-align: right;
} }
.fl-r{ .fl-r{
float: right; float: right;
} }
.text-c{ .text-c{
text-align: center; text-align: center;
} }
.text-b{ .text-b{
font-weight: bold; font-weight: bold;
} }
.color-b{ .color-b{
color: #6ba8e6; color: #6ba8e6;
} }
.text-r{ .text-r{
text-align: right; text-align: right;
} }
.main-block{ .main-block{
margin: 5px; margin: 5px;
background: white; background: white;
padding: 5px; padding: 5px;
} }
html{ html{
font-family: "Helvetica Neue", font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
Helvetica,
"PingFang SC",
"Hiragino Sans GB",
"Microsoft YaHei",
"微软雅黑",
Arial,
sans-serif;
} }
.clear-both{ .clear-both{
&:after{ &:after{
content: ''; content: '';
...@@ -60,8 +62,9 @@ html{ ...@@ -60,8 +62,9 @@ html{
clear: both; clear: both;
} }
} }
//滚动条样式 //滚动条样式
::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性 /*::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性
border-radius: 10px; border-radius: 10px;
} }
::-webkit-scrollbar {//滚动条的宽度 ::-webkit-scrollbar {//滚动条的宽度
...@@ -73,4 +76,4 @@ html{ ...@@ -73,4 +76,4 @@ html{
border-radius: 10px; border-radius: 10px;
height: 10px; height: 10px;
min-height:10px; min-height:10px;
} }*/
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