Commit 0dcd825f authored by chenfenglei's avatar chenfenglei

云集商品名称展示,导出

parent 3d93702d
...@@ -171,6 +171,7 @@ ...@@ -171,6 +171,7 @@
end_at:this.searchFirstFrom.dateValue[1] end_at:this.searchFirstFrom.dateValue[1]
}; };
} }
console.log(json)
getTeacherRankListApi(json).then(res=>{ getTeacherRankListApi(json).then(res=>{
this.firstList = res; this.firstList = res;
}) })
......
...@@ -304,6 +304,11 @@ ...@@ -304,6 +304,11 @@
getTeacher(){ getTeacher(){
if (!this.periods) return; if (!this.periods) return;
getPeriodsTeacherApi(this.periods.id).then(res=>{ getPeriodsTeacherApi(this.periods.id).then(res=>{
let obj = {}; //班级老师去重
res = res.reduce(function(item, next) {
obj[next.teacher_id] ? '' : obj[next.teacher_id] = true && item.push(next);
return item;
}, []);
this.teacherList = res this.teacherList = res
}) })
}, },
......
...@@ -534,7 +534,6 @@ ...@@ -534,7 +534,6 @@
methods:{ methods:{
handleItemChange(value){ handleItemChange(value){
getClassListApi(value[0],{limit:99999}).then(res=>{ getClassListApi(value[0],{limit:99999}).then(res=>{
console.log(res.list)
res.list.forEach(i=>{ res.list.forEach(i=>{
i.title = i.class_name i.title = i.class_name
}); });
...@@ -667,6 +666,7 @@ ...@@ -667,6 +666,7 @@
}) })
}); });
getClassUserApi(this.userObj.classId,json).then(res=>{ getClassUserApi(this.userObj.classId,json).then(res=>{
console.log(res.list)
this.userTable = res.list this.userTable = res.list
}); });
this.changeClassObj={ this.changeClassObj={
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
<i class="el-icon-arrow-down el-icon--right"></i> <i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item @click.native="entranceObj.show=true">无需登录入口</el-dropdown-item> -->
<el-dropdown-item @click.native="linkObj.show=true">生成工具</el-dropdown-item> <el-dropdown-item @click.native="linkObj.show=true">生成工具</el-dropdown-item>
<el-dropdown-item @click.native="userObj.show=true">清除缓存</el-dropdown-item> <el-dropdown-item @click.native="userObj.show=true">清除缓存</el-dropdown-item>
<el-dropdown-item @click.native="dialogUpdate=true">修改密码</el-dropdown-item> <el-dropdown-item @click.native="dialogUpdate=true">修改密码</el-dropdown-item>
......
...@@ -83,8 +83,9 @@ export default { ...@@ -83,8 +83,9 @@ export default {
if (valid) { if (valid) {
let json1 = {}; let json1 = {};
json1.url = this.qrForm.link; json1.url = this.qrForm.link;
json1.url=encodeURI(json1.url)
this.qrContent.show = true; this.qrContent.show = true;
this.qrContent.url = `https://admin_test.changchangenglish.com/api/public/qrcode?str=${ this.qrContent.url = `/api/public/qrcode?str=${
json1.url json1.url
}`; }`;
} else { } else {
......
...@@ -93,11 +93,11 @@ ...@@ -93,11 +93,11 @@
<el-button type="primary" plain @click="exportTable">导出</el-button> <el-button type="primary" plain @click="exportTable">导出</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="3" :offset="3" v-if="!$store.state.readonly"> <el-col :span="3" :offset="3" v-if="!$store.state.readonly">
<el-form-item> <el-form-item>
<el-button type="success" plain @click="add">新增订单</el-button> <!-- <el-button type="success" plain @click="add">新增订单</el-button> -->
</el-form-item> </el-form-item>
</el-col> --> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-table <el-table
...@@ -295,7 +295,7 @@ ...@@ -295,7 +295,7 @@
</template> </template>
<script> <script>
import {getOrderListApi,editOrderDescApi,getGoodsListApi,getRefundListApi,exportExcelApi,getTeacherListApi,updateOrderTeacherApi} from "../../service/api"; import {getOrderListApi,editOrderDescApi,getGoodsListApi,getRefundListApi,exportExcelApi,getTeacherListApi,updateOrderTeacherApi,setOrderApi} from "../../service/api";
import page from '../framework/page' import page from '../framework/page'
import addressDialog from './dialog' import addressDialog from './dialog'
import orderDialog from './newDialog' import orderDialog from './newDialog'
......
...@@ -4,15 +4,108 @@ ...@@ -4,15 +4,108 @@
center center
append-to-body append-to-body
:visible.sync="newdialogObj.show" :visible.sync="newdialogObj.show"
width="800px"> width="900px">
<el-form ref="form" :model="form" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="期数名称" required>
<el-select v-model="form.periods_id" placeholder="请选择" >
<el-option
v-for="item in teacher2Options"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商品名称" required>
<el-select v-model="form.goods_id" placeholder="请选择">
<el-option
v-for="item in teacher2Options"
:key="item.id"
:label="item.value"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户ID" prop="user_id" required>
<el-input v-model="form.user_id"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="实付金额(元)" prop="money" required>
<el-input v-model="form.money"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="购买方式" required>
<el-select v-model="form.buy_type" placeholder="请选择">
<el-option
v-for="item in buyTypeOptions"
:key="item.id"
:label="item.value"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="推广人ID" prop="invite_id" >
<el-input v-model="form.invite_id"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注">
<el-input type="textarea" v-model="form.desc"></el-input>
</el-form-item>
</el-col>
</el-row>
<vue-address :province="form.province_name" :city="form.city" :district="form.area" :detail="form.address" :mobile="form.receive_mobile" :name="form.receive_name" @change="handlerAddressChange">
</vue-address>
<el-form-item label="支付类型" required>
<el-select v-model="form.order_type" placeholder="请选择">
<el-option
v-for="item in buyWayOptioms"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="支付时间" prop="pay_at" required>
<el-date-picker
v-model="form.pay_at"
type="datetime"
:picker-options="pickerOptions1"
default-time="12:00:00"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</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">保 存</el-button> <el-button type="primary" @click="saveAddOrder(form)">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import vueAddress from '../framework/address-picker/Address'
import AddressArray from '../framework/address-picker/addr'
import {ORDERSTATUS,BUYTYPEOPTION,BUYWay} from "../../util/wordbook"
import CommonJs from '../../util/common';
export default { export default {
name: "newdialogObj", name: "newdialogObj",
props:[ props:[
...@@ -20,11 +113,96 @@ ...@@ -20,11 +113,96 @@
], ],
data(){ data(){
return{ return{
rules:[],
form:{
periods_id:"",
goods_id:"",
user_id:"",
money:"",
buy_type:"",
invite_id:"",
desc:"",
province_name:"",
city:"",
area:"",
city_name:"",
district_name:"",
district:"",
province:"",
address:"",
receive_mobile:"",
receive_name:"",
order_type:"",
pay_at:"",
},
teacher2Options:[],
buyTypeOptions:BUYTYPEOPTION,
pickerOptions1:{},
buyWayOptioms:BUYWay,
} }
},
components:{
vueAddress
}, },
methods:{ methods:{
saveAddOrder(){ saveAddOrder(data){
let json={
periods_id:data.periods_id,
goods_id:data.goods_id,
user_id:data.user_id,
money:data.money,
buy_type:data.buy_type,
province_name:data.province_name,
city:data.city,
area:data.area,
city_name:data.city_name,
district_name:data.district_name,
district:data.district,
province:data.province,
address:data.address,
receive_mobile:data.receive_mobile,
receive_name:data.receive_name,
order_type:data.order_type,
}
if(data.pay_at){
json.pay_at = CommonJs.dateFmt( data.pay_at,"yyyy-MM-dd hh:mm:ss");
}
if(this.form.invite_id){
json.invite_id = this.form.invite_id
}
if(this.form.desc){
json.desc = this.form.desc
}
console.log(json)
// this.newdialogObj.show=false
},
handlerAddressChange(val){
if(!val.province || !val.city || !val.district){
return
}
this.form.address = val.detail;
this.form.province = val.province;
this.form.city = val.city;
this.form.receive_mobile = val.mobile;
this.form.receive_name = val.name;
let provinceObj = AddressArray.filter((item) => {
return item.value === val.province
})
let cityObj = provinceObj[0].children.filter((city) => {
return city.value === val.city
})
let districtObj = cityObj[0].children.filter((district) => {
return district.value === val.district
})
this.form.province_name = provinceObj[0].label;
this.form.city_name = cityObj[0].label;
this.form.district_name = districtObj.length > 0 ? districtObj[0].label : cityObj[0].children[0].label;
this.form.district = districtObj.length > 0 ? districtObj[0].value : cityObj[0].children[0].value;
} }
}, },
mounted(){ mounted(){
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
:title="dialogObj.title" :title="dialogObj.title"
center center
:visible.sync="dialogObj.show" :visible.sync="dialogObj.show"
width="70%"> width="900px">
<div v-loading="loading"> <div v-loading="loading">
<el-form ref="form" :model="form" label-width="100px" :disabled="dialogObj.type === 2"> <el-form ref="form" :model="form" label-width="100px" :disabled="dialogObj.type === 2">
<el-row> <el-row>
......
...@@ -22,8 +22,7 @@ ...@@ -22,8 +22,7 @@
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="发送状态"> <el-form-item label="发送状态">
<el-select v-model="searchFrom.status" placeholder="请选择" @change="getList"> <el-select v-model="searchFrom.status" placeholder="请选择" @change="getList" clearable>
<el-option label="全部" value=""></el-option>
<el-option <el-option
v-for="item in useTypeList" v-for="item in useTypeList"
:key="item.status" :key="item.status"
...@@ -145,7 +144,6 @@ ...@@ -145,7 +144,6 @@
if(this.searchFrom.mobile){ if(this.searchFrom.mobile){
json.mobile = this.searchFrom.mobile json.mobile = this.searchFrom.mobile
} }
console.log(json)
getsmsRecordApi(json).then((res)=>{ getsmsRecordApi(json).then((res)=>{
this.total = res.total; this.total = res.total;
this.list = res.list ? res.list : [] this.list = res.list ? res.list : []
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<el-dialog <el-dialog
:title="dialogObj.title" :title="dialogObj.title"
:visible.sync="dialogObj.show" :visible.sync="dialogObj.show"
width="800px"
> >
<el-form ref="form" :model="form" label-width="120px"> <el-form ref="form" :model="form" label-width="120px">
<el-form-item label="老师"> <el-form-item label="老师">
......
...@@ -14,8 +14,7 @@ ...@@ -14,8 +14,7 @@
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="购买状态"> <el-form-item label="购买状态">
<el-select v-model="searchFrom.user_buy" placeholder="请选择" @change="getList"> <el-select v-model="searchFrom.user_buy" placeholder="请选择" @change="getList" clearable>
<el-option label="全部" value=""></el-option>
<el-option <el-option
v-for="item in useTypeList" v-for="item in useTypeList"
:key="item.user_buy" :key="item.user_buy"
...@@ -41,11 +40,12 @@ ...@@ -41,11 +40,12 @@
<el-form-item label="购买时间"> <el-form-item label="购买时间">
<el-date-picker <el-date-picker
v-model="searchFrom.payTime" v-model="searchFrom.payTime"
type="datetimerange" unlink-panels
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:default-time="['00:00:00','23:59:59']"
@change="getList"> @change="getList">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
...@@ -54,19 +54,21 @@ ...@@ -54,19 +54,21 @@
<el-form-item label="同步时间"> <el-form-item label="同步时间">
<el-date-picker <el-date-picker
v-model="searchFrom.syncTime" v-model="searchFrom.syncTime"
type="datetimerange" unlink-panels
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
: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-col> </el-col>
<el-col :span="4"> <el-col :span="8">
<el-form-item> <el-form-item>
<el-button type="primary" @click="getList">搜索</el-button> <el-button type="primary" @click="getList">搜索</el-button>
<el-button type="primary" plain @click="exportTable(list)">导出</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -141,10 +143,8 @@ ...@@ -141,10 +143,8 @@
<script> <script>
import page from '../framework/page' import page from '../framework/page'
import teacherDialog from './dialog' import teacherDialog from './dialog'
import {getyunjiApi,getGoodsListApi} from "../../service/api"; import {getyunjiApi,getGoodsListApi,exportExcelApi} from "../../service/api";
import {GOODSTYPE} from "../../util/wordbook"; import {GOODSTYPE} from "../../util/wordbook";
import CommonJs from '../../util/common';
export default { export default {
name: "smsRecord", name: "smsRecord",
components:{ components:{
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,7 @@
if(this.searchFrom.goods_name){ if(this.searchFrom.goods_name){
json.goods_name = this.searchFrom.goods_name json.goods_name = this.searchFrom.goods_name
} }
if(this.searchFrom.user_buy || this.searchFrom.user_buy==0){ if(this.searchFrom.user_buy || this.searchFrom.user_buy == 0){
json.user_buy = this.searchFrom.user_buy json.user_buy = this.searchFrom.user_buy
} }
if(this.searchFrom.order_id){ if(this.searchFrom.order_id){
...@@ -232,14 +232,13 @@ ...@@ -232,14 +232,13 @@
json.goods_id = this.searchFrom.goods_id json.goods_id = this.searchFrom.goods_id
} }
if(this.searchFrom.payTime && this.searchFrom.payTime.length > 0){ if(this.searchFrom.payTime && this.searchFrom.payTime.length > 0){
json.start_at = CommonJs.dateFmt(this.searchFrom.payTime[0],"yyyy-MM-dd hh:mm:ss"); json.start_at =this.searchFrom.payTime[0]
json.end_at = CommonJs.dateFmt(this.searchFrom.payTime[1],"yyyy-MM-dd hh:mm:ss") json.end_at = this.searchFrom.payTime[1]
} }
if(this.searchFrom.syncTime && this.searchFrom.syncTime.length > 0){ if(this.searchFrom.syncTime && this.searchFrom.syncTime.length > 0){
json.pull_start_at = CommonJs.dateFmt(this.searchFrom.syncTime[0],"yyyy-MM-dd hh:mm:ss"); json.pull_start_at = this.searchFrom.syncTime[0]
json.pull_end_at = CommonJs.dateFmt(this.searchFrom.syncTime[1],"yyyy-MM-dd hh:mm:ss") json.pull_end_at =this.searchFrom.syncTime[1]
} }
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 : []
...@@ -261,6 +260,34 @@ ...@@ -261,6 +260,34 @@
id:data.id, id:data.id,
teacher_id: data.teacher_id teacher_id: data.teacher_id
} }
},
exportTable(data){
if(data.length>0){
let json = {};
if (this.searchFrom.order_id) {
json.order_id = this.searchFrom.order_id
}
if (this.searchFrom.user_buy || this.searchFrom.user_buy == 0) {
json.user_buy = this.searchFrom.user_buy
}
if (this.searchFrom.mobile) {
json.mobile = this.searchFrom.mobile
}
if (this.searchFrom.goods_id) {
json.goods_id = this.searchFrom.goods_id
}
if(this.searchFrom.payTime && this.searchFrom.payTime.length > 0){
json.start_at =this.searchFrom.payTime[0]
json.end_at = this.searchFrom.payTime[1]
}
if(this.searchFrom.syncTime && this.searchFrom.syncTime.length > 0){
json.pull_start_at = this.searchFrom.syncTime[0]
json.pull_end_at =this.searchFrom.syncTime[1]
}
exportExcelApi(`api/admin/yunji/order/export`,json);
}
}, },
} }
} }
......
...@@ -439,6 +439,11 @@ const getOrderListUrl = `${_baseUrl}api/admin/order/list`; ...@@ -439,6 +439,11 @@ const getOrderListUrl = `${_baseUrl}api/admin/order/list`;
export const getOrderListApi = function(json) { export const getOrderListApi = function(json) {
return Vue.prototype.$fetch(getOrderListUrl, json) return Vue.prototype.$fetch(getOrderListUrl, json)
}; };
//手动添加订单
const setOrderUrl = `/api/admin/order`;
export const setOrderApi = function(json) {
return Vue.prototype.$post(setOrderUrl,json)
}
// 修改订单备注 // 修改订单备注
const editOrderDescUrl = `${_baseUrl}api/admin/order/desc/`; const editOrderDescUrl = `${_baseUrl}api/admin/order/desc/`;
...@@ -784,7 +789,7 @@ export const getyunjiApi = function(json) { ...@@ -784,7 +789,7 @@ export const getyunjiApi = function(json) {
return Vue.prototype.$fetch(`${getyunjiUrl}`, json) return Vue.prototype.$fetch(`${getyunjiUrl}`, json)
} }
//云集绑定老师 //云集绑定老师
const bindTeacherUrl = `api/admin/yunji/order/bind/teacher/`; const bindTeacherUrl = `/api/admin/yunji/order/bind/teacher/`;
export const bindTeacherApi = function(json,id) { export const bindTeacherApi = function(json,id) {
return Vue.prototype.$put(`${bindTeacherUrl}/${json}/${id}`) return Vue.prototype.$put(`${bindTeacherUrl}/${json}/${id}`)
} }
...@@ -63,6 +63,20 @@ export const BUYTYPEOPTION = [ ...@@ -63,6 +63,20 @@ export const BUYTYPEOPTION = [
value: '团购' value: '团购'
} }
] ]
export const BUYWay = [
{
id: 1,
value: '微信'
},
{
id: 2,
value: '支付宝'
},
{
id: 3,
value: '其他'
}
]
export const ORDERSTATUSOPTION = [ export const ORDERSTATUSOPTION = [
{ {
id: 0, id: 0,
......
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