Commit 22f2ba1e authored by 黄奎's avatar 黄奎

页面修改

parent f5b46909
...@@ -111,6 +111,10 @@ ...@@ -111,6 +111,10 @@
sticky: { sticky: {
type: String, type: String,
default: "" default: ""
},
loading: {
type: Boolean,
default: false,
} }
}, },
components: { components: {
...@@ -134,7 +138,7 @@ ...@@ -134,7 +138,7 @@
}, },
{ {
name: "CategoryName", name: "CategoryName",
label: "同名称", label: "同名称",
field: "CategoryName", field: "CategoryName",
align: "left" align: "left"
}, },
...@@ -231,9 +235,9 @@ ...@@ -231,9 +235,9 @@
this.getEmployeeList(); this.getEmployeeList();
}, },
mounted() { mounted() {
if(this.dataList&&this.dataList.length>0){ if (this.dataList && this.dataList.length > 0) {
this.dataList.forEach(x=>{ this.dataList.forEach(x => {
if(x.CustomerType==4){ if (x.CustomerType == 4) {
x.CategoryName = x.EnterpriseName x.CategoryName = x.EnterpriseName
} }
}) })
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
</style> </style>
<template> <template>
<div class="b2bcustomlist"> <div class="b2bcustomlist">
<q-table :pagination="pageMsg" :loading="loading" no-data-label="暂无相关数据" flat <q-table :pagination="pageMsg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
class="sticky-column-table" separator="none" :data="dataList" :columns="columns" row-key="CustomerId"> separator="none" :data="dataList" :columns="columns" row-key="CustomerId">
<template v-slot:top> <template v-slot:top>
<q-space /> <q-space />
<div class="page-option"> <div class="page-option">
...@@ -41,8 +41,10 @@ ...@@ -41,8 +41,10 @@
</template> </template>
<template v-slot:body-cell-optioned="props"> <template v-slot:body-cell-optioned="props">
<q-td :props="props"> <q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" @click="EditCustom(props.row)" style="font-weight:400" label="修改" /> <q-btn flat size="xs" icon="edit" color="accent" @click="EditCustom(props.row)" style="font-weight:400"
<q-btn flat size="xs" icon="delete" @click="RemoveCustomer(props.row)" color="negative" style="font-weight:400" label="删除" /> label="修改" />
<q-btn flat size="xs" icon="delete" @click="RemoveCustomer(props.row)" color="negative"
style="font-weight:400" label="删除" />
</q-td> </q-td>
</template> </template>
<template v-slot:bottom> <template v-slot:bottom>
...@@ -52,7 +54,8 @@ ...@@ -52,7 +54,8 @@
<categoryEdit-form v-if="isShowCategoryForm" :customerObj="customerObj" @close="closeCustomForm" <categoryEdit-form v-if="isShowCategoryForm" :customerObj="customerObj" @close="closeCustomForm"
@success="refreshQuestion"> @success="refreshQuestion">
</categoryEdit-form> </categoryEdit-form>
<peerRight v-if="isShowDetailForm" :CategoryId="CategoryId" @close="closeCustomForm" :auth="AuthorityObj" @success="refreshQuestion"></peerRight> <peerRight v-if="isShowDetailForm" :CategoryId="CategoryId" @close="closeCustomForm" :auth="AuthorityObj"
@success="refreshQuestion"></peerRight>
</div> </div>
</template> </template>
<script> <script>
...@@ -66,6 +69,10 @@ ...@@ -66,6 +69,10 @@
dataList: { dataList: {
type: Array, type: Array,
default: null default: null
},
loading: {
type: Boolean,
default: false,
} }
}, },
components: { components: {
...@@ -127,7 +134,7 @@ ...@@ -127,7 +134,7 @@
loading: false, loading: false,
isShowCategoryForm: false, isShowCategoryForm: false,
customerObj: null, //传入参数 customerObj: null, //传入参数
tabId:1, tabId: 1,
//权限设置 //权限设置
AuthorityObj: { AuthorityObj: {
isShowEdit: false, //是否显示新增修改按钮 isShowEdit: false, //是否显示新增修改按钮
...@@ -135,15 +142,14 @@ ...@@ -135,15 +142,14 @@
isShowBankBook: false, //是否显示幸福存折 isShowBankBook: false, //是否显示幸福存折
isShowRebate: false //是否显示返佣 isShowRebate: false //是否显示返佣
}, },
isShowDetailForm:false, isShowDetailForm: false,
CategoryId:0 CategoryId: 0
}; };
}, },
created() { created() {
}, },
mounted() { mounted() {},
},
methods: { methods: {
//新增或者修改客户 //新增或者修改客户
EditCustom(obj) { EditCustom(obj) {
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
:options="customList" class="col-6 q-pr-lg q-pb-lg" v-model="objOption.CategoryId" clearable emit-value map-options /> :options="customList" class="col-6 q-pr-lg q-pb-lg" v-model="objOption.CategoryId" clearable emit-value map-options />
<template v-if="objOption.CustomerType!=4"> <template v-if="objOption.CustomerType!=4">
<div class="col-6" v-if="!isShowEdit"> <div class="col-6" v-if="!isShowEdit">
<q-btn label="立即添加" @click="isShowEdit=true" size="sm" color="primary" /> <q-btn label="立即添加同行" @click="isShowEdit=true" size="sm" color="primary" />
</div> </div>
<div class="col-6" v-if="isShowEdit" style="position:relative"> <div class="col-6" v-if="isShowEdit" style="position:relative">
<q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.CategoryName" lazy-rules <q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.CategoryName" lazy-rules
......
<style lang="scss"> <style lang="scss">
.stuList .q-table__bottom { .stuList .q-table__bottom {
min-height: 0; min-height: 0;
} }
.stulistNum {
display: inline-block; .stulistNum {
width: 25px; display: inline-block;
height: 25px; width: 25px;
text-align: center; height: 25px;
line-height: 23px; text-align: center;
border: 1px solid #2961fe; line-height: 23px;
border-radius: 50%; border: 1px solid #2961fe;
cursor: pointer; border-radius: 50%;
color: #2961fe; cursor: pointer;
} color: #2961fe;
.stuListTable { }
width: 200px;
text-align: center;
}
.stuListTable tr td { .stuListTable {
height: 40px; width: 200px;
} text-align: center;
}
.stuListTable tr td {
height: 40px;
}
.stuListTable tr th { .stuListTable tr th {
height: 40px; height: 40px;
background-color: rgb(238, 238, 239); background-color: rgb(238, 238, 239);
} }
</style> </style>
<template> <template>
<div class="stuList"> <div class="stuList">
<q-table <q-table :pagination="pageMsg" :loading="loading" no-data-label="暂无相关数据" flat
:pagination="pageMsg" :selection="pushMode ? 'multiple' : 'single'" :selected.sync="selection"
:loading="loading" class="sticky-right-column-table sticky-tow-column-table" separator="none" :data="dataList" :columns="columns"
no-data-label="暂无相关数据" row-key="StuId" hide-bottom>
flat
:selection="pushMode ? 'multiple' : 'single'"
:selected.sync="selection"
class="sticky-right-column-table sticky-tow-column-table"
separator="none"
:data="dataList"
:columns="columns"
row-key="StuId"
hide-bottom
>
<template v-slot:top> <template v-slot:top>
<div class="col-2 q-table__title">学员信息</div> <div class="col-2 q-table__title">学员信息</div>
<q-space /> <q-space />
<div class="page-option" v-if="!pushMode"> <div class="page-option" v-if="!pushMode">
<q-btn <q-btn color="accent" outline class="q-mr-md" size="sm" icon="swap_horiz" label="推送课程顾问"
color="accent" v-if="userInfo.IsCourseConsultant == 0" @click="pushMode = true" />
outline <q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转订单"
class="q-mr-md" :disable="selection.length === 0" @click="transferOrder" />
size="sm" <q-btn color="accent" class="q-mr-md" size="sm" icon="add" label="新增学员" @click="EditStudent(null)" />
icon="swap_horiz"
label="推送课程顾问"
v-if="userInfo.IsCourseConsultant == 0"
@click="pushMode = true"
/>
<q-btn
color="accent"
class="q-mr-md"
size="sm"
icon="swap_horiz"
label="转订单"
:disable="selection.length === 0"
@click="transferOrder"
/>
<q-btn
color="accent"
class="q-mr-md"
size="sm"
icon="add"
label="新增学员"
@click="EditStudent(null)"
/>
</div> </div>
<div class="page-option" v-if="pushMode"> <div class="page-option" v-if="pushMode">
<q-btn <q-btn color="accent" unelevated class="q-mr-md" size="sm" icon="swap_horiz" label="立即推送" :loading="pushing"
color="accent" @click="assistBatchHandler" />
unelevated <q-btn color="accent" outline size="sm" label="退出" :disable="pushing" @click="
class="q-mr-md"
size="sm"
icon="swap_horiz"
label="立即推送"
:loading="pushing"
@click="assistBatchHandler"
/>
<q-btn
color="accent"
outline
size="sm"
label="退出"
:disable="pushing"
@click="
pushMode = false; pushMode = false;
selection = []; selection = [];
" " />
/>
</div> </div>
</template> </template>
<template v-slot:body-cell-StuIcon="props"> <template v-slot:body-cell-StuIcon="props">
...@@ -104,14 +59,8 @@ ...@@ -104,14 +59,8 @@
<q-avatar size="md" v-if="props.value"> <q-avatar size="md" v-if="props.value">
<img :src="props.value" /> <img :src="props.value" />
</q-avatar> </q-avatar>
<q-avatar <q-avatar size="md" color="teal-10" text-color="white" v-if="!props.value">
size="md" {{ props.row.StuName.substring(0, 1) }}</q-avatar>
color="teal-10"
text-color="white"
v-if="!props.value"
>
{{ props.row.StuName.substring(0, 1) }}</q-avatar
>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-StuName="props"> <template v-slot:body-cell-StuName="props">
...@@ -123,37 +72,25 @@ ...@@ -123,37 +72,25 @@
</template> </template>
<template v-slot:body-cell-StuSex="props"> <template v-slot:body-cell-StuSex="props">
<q-td :props="props"> <q-td :props="props">
<q-badge <q-badge :color="props.value == 1 ? 'negative' : 'primary'" :label="props.value == 1 ? '女' : '男'" />
:color="props.value == 1 ? 'negative' : 'primary'" </q-td>
:label="props.value == 1 ? '女' : '男'" </template>
/> <template v-slot:body-cell-StuSourceIdName="props">
<q-td :props="props">
<div>
<span v-if="props.row.CreateType == 2 && props.row.EnterpriseName">{{props.row.EnterpriseName}}:</span>
{{ props.row.StuSourceIdName }}
</div>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-StuSourceIdName="props">
<q-td :props="props">
<div>
<span v-if="props.row.CreateType == 2 && props.row.EnterpriseName">{{props.row.EnterpriseName}}:</span>
{{ props.row.StuSourceIdName }}
</div>
</q-td>
</template>
<template v-slot:body-cell-CurseManager="props"> <template v-slot:body-cell-CurseManager="props">
<q-td :props="props" v-html="getCurseManager(props.row)"></q-td> <q-td :props="props" v-html="getCurseManager(props.row)"></q-td>
</template> </template>
<template v-slot:body-cell-OrderCount="props"> <template v-slot:body-cell-OrderCount="props">
<q-td <q-td :props="props" v-if="props.row.OrderCount == 0" class="text-grey-4">未报名</q-td>
:props="props" <q-td :props="props" v-if="props.row.OrderCount > 0" class="bg-negative text-white">
v-if="props.row.OrderCount == 0" 已报名{{ props.row.OrderCount }}</q-td>
class="text-grey-4"
>未报名</q-td
>
<q-td
:props="props"
v-if="props.row.OrderCount > 0"
class="bg-negative text-white"
>已报名{{ props.row.OrderCount }}</q-td
>
</template> </template>
<template v-slot:body-cell-TeacherManager="props"> <template v-slot:body-cell-TeacherManager="props">
<q-td :props="props" v-html="getTeacherManager(props.row)"></q-td> <q-td :props="props" v-html="getTeacherManager(props.row)"></q-td>
...@@ -171,21 +108,14 @@ ...@@ -171,21 +108,14 @@
<q-popup-proxy> <q-popup-proxy>
<q-banner> <q-banner>
<div style="max-height:600px;overflow-y:auto;"> <div style="max-height:600px;overflow-y:auto;">
<table <table class="stuListTable" style="border-collapse:collapse;">
class="stuListTable"
style="border-collapse:collapse;"
>
<tr> <tr>
<th>角色</th> <th>角色</th>
<th>协同人</th> <th>协同人</th>
</tr> </tr>
<tr <tr v-for="(sItem, sIndex) in assistListFormat[
v-for="(sItem, sIndex) in assistListFormat[
props.pageIndex props.pageIndex
]" ]" style="border-bottom:1px dashed #d1d1d1;" :key="sIndex">
style="border-bottom:1px dashed #d1d1d1;"
:key="sIndex"
>
<td>{{ sItem.AssistTypeName }}</td> <td>{{ sItem.AssistTypeName }}</td>
<td>{{ sItem.AssistName }}</td> <td>{{ sItem.AssistName }}</td>
</tr> </tr>
...@@ -207,271 +137,324 @@ ...@@ -207,271 +137,324 @@
</q-td> </q-td>
</template> --> </template> -->
</q-table> </q-table>
<student-form <student-form v-if="isShowStuForm" :save-obj="stuOption" @close="closeStuForm" @success="refreshStuList">
v-if="isShowStuForm"
:save-obj="stuOption"
@close="closeStuForm"
@success="refreshStuList"
>
</student-form> </student-form>
<studentRight-form <studentRight-form v-if="isShowStuRight" :isJudgeTrans="isJudgeTrans" :BelongType="BelongType" :save-obj="stuOption"
v-if="isShowStuRight" @close="closeStuForm" @success="refreshStuList" @reload="referDataHandler">
:isJudgeTrans="isJudgeTrans"
:BelongType="BelongType"
:save-obj="stuOption"
@close="closeStuForm"
@success="refreshStuList"
@reload="referDataHandler"
>
</studentRight-form> </studentRight-form>
<studentAdd-form <studentAdd-form v-if="isShowAdd" :save-obj="stuOption" @close="closeStuForm" @success="refreshStuList">
v-if="isShowAdd"
:save-obj="stuOption"
@close="closeStuForm"
@success="refreshStuList"
>
</studentAdd-form> </studentAdd-form>
<transfer-order <transfer-order v-if="isShowTransfer" :select="selection" @close="closeStuForm" @success="refreshStuList">
v-if="isShowTransfer"
:select="selection"
@close="closeStuForm"
@success="refreshStuList"
>
</transfer-order> </transfer-order>
</div> </div>
</template> </template>
<script> <script>
import studentForm from "./student-form"; import studentForm from "./student-form";
import studentRightForm from "./studentRight-form"; import studentRightForm from "./studentRight-form";
import studentAddForm from "./studentAdd-form"; import studentAddForm from "./studentAdd-form";
import transferOrder from "./transfer-order"; import transferOrder from "./transfer-order";
import { mapGetters } from "vuex"; import {
import { SetStudentAssistBatch } from "../../../api/sale/sale"; mapGetters
export default { } from "vuex";
props: { import {
dataList: { SetStudentAssistBatch
type: Array, } from "../../../api/sale/sale";
default: null export default {
props: {
dataList: {
type: Array,
default: null
},
isJudgeTrans: {
type: Number,
default: null
},
loading: {
type: Boolean,
default: false,
}
}, },
isJudgeTrans: { components: {
type: Number, studentForm,
default: null studentRightForm,
} studentAddForm,
}, transferOrder
components: { },
studentForm, data() {
studentRightForm, return {
studentAddForm, columns: [{
transferOrder name: "StuIcon",
}, label: "",
data() { field: "StuIcon",
return { align: "left"
columns: [ },
{ {
name: "StuIcon", name: "StuName",
label: "", required: true,
field: "StuIcon", label: "昵称",
align: "left" align: "left",
}, field: row => row.StuName
{ },
name: "StuName", {
required: true, name: "CurseManager",
label: "昵称", label: "课程顾问",
align: "left", align: "left"
field: row => row.StuName },
}, {
{ name: "TeacherManager",
name: "CurseManager", label: "协助老师",
label: "课程顾问", align: "left"
align: "left" },
}, {
{ name: "OrderCount",
name: "TeacherManager", label: "是否报名",
label: "协助老师", align: "left"
align: "left" },
}, {
{ name: "StuSex",
name: "OrderCount", label: "性别",
label: "是否报名", field: "StuSex",
align: "left" align: "left"
}, },
{ {
name: "StuSex", name: "StuTel",
label: "性别", label: "电话",
field: "StuSex", field: "StuTel",
align: "left" align: "left"
}, },
{ {
name: "StuTel", name: "QQ",
label: "电话", label: "QQ",
field: "StuTel", field: "QQ",
align: "left" align: "left"
}, },
{ {
name: "QQ", name: "WeChatNo",
label: "QQ", label: "微信",
field: "QQ", field: "WeChatNo",
align: "left" align: "left"
}, },
{ {
name: "WeChatNo", name: "StuTypeName",
label: "微信", label: "客户类型",
field: "WeChatNo", field: "StuTypeName",
align: "left" align: "left"
}, },
{ {
name: "StuTypeName", name: "StuStageName",
label: "客户类型", label: "客户阶段",
field: "StuTypeName", field: "StuStageName",
align: "left" align: "left"
}, },
{ {
name: "StuStageName", name: "StuNeedsName",
label: "客户阶段", label: "客户需求",
field: "StuStageName", field: "StuNeedsName",
align: "left" align: "left"
}, },
{ {
name: "StuNeedsName", name: "StuProfession",
label: "客户需求", label: "职业",
field: "StuNeedsName", field: "StuProfession",
align: "left" align: "left"
}, },
{ {
name: "StuProfession", name: "StuEducationName",
label: "职业", label: "学历",
field: "StuProfession", field: "StuEducationName",
align: "left" align: "left"
}, },
{ {
name: "StuEducationName", name: "StuPurposeName",
label: "学历", label: "目的",
field: "StuEducationName", field: "StuPurposeName",
align: "left" align: "left"
}, },
{ {
name: "StuPurposeName", name: "AssistList",
label: "目的", label: "其他服务人员",
field: "StuPurposeName", align: "left",
align: "left" field: "AssistList"
}, },
{ {
name: "AssistList", name: "CreateTypeStr",
label: "其他服务人员", label: "客户来源",
align: "left", field: "CreateTypeStr",
field: "AssistList" align: "left"
}, },
{ {
name: "CreateTypeStr", name: "StuSourceIdName",
label: "客户来源", label: "来源关联人",
field: "CreateTypeStr", field: "StuSourceIdName",
align: "left" align: "left"
}, },
{ {
name: "StuSourceIdName", name: "StuChannelName",
label: "来源关联人", label: "收客渠道",
field: "StuSourceIdName", field: "StuChannelName",
align: "left" align: "left"
}, },
{ {
name: "StuChannelName", name: "VisitCount",
label: "收客渠道", label: "到访次数",
field: "StuChannelName", field: "VisitCount",
align: "left" align: "left"
}, },
{ {
name: "VisitCount", name: "TrialLessonCount",
label: "到访次数", label: "试听次数",
field: "VisitCount", field: "TrialLessonCount",
align: "left" align: "left"
}, },
{ {
name: "TrialLessonCount", name: "CreateTimeStr",
label: "试听次数", label: "创建时间",
field: "TrialLessonCount", field: "CreateTimeStr",
align: "left" align: "left"
},
{
name: "CreateByName",
label: "负责人",
align: "left",
field: "CreateByName"
}
// {
// name: "CustomerName",
// label: "所属同行",
// field: "CustomerName",
// align: "left"
// }
],
pageMsg: {
rowsPerPage: 12
}, },
{ loading: false,
name: "CreateTimeStr", isShowStuForm: false,
label: "创建时间", resetLoading: false,
field: "CreateTimeStr", isShowStuRight: false,
align: "left" stuOption: null,
isShowAdd: false,
selection: [],
isShowTransfer: false,
BelongType: 1,
pushMode: false,
pushing: false,
assistListFormat: []
};
},
watch: {
dataList: {
handler(val) {
this.selection = [];
this.formatAssistList();
}, },
{ deep: true
name: "CreateByName", }
label: "负责人", },
align: "left", created() {
field: "CreateByName" this.formatAssistList();
} this.initAuth();
// { },
// name: "CustomerName", mounted() {},
// label: "所属同行", computed: {
// field: "CustomerName", ...mapGetters(["userInfo", "logo", "name"])
// align: "left" },
// } methods: {
], //初始化权限
pageMsg: { initAuth() {},
rowsPerPage: 12 formatAssistList() {
this.assistListFormat = [];
this.dataList.forEach(x => {
let tempArr = [];
if (x.AssistList && x.AssistList.length > 0) {
x.AssistList.forEach(y => {
if (y.AssistType != 2 && y.AssistType != 4) {
tempArr.push(y);
}
});
}
this.assistListFormat.push(tempArr);
});
}, },
loading: false, //创建账号
isShowStuForm: false, createAccount(id) {
resetLoading: false, let that = this;
isShowStuRight: false, createStudentAccount({
stuOption: null, StuId: id
isShowAdd: false, }).then(res => {
selection: [], that.$q
isShowTransfer: false, .dialog({
BelongType: 1, title: "创建账号",
pushMode: false, message: res.Message,
pushing: false, persistent: true,
assistListFormat: [] ok: {
}; label: "确认",
}, flat: true,
watch: { focus: true
dataList: { }
handler(val) { })
this.selection = []; .onOk(() => {
this.formatAssistList(); that.getStudent();
})
.onCancel(() => {
that.getStudent();
});
});
}, },
deep: true resetPw(id) {
} let that = this;
}, this.$q
created() { .dialog({
this.formatAssistList(); title: "重置密码",
this.initAuth(); message: "你正在进行重置密码行为,是否确认执行",
}, persistent: true,
mounted() {}, cancel: {
computed: { label: "取消",
...mapGetters(["userInfo", "logo", "name"]) flat: true
}, },
methods: { ok: {
//初始化权限 label: "确认重置",
initAuth() {}, flat: true,
formatAssistList() { focus: true
this.assistListFormat = [];
this.dataList.forEach(x => {
let tempArr = [];
if (x.AssistList && x.AssistList.length > 0) {
x.AssistList.forEach(y => {
if (y.AssistType != 2 && y.AssistType != 4) {
tempArr.push(y);
} }
})
.onOk(() => {
that.resetLoading = true;
resetPassword({
AccountType: 4,
AccountId: id
})
.then(res => {
that.resetLoading = false;
that.$q.dialog({
title: "密码重置成功",
message: res.Message,
persistent: true,
ok: {
label: "确认",
flat: true,
focus: true
}
});
})
.catch(() => {
that.resetLoading = false;
});
}); });
} },
this.assistListFormat.push(tempArr); //删除客户资料
}); deleteStudentInfo(obj) {
}, let that = this;
//创建账号 var str = obj.Status == 1 ? "【禁用】" : "【启用】";
createAccount(id) { this.$q
let that = this;
createStudentAccount({
StuId: id
}).then(res => {
that.$q
.dialog({ .dialog({
title: "创建账号", title: str + "学员",
message: res.Message, message: "你正在进行" + str + "学员行为,一旦执行无法找回,是否确认执行?",
persistent: true, persistent: true,
cancel: {
label: "取消",
flat: true
},
ok: { ok: {
label: "确认", label: "确认",
flat: true, flat: true,
...@@ -479,202 +462,133 @@ export default { ...@@ -479,202 +462,133 @@ export default {
} }
}) })
.onOk(() => { .onOk(() => {
that.getStudent(); that.resetLoading = true;
deleteStudent({
StuId: obj.StuId,
Status: obj.Status
}).then(res => {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "数据操作成功!",
position: "top"
});
this.getStudent();
});
}) })
.onCancel(() => { .onCancel(() => {
that.getStudent(); obj.Status = obj.Status == 1 ? 0 : 1;
}); });
}); },
}, refreshStuList() {
resetPw(id) { this.$emit("success");
let that = this; this.selection = [];
this.$q },
.dialog({ EditStudent(obj) {
title: "重置密码", if (obj) {
message: "你正在进行重置密码行为,是否确认执行", this.stuOption = obj;
persistent: true, } else {
cancel: { this.stuOption = null;
label: "取消", }
flat: true this.isShowAdd = true;
}, },
ok: { closeStuForm() {
label: "确认重置", this.isShowStuForm = false;
flat: true, this.isShowStuRight = false;
focus: true this.isShowAdd = false;
} this.isShowTransfer = false;
}) },
.onOk(() => { //点击学生姓名弹出
that.resetLoading = true; getStuRight(obj) {
resetPassword({ if (obj) {
AccountType: 4, this.stuOption = obj;
AccountId: id this.BelongType = obj.BelongType;
}) } else {
.then(res => { this.stuOption = null;
that.resetLoading = false; }
that.$q.dialog({ this.isShowStuRight = true;
title: "密码重置成功", },
message: res.Message, transferOrder() {
persistent: true, const firstId = this.selection[0].CustomerId;
ok: { const flag = this.selection.every(e => {
label: "确认", return e.CustomerId == firstId;
flat: true, });
focus: true if (!flag) {
this.$q.notify({
type: "negative",
position: "top",
message: `所属同行不一致,请重新选择`
});
return;
}
this.isShowTransfer = true;
},
getCurseManager(row) {
let managerName = "<span class='text-grey-4'>暂未推送</span>";
if (row.AssistList && row.AssistList.length > 0) {
row.AssistList.forEach(y => {
if (y.AssistType == 2) {
managerName = `<span class='text-dark'>${y.AssistName}</span>`;
}
});
}
return managerName;
},
getTeacherManager(row) {
let managerName = "<span class='text-grey-4'>暂无</span>";
if (row.AssistList && row.AssistList.length > 0) {
row.AssistList.forEach(y => {
if (y.AssistType == 4) {
managerName = `<span class='text-dark'>${y.AssistName}</span>`;
}
});
}
return managerName;
},
assistBatchHandler() {
if (this.pushing) return;
this.pushing = true;
if (this.selection.length > 0) {
let msg = "";
let parameter = {
stuIds: ""
};
this.selection.forEach(x => {
parameter.stuIds += "," + x.StuId;
if (x.AssistList && x.AssistList.length > 0) {
x.AssistList.forEach(y => {
if (y.AssistType == 2) {
msg = `客户${x.StuName}:已存在课程顾问:${y.AssistName},无法再次推送。`;
} }
}); });
}) }
.catch(() => {
that.resetLoading = false;
});
});
},
//删除客户资料
deleteStudentInfo(obj) {
let that = this;
var str = obj.Status == 1 ? "【禁用】" : "【启用】";
this.$q
.dialog({
title: str + "学员",
message:
"你正在进行" + str + "学员行为,一旦执行无法找回,是否确认执行?",
persistent: true,
cancel: {
label: "取消",
flat: true
},
ok: {
label: "确认",
flat: true,
focus: true
}
})
.onOk(() => {
that.resetLoading = true;
deleteStudent({
StuId: obj.StuId,
Status: obj.Status
}).then(res => {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "数据操作成功!",
position: "top"
});
this.getStudent();
}); });
}) if (msg == "") {
.onCancel(() => { SetStudentAssistBatch(parameter).then(r => {
obj.Status = obj.Status == 1 ? 0 : 1; this.$emit("reload");
}); this.selection = [];
}, this.pushMode = false;
refreshStuList() {
this.$emit("success");
this.selection = [];
},
EditStudent(obj) {
if (obj) {
this.stuOption = obj;
} else {
this.stuOption = null;
}
this.isShowAdd = true;
},
closeStuForm() {
this.isShowStuForm = false;
this.isShowStuRight = false;
this.isShowAdd = false;
this.isShowTransfer = false;
},
//点击学生姓名弹出
getStuRight(obj) {
if (obj) {
this.stuOption = obj;
this.BelongType = obj.BelongType;
} else {
this.stuOption = null;
}
this.isShowStuRight = true;
},
transferOrder() {
const firstId = this.selection[0].CustomerId;
const flag = this.selection.every(e => {
return e.CustomerId == firstId;
});
if (!flag) {
this.$q.notify({
type: "negative",
position: "top",
message: `所属同行不一致,请重新选择`
});
return;
}
this.isShowTransfer = true;
},
getCurseManager(row) {
let managerName = "<span class='text-grey-4'>暂未推送</span>";
if (row.AssistList && row.AssistList.length > 0) {
row.AssistList.forEach(y => {
if (y.AssistType == 2) {
managerName = `<span class='text-dark'>${y.AssistName}</span>`;
}
});
}
return managerName;
},
getTeacherManager(row) {
let managerName = "<span class='text-grey-4'>暂无</span>";
if (row.AssistList && row.AssistList.length > 0) {
row.AssistList.forEach(y => {
if (y.AssistType == 4) {
managerName = `<span class='text-dark'>${y.AssistName}</span>`;
}
});
}
return managerName;
},
assistBatchHandler() {
if (this.pushing) return;
this.pushing = true;
if (this.selection.length > 0) {
let msg = "";
let parameter = {
stuIds: ""
};
this.selection.forEach(x => {
parameter.stuIds += "," + x.StuId;
if (x.AssistList && x.AssistList.length > 0) {
x.AssistList.forEach(y => {
if (y.AssistType == 2) {
msg = `客户${x.StuName}:已存在课程顾问:${y.AssistName},无法再次推送。`;
}
}); });
} else {
this.pushing = false;
this.errorMsg(msg);
} }
});
if (msg == "") {
SetStudentAssistBatch(parameter).then(r => {
this.$emit("reload");
this.selection = [];
this.pushMode = false;
});
} else { } else {
this.pushing = false; this.pushing = false;
this.errorMsg(msg); this.errorMsg("请选择要推送的学员");
} }
} else { },
this.pushing = false; referDataHandler() {
this.errorMsg("请选择要推送的学员"); this.$emit("reload");
},
errorMsg(msg) {
this.$q.notify({
type: "negative",
position: "top",
message: msg
});
} }
},
referDataHandler() {
this.$emit("reload");
},
errorMsg(msg) {
this.$q.notify({
type: "negative",
position: "top",
message: msg
});
} }
} };
}; </script>
</script> \ No newline at end of file
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<q-input @input="resetSearch" filled clearable v-model="msg.CustomerName" label="联系人" maxlength="20" /> <q-input @input="resetSearch" filled clearable v-model="msg.CustomerName" label="联系人" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input @input="resetSearch" filled clearable v-model="msg.CategoryName" label="同名称" maxlength="20" /> <q-input @input="resetSearch" filled clearable v-model="msg.CategoryName" label="同名称" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input @input="resetSearch" filled clearable v-model="msg.ContactNumber" label="电话" maxlength="20" /> <q-input @input="resetSearch" filled clearable v-model="msg.ContactNumber" label="电话" maxlength="20" />
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<q-input @input="resetSearch" filled clearable v-model="msg.CustomerName" label="联系人" maxlength="20" /> <q-input @input="resetSearch" filled clearable v-model="msg.CustomerName" label="联系人" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input @input="resetSearch" filled clearable v-model="msg.CategoryName" label="同名称" maxlength="20" /> <q-input @input="resetSearch" filled clearable v-model="msg.CategoryName" label="同名称" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input @input="resetSearch" filled clearable v-model="msg.ContactNumber" label="电话" maxlength="20" /> <q-input @input="resetSearch" filled clearable v-model="msg.ContactNumber" label="电话" maxlength="20" />
......
...@@ -3,96 +3,33 @@ ...@@ -3,96 +3,33 @@
<div class="page-search row items-center"> <div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md"> <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3"> <div class="col-3">
<q-input <q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.StuName" label="昵称"
@keyup.enter.native="resetSearch" maxlength="20" />
dense
clearable
filled
v-model="msg.StuName"
label="昵称"
maxlength="20"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input <q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.StuTel" label="电话"
@keyup.enter.native="resetSearch" maxlength="20" />
dense
clearable
filled
v-model="msg.StuTel"
label="电话"
maxlength="20"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input <q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.QQ" label="QQ"
@keyup.enter.native="resetSearch" maxlength="20" />
dense
clearable
filled
v-model="msg.QQ"
label="QQ"
maxlength="20"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input <q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.WechatNo" label="微信号"
@keyup.enter.native="resetSearch" maxlength="20" />
dense
clearable
filled
v-model="msg.WechatNo"
label="微信号"
maxlength="20"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select @input="resetSearch" filled v-model="msg.StuType" dense clearable :options="customTypeList"
@input="resetSearch" option-label="Name" option-value="Id" emit-value map-options label="客户类型" />
filled
v-model="msg.StuType"
dense
clearable
:options="customTypeList"
option-label="Name"
option-value="Id"
emit-value
map-options
label="客户类型"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select @input="resetSearch" dense filled v-model="msg.StuStage" :options="customState" option-label="Name"
@input="resetSearch" option-value="Id" emit-value map-options label="客户状态" clearable />
dense
filled
v-model="msg.StuStage"
:options="customState"
option-label="Name"
option-value="Id"
emit-value
map-options
label="客户状态"
clearable
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select @input="resetSearch" dense v-model="msg.CustomerId" :options="myCustomerList" filled use-input
@input="resetSearch" label="同行" option-label="CustomerName" option-value="CustomerId" ref="CustomerName" class="col-6" emit-value
dense map-options @filter="cusfilterFn">
v-model="msg.CustomerId"
:options="myCustomerList"
filled
use-input
label="同行"
option-label="CustomerName"
option-value="CustomerId"
ref="CustomerName"
class="col-6"
emit-value
map-options
@filter="cusfilterFn"
>
<template v-slot:no-option> <template v-slot:no-option>
<q-item> <q-item>
<q-item-section class="text-grey"> <q-item-section class="text-grey">
...@@ -103,384 +40,304 @@ ...@@ -103,384 +40,304 @@
</q-select> </q-select>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select @input="resetBelong" dense filled option-value="Id" option-label="Name" v-model="msg.BelongType"
@input="resetBelong" :options="BelongTypeList" emit-value map-options label="归属类型" />
dense
filled
option-value="Id"
option-label="Name"
v-model="msg.BelongType"
:options="BelongTypeList"
emit-value
map-options
label="归属类型"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-field filled dense> <q-field filled dense>
<template v-slot:control> <template v-slot:control>
<el-date-picker <el-date-picker v-model="dateArray" size="mini" @change="resetSearch" value-format="yyyy-MM-dd"
v-model="dateArray" type="daterange" style="border:none;" range-separator="至" start-placeholder="开始时间"
size="mini" end-placeholder="结束时间" />
@change="resetSearch"
value-format="yyyy-MM-dd"
type="daterange"
style="border:none;"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</template> </template>
</q-field> </q-field>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select @input="resetSearch" dense filled clearable use-input option-value="Id" option-label="Name"
@input="resetSearch" v-model="msg.ExistCourseConsultant" :options="consultantList" emit-value map-options label="是否推送程顾问" />
dense
filled
clearable
use-input
option-value="Id"
option-label="Name"
v-model="msg.ExistCourseConsultant"
:options="consultantList"
emit-value
map-options
label="是否推送程顾问"
/>
</div> </div>
<div class="col-3" v-if="msg.BelongType == 4"> <div class="col-3" v-if="msg.BelongType == 4">
<q-select <q-select @input="resetSearch" dense clearable @filter="filterSubord" use-input filled option-value="Id"
@input="resetSearch" option-label="EmployeeName" v-model="msg.CreateIds" multiple :options="SubordList" emit-value map-options
dense label="我下属的" />
clearable
@filter="filterSubord"
use-input
filled
option-value="Id"
option-label="EmployeeName"
v-model="msg.CreateIds"
multiple
:options="SubordList"
emit-value
map-options
label="我下属的"
/>
</div> </div>
<!-- <div class="col-3">
<q-select
@input="resetSearch"
dense
clearable
filled
option-value="Id"
option-label="Name"
v-model="msg.CreateType"
:options="customFromList"
emit-value
map-options
label="客户来源"
/>
</div>
<div class="col-3">
<q-select filled v-model="msg.StuChannel" @input="resetSearch" label="收客渠道" dense :options="StuChannelList" option-label="Name" option-value="Id" emit-value map-options use-input clearable
@filter="filterStuChannel">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div> -->
</div> </div>
</div> </div>
<div class="page-content"> <div class="page-content">
<stulist <stulist :dataList="data" @reload="getStudent" @success="refreshPage" :loading="loading" ref="stuList" :isJudgeTrans="isJudgeTrans">
:dataList="data"
@reload="getStudent"
@success="refreshPage"
ref="stuList"
:isJudgeTrans="isJudgeTrans"
>
</stulist> </stulist>
<div class="row" style="justify-content: flex-end;padding: 5px 20px"> <div class="row" style="justify-content: flex-end;padding: 5px 20px">
<q-pagination <q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
v-model="msg.pageIndex" color="primary" :input="true">
:max="pageCount"
@input="changePage"
class="full-width justify-end"
color="primary"
:input="true"
>
</q-pagination> </q-pagination>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { import {
getStudentPage, getStudentPage,
getSchoolDropdown, getSchoolDropdown,
deleteStudent, deleteStudent,
createStudentAccount, createStudentAccount,
queryStuStageList, queryStuStageList,
GetStudentTypeList, GetStudentTypeList,
GetPersonalDimension GetPersonalDimension
} from "../../api/school/index"; } from "../../api/school/index";
import { queryEmployee } from "../../api/users/user"; import {
import { resetPassword } from "../../api/users/user.js"; queryEmployee
} from "../../api/users/user";
import {
resetPassword
} from "../../api/users/user.js";
import stulist from "../../components/school/student/stulist"; import stulist from "../../components/school/student/stulist";
import { import {
getMyCustomerList, getMyCustomerList,
CreateTypeList, CreateTypeList,
GetStuChannelList GetStuChannelList
} from "../../api/sale/sale"; } from "../../api/sale/sale";
import { mapGetters } from "vuex"; import {
export default { mapGetters
meta: { } from "vuex";
title: "客户管理" export default {
}, meta: {
components: { title: "客户管理"
stulist
},
data() {
return {
currentUrl: "",
data: [],
loading: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
BelongType: 1,
StuName: "",
StuTel: "",
Status: "-1",
CreateBy: "",
IsQueryMyStu: 1,
StuStage: "", //客户阶段
StartTime: "", //开始时间
EndTime: "", //结束时间
CustomerId: 0,
QQ: "",
WechatNo: "",
StuType: "",
CreateIds: [],
ExistCourseConsultant: "", //是否存在课程顾问(1-存在,2=不存在)
// CreateType:'', //客户来源
// StuChannel: "" //收客渠道
},
dateArray: [], //日期数组
pageCount: 0,
//客户阶段状态列表
customState: [],
myCustomerList: [], //同行列表
allCustomerList: [], //所有同行列表
customTypeList: [], //客户类型
//归属类型列表
BelongTypeList: [
{
Id: 1,
Name: "全部"
},
{
Id: 2,
Name: "我负责的"
},
{
Id: 3,
Name: "我协同的"
},
{
Id: 4,
Name: "我下属的"
}
],
//课程顾问
consultantList: [
{
Id: 1,
Name: "是"
},
{
Id: 2,
Name: "否"
}
],
isJudgeTrans: 1, //用于判断转交是否有条件
SubordList: [], //我的下属数据
AllSubordList: [],
customFromList: [], //客户来源
StuChannelList: [], //收客渠道
allStuChannelList: [], //所有收客渠道
};
},
created() {
this.getSchool();
this.getStuStageList();
this.getCustomTypeList();
this.GetSubordList();
},
mounted() {
this.currentUrl = this.$route.path;
this.getStudent();
this.getCustomerList();
this.getCustomFrom();
this.GetStuChannelList();
},
computed: {
...mapGetters(["userInfo"])
},
methods: {
//获取收客渠道
GetStuChannelList() {
GetStuChannelList({}).then(res => {
if (res.Code == 1) {
this.StuChannelList = res.Data;
this.allStuChannelList = res.Data;
}
});
},
//筛选渠道
filterStuChannel(val, update) {
update(() => {
if (val === "") {
this.StuChannelList = JSON.parse(
JSON.stringify(this.allStuChannelList)
);
} else {
const needle = val.toLowerCase();
this.StuChannelList = this.allStuChannelList.filter(
v => v.Name.toLowerCase().indexOf(needle) > -1
);
}
});
},
//获取客户来源
getCustomFrom() {
CreateTypeList({}).then(res => {
if (res.Code == 1) {
this.customFromList = res.Data;
}
});
},
//获取我下属的下拉数据
GetSubordList() {
GetPersonalDimension().then(res => {
if (res.Code == 1) {
this.SubordList = res.Data;
this.AllSubordList = res.Data;
}
});
},
//筛选转介人
filterSubord(val, update, abort) {
update(() => {
this.SubordList = this.AllSubordList.filter(
v => v.EmployeeName.indexOf(val) > -1
);
});
}, },
//获取客户阶段列表 components: {
getStuStageList() { stulist
queryStuStageList().then(res => {
this.customState = res.Data;
});
}, },
//获取客户类型 data() {
getCustomTypeList() { return {
GetStudentTypeList().then(res => { currentUrl: "",
if (res.Code == 1) { data: [],
this.customTypeList = res.Data; loading: true,
} msg: {
}); pageIndex: 1,
}, pageSize: 12,
resetSearch() { rowsPerPage: 12,
this.msg.pageIndex = 1; BelongType: 1,
this.getStudent(); StuName: "",
StuTel: "",
Status: "-1",
CreateBy: "",
IsQueryMyStu: 1,
StuStage: "", //客户阶段
StartTime: "", //开始时间
EndTime: "", //结束时间
CustomerId: 0,
QQ: "",
WechatNo: "",
StuType: "",
CreateIds: [],
ExistCourseConsultant: "", //是否存在课程顾问(1-存在,2=不存在)
},
dateArray: [], //日期数组
pageCount: 0,
//客户阶段状态列表
customState: [],
myCustomerList: [], //同行列表
allCustomerList: [], //所有同行列表
customTypeList: [], //客户类型
//归属类型列表
BelongTypeList: [{
Id: 1,
Name: "全部"
},
{
Id: 2,
Name: "我负责的"
},
{
Id: 3,
Name: "我协同的"
},
{
Id: 4,
Name: "我下属的"
}
],
//课程顾问
consultantList: [{
Id: 1,
Name: "是"
},
{
Id: 2,
Name: "否"
}
],
isJudgeTrans: 1, //用于判断转交是否有条件
SubordList: [], //我的下属数据
AllSubordList: [],
customFromList: [], //客户来源
StuChannelList: [], //收客渠道
allStuChannelList: [], //所有收客渠道
};
}, },
resetBelong() { created() {
if (this.msg.BelongType != 4) { this.getSchool();
this.msg.pageIndex = 1; this.getStuStageList();
this.getStudent(); this.getCustomTypeList();
} this.GetSubordList();
}, },
changePage(val) { mounted() {
this.msg.pageIndex = val; this.currentUrl = this.$route.path;
this.getStudent(); this.getStudent();
this.getCustomerList();
this.getCustomFrom();
this.GetStuChannelList();
}, },
getSchool() { computed: {
getSchoolDropdown({}).then(res => { ...mapGetters(["userInfo"])
this.schoolList = res.Data;
});
}, },
getStudent() {
if (this.dateArray && this.dateArray.length > 0) { methods: {
this.msg.StartTime = this.dateArray[0]; //获取收客渠道
this.msg.EndTime = this.dateArray[1]; GetStuChannelList() {
} else { GetStuChannelList({}).then(res => {
this.msg.StartTime = ""; if (res.Code == 1) {
this.msg.EndTime = ""; this.StuChannelList = res.Data;
} this.allStuChannelList = res.Data;
this.loading = true; }
getStudentPage(this.msg)
.then(res => {
this.loading = false;
this.data = res.Data.PageData;
this.pageCount = res.Data.PageCount;
this.data.forEach(x => {
if (x.CreateBy != this.userInfo.Id) {
x.BelongType = 3;
} else {
x.BelongType = 1;
}
});
})
.catch(() => {
this.loading = false;
}); });
}, },
refreshPage() { //筛选渠道
this.getStudent(); filterStuChannel(val, update) {
}, update(() => {
getCustomerList() { if (val === "") {
getMyCustomerList({}).then(res => { this.StuChannelList = JSON.parse(
this.myCustomerList = res.Data; JSON.stringify(this.allStuChannelList)
this.allCustomerList = res.Data; );
this.myCustomerList.unshift({ } else {
CustomerName: "不限", const needle = val.toLowerCase();
CustomerId: 0 this.StuChannelList = this.allStuChannelList.filter(
v => v.Name.toLowerCase().indexOf(needle) > -1
);
}
}); });
}); },
}, //获取客户来源
cusfilterFn(val, update) { getCustomFrom() {
update(() => { CreateTypeList({}).then(res => {
if (val === "") { if (res.Code == 1) {
this.myCustomerList = JSON.parse( this.customFromList = res.Data;
JSON.stringify(this.allCustomerList) }
});
},
//获取我下属的下拉数据
GetSubordList() {
GetPersonalDimension().then(res => {
if (res.Code == 1) {
this.SubordList = res.Data;
this.AllSubordList = res.Data;
}
});
},
//筛选转介人
filterSubord(val, update, abort) {
update(() => {
this.SubordList = this.AllSubordList.filter(
v => v.EmployeeName.indexOf(val) > -1
); );
});
},
//获取客户阶段列表
getStuStageList() {
queryStuStageList().then(res => {
this.customState = res.Data;
});
},
//获取客户类型
getCustomTypeList() {
GetStudentTypeList().then(res => {
if (res.Code == 1) {
this.customTypeList = res.Data;
}
});
},
resetSearch() {
this.msg.pageIndex = 1;
this.getStudent();
},
resetBelong() {
if (this.msg.BelongType != 4) {
this.msg.pageIndex = 1;
this.getStudent();
}
},
changePage(val) {
this.msg.pageIndex = val;
this.getStudent();
},
getSchool() {
getSchoolDropdown({}).then(res => {
this.schoolList = res.Data;
});
},
getStudent() {
if (this.dateArray && this.dateArray.length > 0) {
this.msg.StartTime = this.dateArray[0];
this.msg.EndTime = this.dateArray[1];
} else { } else {
const needle = val.toLowerCase(); this.msg.StartTime = "";
this.myCustomerList = this.allCustomerList.filter( this.msg.EndTime = "";
v => v.CustomerName.toLowerCase().indexOf(needle) > -1
);
} }
}); this.loading = true;
getStudentPage(this.msg)
.then(res => {
this.loading = false;
this.data = res.Data.PageData;
this.pageCount = res.Data.PageCount;
this.data.forEach(x => {
if (x.CreateBy != this.userInfo.Id) {
x.BelongType = 3;
} else {
x.BelongType = 1;
}
});
})
.catch(() => {
this.loading = false;
});
},
refreshPage() {
this.getStudent();
},
getCustomerList() {
getMyCustomerList({}).then(res => {
this.myCustomerList = res.Data;
this.allCustomerList = res.Data;
this.myCustomerList.unshift({
CustomerName: "不限",
CustomerId: 0
});
});
},
cusfilterFn(val, update) {
update(() => {
if (val === "") {
this.myCustomerList = JSON.parse(
JSON.stringify(this.allCustomerList)
);
} else {
const needle = val.toLowerCase();
this.myCustomerList = this.allCustomerList.filter(
v => v.CustomerName.toLowerCase().indexOf(needle) > -1
);
}
});
}
} }
} };
};
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style> </style>
<style scoped> <style scoped>
/deep/.el-input__inner, /deep/.el-input__inner,
/deep/.el-range-input { /deep/.el-range-input {
background-color: transparent; background-color: transparent;
border: none; border: none;
} }
</style> </style>
\ No newline at end of file
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<div class="page-content"> <div class="page-content">
<stulist :dataList="data" @success="refreshPage" ref="stuList"> <stulist :dataList="data" @success="refreshPage" :loading="loading" ref="stuList">
</stulist> </stulist>
<div class="row" style="justify-content: flex-end;padding: 5px 20px"> <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" <q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
......
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