Commit 7f9b08e3 authored by 罗超's avatar 罗超
parents 0b354fb5 eda9db8d
import request from '../../utils/request'
/**
* 获取班次列表
* @param {JSON参数} data
*/
export function getScrollShiftList(data) {
return request({
url: '/Scroll/GetScrollShiftList',
method: 'post',
data
})
}
/**
* 新增修改班次
* @param {JSON参数} data
*/
export function setScrollShiftInfo(data) {
return request({
url: '/Scroll/SetScrollShiftInfo',
method: 'post',
data
})
}
/**
* 新增修改班次
* @param {JSON参数} data
*/
export function delScrollShiftInfo(data) {
return request({
url: '/Scroll/DelScrollShiftInfo',
method: 'post',
data
})
}
/**
* 获取排班计划
* @param {JSON参数} data
*/
export function getScrollPlanMonthList(data) {
return request({
url: '/Scroll/GetScrollPlanMonthList',
method: 'post',
data
})
}
/**
* 新增排班计划
* @param {JSON参数} data
*/
export function setScrollPlanInfo(data) {
return request({
url: '/Scroll/SetScrollPlanInfo',
method: 'post',
data
})
}
/**
* 获取上课时段列表
* @param {JSON参数} data
*/
export function getScrollCourseTimeList(data) {
return request({
url: '/Scroll/GetScrollCourseTimeList',
method: 'post',
data
})
}
/**
* 新增修改上课时段
* @param {JSON参数} data
*/
export function setScrollCourseTimeInfo(data) {
return request({
url: '/Scroll/SetScrollCourseTimeInfo',
method: 'post',
data
})
}
/**
* 删除上课时段
* @param {JSON参数} data
*/
export function delScrollCourseTimeInfo(data) {
return request({
url: '/Scroll/DelScrollCourseTimeInfo',
method: 'post',
data
})
}
\ No newline at end of file
...@@ -644,4 +644,59 @@ export function RemoveNeeds(data) { ...@@ -644,4 +644,59 @@ export function RemoveNeeds(data) {
method: 'post', method: 'post',
data data
}); });
}
/**
* 获取目标分页列表
*/
export function GetConsultantGoalPage(data) {
return request({
url: '/UserCenter/GetConsultantGoalPage',
method: 'post',
data
});
}
/**
* 批量添加目标
*/
export function AddConsultantGoal(data) {
return request({
url: '/UserCenter/AddConsultantGoal',
method: 'post',
data
});
}
/**
* 删除目标
*/
export function RemoveConsultantGoal(data) {
return request({
url: '/UserCenter/RemoveConsultantGoal',
method: 'post',
data
});
}
/**
* 修改目标
*/
export function UpdateConsultantGoal(data) {
return request({
url: '/UserCenter/UpdateConsultantGoal',
method: 'post',
data
});
}
/**
* 获取目标详情
*/
export function GetConsultantGoal(data) {
return request({
url: '/UserCenter/GetConsultantGoal',
method: 'post',
data
});
} }
\ No newline at end of file
...@@ -28,4 +28,28 @@ export function GetCenterCommissionStatistics(data) { ...@@ -28,4 +28,28 @@ export function GetCenterCommissionStatistics(data) {
method: 'post', method: 'post',
data data
}) })
} }
\ No newline at end of file
/**
* 首页 今日数据图标数据
*/
export function MarketStatic(data) {
return request({
url: '/UserCenter/MarketStatic',
method: 'post',
data
})
}
/**
* 首页 课程顾问部统计
*/
export function ConsultantStatic(data) {
return request({
url: '/UserCenter/ConsultantStatic',
method: 'post',
data
})
}
...@@ -105,6 +105,8 @@ ...@@ -105,6 +105,8 @@
import { import {
GetEducationReceiptPage, GetEducationReceiptPage,
} from "../../api/teacher/index"; } from "../../api/teacher/index";
import { Encrypt } from '../../utils/encrypt'
import html2canvas from "html2canvas"; import html2canvas from "html2canvas";
export default { export default {
...@@ -305,7 +307,8 @@ ...@@ -305,7 +307,8 @@
tipLoadding.show({ tipLoadding.show({
message: '正在生成图片,请稍后...' message: '正在生成图片,请稍后...'
}) })
var domain = "https://edu.kookaku.com/#/courseRefundH5?Id=" + item.Id; let str=Encrypt(item.Id.toString())
var domain = "https://edu.kookaku.com/#/courseRefundH5?a=" + encodeURIComponent(str);
let msg = { let msg = {
url: domain, url: domain,
width: 430 width: 430
......
This diff is collapsed.
...@@ -36,8 +36,8 @@ ...@@ -36,8 +36,8 @@
</template> </template>
<template v-slot:body-cell-ClassName="props"> <template v-slot:body-cell-ClassName="props">
<q-td :props="props" class="text-negative"> <q-td :props="props" class="text-negative">
<q-select dense standout behavior="menu" filled v-model="props.row.ClassId" ref="class" <q-select dense standout behavior="menu" filled v-model="props.row.ClassId" ref="class" use-input
:options="classList" option-label="ClassName" option-value="ClassId" emit-value map-options :options="classList" option-label="allName" option-value="ClassId" emit-value map-options @filter="classfilter"
:rules="[val => !!val || '请选择班级']" @input ='filterCourseFn($event,props.rowIndex)'/> :rules="[val => !!val || '请选择班级']" @input ='filterCourseFn($event,props.rowIndex)'/>
</q-td> </q-td>
</template> </template>
...@@ -376,6 +376,7 @@ import { ...@@ -376,6 +376,7 @@ import {
courseList: [], //课程列表 courseList: [], //课程列表
schoolList:[], schoolList:[],
classList:[], classList:[],
allclassList:[],
dataList_class:[ dataList_class:[
{ {
SchoolName:"", SchoolName:"",
...@@ -528,14 +529,30 @@ import { ...@@ -528,14 +529,30 @@ import {
if (!tempArray) { if (!tempArray) {
tempArray = []; tempArray = [];
} }
tempArray.forEach(x=>{
x.allName = x.ClassName+'('+x.ClassNo+')'
})
tempArray.unshift({ tempArray.unshift({
ClassId: 0, ClassId: 0,
ClassName: "不限" ClassName: "不限",
}) allName:'不限'
})
this.classList = tempArray; this.classList = tempArray;
this.allclassList = JSON.parse(JSON.stringify(tempArray))
} }
}) })
}, },
classfilter(val, update) {//课程的栓选
update(() => {
if (val === '') {
this.classList = this.allclassList
}
else {
const needle = val.toLowerCase();
this.classList = this.allclassList.filter(v => v.allName.toLowerCase().indexOf(needle) > -1);
}
})
},
filterSchoolFn(val,index) { filterSchoolFn(val,index) {
let school=this.schoolList.filter(item=>{ let school=this.schoolList.filter(item=>{
return item.SId==val return item.SId==val
...@@ -634,6 +651,7 @@ import { ...@@ -634,6 +651,7 @@ import {
delhaocai(index){ delhaocai(index){
this.dataList.splice(index, 1); this.dataList.splice(index, 1);
}, },
//翻页 //翻页
changePage(val) { changePage(val) {
this.haochaimsg.pageIndex = val; this.haochaimsg.pageIndex = val;
......
...@@ -658,7 +658,6 @@ export default { ...@@ -658,7 +658,6 @@ export default {
this.changeBillMsg.Id = this.setingObj.Id; this.changeBillMsg.Id = this.setingObj.Id;
this.changeBillMsg.SpecialNode = this.setingObj.SpecialNode; this.changeBillMsg.SpecialNode = this.setingObj.SpecialNode;
this.changeBillMsg.RemunerationState = this.setingObj.DataObj.RemunerationState; this.changeBillMsg.RemunerationState = this.setingObj.DataObj.RemunerationState;
console.log(this.setingObj)
}, },
methods: { methods: {
closeBackInfo() { closeBackInfo() {
......
...@@ -425,7 +425,6 @@ export default { ...@@ -425,7 +425,6 @@ export default {
}); });
}, },
assistBatchHandler() { assistBatchHandler() {
console.log(this.pushing || this.baseObj.IsHaveCurseManager);
if (this.pushing || this.baseObj.IsHaveCurseManager) return; if (this.pushing || this.baseObj.IsHaveCurseManager) return;
this.pushing = true; this.pushing = true;
let parameter = { let parameter = {
......
...@@ -129,6 +129,14 @@ ...@@ -129,6 +129,14 @@
/> />
</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>
......
...@@ -503,9 +503,11 @@ export default { ...@@ -503,9 +503,11 @@ export default {
//计算课程单价和应收金额 //计算课程单价和应收金额
calcPrice() { calcPrice() {
var guestNum = 0; var guestNum = 0;
if (this.OrderMsg.GuestNum && this.OrderMsg.GuestNum > 0) { if (this.OrderMsg.GuestNum && this.OrderMsg.GuestNum > 0) {
guestNum = Number(this.OrderMsg.GuestNum); guestNum = Number(this.OrderMsg.GuestNum);
} }
let temp = this.CourseList.find( let temp = this.CourseList.find(
x => x.CourseId == this.OrderMsg.CourseId x => x.CourseId == this.OrderMsg.CourseId
); );
...@@ -618,12 +620,12 @@ export default { ...@@ -618,12 +620,12 @@ export default {
if (e.IsRenewGuest == 0) { if (e.IsRenewGuest == 0) {
this.OrderMsg.DiscountMoney = this.accAdd( this.OrderMsg.DiscountMoney = this.accAdd(
this.OrderMsg.DiscountMoney, this.OrderMsg.DiscountMoney,
this.accMul(this.OrderMsg.Class_Price, this.OrderMsg.B2CRatio) this.accMul(this.OrderMsg.Class_Price, this.OrderMsg.B2CRatio/100)
); );
} else { } else {
this.OrderMsg.DiscountMoney = this.accAdd( this.OrderMsg.DiscountMoney = this.accAdd(
this.OrderMsg.DiscountMoney, this.OrderMsg.DiscountMoney,
this.accMul(this.OrderMsg.Class_Price, this.OrderMsg.B2CReNewRatio) this.accMul(this.OrderMsg.Class_Price, this.OrderMsg.B2CReNewRatio/100)
); );
} }
}); });
...@@ -671,16 +673,10 @@ export default { ...@@ -671,16 +673,10 @@ export default {
this.OrderMsg.CourseId = ""; this.OrderMsg.CourseId = "";
} }
if (this.saveObj.B2CRatio) { if (this.saveObj.B2CRatio) {
this.OrderMsg.B2CRatio = this.OrderMsg.B2CRatio = this.saveObj.B2CRatio
this.saveObj.B2CRatio > 0
? this.saveObj.B2CRatio / 100
: this.saveObj.B2CRatio;
} }
if (this.saveObj.B2CReNewRatio) { if (this.saveObj.B2CReNewRatio) {
this.OrderMsg.B2CReNewRatio = this.OrderMsg.B2CReNewRatio = this.saveObj.B2CReNewRatio
this.saveObj.B2CReNewRatio > 0
? this.saveObj.B2CReNewRatio / 100
: this.saveObj.B2CReNewRatio;
} }
} }
this.IsShowEditOrder = true; this.IsShowEditOrder = true;
...@@ -726,7 +722,7 @@ export default { ...@@ -726,7 +722,7 @@ export default {
getEmployee(n) { getEmployee(n) {
var qMsg = { var qMsg = {
IsLeave: 1, IsLeave: 1,
UserRole: 2 UserRole: n
}; };
queryEmployee(qMsg).then(res => { queryEmployee(qMsg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
......
<style scoped>
/deep/.el-input__inner,
/deep/.el-range-input {
background-color: transparent;
border: none;
}
</style>
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 400px;max-width:400px;">
<q-card-section>
<div class="text-h6">{{optionTitle}}</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<template v-if="isShow==1">
<div class="row wrap">
<div class="col-12">
<q-field filled dense>
<template v-slot:control>
<el-date-picker v-model="value" style="width:100%" type="month" :clearable="false" @change="dateChange"
value-format="yyyy-MM" placeholder="选择月">
</el-date-picker>
</template>
</q-field>
<div style="margin-top:10px;">
<el-tag v-for="(tag, index) in objOption.TimeList" size="small" style="margin:0 5px 5px 0;" :key="tag"
@close="params => tagClose(index)" closable type="success">
{{tag}}
</el-tag>
</div>
</div>
</div>
<div class="row wrap" style="margin-top:20px;">
<div class="col-12">
<q-input filled stack-label maxlength="20" :dense="false" @keyup.native="checkPrice(objOption,'GoalMoney')" v-model="objOption.GoalMoney" ref="GoalMoney2"
label="目标金额" :rules="[val => !!val || '请填写目标金额']" />
</div>
</div>
<div class="row wrap" style="margin-top:10px;">
<div class="col-12">
<q-select filled stack-label v-model="objOption.Dept_Id" :options="DeptList" use-input @filter="filterDepart" emit-value map-options
label="所属部门" option-label="DeptName" option-value="DeptId" />
</div>
</div>
</template>
<template v-if="isShow==2">
<div class="row wrap">
<div class="col-12">
<q-field filled dense>
<template v-slot:control>
<el-date-picker v-model="value2" style="width:100%" type="month" value-format="yyyy-MM" placeholder="选择月">
</el-date-picker>
</template>
</q-field>
</div>
</div>
<div class="row wrap" style="margin-top:30px;">
<div class="col-12">
<q-input filled stack-label maxlength="20" :dense="false" v-model="updateMsg.GoalMoney" ref="GoalMoney2"
label="目标金额" :rules="[val => !!val || '请填写目标金额']" />
</div>
</div>
<div class="row wrap" style="margin-top:10px;">
<div class="col-12">
<q-select filled stack-label v-model="updateMsg.Dept_Id" :options="DeptList" use-input @filter="filterDepart" emit-value map-options
label="所属部门" option-label="DeptName" option-value="DeptId" />
</div>
</div>
</template>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" v-if="isShow==1"
:loading="saveLoading" @click="saveNeed" />
<q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" v-if="isShow==2"
:loading="saveLoading" @click="saveTarget" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
AddConsultantGoal,
UpdateConsultantGoal,
GetConsultantGoal
} from '../../api/system/index'
//部门
import {
getDeptList
} from '../../api/system/dept'
import selectTree from '../../components/common/select-tree'
export default {
props: {
saveObj: {
type: Object,
default: null
}
},
components: {
selectTree
},
data() {
return {
persistent: true,
saveLoading: false,
value: '',
objOption: {
GoalMoney: "",
Dept_Id: 13,
TimeList: [],
},
updateMsg: {
Id: 0,
YearStr: '',
MonthStr: '',
GoalMoney: '',
Dept_Id: ''
},
optionTitle: "",
DeptList: [], // 部门下拉
isShow: 1,
value2: '',
allDeptList:[]
}
},
created() {
this.queryDeptList();
},
mounted() {
this.initObj();
},
methods: {
//筛选部门
filterDepart(val, update, abort) {
update(() => {
this.DeptList = this.allDeptList.filter(
v => v.DeptName.indexOf(val) > -1
);
});
},
queryDeptList() {
var qMsg = {};
getDeptList(qMsg).then(res => {
this.DeptList = res.Data;
this.allDeptList = res.Data;
});
},
//选择月份
dateChange(val) {
this.objOption.TimeList.push(val) // 这里记得格式化
},
tagClose(index) {
this.objOption.TimeList.splice(index, 1);
},
//初始化表单
initObj() {
if (this.saveObj && this.saveObj.Id > 0) {
GetConsultantGoal({
Id: this.saveObj.Id
}).then(res => {
this.updateMsg.Id = res.Data.Id;
this.updateMsg.YearStr = res.Data.YearStr;
this.updateMsg.MonthStr = res.Data.MonthStr;
this.updateMsg.GoalMoney = res.Data.GoalMoney;
this.updateMsg.Dept_Id = res.Data.Dept_Id;
this.isShow = 2;
this.value2 = this.updateMsg.YearStr + '-' + this.updateMsg.MonthStr;
})
this.optionTitle = "修改目标"
} else {
this.optionTitle = "新增目标"
this.objOption.GoalMoney = '';
this.objOption.Dept_Id = '';
this.objOption.TimeList = [];
this.isShow = 1
}
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
},
//新增保存菜单
saveNeed() {
this.saveLoading = true
AddConsultantGoal(this.objOption).then(res => {
this.saveLoading = false;
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success")
this.closeSaveForm()
}
})
},
//修改保存
saveTarget() {
if (this.value2) {
let myDate = this.value2.split('-');
this.updateMsg.YearStr = myDate[0];
this.updateMsg.MonthStr = myDate[1];
} else {
this.updateMsg.YearStr = '';
this.updateMsg.MonthStr = '';
}
this.saveLoading = true;
UpdateConsultantGoal(this.updateMsg).then(res => {
this.saveLoading = false;
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success")
this.closeSaveForm()
}
})
}
}
}
</script>
\ No newline at end of file
...@@ -341,14 +341,14 @@ ...@@ -341,14 +341,14 @@
.list { .list {
height: 40px; height: 40px;
margin-bottom: 15px; margin-bottom: 15px;
padding: 0 1.8vw; padding: 0 2vw;
background-color: #F2F4F7; background-color: #F2F4F7;
border-radius: 6px; border-radius: 6px;
.name { .name {
font-size: 14px; font-size: 14px;
color: #111111; color: #111111;
margin-right: 2.86vw; margin-right: 3vw;
white-space: nowrap; white-space: nowrap;
} }
...@@ -357,6 +357,7 @@ ...@@ -357,6 +357,7 @@
font-size: 14px; font-size: 14px;
color: #A4A5B7; color: #A4A5B7;
border-radius: 6px; border-radius: 6px;
margin-right:1vw;
.cur { .cur {
font-size: 18px; font-size: 18px;
...@@ -366,15 +367,17 @@ ...@@ -366,15 +367,17 @@
} }
.progress-charts { .progress-charts {
width: 7.81vw; width: 8vw;
font-size: 12px; font-size: 12px;
color: #666666; color: #666666;
margin-right:1vw;
} }
.grade { .grade {
width: 3.64vw; width: 4vw;
font-size: 14px; font-size: 14px;
color: #999999; color: #999999;
margin-right:1vw;
} }
.num { .num {
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
</div> </div>
</div> </div>
<div class="q-pr-md"> <div class="q-pr-md">
<VueApexCharts width="105" height="105" :options="chartOptions4" :series="series4"></VueApexCharts> <VueApexCharts width="100%" height="105" :options="chartOptions4" :series="series4"></VueApexCharts>
</div> </div>
</div> </div>
<div class="block-name q-px-md"> <div class="block-name q-px-md">
...@@ -173,6 +173,10 @@ ...@@ -173,6 +173,10 @@
fixed: { fixed: {
enabled: false enabled: false
} }
},
legend: {
position: 'right',
show: true,
} }
}, },
commissionData: { commissionData: {
...@@ -396,7 +400,7 @@ ...@@ -396,7 +400,7 @@
} }
.progress-box { .progress-box {
width: 31.25vw; width: 39vw;
height: 20px; height: 20px;
margin: 10px auto; margin: 10px auto;
border-radius: 2px; border-radius: 2px;
...@@ -410,7 +414,7 @@ ...@@ -410,7 +414,7 @@
} }
.commission-block2 { .commission-block2 {
width: 31.25vw; width: 35vw;
height: 250px; height: 250px;
margin: 50px auto 25px; margin: 50px auto 25px;
border-radius: 8px; border-radius: 8px;
...@@ -418,7 +422,7 @@ ...@@ -418,7 +422,7 @@
padding: 40px 30px; padding: 40px 30px;
.statistic-block { .statistic-block {
width: 7.8vw; width: 9vw;
height: 75px; height: 75px;
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 6px; border-radius: 6px;
...@@ -449,7 +453,7 @@ ...@@ -449,7 +453,7 @@
} }
.commission-table { .commission-table {
width: 31.25vw; width: 39vw;
height: 375px; height: 375px;
margin: 0 auto; margin: 0 auto;
border-top: 1px solid #EAEBF0; border-top: 1px solid #EAEBF0;
......
<template> <template>
<div> <div>
<div class="q-my-md text-dark" style="font-size:20px"> <div class="q-ma-md text-dark" style="font-size:20px">
客户关系 客户关系
</div> </div>
<div class="row q-gutter-md no-wrap work-con"> <div class="row q-gutter-md q-px-md no-wrap work-con">
<div > <div >
<div class="item-shadow return-commission"> <div class="item-shadow return-commission">
<div class="q-pa-md row no-wrap items-center">
<div class="q-px-md q-pt-md row no-wrap items-center">
<div class="col return-commission-title"> <div class="col return-commission-title">
返佣 返佣
</div> </div>
...@@ -332,13 +331,14 @@ import { ...@@ -332,13 +331,14 @@ import {
<style lang="scss" scoped> <style lang="scss" scoped>
.work-con { .work-con {
height: calc(100vh - 230px); height: calc(100vh - 250px);
overflow: scroll; overflow: scroll;
box-sizing: border-box; box-sizing: border-box;
} }
.return-commission { .return-commission {
// width: 330px; // width: 330px;
min-width:200px;
height: 440px; height: 440px;
border-radius: 8px; border-radius: 8px;
background-color: #FA9D0A; background-color: #FA9D0A;
...@@ -370,6 +370,7 @@ import { ...@@ -370,6 +370,7 @@ import {
padding-top: 2vw; padding-top: 2vw;
.Statistics-block { .Statistics-block {
min-width:100px;
width: 50%; width: 50%;
height: 2.6vw; height: 2.6vw;
padding-left: 1.3vw; padding-left: 1.3vw;
...@@ -400,6 +401,7 @@ import { ...@@ -400,6 +401,7 @@ import {
.adviser { .adviser {
// width: 17.18vw; // width: 17.18vw;
min-width:200px;
height: 520px; height: 520px;
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 8px; border-radius: 8px;
...@@ -415,12 +417,15 @@ import { ...@@ -415,12 +417,15 @@ import {
} }
.adviser-block { .adviser-block {
width: 14.3vw; width: 16vw;
height: 5.72vw; min-width:160px;
height: 6vw;
min-height:80px;
background-color: #F8F5FF; background-color: #F8F5FF;
border-radius: 0.31vw; border-radius: 0.31vw;
margin: 0 auto 1vw; margin: 0 auto 1vw;
padding: 0 1vw; padding: 0 1vw;
.left { .left {
.num { .num {
......
<template> <template>
<div class="work-box row"> <div class="work-box row">
<div class="lft-box"> <div class="lft-box" style="display:none">
<div class="relative-position"> <div class="relative-position">
<q-input <q-input
standout standout
...@@ -121,17 +121,18 @@ ...@@ -121,17 +121,18 @@
</q-list> </q-list>
</div> </div>
<div class="col q-pt-md q-pr-md"> <div class="col q-pt-md q-pr-md">
<div class="row"> <div class="row work_Top">
<div class="text-h6 col">工作台</div> <div class="text-h6 col"></div>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
dense dense
v-if="(IsQueryAuth||CurrentUserInfo.IsMarket==1)||(IsQueryAuth||CurrentUserInfo.IsCourseConsultant==1)"
:outline="viewMode != 1" :outline="viewMode != 1"
@click="changeViewModel(1)" @click="changeViewModel(1)"
class="q-px-md" class="q-px-md"
color="primary" color="primary"
size="12px" size="12px"
label="今日工作" label="今日数据统计"
/> />
<q-btn <q-btn
dense dense
...@@ -144,7 +145,8 @@ ...@@ -144,7 +145,8 @@
/> />
</q-btn-group> </q-btn-group>
</div> </div>
<dasbord></dasbord> <dasbord v-if="viewMode==2"></dasbord>
<todayData v-if="viewMode==1"></todayData>
</div> </div>
</div> </div>
</template> </template>
...@@ -154,10 +156,14 @@ import { mapGetters } from "vuex"; ...@@ -154,10 +156,14 @@ import { mapGetters } from "vuex";
import { queryOKRMyEmployeeList } from "../../api/okr/work"; import { queryOKRMyEmployeeList } from "../../api/okr/work";
import { queryEmployee } from "../../api/users/user"; import { queryEmployee } from "../../api/users/user";
import dasbord from "./dasbord.vue"; import dasbord from "./dasbord.vue";
import todayData from "./todayData.vue"
import { Encrypt,Decrypt} from '../../utils/encrypt' import { Encrypt,Decrypt} from '../../utils/encrypt'
export default { export default {
components: { dasbord }, components: {
dasbord,
todayData
},
data() { data() {
return { return {
usersList: [], usersList: [],
...@@ -165,10 +171,22 @@ export default { ...@@ -165,10 +171,22 @@ export default {
searchText: "", searchText: "",
menuList: [], menuList: [],
activeMenu: "myokr", activeMenu: "myokr",
viewMode: 1 viewMode: 2,
IsQueryAuth: false, //是否有查询市场部和课程顾问部人员权限
CurrentUserInfo: {}, //当前登录用户信息
}; };
}, },
created() { created() {
this.CurrentUserInfo = this.getLocalStorage();
if (this.CurrentUserInfo && this.CurrentUserInfo.ActionMenuList && this.CurrentUserInfo.ActionMenuList.length >
0) {
this.CurrentUserInfo.ActionMenuList.forEach((x) => {
if (x.FunctionCode == "Query_MarketConsultant") {
this.IsQueryAuth = true;
}
});
}
this.getUserList(); this.getUserList();
let str=Encrypt("2") let str=Encrypt("2")
}, },
...@@ -206,6 +224,10 @@ export default { ...@@ -206,6 +224,10 @@ export default {
</script> </script>
<style> <style>
.work_Top{
padding:20px;
background-color:#fff;
}
.work-box { .work-box {
height: 100%; height: 100%;
width: 100%; width: 100%;
......
...@@ -289,7 +289,7 @@ ...@@ -289,7 +289,7 @@
} }
.bottom { .bottom {
width: 31.25vw; width: 34vw;
height: 320px; height: 320px;
position: absolute; position: absolute;
top: 160px; top: 160px;
...@@ -298,7 +298,7 @@ ...@@ -298,7 +298,7 @@
padding: 0 1vw; padding: 0 1vw;
.sell-block { .sell-block {
width: 9vw; width: 9.5vw;
height: 145px; height: 145px;
background-color: #F8F5FF; background-color: #F8F5FF;
border-radius: 6px; border-radius: 6px;
......
This diff is collapsed.
...@@ -120,6 +120,7 @@ ...@@ -120,6 +120,7 @@
if (this.$route.query.a) { if (this.$route.query.a) {
let ContractId = Decrypt(decodeURIComponent(this.$route.query.a)); let ContractId = Decrypt(decodeURIComponent(this.$route.query.a));
this.msg.ContractId = ContractId; this.msg.ContractId = ContractId;
this.BackMsg.Id = ContractId;
} }
if (this.$route.query.StudentName) { if (this.$route.query.StudentName) {
this.StudentName = this.$route.query.StudentName this.StudentName = this.$route.query.StudentName
...@@ -127,9 +128,6 @@ ...@@ -127,9 +128,6 @@
if (this.$route.query.Money) { if (this.$route.query.Money) {
this.Money = this.$route.query.Money; this.Money = this.$route.query.Money;
} }
if (this.$route.query.Id) {
this.BackMsg.Id = this.$route.query.Id;
}
if (this.$route.query.Type) { if (this.$route.query.Type) {
this.Type = this.$route.query.Type; this.Type = this.$route.query.Type;
} }
...@@ -317,7 +315,7 @@ ...@@ -317,7 +315,7 @@
this.$router.push({ this.$router.push({
path: '/courseRefundH5', path: '/courseRefundH5',
query: { query: {
Id: this.BackMsg.Id a: encodeURIComponent(Encrypt(this.BackMsg.Id.toString()))
} }
}); });
} }
......
This diff is collapsed.
...@@ -228,6 +228,16 @@ ...@@ -228,6 +228,16 @@
<q-item-label>课程详情</q-item-label> <q-item-label>课程详情</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<!-- <q-item clickable v-close-popup @click="goMyroster(props.row,1)">
<q-item-section>
<q-item-label>学员名单</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="goMyroster(props.row,2)">
<q-item-section>
<q-item-label>学员订单</q-item-label>
</q-item-section>
</q-item> -->
</q-list> </q-list>
</q-btn-dropdown> </q-btn-dropdown>
</q-td> </q-td>
...@@ -298,7 +308,20 @@ ...@@ -298,7 +308,20 @@
align: "left", align: "left",
field: (row) => row.CateName, field: (row) => row.CateName,
}, },
// {
// name: "SellPrice",
// required: true,
// label: "学员数量",
// align: "left",
// field: (row) => row.SellPrice.toFixed(2),
// },
// {
// name: "SellPrice",
// required: true,
// label: "订单数量",
// align: "left",
// field: (row) => row.SellPrice.toFixed(2),
// },
{ {
name: "SellPrice", name: "SellPrice",
required: true, required: true,
...@@ -661,6 +684,9 @@ ...@@ -661,6 +684,9 @@
}); });
}); });
}, },
goMyroster(row,type){//type 1 是学员名单 2 学员订单
}
}, },
}; };
......
This diff is collapsed.
...@@ -312,6 +312,7 @@ ...@@ -312,6 +312,7 @@
import { import {
GetBackClassProtocol GetBackClassProtocol
} from '../api/sale/contract' } from '../api/sale/contract'
import { Encrypt,Decrypt} from '../utils/encrypt'
export default { export default {
data() { data() {
...@@ -326,8 +327,9 @@ ...@@ -326,8 +327,9 @@
}; };
}, },
created() { created() {
if (this.$route.query.Id) { if (this.$route.query.a) {
this.gmsg.Id = this.$route.query.Id; let ContractId = Decrypt(decodeURIComponent(this.$route.query.a));
this.gmsg.Id = ContractId
} }
this.getList(); this.getList();
}, },
...@@ -362,7 +364,7 @@ ...@@ -362,7 +364,7 @@
this.$router.push({ this.$router.push({
path: '/contractSign', path: '/contractSign',
query: { query: {
Id: this.gmsg.Id, a: encodeURIComponent(Encrypt(this.gmsg.Id.toString())),
Type: 2 Type: 2
} }
}); });
......
...@@ -1422,7 +1422,6 @@ ...@@ -1422,7 +1422,6 @@
this.closeLayer() this.closeLayer()
}, },
getItemValue(obj, index) { getItemValue(obj, index) {
console.log(obj)
this.SpecialNode = obj.SpecialNode this.SpecialNode = obj.SpecialNode
this.addBtn = false; this.addBtn = false;
this.updateItemIndex = index; this.updateItemIndex = index;
......
...@@ -813,10 +813,10 @@ ...@@ -813,10 +813,10 @@
</div> </div>
<!-- <button class="normalBtn" v-if="GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0" <!-- <button class="normalBtn" v-if="GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0"
@click="AddFinancial(1)">{{$t('fnc.zancun')}}</button> --> @click="AddFinancial(1)">{{$t('fnc.zancun')}}</button> -->
<q-btn color="primary" size="11px" :label="$t('fnc.zancun')" @click="AddFinancial(1)" style="marginRight:10px" v-if="!iscopy && (GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0)"/> <q-btn color="primary" size="11px" :label="$t('fnc.zancun')" @click="AddFinancial(1)" style="marginRight:10px" v-if="iscopy==false && (GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0)"/>
<!-- <button class="normalBtn" @click="AddFinancial()">{{$t('fnc.tijiao')}}</button> --> <!-- <button class="normalBtn" @click="AddFinancial()">{{$t('fnc.tijiao')}}</button> -->
<q-btn color="primary" size="11px" v-if="!iscopy" :label="$t('fnc.tijiao')" @click="AddFinancial()" style="marginRight:10px"/> <q-btn color="primary" size="11px" v-if="iscopy==false" :label="$t('fnc.tijiao')" @click="AddFinancial()" style="marginRight:10px"/>
<q-btn color="primary" size="11px" v-if="iscopy" label="复制" @click="AddFinancial()" style="marginRight:10px"/> <q-btn color="primary" size="11px" v-if="iscopy==true" label="复制" @click="AddFinancial()" style="marginRight:10px"/>
<!-- <button class="hollowFixedBtn" @click="AuditOrRefund()">{{$t('pub.returnBack')}}</button> --> <!-- <button class="hollowFixedBtn" @click="AuditOrRefund()">{{$t('pub.returnBack')}}</button> -->
<q-btn text-color="primary" size="11px" :label="$t('pub.returnBack')" @click="AuditOrRefund()"/> <q-btn text-color="primary" size="11px" :label="$t('pub.returnBack')" @click="AuditOrRefund()"/>
</div> </div>
...@@ -1323,7 +1323,7 @@ ...@@ -1323,7 +1323,7 @@
this.msg.ReTCID = this.czmsg.ReTCID; this.msg.ReTCID = this.czmsg.ReTCID;
} }
this.msg.GuestId=this.$route.query.GuestId; this.msg.GuestId=this.$route.query.GuestId;
if(this.iscopy){//如果是复制赋值为0 if(this.iscopy == true){//如果是复制赋值为0
this.msg.FrID = 0; this.msg.FrID = 0;
if(this.msg.vorcherInos.length>0){//如果是复制的话 收据ID 为0 if(this.msg.vorcherInos.length>0){//如果是复制的话 收据ID 为0
this.msg.vorcherInos.forEach(x=>{ this.msg.vorcherInos.forEach(x=>{
...@@ -1700,7 +1700,7 @@ ...@@ -1700,7 +1700,7 @@
.RB_Branch_Id; .RB_Branch_Id;
} }
let userInfo = this.getLocalStorage() let userInfo = this.getLocalStorage()
if(!this.$route.query.companyID&&userInfo.Group_Id==100000 && !this.iscopy){ if(!this.$route.query.companyID&&userInfo.Group_Id==100000 && this.iscopy == false){
this.msg.RB_Branch_Id = 4 this.msg.RB_Branch_Id = 4
} }
if(this.orderObj ){//6.21号新加 校区的id if(this.orderObj ){//6.21号新加 校区的id
......
...@@ -650,10 +650,10 @@ ...@@ -650,10 +650,10 @@
<div class="btn-box"> <div class="btn-box">
<!-- <button class="normalBtn" v-if="GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0" <!-- <button class="normalBtn" v-if="GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0"
@click="AddFinancial(1)">{{$t('fnc.zancun')}}</button> --> @click="AddFinancial(1)">{{$t('fnc.zancun')}}</button> -->
<q-btn color="primary" size="11px" :label="$t('fnc.zancun')" @click="AddFinancial(1)" style="marginRight:10px" v-if="!iscopy && (GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0)"/> <q-btn color="primary" size="11px" :label="$t('fnc.zancun')" @click="AddFinancial(1)" style="marginRight:10px" v-if="iscopy==false && (GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0)"/>
<!-- <button class="normalBtn" @click="AddFinancial()">{{$t('fnc.tijiao')}}</button> --> <!-- <button class="normalBtn" @click="AddFinancial()">{{$t('fnc.tijiao')}}</button> -->
<q-btn color="primary" size="11px" v-if="!iscopy" :label="$t('fnc.tijiao')" @click="AddFinancial()" style="marginRight:10px"/> <q-btn color="primary" size="11px" v-if="iscopy==false" :label="$t('fnc.tijiao')" @click="AddFinancial()" style="marginRight:10px"/>
<q-btn color="primary" size="11px" v-if="iscopy" label="复制" @click="AddFinancial()" style="marginRight:10px"/> <q-btn color="primary" size="11px" v-if="iscopy==true" label="复制" @click="AddFinancial()" style="marginRight:10px"/>
<!-- <button class="hollowFixedBtn" @click="AuditOrRefund()">返回</button> --> <!-- <button class="hollowFixedBtn" @click="AuditOrRefund()">返回</button> -->
<q-btn text-color="primary" size="11px" label="返回" @click="AuditOrRefund()"/> <q-btn text-color="primary" size="11px" label="返回" @click="AuditOrRefund()"/>
</div> </div>
...@@ -1350,7 +1350,7 @@ ...@@ -1350,7 +1350,7 @@
this.msg.PlatformAccountId = this.platformAccount; this.msg.PlatformAccountId = this.platformAccount;
this.loading = true; this.loading = true;
this.msg.GuestId=this.$route.query.GuestId this.msg.GuestId=this.$route.query.GuestId
if(this.iscopy){//如果是复制赋值为0 if(this.iscopy == true){//如果是复制赋值为0
this.msg.FrID = 0; this.msg.FrID = 0;
if(this.msg.vorcherInos.length>0){//如果是复制的话 收据ID 为0 if(this.msg.vorcherInos.length>0){//如果是复制的话 收据ID 为0
this.msg.vorcherInos.forEach(x=>{ this.msg.vorcherInos.forEach(x=>{
...@@ -1649,7 +1649,7 @@ ...@@ -1649,7 +1649,7 @@
this.msg.RB_Branch_Id = this.msg.RB_Branch_Id == 0 || this.msg.RB_Branch_Id == ParentCompanyId ? this this.msg.RB_Branch_Id = this.msg.RB_Branch_Id == 0 || this.msg.RB_Branch_Id == ParentCompanyId ? this
.getLocalStorage().School_Id : this.msg.RB_Branch_Id; .getLocalStorage().School_Id : this.msg.RB_Branch_Id;
if(!this.$route.query.companyID&&userInfo.Group_Id==100000 && !this.iscopy){ if(!this.$route.query.companyID&&userInfo.Group_Id==100000 && this.iscopy == false){
this.msg.RB_Branch_Id = 4 this.msg.RB_Branch_Id = 4
} }
......
...@@ -78,14 +78,7 @@ ...@@ -78,14 +78,7 @@
</div> </div>
</div> </div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;"> <div class="page-search row items-center" v-if="morequery">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
<div class="page-search row items-center" v-if="morequery">
<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-select @input="resetSearch" dense filled v-model="msg.StuStage" :options="customState" option-label="Name" <q-select @input="resetSearch" dense filled v-model="msg.StuStage" :options="customState" option-label="Name"
...@@ -116,6 +109,20 @@ ...@@ -116,6 +109,20 @@
</div> </div>
</div> </div>
</div> </div>
<div style="width: 100%;padding: 0 10px;margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between;">
<div style="font-weight: bold;">
总人数:{{Count}}人
</div>
<div>
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
</div>
<div class="page-content"> <div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table sticky-right-column-table " class="sticky-column-table sticky-right-column-table "
...@@ -255,6 +262,7 @@ export default { ...@@ -255,6 +262,7 @@ export default {
RoleListData: [], //课程顾问下拉数据 RoleListData: [], //课程顾问下拉数据
StuChannelList: [], //收客渠道 StuChannelList: [], //收客渠道
allStuChannelList: [], //所有收客渠道 allStuChannelList: [], //所有收客渠道
Count:0,
columns: [{ columns: [{
name: "StuName", name: "StuName",
label: "学生", label: "学生",
...@@ -448,6 +456,7 @@ export default { ...@@ -448,6 +456,7 @@ export default {
this.loading = false; this.loading = false;
this.dataList = res.Data.PageData; this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount; this.PageCount = res.Data.PageCount;
this.Count = res.Data.Count
}) })
......
...@@ -76,13 +76,7 @@ ...@@ -76,13 +76,7 @@
</div> </div>
</div> </div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
<div class="page-search row items-center" v-if="morequery"> <div class="page-search row items-center" v-if="morequery">
<div class="col row wrap q-mr-lg q-col-gutter-md"> <div class="col row wrap q-mr-lg q-col-gutter-md">
...@@ -170,20 +164,16 @@ ...@@ -170,20 +164,16 @@
(<q-radio size="xs" v-model="msg.Q_FType" val="1" label="范围内有跟进记录" @input ='resetSearch'/> (<q-radio size="xs" v-model="msg.Q_FType" val="1" label="范围内有跟进记录" @input ='resetSearch'/>
<q-radio size="xs" v-model="msg.Q_FType" val="2" label="范围内没有跟进记录" @input ='resetSearch' /> <q-radio size="xs" v-model="msg.Q_FType" val="2" label="范围内没有跟进记录" @input ='resetSearch' />
<!-- <q-option-group
v-model="msg.Q_FType"
inline
class="q-mb-md"
@input="resetSearch"
:options="[
{ label: '范围内有跟进记录', value: '1' },
{ label: '范围内没有跟进记录', value: '2' },
]"
/> -->
</div> </div>
</div> </div>
</div> </div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
<div class="col row wrap q-gutter-x-md" v-if="dataList.Stat"> <div class="col row wrap q-gutter-x-md" v-if="dataList.Stat">
<div class="col stics"> <div class="col stics">
...@@ -282,7 +272,7 @@ ...@@ -282,7 +272,7 @@
<span>{{ item.CreateTypeName?item.CreateTypeName:'-' }}</span> <span>{{ item.CreateTypeName?item.CreateTypeName:'-' }}</span>
</td> </td>
<td> <td>
<span>{{ item.StuSourceIdName?item.StuSourceIdName:'-' }}</span> <span><span v-if="item.CreateType==2 && item.EnterpriseName">{{item.EnterpriseName}}:</span> {{ item.StuSourceIdName?item.StuSourceIdName:'-' }}</span>
</td> </td>
<td> <td>
<span>{{ item.StuChannelName?item.StuChannelName:'-' }}</span> <span>{{ item.StuChannelName?item.StuChannelName:'-' }}</span>
......
...@@ -304,6 +304,15 @@ ...@@ -304,6 +304,15 @@
</div> </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-ClassName="props"> <template v-slot:body-cell-ClassName="props">
<q-td :props="props"> <q-td :props="props">
<div style="color: #f00; cursor: pointer" @click="seeClassDetail(props.row)"> <div style="color: #f00; cursor: pointer" @click="seeClassDetail(props.row)">
...@@ -545,6 +554,12 @@ ...@@ -545,6 +554,12 @@
label: "收客渠道", label: "收客渠道",
field: "StuChannelName", field: "StuChannelName",
align: "left", align: "left",
},
{
name: "StuCreateByName",
label: "负责人",
align: "left",
field: "StuCreateByName"
}, },
{ {
name: "Mobile", name: "Mobile",
...@@ -685,12 +700,7 @@ ...@@ -685,12 +700,7 @@
field: "JoinTypeStr", field: "JoinTypeStr",
align: "left", align: "left",
}, },
{
name: "StuCreateByName",
label: "负责人",
align: "left",
field: "StuCreateByName"
},
{ {
name: "optioned", name: "optioned",
label: "操作", label: "操作",
......
...@@ -82,7 +82,6 @@ export default { ...@@ -82,7 +82,6 @@ export default {
this.outerVisible = false; this.outerVisible = false;
}, },
getsuccess2(list, type) { getsuccess2(list, type) {
console.log(list);
this.chosenUser = list; this.chosenUser = list;
this.outerVisible = false; this.outerVisible = false;
}, },
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<q-tab :ripple="false" :name="4" label="收客渠道" /> <q-tab :ripple="false" :name="4" label="收客渠道" />
<q-tab :ripple="false" :name="5" label="客户需求"></q-tab> <q-tab :ripple="false" :name="5" label="客户需求"></q-tab>
<q-tab :ripple="false" :name="6" label="客户分配规则"></q-tab> <q-tab :ripple="false" :name="6" label="客户分配规则"></q-tab>
<q-tab :ripple="false" :name="7" label="目标管理"></q-tab>
</q-tabs> </q-tabs>
<stage v-if="tabCheck == 1"></stage> <stage v-if="tabCheck == 1"></stage>
<cusType v-if="tabCheck == 2"></cusType> <cusType v-if="tabCheck == 2"></cusType>
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
<channel v-if="tabCheck == 4"></channel> <channel v-if="tabCheck == 4"></channel>
<customneed v-if="tabCheck == 5"></customneed> <customneed v-if="tabCheck == 5"></customneed>
<stu-distribution-rule v-if="tabCheck == 6"></stu-distribution-rule> <stu-distribution-rule v-if="tabCheck == 6"></stu-distribution-rule>
<stuTarget v-if="tabCheck==7"></stuTarget>
</div> </div>
</template> </template>
<script> <script>
...@@ -29,6 +31,7 @@ import aim from "./studyAim"; ...@@ -29,6 +31,7 @@ import aim from "./studyAim";
import channel from "./stuReceiveChannel"; import channel from "./stuReceiveChannel";
import customneed from "./customneed"; import customneed from "./customneed";
import stuDistributionRule from "./stuDistributionRule"; import stuDistributionRule from "./stuDistributionRule";
import stuTarget from "./stuTarget";
export default { export default {
components: { components: {
stage, stage,
...@@ -36,7 +39,8 @@ export default { ...@@ -36,7 +39,8 @@ export default {
aim, aim,
channel, channel,
customneed, customneed,
stuDistributionRule stuDistributionRule,
stuTarget
}, },
data() { data() {
return { return {
......
<template>
<div class="page-body">
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top>
<div class="col-2 q-table__title">目标管理</div>
<q-space />
<div class="page-option">
<el-date-picker v-model="dateTime" size="small" style="margin-right:10px;" type="month"
value-format="yyyy-MM" @change="dateChange" placeholder="选择月">
</el-date-picker>
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="新增目标" @click="addObj(null)" />
</div>
</template>
<template v-slot:body-cell-Id="props">
<q-td :props="props">
<div>
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="addObj(props.row)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="deletTarget(props.row.Id)" />
</div>
</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>
</div>
<target-form v-if="isShowTargetForm" :save-obj="customObj" @close="closestageForm" @success="refreshPage">
</target-form>
</div>
</template>
<script>
import {
GetConsultantGoalPage,
RemoveConsultantGoal
} from '../../api/system/index'
import targetForm from '../../components/system/target-form'
export default {
meta: {
title: "目标管理"
},
components: {
targetForm
},
data() {
return {
columns: [{
name: 'DeptName',
label: '部门',
field: 'DeptName',
align: 'left'
},
{
name: 'YearStr',
label: '年份',
field: 'YearStr',
align: 'left'
},
{
name: 'MonthStr',
label: '月份',
field: 'MonthStr',
align: 'left'
},
{
name: 'GoalMoney',
label: '金额',
field: 'GoalMoney',
align: 'left'
}, {
name: 'CreateByName',
label: '创建人',
align: 'left',
field: 'CreateByName'
},
{
name: 'CreateTimeStr',
label: '创建时间',
align: 'left',
field: 'CreateTimeStr'
},
{
name: 'Id',
label: '操作',
field: 'Id'
}
],
msg: {
pageIndex: 1,
pageSize: 12,
YearStr: '',
MonthStr: '',
rowsPerPage: 12
},
dataList: [],
pageCount: 0,
loading: true,
isShowTargetForm: false,
customObj: {},
dateTime: ''
}
},
mounted() {
this.getList()
},
methods: {
//选择日期
dateChange(val) {
if (val) {
let myDate = val.split('-');
this.msg.YearStr = myDate[0];
this.msg.MonthStr = myDate[1];
} else {
this.msg.YearStr = '';
this.msg.MonthStr = '';
}
this.getList();
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
deletTarget(Id) {
let delMsg = {
Id: Id
};
this.$q.dialog({
title: '提示信息',
message: '是否确定该目标?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
RemoveConsultantGoal(delMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '删除成功!',
position: 'top'
})
this.getList();
}
})
}).onCancel(() => {
});
},
getList() {
this.loading = true;
GetConsultantGoalPage(this.msg).then(res => {
this.loading = false;
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}
})
},
closestageForm() {
this.isShowTargetForm = false
},
refreshPage() {
this.getList();
},
addObj(obj) {
if (obj) {
this.customObj = obj
} else {
this.customObj = null
}
this.isShowTargetForm = true;
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
...@@ -397,7 +397,6 @@ ...@@ -397,7 +397,6 @@
}, },
saveCourse2(){ saveCourse2(){
console.log(this.gaochouMsg)
setRemunerationState(this.gaochouMsg).then(res => { setRemunerationState(this.gaochouMsg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.$q.notify({ this.$q.notify({
......
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
}, },
data() { data() {
return { return {
ActionStr: "/UserCenter/MarketStatic", ActionStr: "/UserCenter/CreateMarketData",
parameterList: [{ parameterList: [{
Name: "", Name: "",
Value: "" Value: ""
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
data = JSON.parse(tempStr); data = JSON.parse(tempStr);
} }
data = { data = {
}; };
var tempMsg = { var tempMsg = {
Msg: data Msg: data
......
...@@ -1145,6 +1145,18 @@ const routes = [{ ...@@ -1145,6 +1145,18 @@ const routes = [{
component: () => component: () =>
import("pages/course/achievements.vue") import("pages/course/achievements.vue")
}, },
{
path: "/course/workutaTeaching", //教学中心 排课
component: () =>
import("pages/course/workutaTeaching.vue")
},
{
path: "/course/classHours", //教学中心 上课时段列表
component: () =>
import("pages/course/classHours.vue")
},
{ {
path: "/user/backbill", //退课单据 path: "/user/backbill", //退课单据
component: () => component: () =>
......
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