Commit cade2375 authored by chenyishuai@singsingenglish.com's avatar chenyishuai@singsingenglish.com

814

parents 9eb0f525 5bb62fd3
...@@ -4,15 +4,15 @@ ...@@ -4,15 +4,15 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="referrer" content="never"> <meta name="referrer" content="never">
<link rel="stylesheet" href="https:////at.alicdn.com/t/font_746649_x1rivf5f5.css"> <link rel="stylesheet" href="https://at.alicdn.com/t/font_746649_x1rivf5f5.css">
<link rel="stylesheet" href="https://lib.baomitu.com/element-ui/2.11.1/theme-chalk/index.css"> <link rel="stylesheet" href="https://lib.baomitu.com/element-ui/2.11.1/theme-chalk/index.css">
<title>唱唱启蒙-后台</title> <title>唱唱启蒙-后台</title>
</head> </head>
<body> <body>
<!-- 先引入 Vue --> <!-- 先引入 Vue -->
<script src="https://cdn.bootcss.com/vue/2.5.17/vue.js"></script> <!--<script src="https://lib.baomitu.com/vue/2.5.17/vue.min.js"></script>-->
<!-- <script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script> --> <script src="https://lib.baomitu.com/vue/2.5.17/vue.js"></script>
<script src="https://unpkg.com/vuex@3.0.1"></script> <script src="https://lib.baomitu.com/vuex/3.0.1/vuex.min.js"></script>
<!-- 引入组件库 --> <!-- 引入组件库 -->
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script> <script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
<script src="https://lib.baomitu.com/element-ui/2.11.1/index.js"></script> <script src="https://lib.baomitu.com/element-ui/2.11.1/index.js"></script>
......
...@@ -200,10 +200,7 @@ ...@@ -200,10 +200,7 @@
<el-table-column prop="title" label="标题"></el-table-column> <el-table-column prop="title" label="标题"></el-table-column>
<el-table-column label="操作" width="120px" v-if="!$store.state.readonly"> <el-table-column label="操作" width="120px" v-if="!$store.state.readonly">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button @click="delStarListFn(scope.row)" type="warning" plain size="mini">删除</el-button>
@click="delStarListFn(scope.row)"
type="warning" plain size="mini">删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -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="getList" @change="getList"></el-date-picker>
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="商品课时数"> <el-form-item label="商品课时数">
<el-select <el-select
...@@ -21,14 +20,12 @@ ...@@ -21,14 +20,12 @@
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"
: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="渠道code"> <el-form-item label="渠道code">
...@@ -63,7 +60,13 @@ ...@@ -63,7 +60,13 @@
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:span-method="arraySpanMethod"> :span-method="arraySpanMethod">
<!--height="calc(100vh - 210px)"--> <!--height="calc(100vh - 210px)"-->
<el-table-column prop="periods_title" align="center" min-width="80" fixed label="期数名称"></el-table-column> <!--<el-table-column prop="periods_title" align="center" min-width="80" fixed label="期数名称"></el-table-column>-->
<el-table-column align="center" fixed label="期数名称" width="120px">
<template slot-scope="scope">
<div v-html="periodName(scope.row)"></div>
<!--{{periodName(scope.row)}}-->
</template>
</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>
...@@ -178,6 +181,27 @@ export default { ...@@ -178,6 +181,27 @@ export default {
}; };
}, },
methods: { methods: {
periodName(val) {
let str = '';
if (val.goods_id) {
str += `【${val.goods_id}】`
}
if (val.periods_title) {
str += `${val.periods_title}`
}
if (val.watch_num) {
str += `${val.watch_num}课时<br>`
} else {
str += `<br>`
}
if (val.start_at) {
str += `(${val.start_at.slice(5).replace('-', '')})`
}
if (val.has_watch_num || val.has_watch_num == 0) {
str += `-d${val.has_watch_num}`
}
return str
},
selectChange(value) { selectChange(value) {
this.searchFrom.watch_num = this.watchList[value].title; this.searchFrom.watch_num = this.watchList[value].title;
this.getList(); this.getList();
......
...@@ -87,7 +87,13 @@ ...@@ -87,7 +87,13 @@
@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 label="期数名称" width="170px">
<template slot-scope="scope">
<div v-html="periodName(scope.row)"></div>
<!--{{periodName(scope.row)}}-->
</template>
</el-table-column>
<el-table-column <el-table-column
prop="duration_over_at" prop="duration_over_at"
label="开课看课时间" label="开课看课时间"
...@@ -134,12 +140,7 @@ ...@@ -134,12 +140,7 @@
</div> </div>
</template> </template>
<script> <script>
import { import { getPeriodsConversionListApi, getGoodsListApi, getPeriodsOtherListApi, getTeacherListApi } from "../../service/api";
getPeriodsConversionListApi,
getGoodsListApi,
getPeriodsOtherListApi,
getTeacherListApi
} from "../../service/api";
import page from "../framework/page"; import page from "../framework/page";
import { GOODSTYPE, CLASSSOURCE } from "../../util/wordbook"; import { GOODSTYPE, CLASSSOURCE } from "../../util/wordbook";
import { tipArr3 } from "../../util/tipArr"; import { tipArr3 } from "../../util/tipArr";
...@@ -242,7 +243,6 @@ export default { ...@@ -242,7 +243,6 @@ export default {
]; ];
} }
}, },
propertyList: [],
spanArr: [], spanArr: [],
contentSpanArr: [], contentSpanArr: [],
searchFrom: { searchFrom: {
...@@ -269,6 +269,27 @@ export default { ...@@ -269,6 +269,27 @@ export default {
}, },
components: { page }, components: { page },
methods: { methods: {
periodName(val) {
let str = '';
if (val.goods_id) {
str += `【${val.goods_id}】`
}
if (val.periods_title) {
str += `${val.periods_title}<br>`
} else {
str += `<br>`
}
if (val.watch_num) {
str += `${val.watch_num}课时`
}
if (val.start_at) {
str += `(${val.start_at.slice(5).replace('-', '')})`
}
if (val.has_watch_num || val.has_watch_num == 0) {
str += `-d${val.has_watch_num}`
}
return str
},
rendertip(h, { column }) { rendertip(h, { column }) {
// console.log(h) // console.log(h)
return h("span", [ return h("span", [
......
...@@ -170,13 +170,7 @@ ...@@ -170,13 +170,7 @@
</div> </div>
</template> </template>
<script> <script>
import { import { getPeriodsConversionListApi, getSourceConversionListApi, getGoodsListApi, getPeriodsOtherListApi, getTeacherListApi } from "../../service/api";
getPeriodsConversionListApi,
getSourceConversionListApi,
getGoodsListApi,
getPeriodsOtherListApi,
getTeacherListApi
} from "../../service/api";
import page from "../framework/page"; import page from "../framework/page";
import { GOODSTYPE, CLASSSOURCE,ORDERSTATUS } from "../../util/wordbook"; import { GOODSTYPE, CLASSSOURCE,ORDERSTATUS } from "../../util/wordbook";
import { tipArr3 } from "../../util/tipArr"; import { tipArr3 } from "../../util/tipArr";
...@@ -295,7 +289,6 @@ export default { ...@@ -295,7 +289,6 @@ export default {
teacher_id: "", teacher_id: "",
periods_title: "" periods_title: ""
}, },
propertyList: [],
watchList: [ watchList: [
{ id: 0, title: 5 }, { id: 0, title: 5 },
{ id: 1, title: 6 }, { id: 1, title: 6 },
......
<template> <template>
<div class="sms"> <div class="admin-refresh sms">
<el-form ref="searchFrom" :model="searchFrom" label-width="100px" inline size="small"> <div class="section-search">
<el-form-item label="用户ID"> <el-form ref="searchFrom" :model="searchFrom" label-width="100px" inline size="small">
<el-input v-model="searchFrom.user_id" style="width: 80px"></el-input> <el-form-item label="用户ID">
</el-form-item> <el-input v-model="searchFrom.user_id" style="width: 80px"></el-input>
<!-- <el-form-item label="发货状态"> </el-form-item>
<el-select filterable v-model="searchFrom.type" placeholder="请选择" clearable> <!-- <el-form-item label="发货状态">
<el-select filterable v-model="searchFrom.type" placeholder="请选择" clearable>
<el-option
v-for="(data,index) in logisticsType"
:key="index"
:label="data.name"
:value="data.value">
</el-option>
</el-select>
</el-form-item>-->
<el-form-item label="期数">
<el-cascader
:popper-class="'refresh-cascader-multi width-480'"
style="width: 480px"
:options="goodsList"
:props="{value:'id',label:'name'}"
@active-item-change="handleItemChange"
@change="changePeriods"
filterable
v-model="selectedGoods"></el-cascader>
</el-form-item>
<el-form-item label="主题">
<el-select filterable v-model="searchFrom.theme_id" placeholder="请选择" clearable>
<el-option <el-option
v-for="(data,index) in logisticsType" v-for="(data,index) in themeList"
:key="index" :key="index"
:label="data.name" :label="data.name"
:value="data.value"> :value="data.id"
</el-option> ></el-option>
</el-select> </el-select>
</el-form-item>--> </el-form-item>
<el-form-item label="期数"> <!-- <el-form-item label="期数id">
<el-cascader <el-input v-model="searchFrom.periods_id" style="width: 120px"></el-input>
:options="goodsList" </el-form-item>-->
:props="{value:'id',label:'name'}" <el-form-item>
@active-item-change="handleItemChange" <el-button type="primary" plain @click="getList">搜索</el-button>
@change="changePeriods" <el-button type="success" plain @click="reset">重置</el-button>
filterable <el-button v-if="!$store.state.readonly" type="primary" plain @click="downLoad()">excel模板下载</el-button>
v-model="selectedGoods" <el-button type="primary" plain @click="exportTable" v-if="$store.state.export">导出当前待发货</el-button>
></el-cascader> <el-button type="primary" plain @click="exportReceiveInfoTable">按期数导出收货信息</el-button>
</el-form-item> </el-form-item>
<el-form-item label="主题"> <el-form-item v-if="$store.state.export">
<el-select filterable v-model="searchFrom.theme_id" placeholder="请选择" clearable> <el-upload
<el-option :show-file-list="false"
v-for="(data,index) in themeList" :onSuccess="fileSuccess"
:key="index" :headers="uploadHeader"
:label="data.name" :data="{param_token:param_token}"
:value="data.id" action="/api/admin/order/deliver/list/import">
></el-option> <el-button type="success" plain>导入发货信息</el-button>
</el-select> </el-upload>
</el-form-item> </el-form-item>
<!-- <el-form-item label="期数id"> </el-form>
<el-input v-model="searchFrom.periods_id" style="width: 120px"></el-input> </div>
</el-form-item>-->
<el-form-item> <el-tabs v-model="searchFrom.type" type="card" @tab-click="handleClick" style="padding-top: 10px;background-color: #fff">
<el-button type="primary" plain @click="getList">搜索</el-button>
<el-button type="success" plain @click="reset">重置</el-button>
<el-button v-if="!$store.state.readonly" type="primary" plain @click="downLoad()">excel模板下载</el-button>
<el-button type="primary" plain @click="exportTable" v-if="$store.state.export">导出当前待发货</el-button>
<el-button type="primary" plain @click="exportReceiveInfoTable">按期数导出收货信息</el-button>
</el-form-item>
<el-form-item v-if="$store.state.import">
<el-upload
:show-file-list="false"
:onSuccess="fileSuccess"
:headers="uploadHeader"
:data="{param_token:param_token}"
action="/api/admin/order/deliver/list/import"
>
<el-button type="success" plain>导入发货信息</el-button>
</el-upload>
</el-form-item>
</el-form>
<el-tabs v-model="searchFrom.type" type="card" @tab-click="handleClick">
<el-tab-pane label="当前待发货" name="0"></el-tab-pane> <el-tab-pane label="当前待发货" name="0"></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="2"></el-tab-pane> <el-tab-pane label="所有已发货" name="2"></el-tab-pane>
</el-tabs> </el-tabs>
<el-table :data="deliverList" size="mini" style="width: 100%"> <el-table :data="deliverList" size="mini" style="width: 100%">
<el-table-column width="220" class="f-c" label="用户"> <el-table-column width="200" class="f-c" label="用户">
<template slot-scope="scope"> <template slot-scope="scope">
<img class="avatar" :src="scope.row.user_avatar" /> <img style="vertical-align: top" class="avatar" :src="scope.row.user_avatar" />
{{scope.row.user_nickname}} <span style="display: inline-block;">
<br /> {{scope.row.user_nickname}}
(ID:{{scope.row.user_id}}) <br />
<br /> (ID:{{scope.row.user_id}})
手机:{{scope.row.user_mobile}} <br />
手机:{{scope.row.user_mobile}}
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="address" label="收货地址"> <el-table-column prop="address" label="收货地址">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.receive_name}} {{scope.row.receive_name}}
<br /> <br/>
{{scope.row.receive_mobile}} {{scope.row.receive_mobile}}
<br /> <br/>
{{scope.row.province_name}}{{scope.row.city_name}}{{scope.row.area_name}}{{scope.row.address}} {{scope.row.province_name}}{{scope.row.city_name}}{{scope.row.area_name}}{{scope.row.address}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="periods_title" label="期数名称"></el-table-column> <!--<el-table-column prop="periods_title" label="期数名称"></el-table-column>-->
<el-table-column prop="periods_title" label="期数名称">
<template slot-scope="scope">
<div v-html="periodName(scope.row)"></div>
<!--{{periodName(scope.row)}}-->
</template>
</el-table-column>
<el-table-column prop="theme_name" label="主题"></el-table-column> <el-table-column prop="theme_name" label="主题"></el-table-column>
<el-table-column prop="deliver_start_at" label="预计发货开始时间"></el-table-column> <el-table-column prop="deliver_start_at" label="预计发货开始时间" width="100px"></el-table-column>
<el-table-column prop="deliver_end_at" label="预计发货结束时间"></el-table-column> <el-table-column prop="deliver_end_at" label="预计发货结束时间" width="100px"></el-table-column>
<el-table-column prop="deliver_at" label="发货时间"></el-table-column> <el-table-column prop="deliver_at" label="发货时间" width="100px"></el-table-column>
<el-table-column prop="status" label="物流状态"> <el-table-column prop="status" label="物流状态">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.status|LogisticsStatusFil}} {{scope.row.status|LogisticsStatusFil}}<br/>
<br />
<span v-if="searchFrom.type==2"> <span v-if="searchFrom.type==2">
名称:{{scope.row.express_name}} 名称:{{scope.row.express_name}}<br/>
<br />
单号:{{scope.row.express_no}} 单号:{{scope.row.express_no}}
</span> </span>
</template> </template>
...@@ -182,6 +192,27 @@ export default { ...@@ -182,6 +192,27 @@ export default {
this.init(); this.init();
}, },
methods: { methods: {
periodName(val) {
let str = '';
if (val.goods_id) {
str += `【${val.goods_id}】`
}
if (val.periods_title) {
str += `${val.periods_title}<br>`
} else {
str += `<br>`
}
if (val.watch_num) {
str += `${val.watch_num}课时`
}
if (val.start_at) {
str += `(${val.start_at.slice(5).replace('-', '')})`
}
if (val.has_watch_num || val.has_watch_num == 0) {
str += `-d${val.has_watch_num}`
}
return str
},
cancelEvent() { cancelEvent() {
this.showFlag = false; this.showFlag = false;
}, },
...@@ -402,9 +433,6 @@ export default { ...@@ -402,9 +433,6 @@ export default {
</script> </script>
<style scoped> <style scoped>
.sms {
padding: 20px 0;
}
.el-button + .el-button { .el-button + .el-button {
margin-left: 0; margin-left: 0;
/* margin-top: 10px; */ /* margin-top: 10px; */
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
: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=='合计' ? '合计' : periodName(scope.row)}}
<br /> <br />
开始时间:{{scope.row.start_at}} 开始时间:{{scope.row.start_at}}
<br /> <br />
...@@ -77,6 +77,25 @@ export default { ...@@ -77,6 +77,25 @@ export default {
}; };
}, },
methods: { methods: {
periodName(val) {
let str = '';
if (val.goods_id) {
str += `【${val.goods_id}】`
}
if (val.title) {
str += `${val.title}`
}
if (val.watch_num) {
str += `${val.watch_num}课时`
}
if (val.start_at) {
str += `(${val.start_at.slice(5).replace('-', '')})`
}
if (val.has_watch_num || val.has_watch_num == 0) {
str += `-d${val.has_watch_num}`
}
return str
},
initPage() { initPage() {
getPeriodsClassCurDataApi().then(res => { getPeriodsClassCurDataApi().then(res => {
this.list = res; this.list = res;
......
This diff is collapsed.
...@@ -5,119 +5,96 @@ ...@@ -5,119 +5,96 @@
append-to-body append-to-body
:visible.sync="newdialogObj.show" :visible.sync="newdialogObj.show"
width="70%"> width="70%">
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> <el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-row>
<el-col :span="10"> <el-form-item label="商品名称" prop="goods_id">
<el-form-item label="商品名称" prop="goods_id"> <el-select v-model="form.goods_id" placeholder="请选择" @change="onOptionChange">
<el-select v-model="form.goods_id" placeholder="请选择" @change="onOptionChange"> <el-option
<el-option v-for="(data,index) in goodsList"
v-for="(data,index) in goodsList" :key="index"
:key="index" :label="data | filterGoods"
:label="data | filterGoods" :value="data.id">
:value="data.id"> </el-option>
</el-option> </el-select>
</el-select> </el-form-item>
</el-form-item> <!-- <el-col :span="10">
</el-col> <el-form-item label="期数名称" prop="periods_id">
<!-- <el-col :span="10"> <el-select v-model="form.periods_id" placeholder="请选择">
<el-form-item label="期数名称" prop="periods_id"> <el-option
<el-select v-model="form.periods_id" placeholder="请选择"> v-for="(data,index) in periodsList"
<el-option :key="index"
v-for="(data,index) in periodsList" :label="data.title"
:key="index" :value="data.id">
:label="data.title" </el-option>
:value="data.id"> </el-select>
</el-option> </el-form-item>
</el-select> </el-col> -->
</el-form-item>
</el-col> --> <el-form-item label="用户ID" prop="user_id">
</el-row> <el-input width='100' v-model="form.user_id"></el-input>
<el-row> <el-button type="success" @click="onAddUser">+添加用户</el-button>
<el-col :span="10"> </el-form-item>
<el-form-item label="用户ID" prop="user_id" >
<el-input width='100' v-model="form.user_id"></el-input> <el-form-item label="添加推广人">
<el-button type="success" @click="onAddUser">+添加用户</el-button> <!-- <el-input v-model="form.invite_id"></el-input> -->
</el-form-item> <el-select
</el-col> v-model="form.invite_id"
<el-col :span="10"> filterable
<el-form-item label="添加推广人" > clearable
<!-- <el-input v-model="form.invite_id"></el-input> --> placeholder="请输入名称"
<el-select :remote-method="remoteMethod"
v-model="form.invite_id" >
filterable <el-option
clearable v-for="item in teacherList"
placeholder="请输入名称" :key="item.id"
:remote-method="remoteMethod" :label="item.name"
> :value="item.user_id">
<el-option </el-option>
v-for="item in teacherList" </el-select>
:key="item.id" </el-form-item>
:label="item.name"
:value="item.user_id">
</el-option> <el-form-item label="支付类型" prop="order_type">
</el-select> <el-select v-model="form.order_type" placeholder="请选择">
</el-form-item> <el-option
</el-col> v-for="item in buyWayOptioms"
</el-row> :key="item.id"
<el-row> :label="item.name"
<el-col :span="10"> :value="item.id"
<el-form-item label="支付类型" prop="order_type"> :disabled="item.disabled">
<el-select v-model="form.order_type" placeholder="请选择"> </el-option>
<el-option </el-select>
v-for="item in buyWayOptioms" </el-form-item>
:key="item.id" <el-form-item label="实付金额(元)" prop="money">
:label="item.name" <el-input-number v-model="form.money"></el-input-number>
:value="item.id" </el-form-item>
:disabled="item.disabled"> <el-form-item label="支付时间" prop="pay_at">
</el-option> <el-date-picker
</el-select> v-model="form.pay_at"
</el-form-item> type="datetime"
</el-col> :picker-options="pickerOptions1"
<el-col :span="10"> default-time="12:00:00"
<el-form-item label="实付金额(元)" prop="money" > placeholder="选择日期时间">
<el-input-number v-model="form.money"></el-input-number> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> <el-form-item label="备注">
</el-row> <el-input type="textarea" v-model="form.desc"></el-input>
<el-row> </el-form-item>
<el-col :span="10"> <el-form-item label="订单号">
<el-form-item label="支付时间" prop="pay_at" > <el-input v-model="form.out_trade_no"></el-input>
<el-date-picker </el-form-item>
v-model="form.pay_at" <vue-address :province="form.province" :city="form.city" :district="form.district" :detail="form.address" :mobile="form.receive_mobile" :name="form.receive_name" @change="handlerAddressChange">
type="datetime" </vue-address>
:picker-options="pickerOptions1" </el-form>
default-time="12:00:00"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="备注">
<el-input type="textarea" v-model="form.desc"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" v-if="form.order_type!=2">
<el-form-item label="订单号">
<el-input v-model="form.out_trade_no"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<vue-address :province="form.province" :city="form.city" :district="form.district" :detail="form.address" :mobile="form.receive_mobile" :name="form.receive_name" @change="handlerAddressChange">
</vue-address>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="newdialogObj.show = false">取 消</el-button> <el-button @click="newdialogObj.show = false">取 消</el-button>
<el-button type="primary" @click="saveAddOrder(form)">确定</el-button> <el-button type="primary" @click="saveAddOrder(form)">确定</el-button>
</div> </div>
<el-dialog :modal="false" :visible.sync="addShow" > <el-dialog :modal="false" :visible.sync="addShow">
<el-form label-width="90px"> <el-form label-width="90px">
<!--<el-form-item label="用户id">--> <!--<el-form-item label="用户id">-->
<!--<el-input v-model="addId"></el-input>--> <!--<el-input v-model="addId"></el-input>-->
<!--</el-form-item>--> <!--</el-form-item>-->
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
......
This diff is collapsed.
This diff is collapsed.
<template> <template>
<div class="admin-refresh" v-loading="loading"> <div class="admin-refresh" v-loading="loading">
<div class="section-search search-single"> <div class="section-search search-single">
<el-form ref="searchFrom" :model="searchFrom" label-width="80px" inline> <el-form label-width="80px" inline>
<el-form-item> <el-form-item>
<!--<el-cascader
style="width: 280px" placeholder="选择标签"
:props="searchProps" clearable></el-cascader>-->
<el-input placeholder="输入标签名搜索" v-model="filterText"></el-input> <el-input placeholder="输入标签名搜索" v-model="filterText"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="search-btn-wrapper"> <div class="search-btn-wrapper">
<!--<el-button @click="onSearch" type="primary" plain>搜索</el-button>--> <!--<el-button @click="onSearch" type="primary" plain>搜索</el-button>-->
<el-button @click="dialogToggle" type="warning" plain>高级搜索</el-button> <el-button @click="dialogUser.show = !dialogUser.show;" type="warning" plain>高级搜索</el-button>
<!--<el-button v-if="!$store.state.readonly" @click="onAdd" type="success" plain>新增标签</el-button>--> <!--<el-button v-if="!$store.state.readonly" @click="onAdd" type="success" plain>新增标签</el-button>-->
</div> </div>
</el-form-item> </el-form-item>
...@@ -23,7 +19,7 @@ ...@@ -23,7 +19,7 @@
<el-tree <el-tree
:data="treeData" :data="treeData"
node-key="id" ref="tagTree" node-key="id" ref="tagTree"
:props="tagProps" :props="{children: 'children', label: 'name'}"
:indent="40" :indent="40"
@node-expand="tagExpand" @node-expand="tagExpand"
@node-collapse="tagCollapse" @node-collapse="tagCollapse"
...@@ -50,37 +46,46 @@ ...@@ -50,37 +46,46 @@
</el-tree> </el-tree>
</div> </div>
<el-dialog :title="dialog.title" :visible.sync="dialog.show" width="800px" title="高级搜索"> <el-dialog :title="dialog.title" :visible.sync="dialog.show" width="500px">
<el-form ref="dialogForm" :rules="dialog.form.rules" :model="dialog.form" label-width="100px">
<el-form-item label="ID:" prop="id" style="display: none;">
<el-input v-model="dialog.form.id" maxlength="10" type="text"></el-input>
</el-form-item>
<el-form-item label="PID:" prop="pid" style="display: none;">
<el-input v-model="dialog.form.pid" maxlength="10" type="text"></el-input>
</el-form-item>
<el-form-item label="标签名称:" prop="name">
<el-input v-model="dialog.form.name" maxlength="10" type="text"></el-input>
</el-form-item>
<el-form-item label="标签备注:" prop="cover">
<el-input v-model="dialog.form.cover" maxlength="50" type="textarea" :rows="3"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogToggle">取消</el-button>
<el-button type="primary" @click="dialogSave">确定</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="dialogUser.show" width="800px" title="高级搜索">
<div style="display: flex;margin-bottom: 20px;"> <div style="display: flex;margin-bottom: 20px;">
<el-button style="margin-right: 20px; width: 70px;" type="primary" v-if="!$store.state.readonly && $store.state.export" plain :disabled="!tableData.length" @click="exportExcel">导出</el-button> <el-button style="margin-right: 20px; width: 70px;" type="primary" v-if="!$store.state.readonly && $store.state.export" plain :disabled="!tableData.length" @click="exportExcel">导出</el-button>
<el-cascader <el-cascader
style="width: calc(100% - 90px)" placeholder="选择标签" clearable @change="conditionsChange" style="width: calc(100% - 90px)" placeholder="选择标签" clearable @change="conditionsChange"
:options="treeDataOrigin" :props="{ value: 'id', label: 'name', multiple: true, checkStrictly: true }"></el-cascader> :options="treeDataOrigin" :props="{ value: 'id', label: 'name', multiple: true, checkStrictly: true }"></el-cascader>
</div> </div>
<el-table :data="tableData" border> <el-table :data="tableData" border>
<el-table-column className="f-c" label="用户"> <el-table-column className="f-c" label="用户">
<template slot-scope="scope"> <template slot-scope="scope">
<img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}<br>(ID:{{scope.row.user_id}}) <img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}<br>(ID:{{scope.row.user_id}})
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="baby_name" label="宝宝名称"></el-table-column> <el-table-column prop="baby_name" label="宝宝名称"></el-table-column>
<el-table-column prop="birthday" label="宝宝生日"></el-table-column> <el-table-column prop="birthday" label="宝宝生日"></el-table-column>
<el-table-column prop="sex" label="宝宝性别" :formatter="sexFormatter"></el-table-column> <el-table-column prop="sex" label="宝宝性别" :formatter="sexFormatter"></el-table-column>
<el-table-column prop="mobile" label="手机号码"></el-table-column> <el-table-column prop="mobile" label="手机号码"></el-table-column>
<!--<el-table-column label="操作" v-if="!$store.state.readonly" width="100">
<template slot-scope="scope">
<el-button size="mini" plain type="primary" @click="onEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>-->
</el-table> </el-table>
<page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/> <page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/>
<!--<span slot="footer" class="dialog-footer">
<el-button @click="dialogToggle">取消</el-button>
<el-button type="primary" @click="dialogSave">确定</el-button>
</span>-->
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -96,28 +101,15 @@ ...@@ -96,28 +101,15 @@
conditions: [], conditions: [],
filterText: '', filterText: '',
tagProps: {
children: 'children',
label: 'name'
},
tagExpanded: [0], tagExpanded: [0],
tagExpandedWait: '', tagExpandedWait: '',
searchFrom: {
id: '',
name: '',
mobile: '',
id_card: '',
type: '',
status: '',
start_in: '',
over_in: ''
},
startTime: [],
tableData: [], tableData: [],
treeData: [], treeData: [],
treeDataOrigin: [], treeDataOrigin: [],
dialogUser: {
show: false
},
dialog: { dialog: {
title: '', title: '',
show: false, show: false,
...@@ -170,19 +162,18 @@ ...@@ -170,19 +162,18 @@
this.getUserData() this.getUserData()
}, },
getUserData(){ getUserData(){ // 搜索用户
let json = { let json = {
conditions: JSON.stringify(this.conditions), conditions: JSON.stringify(this.conditions),
limit: this.limit, limit: this.limit,
page: this.nowPage page: this.nowPage
} }
getTagUserApi(json).then(res=>{ getTagUserApi(json).then(res=>{
this.tableData = res.list this.tableData = res.list
}) })
}, },
filterNode(value, data) { filterNode(value, data) { // 搜索标签
if (!value) return true; if (!value) return true;
return data.name.indexOf(value) !== -1; return data.name.indexOf(value) !== -1;
}, },
...@@ -236,21 +227,20 @@ ...@@ -236,21 +227,20 @@
}); });
}, },
tagExpand(data, node, el) { tagExpand(data, node, el) { // 标签展开(记录树的状态)
//console.log(node) //console.log(node)
if (node.expanded) { if (node.expanded) {
this.tagExpanded.push(node.data.id) this.tagExpanded.push(node.data.id)
} }
}, },
tagCollapse(data, node, el) { // 标签收起(记录树的状态)
tagCollapse(data, node, el) {
//console.log(node) //console.log(node)
if (node.expanded) { if (node.expanded) {
this.tagExpanded.splice(this.tagExpanded.findIndex(item => item == node.data.id), 1) this.tagExpanded.splice(this.tagExpanded.findIndex(item => item == node.data.id), 1)
} }
}, },
getData() { getData() { // 获取标签
getTagApi().then(res => { getTagApi().then(res => {
this.treeDataOrigin = res; this.treeDataOrigin = res;
this.treeData = [{ this.treeData = [{
...@@ -263,7 +253,6 @@ ...@@ -263,7 +253,6 @@
weight: 0, weight: 0,
}] }]
}); });
}, },
onAdd(node) { onAdd(node) {
...@@ -278,10 +267,9 @@ ...@@ -278,10 +267,9 @@
}); });
}, },
onEdit(node,data) { onEdit(node, data) {
console.log(el) //console.log(node)
console.log(node) //console.log(data)
console.log(data)
let item = node.data; let item = node.data;
this.dialogToggle(); this.dialogToggle();
this.dialogReset(); this.dialogReset();
...@@ -299,7 +287,7 @@ ...@@ -299,7 +287,7 @@
}, },
conditionsChange(val){ conditionsChange(val){
console.log(val); //console.log(val);
let arr = []; let arr = [];
if(val.length) { if(val.length) {
val.forEach(v => { val.forEach(v => {
......
...@@ -550,7 +550,7 @@ ...@@ -550,7 +550,7 @@
<style scoped lang="less"> <style scoped lang="less">
@import "../../util/public"; @import "../../util/public";
.user{ .user{
height: 100%; /*height: 100%;*/
overflow: auto; overflow: auto;
padding: 20px 0; padding: 20px 0;
.btn-content{ .btn-content{
......
This diff is collapsed.
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
<div class="title" style="width:8%"> <div class="title" style="width:8%">
<div class="header bg-h">期数</div> <div class="header bg-h">期数</div>
<div> <div>
{{data.title}} <!--{{data.title}}-->
<div v-html="periodName(data)"></div>
</div> </div>
</div> </div>
<div class="over_work" style="background-color: #fffbe4"> <div class="over_work" style="background-color: #fffbe4">
...@@ -563,6 +564,29 @@ ...@@ -563,6 +564,29 @@
} }
}, },
methods:{ methods:{
periodName(val) {
let str = '';
if (!val.title) {
str = '-'
} else {
if (val.goods_id) {
str += `【${val.goods_id}】`
}
if (val.title) {
str += `${val.title}<br>`
}
if (val.watch_num) {
str += `${val.watch_num}课时`
}
if (val.start_at) {
str += `(${val.start_at.slice(5).replace('-', '')})`
}
if (val.has_watch_num || val.has_watch_num == 0) {
str += `-d${val.has_watch_num}`
}
}
return str
},
formatTime(date){ formatTime(date){
let year = date.getFullYear(); let year = date.getFullYear();
let Month = date.getMonth()+1; let Month = date.getMonth()+1;
......
This diff is collapsed.
This diff is collapsed.
...@@ -1304,8 +1304,8 @@ export const getStaffRecordApi = function (json) { ...@@ -1304,8 +1304,8 @@ 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)
}; };
...@@ -1316,3 +1316,7 @@ export const postMediaConvertApi = function (json) { ...@@ -1316,3 +1316,7 @@ 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
// 最近更新时间
export const getUpdateTimeApi = function () {
return Vue.prototype.$fetch(`${_baseUrl}api/admin/get/report/time`)
};
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