Commit dfdde186 authored by 罗超's avatar 罗超

1

parent 4c04faea
...@@ -206,4 +206,14 @@ export function getLogList(data) { ...@@ -206,4 +206,14 @@ export function getLogList(data) {
data data
}) })
} }
/**
\ No newline at end of file * 获取同业客户阶段列表
*
*/
export function getCustomerStuStageStatistics(data) {
return request({
url: '/B2BCustomer/GetCustomerStuStageStatistics',
method: 'post',
data
})
}
\ No newline at end of file
...@@ -4,21 +4,27 @@ ...@@ -4,21 +4,27 @@
<div class="info-head flex items-center"> <div class="info-head flex items-center">
<div class="flex items-center"> <div class="flex items-center">
<q-img :src="detailData.WeChatPhoto" :ratio="1" width="60px" class="q-mr-md"/> <q-img :src="detailData.WeChatPhoto" :ratio="1" width="60px" class="q-mr-md"/>
{{detailData.WeChatName}} <div>
<div class="text-weight-thin" style="font-size:10px">
微信名
</div>
<div class="text-h6">
{{detailData.WeChatName}}
</div>
</div>
</div> </div>
<q-space /> <q-space />
<q-btn color="accent" size="sm" class="q-mr-md" icon="swap_horiz" label="转移" /> <q-btn color="accent" size="sm" class="q-mr-md" icon="swap_horiz" label="转移" />
</div> </div>
<div class="info-content"> <div class="info-content">
<div class="detail-info"> <div class="detail-info">
<baseInfo :Data="detailData"></baseInfo> <baseInfo :Data="detailData" @confirm="saveBaseInfo"></baseInfo>
</div> </div>
<div class="detail-log"> <div class="detail-log">
<right :Id="rowId"></right> <right :Id="rowId"></right>
</div> </div>
</div> </div>
</div> </div>
<div class="dialog-out-close" @click="closeAuditCustomerForm" <div class="dialog-out-close" @click="closeAuditCustomerForm"
style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"> style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;">
...@@ -28,7 +34,8 @@ ...@@ -28,7 +34,8 @@
</template> </template>
<script> <script>
import { import {
GetCustomer GetCustomer,
SetCustomer
} from "../../../api/sale/peemanagement"; } from "../../../api/sale/peemanagement";
import baseInfo from './baseInfo.vue' import baseInfo from './baseInfo.vue'
import right from './conRight.vue' import right from './conRight.vue'
...@@ -125,6 +132,21 @@ ...@@ -125,6 +132,21 @@
this.detailData.EnterpriseName = ''; this.detailData.EnterpriseName = '';
} }
}, },
saveBaseInfo(obj){
this.detailData[obj.field]=obj.val
SetCustomer(this.detailData).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "数据保存成功!",
position: "top",
});
this.$emit("success");
}
})
}
}, },
} }
...@@ -135,10 +157,10 @@ ...@@ -135,10 +157,10 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 1010px; width: 1010px;
height: 100%; height: calc(100vh - 520px);
padding: 15px 17px 0 17px; padding: 15px 17px 0 17px;
background-color: #f4f4f6; background-color: #f4f4f6;
overflow: hidden; overflow: auto;
box-sizing: border-box; box-sizing: border-box;
.info-head { .info-head {
...@@ -161,7 +183,7 @@ ...@@ -161,7 +183,7 @@
width: 350px; width: 350px;
height: 100%; height: 100%;
margin-right: 13px; margin-right: 13px;
background: #fff; background-color: #fff;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
} }
...@@ -170,8 +192,7 @@ ...@@ -170,8 +192,7 @@
flex-grow: 1; flex-grow: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding-top: 28px; background-color: #fff;
background: #fff;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
overflow: hidden; overflow: hidden;
} }
......
<template> <template>
<div class="q-pa-md"> <div class="q-pa-md">
<div class="text-h6">基础资料</div> <div class="text-h6">基础资料</div>
<div class="flex justify-between items-center q-my-lg"> <!-- 同业名称 -->
<div class="q-my-sm" v-if="editField=='CustomerName'">
<div class="flex justify-between items-center q-mb-sm">
<span>同业名称</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('CustomerName',Data.CustomerName,true)"></q-btn>
</div>
</div>
<q-input outlined dense v-model="Data.CustomerName" ref="CustomerName" :rules="[val => !!val || '请输入同业名称']"></q-input>
</div>
<div class="flex justify-between items-center q-my-lg" v-else @click="showEdit('CustomerName')">
<span>同业名称</span> <span>同业名称</span>
<span>{{Data.CustomerName}}</span> <span>{{Data.CustomerName}}</span>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <!-- 性别 -->
<div class="q-my-sm" v-if="editField=='Sex'">
<div class="flex justify-between items-center q-mb-sm">
<span>性别</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('Sex',Data.Sex)"></q-btn>
</div>
</div>
<q-select outlined dense v-model="Data.Sex" map-options emit-value :options="sexOptions" />
</div>
<div class="flex justify-between items-center q-my-lg" v-else @click="showEdit('Sex')">
<span>性别</span>
<span v-if="Data.Sex==1"></span>
<span v-if="Data.Sex==2"></span>
</div>
<!-- 电话 -->
<div class="q-my-sm" v-if="editField=='ContactNumber'">
<div class="flex justify-between items-center q-mb-sm">
<span>电话</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('ContactNumber',Data.ContactNumber,true)"></q-btn>
</div>
</div>
<q-input outlined dense v-model="Data.ContactNumber" ref="ContactNumber" :rules="[val => !!val || '请输入电话']"></q-input>
</div>
<div class="flex justify-between items-center q-my-lg" v-else @click="showEdit('ContactNumber')">
<span>电话</span> <span>电话</span>
<span>{{Data.ContactNumber}}</span> <span>{{Data.ContactNumber}}</span>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <!-- 类型 -->
<div class="q-my-sm" v-if="editField=='CustomerType'">
<div class="flex justify-between items-center q-mb-sm">
<span>类型</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('CustomerType',Data.CustomerType)"></q-btn>
</div>
</div>
<q-select outlined dense v-model="Data.CustomerType" map-options emit-value :options="options"
:rules="[val => !!val || '请选择类型']" />
</div>
<div class="flex justify-between items-center q-my-lg" v-else @click="showEdit('CustomerType')">
<span>类型</span> <span>类型</span>
<span v-if="Data.CustomerType==1">企业</span> <span v-if="Data.CustomerType==1">企业</span>
<span v-if="Data.CustomerType==2">学校</span> <span v-if="Data.CustomerType==2">学校</span>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <!-- 企业/学校名称 -->
<div class="q-my-sm" v-if="editField=='EnterpriseName'">
<div class="flex justify-between items-center q-mb-sm">
<span>企业/学校名称</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('EnterpriseName',Data.EnterpriseName)"></q-btn>
</div>
</div>
<q-input outlined dense v-model="Data.EnterpriseName" :rules="[val => !!val || '请输入名称']"></q-input>
</div>
<div class="flex justify-between items-center q-my-lg" v-else @click="showEdit('EnterpriseName')">
<span>企业/学校名称</span> <span>企业/学校名称</span>
<span>{{Data.EnterpriseName}}</span> <span>{{Data.EnterpriseName}}</span>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <!-- 账号 -->
<span>客人数量</span> <div class="q-my-sm" v-if="editField=='Account'">
<span>{{Data.StuNum}}</span> <div class="flex justify-between items-center q-mb-sm">
<span>账号</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('Account',Data.Account)"></q-btn>
</div>
</div>
<q-input outlined dense v-model="Data.Account" :rules="[val => !!val || '请输入账号']"></q-input>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <div class="flex justify-between items-center q-my-lg" v-else @click="showEdit('Account')">
<span>订单数量</span> <span>账号</span>
<span>{{Data.OrderNum}}</span> <span>{{Data.Account}}</span>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <!-- 详细地址 -->
<span>销售额</span> <div class="q-my-sm" v-if="editField=='Address'">
<span>{{Data.OrderSales}}</span> <div class="flex justify-between items-center q-mb-sm">
<span>详细地址</span>
<div>
<q-btn size="sm" text-color="primary" label="取消" @click="showEdit('')"></q-btn>
<q-btn size="sm" color="primary" label="确定" class="q-ml-sm" @click="save('Address',Data.Address)"></q-btn>
</div>
</div>
<q-input outlined dense v-model="Data.Address" ></q-input>
</div> </div>
<div class="flex justify-between items-center q-my-lg"> <div class="flex no-wrap justify-between items-center q-my-lg" v-else @click="showEdit('Address')">
<span> 审批状态</span> <span style="white-space:nowrap">详细地址</span>
<span>{{Data.ApproveStateStr}}</span> <span style="max-width:60%" class="ellepsis">{{Data.Address}}</span>
</div> </div>
<!-- OpenId -->
<div class="flex justify-between items-center q-my-lg"> <div class="flex justify-between items-center q-my-lg">
<span> 市场人员</span> <span>OpenId</span>
<span>{{Data.CreateByName}}</span> <span class="text-grey-6">{{Data.OpenId}}</span>
</div> </div>
<!-- UnionId -->
<div class="flex justify-between items-center q-my-lg"> <div class="flex justify-between items-center q-my-lg">
<span> 加入时间</span> <span> UnionId</span>
<span>{{Data.CreateTimeStr}}</span> <span class="text-grey-6">{{Data.UnionId}}</span>
</div> </div>
</div> </div>
</template> </template>
...@@ -55,24 +132,48 @@ ...@@ -55,24 +132,48 @@
}, },
data() { data() {
return { return {
detailData:{} editField: "",
} options: [{
}, label: "企业",
watch:{ value: 1,
Data:{ }, {
handler(val){ label: "学校",
console.log(60,val) value: 2,
}, }],
deep:true sexOptions: [{
label: "男",
value: 1,
}, {
label: "女",
value: 2,
}]
} }
}, },
created() {},
mounted() {
console.log(67,this.Data)
},
methods: { methods: {
showEdit(field) {
this.editField = field
},
save(field,val,Validate=false){
if(Validate){
this.$refs[field].validate();
if(this.$refs[field].hasError) return
}
const obj={
field,
val
}
this.$emit("confirm",obj)
this.editField =''
},
}, },
} }
</script> </script>
<style>
.ellepsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
...@@ -3,22 +3,27 @@ ...@@ -3,22 +3,27 @@
<q-tabs <q-tabs
v-model="tabs" v-model="tabs"
active-color="primary" active-color="primary"
align="left"
style="width:350px;margin-bottom:20px;"
> >
<q-tab :name="1" label="操作日志" /> <q-tab :name="1" label="操作日志" />
<q-tab :name="2" label="客户" /> <q-tab :name="2" label="客户" />
<q-tab :name="3" label="订单" /> <q-tab :name="3" label="订单" />
<q-tab :name="4" label="返佣" /> <q-tab :name="4" label="幸福存折" />
</q-tabs> </q-tabs>
<div class="q-my-md"> <div class="q-mb-lg">
<log :Id="Id" v-if="tabs===1"></log> <log :Id="Id" v-if="tabs===1"></log>
<customer :Id="Id" v-if="tabs===2"></customer>
<order :Id="Id" v-if="tabs===3"></order>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import log from './log.vue' import log from './log.vue'
import customer from './customer'
import order from './order'
export default { export default {
components: {log}, components: {log,customer,order},
props: { props: {
Id: { Id: {
type: Number, type: Number,
......
<template>
<div class="b2bcustomer">
<div class="full-width flex no-wrap items-center q-mb-sm">
<q-tabs
v-model="msg.StuStage"
active-color="primary"
dense
outside-arrows
align="left"
style="width:70%"
@input="getStudent"
>
<q-tab
v-for="(item, index) in stagelist"
:key="index"
:name="item.StuStage"
>
{{ item.StuStageName }}({{ item.StuNum }})
</q-tab>
</q-tabs>
<q-input
outlined
dense
v-model="msg.StuName"
label="昵称"
@input="getStudent"
/>
</div>
<q-table
:pagination="msg"
:loading="loading"
no-data-label="暂无相关数据"
flat
class="sticky-tow-column-table"
separator="none"
:data="list"
:columns="columns"
row-key="Id"
>
<template v-slot:body-cell-StuIcon="props">
<q-td auto-width :props="props">
<q-avatar size="md" v-if="props.value">
<img :src="props.value" />
</q-avatar>
<q-avatar
size="md"
color="teal-10"
text-color="white"
v-if="!props.value"
>
{{ props.row.StuName.substring(0, 1) }}</q-avatar
>
</q-td>
</template>
<template v-slot:body-cell-StuName="props">
<q-td :props="props">
<div class="text-blue cursor-pointer" @click="getStuRight(props.row)">
{{ props.value }}
</div>
</q-td>
</template>
<template v-slot:body-cell-StuSex="props">
<q-td :props="props">
<q-badge
:color="props.value == 1 ? 'negative' : 'primary'"
:label="props.value == 1 ? '女' : '男'"
/>
</q-td>
</template>
<template v-slot:body-cell-Status="props">
<q-td :props="props">
<q-toggle
size="md"
color="primary"
:false-value="1"
:true-value="0"
v-model="props.row.Status"
title="注意:关闭后,学员将无法正常使用."
@input="deleteStudentInfo(props.row)"
/>
</q-td>
</template>
<template v-slot:bottom>
<q-pagination
class="full-width justify-end"
v-model="msg.pageIndex"
color="primary"
:max="pageCount"
:input="true"
@input="changePage"
/>
</template>
</q-table>
<stuDetail
v-if="isShowStuRight"
:save-obj="stuOption"
@close="closeStuForm"
></stuDetail>
</div>
</template>
<script>
import { getStudentPage } from "../../../api/school";
import { getCustomerStuStageStatistics } from "../../../api/sale/peemanagement";
import stuDetail from "../../../components/school/student/studentRight-form";
export default {
components: {
stuDetail
},
props: {
Id: {
type: Number,
default: 0
}
},
data() {
return {
loading: false,
list: [],
pageCount: 0,
columns: [
{
name: "StuIcon",
label: "",
field: "StuIcon",
align: "left"
},
{
name: "StuName",
required: true,
label: "昵称",
align: "left",
field: row => row.StuName
},
{
name: "StuSex",
label: "性别",
field: "StuSex",
align: "left"
},
{
name: "StuBirthStr",
label: "出生日期",
field: "StuBirthStr",
align: "left"
},
{
name: "StuTel",
label: "手机号码",
field: "StuTel",
align: "left"
},
{
name: "CreateTypeStr",
label: "客户来源",
field: "CreateTypeStr",
align: "left"
},
{
name: "StuStageName",
label: "客户阶段",
field: "StuStageName",
align: "left"
},
{
name: "CreateTimeStr",
label: "创建时间",
field: "CreateTimeStr",
align: "left"
}
// {
// name: "CreateByName",
// label: "负责人",
// align: "left",
// field: "CreateByName"
// }
],
msg: {
pageIndex: 1,
pageSize: 10,
rowsPerPage: 10,
StuName: "",
StuTel: "",
Status: "-1",
School_Id: 0,
CustomerId: 0,
StuStage: 0
},
stagelist: [],
stuOption: {},
isShowStuRight: false
};
},
methods: {
getStudent() {
this.msg.CustomerId = this.Id;
this.loading = true;
getStudentPage(this.msg)
.then(res => {
this.loading = false;
this.list = res.Data.PageData;
this.pageCount = res.Data.PageCount;
})
.catch(() => {
this.loading = false;
});
},
getStage() {
getCustomerStuStageStatistics({ CustomerId: this.Id }).then(res => {
this.stagelist = res.Data;
const total = res.Data.reduce((pre, cur) => {
return cur.StuNum + pre;
}, 0);
const obj = {
StuStage: 0,
StuStageName: "全部",
StuNum: total
};
this.stagelist.unshift(obj);
console.log("tag", this.stagelist);
});
},
changePage(val) {
this.msg.pageIndex = val;
this.getStudent();
},
closeStuForm() {
this.isShowStuRight = false;
},
//点击学生姓名弹出
getStuRight(obj) {
if (obj) {
this.stuOption = obj;
} else {
this.stuOption = {};
}
this.isShowStuRight = true;
}
},
mounted() {
this.getStudent();
this.getStage();
}
};
</script>
<style lang="scss">
.b2bcustomer ::-webkit-scrollbar {
width: 5px;
height: 5px;
}
.b2bcustomer ::-webkit-scrollbar-track {
background: #fff;
border-radius: 2px;
}
.b2bcustomer ::-webkit-scrollbar-thumb {
background: #444;
border-radius: 10px;
}
.b2bcustomer ::-webkit-scrollbar-thumb:hover {
background: #999;
}
.b2bcustomer ::-webkit-scrollbar-corner {
background: #204754;
}
</style>
<template> <template>
<div> <div>
<q-timeline color="secondary" v-if="logList.length>=0"> <q-timeline color="secondary" v-if="logList.length>0">
<q-timeline-entry v-for="(item,index) in logList" :key="index" :title="item.CreateByName"> <q-timeline-entry v-for="(item,index) in logList" :key="index" :title="item.CreateByName">
<template #subtitle> <template #subtitle>
<div> <div>
<span>{{item.DayStr}}</span><span class="q-ml-md">{{item.TimeStr}}</span><span class="q-ml-md" v-if="item.WeekDay">{{item.WeekDay}}</span> <span>{{item.DayStr}}</span><span class="q-ml-md">{{item.TimeStr}}</span><span class="q-ml-md" v-if="item.WeekDay">{{item.WeekDay}}</span>
</div> </div>
</template> </template>
<div> <div>
...@@ -12,10 +12,12 @@ ...@@ -12,10 +12,12 @@
</div> </div>
</q-timeline-entry> </q-timeline-entry>
</q-timeline> </q-timeline>
<div class="flex justify-center q-mt-md text-gray-4" v-if="logList.length==0">
暂无操作记录
</div>
<div class="flex justify-end q-mt-md"> <div class="flex justify-end q-mt-md">
<q-pagination v-model="logMsg.pageIndex" :max="pageCount" input color="primary" @input="changePage" v-if="logList.length>=0"/> <q-pagination v-model="logMsg.pageIndex" :max="pageCount" input color="primary" @input="changePage" v-if="logList.length>0"/>
</div> </div>
</div> </div>
</template> </template>
......
<template>
<div class="page-body myOrder q-pb-lg">
<div class="page-search row items-center">
<div class="col row ">
<div class="col-5">
<q-input @input="resetSearch" dense clearable outlined v-model="msg.OrderId" label="订单号"
@clear="resetSearch" maxlength="10" />
</div>
<div class="col-7 row justify-end items-center">
<q-toggle v-model="msg.Q_NotCollect" label="只看款未收齐订单" false-value="0" true-value="1"
@input="resetSearch" />
<div class="q-ml-md">
<q-btn color="accent" size="sm" label="导出" @click="goexport()" />
</div>
</div>
</div>
</div>
<div class="row wrap q-gutter-xs" v-if="data.Statistics">
<div class="col-3 stics">
<span class="stics-name">应收款</span>
<span>{{data.Statistics.PreferPrice?data.Statistics.PreferPrice:0}}</span>
</div>
<div class="col-3 stics">
<span class="stics-name">实收款</span>
<span>{{data.Statistics.Income}}</span>
</div>
<div class="col-3 stics">
<span class="stics-name">待收款</span>
<span style="color: #F72E52">{{data.Statistics.DueInMoney}}</span>
</div>
<div class="col-3 stics">
<span class="stics-name">收客人数</span>
<span style="color:#2961FE;">{{data.Statistics.GuestNum}}</span>
</div>
<div class="col-3 stics">
<span class="stics-name">取消人数</span>
<span>{{data.Statistics.CancelNum}}</span>
</div>
<div class="col-3 stics">
<span class="stics-name">提成金额</span>
<span>{{data.Statistics.CommissionMoney}}</span>
</div>
<div class="col-3 stics">
<span class="stics-name">额外奖励</span>
<span>{{data.Statistics.ExtraRewardMoney}}</span>
</div>
</div>
<div class="row col" style="justify-content: flex-end">
<div class="row tis">
<div class="tis-k" style="background: #2961FE"></div>
<span>已打单</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #02C499"></div>
<span>平台出纳已审核</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #F28C1D"></div>
<span>银行出纳已审核</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #3FC4FF"></div>
<span>已通过</span>
</div>
</div>
<div class="page-content">
<orderlist :dataList="data.List" :authObj="authObj" @success="refreshClassOrder" :modityOrderType="3"
ref="orderL">
</orderlist>
<div class="row" style="justify-content: flex-end;padding: 5px 20px">
<q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
color="primary" :input="true">
</q-pagination>
</div>
</div>
<classinfo-form v-if="isShowClassInfo" :seting-obj="classObjOption" @close="closeClass"
@success="refreshClassOrder">
</classinfo-form>
</div>
</template>
<script>
import {
getMyOrderStatisticsPageList, //获取订单列表
getOrderStateEnumList //订单状态
} from '../../../api/sale/sale';
import {
queryCourseDropdownList,
getCourseSubject
} from '../../../api/course/index'
import myOrderForm from '../../../components/sale/myOrder-form'
import classinfoForm from '../../../components/course/classinfo-form';
import orderlist from '../../../components/sale/orderlist'
import {
queryEmployee
} from '../../../api/users/user';
import {
EduDownLoad,
} from '../../../api/common/common';
export default {
props:{
Id:{
type:Number,
default:0
}
},
components: {
myOrderForm,
classinfoForm,
orderlist
},
data() {
return {
dialog: false,
data: {},
loading: false,
dateList: [], //报名时间
dateList2: [], //开班时间
msg: {
pageIndex: 1,
pageSize: 8,
OrderId: '', //订单号
GuestName: '', //客人名称
ClassName: '', //班级名称
CouseId: 0, //课程id
StartTime: '', //报名开始时间
EndTime: '', //报名结束时间
OPStartTime: '', //开班开始时间
OPEndTime: '', //开班结束时间
Q_NotCollect: '0', //查询未收齐 1是 0否
OrderState: 0, //订单状态 枚举
Q_OrderState: 1, //查询 1正常订单 2取消订单 (默认传1 如果 选择了订单状态 则传 0)
Q_OrderBy: 2, //写死 =2
PlatformTax: 0, //平台税金
EnterID: '', //业务员id
ClassNo: '', //班号
HelpEnterId: '', //关联教师
CourseSubject: "", //所属科目
CustomerId:0
},
//订单状态
OrderStateList: [],
pageCount: 0,
CourseList: [], //关联课程下拉数据
classObjOption: null,
isShowClassInfo: false, //是否显示课程信息
showone: false,
//权限判断
authObj: {
isShowGuestBtn: 0, //显示新增学员名单按钮
isShowFinanceBtn: false, //显示财务单据按钮
isShowTransOrder: false, //显示转交订单按钮
isShowSaleRemark: false, //显示修改销售备注
isShowBackClass: false, //显示退课按钮
isShowRenewClass: false, //显示续课按钮
isShowEdit: false, //不显示修改按钮
isShowBackClass: false, //不显示退课
isShowRenewClass: false, //不显示续课
},
EmployeeList: [], //业务员
AllemployeeList: [],
TeacherList: [], //关联教师
AllTeacherList: [],
CourseSubjectList: [], //科目列表
}
},
created() {
if (this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId;
}
// let nowDay = new Date();
// var year = nowDay.getFullYear(); //年
// var month = nowDay.getMonth() + 1; //月
// var day = nowDay.getDate(); //日
// var currentDay = year + '-' + month + '-' + day;
// this.msg.StartTime = currentDay
// if (this.$route.query.StartTime) {
// this.msg.StartTime = this.$route.query.StartTime + '-01';
// }
// if (this.$route.query.EndTime) {
// this.msg.EndTime = this.$route.query.EndTime + '-01';
// }
if (this.$route.query.EnterID) {
this.msg.EnterID = Number(this.$route.query.EnterID);
}
if (this.$route.query.ClassName) {
this.msg.ClassName = decodeURI(this.$route.query.ClassName);
}
this.queryCourseSubject();
this.getOrderState();
this.getCourseList();
},
mounted() {
this.getList();
this.getEmployee(0);
this.getglteacher()
},
methods: {
queryCourseSubject() {
getCourseSubject({}).then(res => {
if (res.Code == 1) {
this.CourseSubjectList = res.Data;
}
})
},
//订单状态
getOrderState() {
getOrderStateEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
Id: 0,
Name: "不限"
})
this.OrderStateList = tempArray;
}
})
},
//获取课程
getCourseList() {
queryCourseDropdownList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
CourseId: 0,
CourseName: "不限"
})
this.CourseList = tempArray;
}
})
},
//翻页
changePage(val) {
if (this.showone == true) {
this.msg.pageIndex = val;
this.getList()
} else {
this.showone = true
}
},
resetSearch() {
this.msg.pageIndex = 1;
this.getList()
},
//获取菜单分页列表
getList() {
// if (this.dateList && this.dateList.length > 0) {
// this.msg.StartTime = this.dateList[0];
// this.msg.EndTime = this.dateList[1];
// } else {
// this.msg.StartTime = '';
// this.msg.EndTime = '';
// }
if (this.dateList2 && this.dateList2.length > 0) {
this.msg.OPStartTime = this.dateList2[0];
this.msg.OPEndTime = this.dateList2[1];
} else {
this.msg.OPStartTime = '';
this.msg.OPEndTime = '';
}
this.msg.CustomerId=this.Id
let msg = JSON.parse(JSON.stringify(this.msg));
if (msg.OrderId == '' || msg.OrderId == null) {
msg.OrderId = 0
}
this.loading = true;
getMyOrderStatisticsPageList(msg).then(res => {
this.data = res.Data.PageData;
let OrderIds = []
this.data.List.forEach(x => {
OrderIds.push(x.OrderId)
})
this.loading = false
OrderIds = OrderIds.join(',')
if (this.data.List.length > 0) {
this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
}
this.pageCount = res.Data.PageCount;
}).catch(() => {
this.loading = false
})
},
//刷新页面
refreshClassOrder() {
this.getList();
},
getClassInfo(obj) { //打开班级详情组件
this.classObjOption = obj;
this.isShowClassInfo = true;
},
//关闭班级信息弹窗
closeClass() {
this.isShowClassInfo = false;
},
getglteacher() {
var qMsg = {
AccountTypeStr: 2
}
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
let obj = {
Id: "",
EmployeeName: "不限"
}
this.TeacherList.unshift(obj)
this.AllTeacherList = JSON.parse(JSON.stringify(this.TeacherList));
}
})
},
//筛选关联老师
filterFn3(val, update) {
update(() => {
if (val === '') {
this.TeacherList = JSON.parse(JSON.stringify(this.AllTeacherList))
} else {
const needle = val.toLowerCase()
this.TeacherList = this.AllTeacherList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1)
}
})
},
//业务员
getEmployee(id) {
var qMsg = {
Dept_Id: 0
}
qMsg.Dept_Id = id;
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
this.EmployeeList = res.Data;
let obj = {
Id: "",
EmployeeName: "不限"
}
this.EmployeeList.unshift(obj)
this.AllemployeeList = JSON.parse(JSON.stringify(this.EmployeeList));
}
}).catch(() => {
})
},
//筛选业务员
filterFn2(val, update) {
update(() => {
if (val === '') {
this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList))
} else {
const needle = val.toLowerCase()
this.EmployeeList = this.AllemployeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1)
}
})
},
goexport() { //导出
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/order/GetOrderPageListStatisticsToExcel", msg, "订单列表.xls")
}
}
}
</script>
<style scoped>
li {
list-style-type: none;
}
.myOrder ul {
padding: 0px
}
.myOrder .price-popup {
border-radius: 4px;
}
.myOrder .el-range-editor .el-range-input {
background: transparent;
}
.myOrder .el-range-editor.el-input__inner {
background-color: transparent;
}
.myOrder .q-mb-md {
margin-bottom: 0;
}
.myOrder .stics {
padding: 10px 20px;
background: #DDDEE0;
border-radius: 4px;
font-size: 14px;
color: #000000;
font-weight: bold;
white-space:nowrap;
}
.myOrder .stics .stics-name {
color: #2D2D2D;
font-weight: 600;
margin-right: 10px
}
.myOrder .tis {
margin: 10px 0;
align-items: center
}
.myOrder .tis .tis-k {
width: 10px;
height: 10px;
margin-right: 8px
}
.myOrder .tis span {
font-size: 14px;
color: #2D2D2D;
font-weight: 600;
margin-right: 20px
}
.myOrder .el-input__inner {
border: none !important;
background: transparent !important;
}
</style>
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</customerEdit-form> </customerEdit-form>
<customerReview-form v-if="isShowRightForm" :customerObj="customerObj" @close="closeCustomForm" <customerReview-form v-if="isShowRightForm" :customerObj="customerObj" @close="closeCustomForm"
@success="refreshQuestion"></customerReview-form> @success="refreshQuestion"></customerReview-form>
<customerInfo v-if="isShowDetailForm" :rowId="curRowId" @close="closeCustomForm" @edit="editCusInfo" :auth="AuthorityObj" <customerInfo v-if="isShowDetailForm" :rowId="curRowId" @close="closeCustomForm" :auth="AuthorityObj"
@success="refreshQuestion"></customerInfo> @success="refreshQuestion"></customerInfo>
</div> </div>
</template> </template>
......
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