Commit 0c52e5cb authored by zhengke's avatar zhengke

1

parents 926bc6b1 d728e52a
...@@ -8,39 +8,44 @@ ...@@ -8,39 +8,44 @@
export default { export default {
name: "App", name: "App",
mounted() { mounted() {
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|wOSBrowser|BrowserNG|WebOS)/i))) { if (
navigator.userAgent.match(
//alert("shouji"); /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|wOSBrowser|BrowserNG|WebOS)/i
)
) {
//alert("shouji");
} else { } else {
//alert("diannao"); //alert("diannao");
document.write('<link href="http://edu.oytour.com/font.css" rel="stylesheet" type="text/css" media="screen" />'); document.write(
'<link href="http://edu.oytour.com/font.css" rel="stylesheet" type="text/css" media="screen" />'
);
} }
}, }
}; };
</script> </script>
<style> <style>
@import url("//at.alicdn.com/t/font_2077629_w1o8daso6r9.css"); @import url("//at.alicdn.com/t/font_2077629_w1o8daso6r9.css");
@font-face{ @font-face {
font-family: 'din'; font-family: "din";
src: url('./assets/font/DIN-Bold.otf') format('opentype'); src: url("./assets/font/DIN-Bold.otf") format("opentype");
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
.border-radius{ .border-radius {
border-radius: 5px; border-radius: 5px;
} }
.din{ .din {
font-family: din !important; font-family: din !important;
} }
.q-scrollarea__thumb { .q-scrollarea__thumb {
z-index: 999999 !important; z-index: 999999 !important;
} }
body{ body {
min-width:1360px !important; min-width: 1360px !important;
} }
header{ header {
min-width:1360px ; min-width: 1360px;
} }
html, html,
body, body,
...@@ -309,8 +314,11 @@ button.bg-accent:active { ...@@ -309,8 +314,11 @@ button.bg-accent:active {
background: #ecf1ff !important; background: #ecf1ff !important;
color: var(--q-color-primary) !important; color: var(--q-color-primary) !important;
} }
.big-dialog .q-dialog__inner--minimized > div{ .big-dialog .q-dialog__inner--minimized > div {
max-width: unset !important; max-width: unset !important;
} }
.f12 {
font-size: 12px;
}
/***************************************************** End 重写ElementUI 抽屉效果 ***************************************************************/ /***************************************************** End 重写ElementUI 抽屉效果 ***************************************************************/
</style> </style>
import request from '../../utils/request'
export function GetGMView(data) {
return request({
url: '/DataService/GetGMView',
method: 'post',
data
})
}
export function UpdateGMView(data) {
return request({
url: '/DataService/UpdateGMView',
method: 'post',
data
})
}
...@@ -220,9 +220,6 @@ ...@@ -220,9 +220,6 @@
import classconflictForm from '../../components/course/classconflict-form'; import classconflictForm from '../../components/course/classconflict-form';
export default { export default {
meta: {
title: "班级列表"
},
props: { props: {
data: { data: {
type: Array, type: Array,
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table sticky-right-column-table" <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table sticky-right-column-table"
separator="none" :data="data" :columns="columns" row-key="QuestionId" :selection="editStatus?'multiple':'none'" separator="none" :data="data" :columns="columns" row-key="QuestionId" :selection="editStatus?'multiple':'none'"
:selected.sync="selectedQuestion"> :selected.sync="selectedQuestion">
<template v-slot:top="props"> <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="editStatus"> <div class="page-option" v-if="editStatus">
...@@ -149,9 +149,7 @@ ...@@ -149,9 +149,7 @@
default: true default: true
} }
}, },
meta: {
title: "问题列表"
},
components: { components: {
questionForm, questionForm,
questionUpload questionUpload
......
...@@ -172,7 +172,6 @@ export default { ...@@ -172,7 +172,6 @@ export default {
}; };
GetCustomer(msg).then(res => { GetCustomer(msg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
console.log(res,'res');
let tempData = res.Data; let tempData = res.Data;
this.detailData.CustomerId = tempData.CustomerId; this.detailData.CustomerId = tempData.CustomerId;
this.detailData.ApproveState = tempData.ApproveState; this.detailData.ApproveState = tempData.ApproveState;
......
...@@ -106,9 +106,6 @@ ...@@ -106,9 +106,6 @@
} from '../../api/scheduling/schedu' } from '../../api/scheduling/schedu'
import reserveForm from '../schedul/reserve-form' import reserveForm from '../schedul/reserve-form'
export default { export default {
meta: {
title: "班级列表"
},
props: { props: {
data: { data: {
type: Array, type: Array,
......
...@@ -294,7 +294,6 @@ ...@@ -294,7 +294,6 @@
}, },
//子组件选中传值 //子组件选中传值
getchildInfo(obj) { getchildInfo(obj) {
console.log(364, obj)
if (obj) { if (obj) {
this.addMsg.ReserveType = obj.ReserveType; this.addMsg.ReserveType = obj.ReserveType;
this.addMsg.ClassPlanId = obj.ClassPlanId; this.addMsg.ClassPlanId = obj.ClassPlanId;
......
<template>
<div
class="big-dataservice-box"
style="border-color:#ffe0b2!important"
:class="{ 'hide-border': shouType == '6' }"
>
<div class="tag-title" style="background:#ffe0b2!important">行政数据</div>
<div class="row q-gutter-md">
<q-card flat>
<div class="data-title">员工</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">在职员工</div>
<div class="value">
{{ d.EmpCount }}
<span class="unit"></span>
</div>
</div>
<div>
<div class="label">兼职员工</div>
<div class="value">
{{ d.InactiveEmpCount }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">新增员工</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.NewEmpCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.NewEmpCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.NewEmpCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">离职员工</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.LeaveEmpCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.LeaveEmpCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.LeaveEmpCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">红事件</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.RedEventCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.RedEventCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.RedEventCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">黑事件</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.BlackEventCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.BlackEventCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当月</div>
<div class="value samll">
{{ d.BlackEventCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">缺勤</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.AbsenceCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.AbsenceCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.AbsenceCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">旷工</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.AbsenteeismCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.AbsenteeismCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.AbsenteeismCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">请假</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.AFLeaveCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.AFLeaveCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.AFLeaveCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
</div>
</div>
</template>
<script>
export default {
props: ["d", "formatDate", "shouType"],
data() {
return {};
},
methods: {
numberFormat(value) {
let param = {};
let k = 10000;
let sizes = ["元", "万", "亿", "万亿"];
let i;
if (value < k) {
param.value = parseFloat(value).toFixed(2);
param.unit = "元";
} else {
i = Math.floor(Math.log(value) / Math.log(k));
param.value = (value / Math.pow(k, i)).toFixed(2);
param.unit = sizes[i];
}
return param;
}
}
};
</script>
<style></style>
<template>
<div
class="big-dataservice-box"
style="border-color:#b2dfdb!important"
:class="{ 'hide-border': shouType == '4' }"
>
<div class="tag-title" style="background:#b2dfdb!important">课程动态</div>
<div class="row q-gutter-md">
<q-card flat>
<div class="data-title">课程信息</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">课程总数</div>
<div class="value">
{{ d.CourseCount }}
<span class="unit"></span>
</div>
</div>
<div>
<div class="label">在售课程</div>
<div class="value">
{{ d.SellCourseCount }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">课程排名</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper"></div>
</q-card>
<q-card flat>
<div class="data-title">排课</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.PlanCount.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.PlanCount.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.PlanCount.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">平均上座率</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ parseFloat(d.FullRate.split(",")[0]).toFixed(2) }}
<span class="unit">%</span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ parseFloat(d.FullRate.split(",")[1]).toFixed(2)
}}<span class="unit">%</span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当月</div>
<div class="value samll">
{{ parseFloat(d.FullRate.split(",")[2]).toFixed(2)
}}<span class="unit">%</span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">平均授课时长</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ parseFloat(d.AvgClassTime.split(",")[0]).toFixed(2) }}
<span class="unit">分钟</span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ numberFormat(d.AvgClassTime.split(",")[1]).value
}}<span class="unit">分钟</span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ parseFloat(d.AvgClassTime.split(",")[2]).toFixed(2)
}}<span class="unit">分钟</span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">无授课老师</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.NoneClassTeacher.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.NoneClassTeacher.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.NoneClassTeacher.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">未备课</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.UnLessonClass.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.UnLessonClass.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当月</div>
<div class="value samll">
{{ d.UnLessonClass.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">未备课老师</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.UnLessonTeacher.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.UnLessonTeacher.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当月</div>
<div class="value samll">
{{ d.UnLessonTeacher.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
</div>
</div>
</template>
<script>
export default {
props: ["d", "formatDate", "shouType"],
data() {
return {};
},
methods: {
numberFormat(value) {
let param = {};
let k = 10000;
let sizes = ["元", "万", "亿", "万亿"];
let i;
if (value < k) {
param.value = parseFloat(value).toFixed(2);
param.unit = "元";
} else {
i = Math.floor(Math.log(value) / Math.log(k));
param.value = (value / Math.pow(k, i)).toFixed(2);
param.unit = sizes[i];
}
return param;
}
}
};
</script>
<style></style>
<template>
<div
class="big-dataservice-box"
style="border-color:#bbdefb!important;"
:class="{ 'hide-border': shouType == '1' }"
>
<div class="tag-title" style="background:#bbdefb!important">客户动态</div>
<div class="row q-gutter-md">
<q-card flat>
<div class="data-title">客户线索</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Stu.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Stu.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当月</div>
<div class="value samll">
{{ d.Stu.split(",")[2] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">总数</div>
<div class="value samll">
{{ d.Stu.split(",")[3] }}
<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">到访客户</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Visit.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Visit.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.Visit.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">试听客户</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Reserve.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Reserve.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.Reserve.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">跟进客户</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Follow.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Follow.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.Follow.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">无效客户</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Invalid.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Invalid.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当月</div>
<div class="value samll">
{{ d.Invalid.split(",")[2] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">总数</div>
<div class="value samll">
{{ d.Invalid.split(",")[3] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">未跟进学员</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">截止到当日未跟进</div>
<div class="value">
{{ d.UnFollow }}
<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">有效通话</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.MakeCall.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.MakeCall.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.MakeCall.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">无效通话</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.InvalidCall.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.InvalidCall.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.InvalidCall.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">新增同业</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Company.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Company.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.Company.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
<q-card flat>
<div class="data-title">新增同业联系人</div>
<div class="data-time">{{ formatDate.date }} {{ formatDate.week }}</div>
<div class="wrapper">
<div class="col">
<div class="label">当日</div>
<div class="value">
{{ d.Contacts.split(",")[0] }}
<span class="unit"></span>
</div>
</div>
<div class="q-mr-lg">
<div class="label big">当周</div>
<div class="value samll">
{{ d.Contacts.split(",")[1] }}<span class="unit"></span>
</div>
</div>
<div>
<div class="label big">当月</div>
<div class="value samll">
{{ d.Contacts.split(",")[2] }}<span class="unit"></span>
</div>
</div>
</div>
</q-card>
</div>
</div>
</template>
<script>
export default {
props: ["d", "formatDate", "shouType"],
data() {
return {};
},
methods: {
numberFormat(value) {
let param = {};
let k = 10000;
let sizes = ["元", "万", "亿", "万亿"];
let i;
if (value < k) {
param.value = parseFloat(value).toFixed(2);
param.unit = "元";
} else {
i = Math.floor(Math.log(value) / Math.log(k));
param.value = (value / Math.pow(k, i)).toFixed(2);
param.unit = sizes[i];
}
return param;
}
}
};
</script>
<style></style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -121,32 +121,52 @@ ...@@ -121,32 +121,52 @@
</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 work_Top"> <!-- <div class="row work_Top">
<div class="text-h6 col"></div> <div class="text-h6 col"></div>
<q-btn-group outline>
<q-btn </div> -->
dense <q-btn-group
v-if="(IsQueryAuth||CurrentUserInfo.IsMarket==1)||(IsQueryAuth||CurrentUserInfo.IsCourseConsultant==1)" outline
:outline="viewMode != 1" style="position: fixed;top: 75px;right:20px;z-index: 666666;"
@click="changeViewModel(1)" >
class="q-px-md" <q-btn
color="primary" dense
size="12px" v-if="IsHaveGMView"
label="今日数据统计" :outline="viewMode != 1"
/> @click="changeViewModel(1)"
<q-btn class="q-px-md"
dense color="primary"
:outline="viewMode != 2" size="12px"
@click="changeViewModel(2)" label="总经理视图"
class="q-px-md" />
color="primary" <q-btn
size="12px" dense
label="数据统计" v-if="
/> IsQueryAuth ||
</q-btn-group> CurrentUserInfo.IsMarket == 1 ||
</div> IsQueryAuth ||
<dasbord v-if="viewMode==2"></dasbord> CurrentUserInfo.IsCourseConsultant == 1
<todayData v-if="viewMode==1"></todayData> "
:outline="viewMode != 2"
@click="changeViewModel(2)"
class="q-px-md"
color="primary"
size="12px"
label="今日数据统计"
/>
<q-btn
dense
:outline="viewMode != 3"
@click="changeViewModel(3)"
class="q-px-md"
color="primary"
size="12px"
label="数据统计"
/>
</q-btn-group>
<dasbord v-if="viewMode == 3"></dasbord>
<todayData v-if="viewMode == 2"></todayData>
<workbench v-if="viewMode == 1"></workbench>
</div> </div>
</div> </div>
</template> </template>
...@@ -156,13 +176,15 @@ import { mapGetters } from "vuex"; ...@@ -156,13 +176,15 @@ 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 todayData from "./todayData.vue";
import { Encrypt,Decrypt} from '../../utils/encrypt' import { Encrypt, Decrypt } from "../../utils/encrypt";
import workbench from "./workbench.vue";
export default { export default {
components: { components: {
dasbord, dasbord,
todayData todayData,
workbench
}, },
data() { data() {
return { return {
...@@ -174,26 +196,40 @@ export default { ...@@ -174,26 +196,40 @@ export default {
viewMode: 2, viewMode: 2,
IsQueryAuth: false, //是否有查询市场部和课程顾问部人员权限 IsQueryAuth: false, //是否有查询市场部和课程顾问部人员权限
CurrentUserInfo: {}, //当前登录用户信息 CurrentUserInfo: {}, //当前登录用户信息
IsHaveGMView: false
}; };
}, },
created() { created() {
this.CurrentUserInfo = this.getLocalStorage(); this.CurrentUserInfo = this.getLocalStorage();
if (this.CurrentUserInfo && this.CurrentUserInfo.ActionMenuList && this.CurrentUserInfo.ActionMenuList.length > if (
0) { this.CurrentUserInfo &&
this.CurrentUserInfo.ActionMenuList.forEach((x) => { this.CurrentUserInfo.ActionMenuList &&
this.CurrentUserInfo.ActionMenuList.length > 0
) {
this.CurrentUserInfo.ActionMenuList.forEach(x => {
if (x.FunctionCode == "Query_MarketConsultant") { if (x.FunctionCode == "Query_MarketConsultant") {
this.IsQueryAuth = true; this.IsQueryAuth = true;
} }
if (x.FunctionCode == "GM_VIEW") {
this.IsHaveGMView = true;
}
}); });
} }
if((this.IsQueryAuth||this.CurrentUserInfo.IsMarket==1)||(this.IsQueryAuth||this.CurrentUserInfo.IsCourseConsultant==1)){ if (this.IsHaveGMView) {
this.viewMode=1 this.viewMode = 1;
}else{ } else if (
this.viewMode=2 this.IsQueryAuth ||
this.CurrentUserInfo.IsMarket == 1 ||
this.IsQueryAuth ||
this.CurrentUserInfo.IsCourseConsultant == 1
) {
this.viewMode = 2;
} else {
this.viewMode = 3;
} }
this.getUserList(); this.getUserList();
let str=Encrypt("2") let str = Encrypt("2");
}, },
computed: { computed: {
...mapGetters(["userInfo"]) ...mapGetters(["userInfo"])
...@@ -229,9 +265,9 @@ export default { ...@@ -229,9 +265,9 @@ export default {
</script> </script>
<style> <style>
.work_Top{ .work_Top {
padding:20px; padding: 20px;
background-color:#fff; background-color: #fff;
} }
.work-box { .work-box {
height: 100%; height: 100%;
......
<template>
<div
class="q-pa-md q-px-lg"
style="background:rgb(244,245,252) !important;margin:-14px -14px 0 0; height:calc(100% + 14px)"
>
<div
style="background:#FFF;border-radius:12px;margin-bottom:5px;"
class="q-px-md row items-center"
>
<q-tabs
v-model="showType"
indicator-color="transparent"
active-color="dark"
align="left"
class="text-grey-6 col"
>
<q-tab name="0" label="全部" />
<q-tab name="1" label="客户" />
<q-tab name="2" label="交易" />
<q-tab name="3" label="学员" />
<q-tab name="4" label="教学" />
<q-tab name="5" label="财务" />
<q-tab name="6" label="行政" />
</q-tabs>
<div
class="q-mr-xl cursor-pointer"
style="line-height:48px;position: relative;"
id="timebox"
>
<el-date-picker
v-model="formatDay.dateFull"
type="date"
:clearable="false"
value-format="yyyy/MM/dd"
:picker-options="pickerOptions"
:editable="false"
placeholder="选择日期"
@change="changeTimeData"
>
</el-date-picker>
</div>
<div v-if="!loading" class="text-right" style="line-height:32px;">
<span class="f12 text-right text-grey-5">
<span
>每10分钟更新一次 最后更新时间:
{{
today.dateFull == formatDay.dateFull
? d.FirendTime
: formatDay.time
}}</span
>
<span></span>
</span>
<q-btn
color="negative"
style="font-size:12px;"
class="q-mx-md"
size="mini"
dense
flat
v-if="today.dateFull == formatDay.dateFull"
@click="updateData"
>手动刷新</q-btn
>
</div>
<div v-else class="f12 text-right q-mr-md">
<q-spinner-ios color="primary" size="1.5em" /> 正在更新数据中...
</div>
</div>
<customer
:d="d"
:formatDate="formatDay"
:shouType="showType"
v-if="!loading && (showType == '0' || showType == '1')"
></customer>
<sell
:d="d"
:formatDate="formatDay"
:shouType="showType"
v-if="!loading && (showType == '0' || showType == '2')"
></sell>
<student
:d="d"
:formatDate="formatDay"
:shouType="showType"
v-if="!loading && (showType == '0' || showType == '3')"
></student>
<course
:d="d"
:formatDate="formatDay"
:shouType="showType"
v-if="!loading && (showType == '0' || showType == '4')"
></course>
<admin
:d="d"
:formatDate="formatDay"
:shouType="showType"
v-if="!loading && (showType == '0' || showType == '6')"
></admin>
<finance
:d="d"
:formatDate="formatDay"
:shouType="showType"
v-if="!loading && (showType == '0' || showType == '5')"
></finance>
</div>
</template>
<script>
import { GetGMView, UpdateGMView } from "../../api/dataservice/index";
import student from "./dataservice/student";
import customer from "./dataservice/customer";
import sell from "./dataservice/sell";
import admin from "./dataservice/admin";
import course from "./dataservice/course";
import finance from "./dataservice/finance";
export default {
components: { student, customer, sell, admin, course, finance },
data() {
return {
d: {},
queryDay: "",
formatDay: "",
loading: true,
showType: "0",
today: {},
pickerOptions: {
disabledDate(time) {
return (
time.getTime() > Date.now() ||
time.getTime() < Date.parse("2022-03-02")
);
}
}
};
},
created() {
this.today = this.formatWeekFn(new Date());
this.init();
},
methods: {
changeTimeData(val) {
this.queryDay = val.replaceAll("/", "-");
this.init();
},
init() {
this.loading = true;
GetGMView({ day: this.queryDay }).then(r => {
this.d = r.Data;
this.formatDay = this.formatWeekFn(this.d.Day);
this.loading = false;
});
},
updateData() {
this.loading = true;
UpdateGMView().then(r => {
this.d = r.Data;
this.formatDay = this.formatWeekFn(this.d.Day);
this.loading = false;
});
},
formatWeekFn(dateStr) {
var date = new Date(dateStr);
var year = date.getFullYear();
var month =
date.getMonth() > 9 ? date.getMonth() + 1 : `0${date.getMonth() + 1}`;
var day = date.getDate() > 10 ? date.getDate() : `0${date.getDate()}`;
var d = date.getDay();
var hour = date.getHours() > 10 ? date.getHours() : `0${date.getHours()}`;
var mint =
date.getMinutes() > 10 ? date.getMinutes() : `0${date.getMinutes()}`;
var sec =
date.getSeconds() > 10 ? date.getSeconds() : `0${date.getSeconds()}`;
var arr = ["一", "二", "三", "四", "五", "六", "日"];
var d = arr[d - 1];
return {
dateFull: `${year}/${month}/${day}`,
date: `${month}/${day}`,
week: `周${d}`,
time: `${hour}${mint}${sec}秒`
};
}
}
};
</script>
<style>
.workbench-item-value {
font-family: din;
font-size: 20px;
}
.todo-list-item {
background: rgb(244, 245, 252) !important;
}
.big-dataservice-box {
border: 4px dashed rgb(200, 230, 201);
border-radius: 10px;
position: relative;
padding: 30px 16px;
margin-bottom: 20px;
}
.big-dataservice-box.hide-border {
border: none !important;
}
.big-dataservice-box.hide-border .tag-title {
display: none;
}
.big-dataservice-box .tag-title {
position: absolute;
top: -4px;
left: -4px;
height: 30px;
line-height: 30px;
padding: 0 10px;
font-size: 14px;
background: rgb(200, 230, 201);
border-top-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.big-dataservice-box .q-card {
padding: 32px !important;
width: calc(25% - 16px);
}
.big-dataservice-box .q-card .data-title {
font-size: 17px;
}
.big-dataservice-box .q-card .data-time {
font-size: 14px;
color: rgba(0, 0, 0, 0.5);
margin-top: 3px;
}
.big-dataservice-box .q-card .wrapper {
display: flex;
height: 84px;
justify-content: space-between;
align-items: flex-end;
}
.big-dataservice-box .q-card .wrapper .label {
color: rgba(0, 0, 0, 0.3);
font-size: 12px;
margin-bottom: 4px;
}
.big-dataservice-box .q-card .wrapper .label.big {
margin-bottom: 18px;
}
.big-dataservice-box .q-card .wrapper .value {
font-family: "din";
font-size: 24px;
}
.big-dataservice-box .q-card .wrapper .value .unit {
font-size: 12px;
color: rgba(0, 0, 0, 0.3);
margin-left: 4px;
}
.big-dataservice-box .q-card .wrapper .value.samll {
font-size: 14px;
font-family: "pingfang";
}
.big-dataservice-box .q-card .wrapper .value.red {
color: #c10015;
}
.big-dataservice-box .q-card .wrapper .value.green {
color: #21ba45;
}
</style>
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<div class="page-content"> <div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table" <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" title="合同信息" :data="dataList" :columns="columns" row-key="name"> separator="none" title="合同信息" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props"> <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"></div> <div class="page-option"></div>
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
} from '../../api/users/user'; } from '../../api/users/user';
export default { export default {
meta: { meta: {
title: "合同查询", title: "报名合同查询",
}, },
components: { components: {
}, },
......
...@@ -3,20 +3,19 @@ ...@@ -3,20 +3,19 @@
<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 @input="resetSearch" clearable filled v-model="msg.CateName" label="系列名称" <q-input @input="resetSearch" clearable filled v-model="msg.CateName" label="系列名称" @clear="resetSearch"
@clear="resetSearch" maxlength="20" /> maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="resetSearch" filled v-model="msg.CourseSubject" <q-select @input="resetSearch" filled v-model="msg.CourseSubject" :options="CourseSubjectList"
:options="CourseSubjectList" option-label="SubjectName" option-value="Id" emit-value map-options label="所属科目" option-label="SubjectName" option-value="Id" emit-value map-options label="所属科目" clearable />
clearable />
</div> </div>
</div> </div>
</div> </div>
<div class="page-content"> <div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table" <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" :data="dataList" :columns="columns"> separator="none" :data="dataList" :columns="columns">
<template v-slot:top="props"> <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"> <div class="page-option">
...@@ -57,7 +56,7 @@ ...@@ -57,7 +56,7 @@
export default { export default {
meta: { meta: {
title: "课程系" title: "课程系"
}, },
components: { components: {
categoryForm, categoryForm,
...@@ -70,7 +69,7 @@ ...@@ -70,7 +69,7 @@
rowsPerPage: 10, rowsPerPage: 10,
PageCount: 1, PageCount: 1,
CateName: "", //系列名称 CateName: "", //系列名称
CourseSubject:'' //所属科目 CourseSubject: '' //所属科目
}, },
CourseSubjectList: [], //科目列表 CourseSubjectList: [], //科目列表
currentUrl: "", currentUrl: "",
...@@ -85,7 +84,7 @@ ...@@ -85,7 +84,7 @@
label: '所属科目', label: '所属科目',
field: 'CourseSubjectName', field: 'CourseSubjectName',
align: 'left' align: 'left'
},{ }, {
name: 'CateName', name: 'CateName',
label: '系列名称', label: '系列名称',
field: 'CateName', field: 'CateName',
...@@ -205,9 +204,7 @@ ...@@ -205,9 +204,7 @@
} }
} }
} }
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style>
</style> \ No newline at end of file
...@@ -25,8 +25,8 @@ ...@@ -25,8 +25,8 @@
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-tow-column-table sticky-right-column-table" separator="none" :data="data" :columns="columns" class="sticky-tow-column-table sticky-right-column-table" separator="none" :data="data" :columns="columns"
row-key="name"> row-key="name">
<template v-slot:top="props"> <template v-slot:top>
<div class="col-2 q-table__title">课程信息</div> <div class="col-2 q-table__title">课程大纲信息</div>
<q-space /> <q-space />
</template> </template>
<template v-slot:body-cell-CoverImg="props"> <template v-slot:body-cell-CoverImg="props">
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</template> </template>
<template v-slot:body-cell-PreferentialListSellCommission="props"> <template v-slot:body-cell-PreferentialListSellCommission="props">
<q-td :props="props" style="padding-right:0px;padding-left:0px"> <q-td :props="props" style="padding-right:0px;padding-left:0px">
<div v-for="x in props.value"> <div v-for="(x,index) in props.value" :key="index">
<div class="border-bottom" style="padding-left: 16px;padding-right: 16px" <div class="border-bottom" style="padding-left: 16px;padding-right: 16px"
:class="{ 'text-red': x.SaleCommissionType == 1 }" v-if="x.PriceDiscountType != 0"> :class="{ 'text-red': x.SaleCommissionType == 1 }" v-if="x.PriceDiscountType != 0">
{{ x.SaleCommissionType == 1 ? "¥" : "" {{ x.SaleCommissionType == 1 ? "¥" : ""
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
</template> </template>
<template v-slot:body-cell-PreferentialListB2BCommission="props"> <template v-slot:body-cell-PreferentialListB2BCommission="props">
<q-td :props="props" style="padding-left:0px"> <q-td :props="props" style="padding-left:0px">
<div v-for="x in props.value"> <div v-for="(x,index) in props.value" :key="index">
<div class="border-bottom" style="padding-left: 16px" :class="{ 'text-red': x.B2BCommissionType == 1 }" <div class="border-bottom" style="padding-left: 16px" :class="{ 'text-red': x.B2BCommissionType == 1 }"
v-if="x.PriceDiscountType != 0"> v-if="x.PriceDiscountType != 0">
{{ x.B2BCommissionType == 1 ? "¥" : "" {{ x.B2BCommissionType == 1 ? "¥" : ""
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
</template> </template>
<template v-slot:body-cell-EducationCommission="props"> <template v-slot:body-cell-EducationCommission="props">
<q-td :props="props" style="padding-left:0px"> <q-td :props="props" style="padding-left:0px">
<div v-for="x in props.value"> <div v-for="(x,index) in props.value" :key="index">
<div class="border-bottom" style="padding-left: 16px" :class="{ 'text-red': x.EduCommissionType == 1 }" <div class="border-bottom" style="padding-left: 16px" :class="{ 'text-red': x.EduCommissionType == 1 }"
v-if="x.PriceDiscountType != 0"> v-if="x.PriceDiscountType != 0">
{{ x.EduCommissionType == 1 ? "¥" : "" {{ x.EduCommissionType == 1 ? "¥" : ""
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
} from "vuex"; } from "vuex";
export default { export default {
meta: { meta: {
title: "课程教案" title: "课程大纲"
}, },
components: { components: {
selectTree selectTree
......
...@@ -101,11 +101,13 @@ ...@@ -101,11 +101,13 @@
.teacherLesson .TeacherNameList { .teacherLesson .TeacherNameList {
position: relative; position: relative;
color: #111111; color: #111111;
font-size:13px; font-size: 13px;
} }
.teacherLesson .TeacherNameList:last-child{
height:auto; .teacherLesson .TeacherNameList:last-child {
height: auto;
} }
.teacherLesson .cicle1 { .teacherLesson .cicle1 {
position: absolute; position: absolute;
left: -15px; left: -15px;
...@@ -158,11 +160,13 @@ ...@@ -158,11 +160,13 @@
.teacherLesson .TeacherInfo_List { .teacherLesson .TeacherInfo_List {
display: flex; display: flex;
height:60px; height: 60px;
} }
.teacher-box .TeacherInfo_List:last-child{
height:auto; .teacher-box .TeacherInfo_List:last-child {
height: auto;
} }
.TeacherInfo_List:last-child .timeright { .TeacherInfo_List:last-child .timeright {
border-left: 0 !important; border-left: 0 !important;
} }
...@@ -219,50 +223,57 @@ ...@@ -219,50 +223,57 @@
padding: 20px 20px 10px 20px; padding: 20px 20px 10px 20px;
border-radius: 20px; border-radius: 20px;
} }
.Teacher_Class{
.Teacher_Class {
width: 95%; width: 95%;
height:45px; height: 45px;
background-color: #F0F5FB; background-color: #F0F5FB;
padding:0 20px; padding: 0 20px;
color:#111111; color: #111111;
margin-bottom:30px; margin-bottom: 30px;
font-weight: bold; font-weight: bold;
display:flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.Teach_BigSpan{
font-size:18px; .Teach_BigSpan {
margin-right:20px; font-size: 18px;
margin-right: 20px;
} }
.Teach_MidSpan{
font-size:14px; .Teach_MidSpan {
font-size: 14px;
} }
.Plan-StartTime{
.Plan-StartTime {
width: 100px; width: 100px;
font-size:14px; font-size: 14px;
color:#111111; color: #111111;
font-weight:bold; font-weight: bold;
} }
.Plan_WeiBei{
color:#F44E60; .Plan_WeiBei {
font-size:12px; color: #F44E60;
font-size: 12px;
} }
.Teach_Circle{
.Teach_Circle {
color: #2961FE; color: #2961FE;
background-color: #D4DFFF; background-color: #D4DFFF;
display:inline-block; display: inline-block;
width:24px; width: 24px;
height:24px; height: 24px;
margin:0 10px 0 30px; margin: 0 10px 0 30px;
border-radius: 50%; border-radius: 50%;
text-align: center; text-align: center;
line-height: 24px; line-height: 24px;
font-size:12px; font-size: 12px;
position: relative; position: relative;
top:-2px; top: -2px;
} }
.fankuiBtn{
.fankuiBtn {
padding: 6px 20px; padding: 6px 20px;
background-color: #fff; background-color: #fff;
color: #2961FE; color: #2961FE;
...@@ -270,7 +281,7 @@ ...@@ -270,7 +281,7 @@
border-radius: 5px; border-radius: 5px;
margin-left: 20px; margin-left: 20px;
cursor: pointer; cursor: pointer;
border:1px solid #2961FE; border: 1px solid #2961FE;
} }
</style> </style>
<template> <template>
...@@ -290,7 +301,7 @@ ...@@ -290,7 +301,7 @@
</div> </div>
</div> </div>
<div class="Cal_Content col"> <div class="Cal_Content col">
<div class="Cal_Inner" v-for="(item,index) in dataNum" :class="{'checkedPlan':ckedIndex==item}" <div class="Cal_Inner" v-for="(item,index) in dataNum" :class="{'checkedPlan':ckedIndex==item}" :key="index"
@click="getItem(item)"> @click="getItem(item)">
{{item}} {{item}}
<div class="beikeStatus beike1" v-if="getLessonStatus(item)=='未备课'"> <div class="beikeStatus beike1" v-if="getLessonStatus(item)=='未备课'">
...@@ -325,22 +336,29 @@ ...@@ -325,22 +336,29 @@
</div> </div>
<div> <div>
<span v-if="item1.LessonPlanNum===0" class="Plan_WeiBei">未备课</span> <span v-if="item1.LessonPlanNum===0" class="Plan_WeiBei">未备课</span>
<span v-if="item1.LessonPlanNum>0" @click="goyibeike(item1)" style="color:#2961FE;font-size:12px;margin-right:20px;cursor:pointer;">已备课</span> <span v-if="item1.LessonPlanNum>0" @click="goyibeike(item1)"
style="color:#2961FE;font-size:12px;margin-right:20px;cursor:pointer;">已备课</span>
<!-- <span class="beikeBtn" v-if="item1.LessonPlanNum>0" style="backgroundColor:#3FC4FF;margin-right:20px;" <!-- <span class="beikeBtn" v-if="item1.LessonPlanNum>0" style="backgroundColor:#3FC4FF;margin-right:20px;"
@click="goyibeike(item1)">已备课</span> --> @click="goyibeike(item1)">已备课</span> -->
<span class="beikeBtn" style="margin:0 20px 0 0" v-if="AccountType&&item1.LessonPlanNum>0" @click="goBeike(item1)">修改</span> <span class="beikeBtn" style="margin:0 20px 0 0" v-if="AccountType&&item1.LessonPlanNum>0"
@click="goBeike(item1)">修改</span>
<span class="beikeBtn" v-if="AccountType&&item1.LessonPlanNum===0" @click="goBeike(item1)">备课</span> <span class="beikeBtn" v-if="AccountType&&item1.LessonPlanNum===0" @click="goBeike(item1)">备课</span>
<span style="color:#3FC4FF;font-size:12px;cursor:pointer" v-if="item1.LessonPlanSummaryNum>0&&item1.LessonPlanNum>0" @click="goyibeike(item1)">已反馈</span> <span style="color:#3FC4FF;font-size:12px;cursor:pointer"
<span style="color:#FFA800;font-size:12px;" v-if="item1.LessonPlanSummaryNum==0&&item1.LessonPlanNum>0">未反馈</span> v-if="item1.LessonPlanSummaryNum>0&&item1.LessonPlanNum>0" @click="goyibeike(item1)">已反馈</span>
<span class="fankuiBtn" v-if="AccountType&&item1.LessonPlanSummaryNum==0&&item1.LessonPlanNum>0" @click="goyibeike(item1)">反馈</span> <span style="color:#FFA800;font-size:12px;"
<span style="color:#3FC4FF;font-size:12px;margin-left:20px;cursor:pointer" v-if="item1.ParentFanKuiStatus>0&&item1.LessonPlanNum>0" @click="goyibeike(item1)">主管已反馈</span> v-if="item1.LessonPlanSummaryNum==0&&item1.LessonPlanNum>0">未反馈</span>
<span style="color:#FFA800;font-size:12px;margin-left:20px;" v-if="item1.ParentFanKuiStatus==0&&item1.LessonPlanNum>0">主管未反馈</span> <span class="fankuiBtn" v-if="AccountType&&item1.LessonPlanSummaryNum==0&&item1.LessonPlanNum>0"
@click="goyibeike(item1)">反馈</span>
<span style="color:#3FC4FF;font-size:12px;margin-left:20px;cursor:pointer"
v-if="item1.ParentFanKuiStatus>0&&item1.LessonPlanNum>0" @click="goyibeike(item1)">主管已反馈</span>
<span style="color:#FFA800;font-size:12px;margin-left:20px;"
v-if="item1.ParentFanKuiStatus==0&&item1.LessonPlanNum>0">主管未反馈</span>
</div> </div>
</div> </div>
<div class="TeacherInfo_List" v-for="(item,index) in item1.planListTeacher"> <div class="TeacherInfo_List" v-for="(item,index) in item1.planListTeacher" :key="index">
<div class="timeleft"> <div class="timeleft">
<div class="Plan-StartTime"> <div class="Plan-StartTime">
{{item.StartTime}}-{{item.EndTime}} {{item.StartTime}}-{{item.EndTime}}
...@@ -387,7 +405,7 @@ ...@@ -387,7 +405,7 @@
} from '../../api/course/class'; } from '../../api/course/class';
export default { export default {
meta: { meta: {
title: "课程" title: "备课管理"
}, },
props: {}, props: {},
data() { data() {
...@@ -527,18 +545,18 @@ ...@@ -527,18 +545,18 @@
// }); // });
this.OpenNewUrl("/course/lessonPreparation", { this.OpenNewUrl("/course/lessonPreparation", {
ClassId: item.ClassId, ClassId: item.ClassId,
School_Id:item.School_Id, School_Id: item.School_Id,
ClassPlanId:item.ClassPlanId, ClassPlanId: item.ClassPlanId,
Ranks:item.Ranks Ranks: item.Ranks
}); });
}, },
goyibeike(item) { goyibeike(item) {
this.OpenNewUrl("/course/prepareclassDetails", { this.OpenNewUrl("/course/prepareclassDetails", {
ClassId: item.ClassId, ClassId: item.ClassId,
ClassPlanId:item.ClassPlanId, ClassPlanId: item.ClassPlanId,
LessonPlanNum:item.LessonPlanNum, LessonPlanNum: item.LessonPlanNum,
LessonPlanSummaryNum:item.LessonPlanSummaryNum, LessonPlanSummaryNum: item.LessonPlanSummaryNum,
TeacherId:item.TeacherId TeacherId: item.TeacherId
}); });
// var tempStr = '/course/prepareclassDetails?ClassId=' + item.ClassId + '&ClassPlanId=' + item.ClassPlanId + // var tempStr = '/course/prepareclassDetails?ClassId=' + item.ClassId + '&ClassPlanId=' + item.ClassPlanId +
...@@ -549,9 +567,7 @@ ...@@ -549,9 +567,7 @@
} }
} }
} }
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style>
</style> \ No newline at end of file
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
</div> </div>
<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 @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ActivityName" <q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ActivityName"
label="活动名称" @clear="resetSearch" maxlength="20" /> label="活动名称" @clear="resetSearch" maxlength="20" />
...@@ -20,35 +19,34 @@ ...@@ -20,35 +19,34 @@
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="EmployeeName" <q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="EmployeeName"
v-model="msg.EduUserId" use-input clearable @filter="filterFn" :options="EmployeeList" emit-value map-options label="业务员"> v-model="msg.EduUserId" use-input clearable @filter="filterFn" :options="EmployeeList" emit-value
<template v-slot:no-option> map-options label="业务员">
<template v-slot:no-option>
<q-item> <q-item>
<q-item-section class="text-grey"> <q-item-section class="text-grey">
未找到相关数据 未找到相关数据
</q-item-section> </q-item-section>
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="Name" <q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.EnrollState" :options="EnrollStateOpt" emit-value map-options label="报名状态" /> v-model="msg.EnrollState" :options="EnrollStateOpt" emit-value map-options label="报名状态" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-field filled> <q-field filled>
 <template v-slot:control> <template v-slot:control>
<el-date-picker v-model="dateList" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;" <el-date-picker v-model="dateList" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
 range-separator="至"  start-placeholder="报名开始时间"  end-placeholder="报名结束时间">  range-separator="至"  start-placeholder="报名开始时间"  end-placeholder="报名结束时间" />
 </el-date-picker>       
</template> </template>
</q-field> </q-field>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-field filled> <q-field filled>
 <template v-slot:control> <template v-slot:control>
<el-date-picker v-model="dateList2" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;" <el-date-picker v-model="dateList2" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
 range-separator="至"  start-placeholder="活动开始时间"  end-placeholder="活动结束时间">  range-separator="至"  start-placeholder="活动开始时间"  end-placeholder="活动结束时间" />
 </el-date-picker>       
</template> </template>
</q-field> </q-field>
</div> </div>
...@@ -75,14 +73,6 @@ ...@@ -75,14 +73,6 @@
<span class="stics-name">取消人数</span> <span class="stics-name">取消人数</span>
<span>{{data.Statistics.CancelNum}}人</span> <span>{{data.Statistics.CancelNum}}人</span>
</div> </div>
<!-- <div class="col stics">
<span class="stics-name">提成金额</span>
<span>{{data.Statistics.CommissionMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">额外奖励</span>
<span>{{data.Statistics.ExtraRewardMoney}}</span>
</div> -->
</div> </div>
<div class="row col" style="justify-content: flex-end"> <div class="row col" style="justify-content: flex-end">
<div class="row tis"> <div class="row tis">
...@@ -103,7 +93,7 @@ ...@@ -103,7 +93,7 @@
</div> </div>
</div> </div>
<div class="page-content"> <div class="page-content">
<activeOrder :dataList="data.List" :authObj="authObj" @success="refreshClassOrder" :modityOrderType="1" <activeOrder :dataList="data.List" :authObj="authObj" @success="refreshClassOrder" :modityOrderType="1"
ref="orderL" :loading="loading"> ref="orderL" :loading="loading">
</activeOrder> </activeOrder>
<div class="row" style="justify-content: flex-end;padding: 5px 20px"> <div class="row" style="justify-content: flex-end;padding: 5px 20px">
...@@ -112,21 +102,18 @@ ...@@ -112,21 +102,18 @@
</q-pagination> </q-pagination>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { import {
queryEmployee queryEmployee
} from '../../api/users/user' //获取业务员列表 } from '../../api/users/user' //获取业务员列表
// import myOrderForm from '../../components/sale/myOrder-form'
import activeOrder from '../../components/sale/activeOrder-item' import activeOrder from '../../components/sale/activeOrder-item'
export default { export default {
meta: { meta: {
title: "我的活动订单" title: "活动报名统计"
}, },
components: { components: {
// myOrderForm,
activeOrder activeOrder
}, },
data() { data() {
...@@ -148,7 +135,6 @@ ...@@ -148,7 +135,6 @@
EndTime: "", //活动结束时间 EndTime: "", //活动结束时间
EnrollState: 3, //报名状态 EnrollState: 3, //报名状态
LinkMan: "", //联系人 LinkMan: "", //联系人
}, },
EnrollStateOpt: [ //报名状态列表 EnrollStateOpt: [ //报名状态列表
{ {
...@@ -169,8 +155,6 @@ ...@@ -169,8 +155,6 @@
//订单状态 //订单状态
OrderStateList: [], OrderStateList: [],
pageCount: 1, pageCount: 1,
showone: false, showone: false,
//权限判断 //权限判断
authObj: { authObj: {
...@@ -188,15 +172,12 @@ ...@@ -188,15 +172,12 @@
this.msg.OrderId = this.$route.query.OrderId; this.msg.OrderId = this.$route.query.OrderId;
this.msg.Id = this.$route.query.OrderId; this.msg.Id = this.$route.query.OrderId;
} }
this.getEmployee(0); this.getEmployee(0);
this.getList(); this.getList();
}, },
mounted() { mounted() {},
},
methods: { methods: {
//筛选员工 //筛选员工
filterFn(val, update) { filterFn(val, update) {
update(() => { update(() => {
if (val === '') { if (val === '') {
...@@ -223,11 +204,8 @@ ...@@ -223,11 +204,8 @@
this.EmployeeList.unshift(obj) this.EmployeeList.unshift(obj)
this.AllemployeeList = JSON.parse(JSON.stringify(this.EmployeeList)); this.AllemployeeList = JSON.parse(JSON.stringify(this.EmployeeList));
} }
}).catch(() => { }).catch(() => {})
})
}, },
//翻页 //翻页
changePage(val) { changePage(val) {
if (this.showone == true) { if (this.showone == true) {
...@@ -268,8 +246,8 @@ ...@@ -268,8 +246,8 @@
this.apipostDS("/api/Education/GetConsultOrderStatisticsPage", msg, (res) => { this.apipostDS("/api/Education/GetConsultOrderStatisticsPage", msg, (res) => {
this.loading = false this.loading = false
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.data = res.data.data.pageData; this.data = res.data.data.pageData;
this.pageCount = res.data.data.pageCount; this.pageCount = res.data.data.pageCount;
} }
}) })
}, },
...@@ -279,7 +257,6 @@ ...@@ -279,7 +257,6 @@
}, },
} }
} }
</script> </script>
<style> <style>
li { li {
...@@ -338,5 +315,4 @@ ...@@ -338,5 +315,4 @@
font-weight: 600; font-weight: 600;
margin-right: 20px margin-right: 20px
} }
</style>
</style> \ No newline at end of file
This diff is collapsed.
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
import customcategorylist from "../../components/sale/customcategorylist" import customcategorylist from "../../components/sale/customcategorylist"
export default { export default {
meta: { meta: {
title: "同行管理" title: "我的同业"
}, },
components: { components: {
b2bcustomlist, b2bcustomlist,
......
This diff is collapsed.
...@@ -102,6 +102,9 @@ ...@@ -102,6 +102,9 @@
components: { components: {
customerInfo customerInfo
}, },
meta: {
title: "市场部细分渠道"
},
data() { data() {
return { return {
msg: { msg: {
......
This diff is collapsed.
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
import courserefundForm from "../../components/course/courserefund-form" import courserefundForm from "../../components/course/courserefund-form"
export default { export default {
meta: { meta: {
title: "退课协议管理", title: "语培退学合同",
}, },
components: { components: {
courserefundForm courserefundForm
......
...@@ -136,7 +136,6 @@ ...@@ -136,7 +136,6 @@
<!-- <q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="创建报价单" @click="createQuotation" /> --> <!-- <q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="创建报价单" @click="createQuotation" /> -->
</div> </div>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="props"> <q-tr :props="props">
<q-td auto-width> <q-td auto-width>
...@@ -305,10 +304,9 @@ ...@@ -305,10 +304,9 @@
} from "../../api/course/index"; } from "../../api/course/index";
import quotationForm from '../../components/sale/quotation-form' import quotationForm from '../../components/sale/quotation-form'
import { mapState } from "vuex"; import { mapState } from "vuex";
export default { export default {
meta: { meta: {
title: "课程预览" title: "课程报价表"
}, },
components: { components: {
quotationForm quotationForm
...@@ -383,7 +381,6 @@ ...@@ -383,7 +381,6 @@
field: row => row.PreferentialList field: row => row.PreferentialList
}, },
// 12月15号新增参数 // 12月15号新增参数
{ {
name: "B2CRatio", name: "B2CRatio",
label: "直客优惠比例", label: "直客优惠比例",
...@@ -583,5 +580,4 @@ ...@@ -583,5 +580,4 @@
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style>
</style> \ No newline at end of file
This diff is collapsed.
<style> <style>
.Sysuser_Date .el-input__inner { .Sysuser_Date .el-input__inner {
background: transparent !important; background: transparent !important;
border: 0 !important; border: 0 !important;
} }
</style> </style>
<template> <template>
<div> <div>
...@@ -10,19 +10,21 @@ ...@@ -10,19 +10,21 @@
<div class="col-3 Sysuser_Date q-mr-lg"> <div class="col-3 Sysuser_Date q-mr-lg">
<q-field filled dense> <q-field filled dense>
<template v-slot:control> <template v-slot:control>
<el-date-picker v-model="msg.YearStr" @change="getList" style="width:100%" value-format="yyyy" size="small" type="year" placeholder="选择年"> <el-date-picker v-model="msg.YearStr" @change="getList" style="width:100%" value-format="yyyy" size="small"
type="year" placeholder="选择年">
</el-date-picker> </el-date-picker>
</template> </template>
</q-field> </q-field>
</div> </div>
<div> <div>
<q-btn color="accent" class="q-mr-md" size="sm" icon="download" style="margin-top:15px;display:none;" <q-btn color="accent" class="q-mr-md" size="sm" icon="download" style="margin-top:15px;" label="下载"
label="下载" /> @click="downloadStudentMarketMonth" />
</div> </div>
</div> </div>
<div class="page-content"> <div class="page-content">
<q-table :pagination="msg" ref="table" :loading="loading" :style="{'height':tableHeight+'px'}" no-data-label="暂无相关数据" flat <q-table :pagination="msg" ref="table" :loading="loading" :style="{'height':tableHeight+'px'}"
class="sticky-column-table sticky-header-column-table no-bottom-table" separator="none" :data="dataList" :columns="columns" row-key=""> no-data-label="暂无相关数据" flat class="sticky-column-table sticky-header-column-table no-bottom-table"
separator="none" :data="dataList" :columns="columns" row-key="">
<template v-slot:bottom> <template v-slot:bottom>
</template> </template>
</q-table> </q-table>
...@@ -33,11 +35,13 @@ ...@@ -33,11 +35,13 @@
import { import {
GetStudentMarketMonth GetStudentMarketMonth
} from '../../api/sale/sale'; } from '../../api/sale/sale';
import {
EduDownLoad
} from "../../api/common/common";
export default { export default {
props: {}, props: {},
meta: { meta: {
title: "月度统计" title: "市场部月度数据统计"
}, },
components: {}, components: {},
data() { data() {
...@@ -201,8 +205,8 @@ ...@@ -201,8 +205,8 @@
], ],
dataList: [], dataList: [],
loading: false, loading: false,
myDate:'', myDate: '',
tableHeight:500, tableHeight: 500,
msg: { msg: {
YearStr: '', YearStr: '',
rowsPerPage: 0 rowsPerPage: 0
...@@ -220,11 +224,22 @@ ...@@ -220,11 +224,22 @@
this.getList(); this.getList();
}, },
methods: { methods: {
downloadStudentMarketMonth() {
this.loading = true;
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad(
"/StudentStat/DownLoadStudentMarketMonth",
msg,
"市场部每月数据统计.xls", res => {
this.loading = false;
}
);
},
//获取数据 //获取数据
getList() { getList() {
this.loading=true; this.loading = true;
GetStudentMarketMonth(this.msg).then(res => { GetStudentMarketMonth(this.msg).then(res => {
this.loading=false; this.loading = false;
if (res.Code == 1) { if (res.Code == 1) {
this.dataList = res.Data; this.dataList = res.Data;
} }
...@@ -232,8 +247,7 @@ ...@@ -232,8 +247,7 @@
} }
} }
} }
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style> </style>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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