Commit 0dcd825f authored by chenfenglei's avatar chenfenglei

云集商品名称展示,导出

parent 3d93702d
......@@ -171,6 +171,7 @@
end_at:this.searchFirstFrom.dateValue[1]
};
}
console.log(json)
getTeacherRankListApi(json).then(res=>{
this.firstList = res;
})
......
......@@ -304,6 +304,11 @@
getTeacher(){
if (!this.periods) return;
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
})
},
......
......@@ -534,7 +534,6 @@
methods:{
handleItemChange(value){
getClassListApi(value[0],{limit:99999}).then(res=>{
console.log(res.list)
res.list.forEach(i=>{
i.title = i.class_name
});
......@@ -667,6 +666,7 @@
})
});
getClassUserApi(this.userObj.classId,json).then(res=>{
console.log(res.list)
this.userTable = res.list
});
this.changeClassObj={
......
......@@ -8,7 +8,6 @@
<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<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="userObj.show=true">清除缓存</el-dropdown-item>
<el-dropdown-item @click.native="dialogUpdate=true">修改密码</el-dropdown-item>
......
......@@ -83,8 +83,9 @@ export default {
if (valid) {
let json1 = {};
json1.url = this.qrForm.link;
json1.url=encodeURI(json1.url)
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
}`;
} else {
......
......@@ -93,11 +93,11 @@
<el-button type="primary" plain @click="exportTable">导出</el-button>
</el-form-item>
</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-button type="success" plain @click="add">新增订单</el-button>
<!-- <el-button type="success" plain @click="add">新增订单</el-button> -->
</el-form-item>
</el-col> -->
</el-col>
</el-row>
</el-form>
<el-table
......@@ -295,7 +295,7 @@
</template>
<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 addressDialog from './dialog'
import orderDialog from './newDialog'
......
......@@ -4,15 +4,108 @@
center
append-to-body
: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">
<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>
</el-dialog>
</template>
<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 {
name: "newdialogObj",
props:[
......@@ -20,11 +113,96 @@
],
data(){
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:{
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(){
......
......@@ -3,7 +3,7 @@
:title="dialogObj.title"
center
:visible.sync="dialogObj.show"
width="70%">
width="900px">
<div v-loading="loading">
<el-form ref="form" :model="form" label-width="100px" :disabled="dialogObj.type === 2">
<el-row>
......
......@@ -22,8 +22,7 @@
</el-col>
<el-col :span="4">
<el-form-item label="发送状态">
<el-select v-model="searchFrom.status" placeholder="请选择" @change="getList">
<el-option label="全部" value=""></el-option>
<el-select v-model="searchFrom.status" placeholder="请选择" @change="getList" clearable>
<el-option
v-for="item in useTypeList"
:key="item.status"
......@@ -145,7 +144,6 @@
if(this.searchFrom.mobile){
json.mobile = this.searchFrom.mobile
}
console.log(json)
getsmsRecordApi(json).then((res)=>{
this.total = res.total;
this.list = res.list ? res.list : []
......
......@@ -2,6 +2,7 @@
<el-dialog
:title="dialogObj.title"
:visible.sync="dialogObj.show"
width="800px"
>
<el-form ref="form" :model="form" label-width="120px">
<el-form-item label="老师">
......
......@@ -14,8 +14,7 @@
</el-col>
<el-col :span="4">
<el-form-item label="购买状态">
<el-select v-model="searchFrom.user_buy" placeholder="请选择" @change="getList">
<el-option label="全部" value=""></el-option>
<el-select v-model="searchFrom.user_buy" placeholder="请选择" @change="getList" clearable>
<el-option
v-for="item in useTypeList"
:key="item.user_buy"
......@@ -41,11 +40,12 @@
<el-form-item label="购买时间">
<el-date-picker
v-model="searchFrom.payTime"
type="datetimerange"
unlink-panels
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00','23:59:59']"
@change="getList">
</el-date-picker>
</el-form-item>
......@@ -54,19 +54,21 @@
<el-form-item label="同步时间">
<el-date-picker
v-model="searchFrom.syncTime"
type="datetimerange"
unlink-panels
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00','23:59:59']"
@change="getList">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="8">
<el-form-item>
<el-button type="primary" @click="getList">搜索</el-button>
<el-button type="primary" plain @click="exportTable(list)">导出</el-button>
</el-form-item>
</el-col>
</el-row>
......@@ -141,10 +143,8 @@
<script>
import page from '../framework/page'
import teacherDialog from './dialog'
import {getyunjiApi,getGoodsListApi} from "../../service/api";
import {getyunjiApi,getGoodsListApi,exportExcelApi} from "../../service/api";
import {GOODSTYPE} from "../../util/wordbook";
import CommonJs from '../../util/common';
export default {
name: "smsRecord",
components:{
......@@ -222,7 +222,7 @@
if(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
}
if(this.searchFrom.order_id){
......@@ -232,14 +232,13 @@
json.goods_id = this.searchFrom.goods_id
}
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.end_at = CommonJs.dateFmt(this.searchFrom.payTime[1],"yyyy-MM-dd hh:mm:ss")
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 = CommonJs.dateFmt(this.searchFrom.syncTime[0],"yyyy-MM-dd hh:mm:ss");
json.pull_end_at = CommonJs.dateFmt(this.searchFrom.syncTime[1],"yyyy-MM-dd hh:mm:ss")
json.pull_start_at = this.searchFrom.syncTime[0]
json.pull_end_at =this.searchFrom.syncTime[1]
}
getyunjiApi(json).then((res)=>{
this.total = res.total;
this.list = res.list ? res.list : []
......@@ -261,6 +260,34 @@
id:data.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`;
export const getOrderListApi = function(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/`;
......@@ -784,7 +789,7 @@ export const getyunjiApi = function(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) {
return Vue.prototype.$put(`${bindTeacherUrl}/${json}/${id}`)
}
\ No newline at end of file
}
......@@ -63,6 +63,20 @@ export const BUYTYPEOPTION = [
value: '团购'
}
]
export const BUYWay = [
{
id: 1,
value: '微信'
},
{
id: 2,
value: '支付宝'
},
{
id: 3,
value: '其他'
}
]
export const ORDERSTATUSOPTION = [
{
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