Commit 8e3fed1c authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/confucius into master

parents 99bb3d5f a2a7cbe9
......@@ -32,13 +32,12 @@ module.exports = function (ctx) {
// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
// 'ionicons-v4',
// 'mdi-v5',
'mdi-v5',
// 'fontawesome-v5',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font', // optional, you are not bound to it
'material-icons' // optional, you are not bound to it
],
......@@ -49,8 +48,8 @@ module.exports = function (ctx) {
env: ctx.dev ? {
//API: 'http://192.168.1.36:8300/api'
API: 'https://localhost:5001/api',
// API: 'http://192.168.20.24:8300/api',
// API: 'https://localhost:5001/api',
API: 'http://192.168.20.51:8088/api',
// API: 'http://testeduapi.oytour.com/api',
// API: 'http://192.168.20.9:8085/api',
// API: 'http://192.168.20.17:8017/api',
......@@ -158,7 +157,9 @@ module.exports = function (ctx) {
'QRadio',
'QBtnGroup'
],
// directives: [],
directives: [
'ClosePopup'
],
// Quasar plugins
plugins: [
......
......@@ -203,6 +203,78 @@ export function queryChapterTree(data) {
})
}
/**
* 保存课程章节
* @param {JSON参数} data
*/
export function saveChapter(data) {
return request({
url: "/Course/SetChapter",
method: 'post',
data
})
}
/**
* 保存课程章节
* @param {JSON参数} data
*/
export function getCourseRate(data) {
return request({
url: "/Course/GetCourseRateEnumList",
method: 'post',
data
})
}
/**
* 保存课程章节
* @param {JSON参数} data
*/
export function deleteChapters(data) {
return request({
url: "/Course/BatchRemoveChapter",
method: 'post',
data
})
}
/**
* 保存课程章节
* @param {JSON参数} data
*/
export function setChaptersRate(data) {
return request({
url: "/Course/BatchSetChapterRate",
method: 'post',
data
})
}
/**
* 批量更新章节编号和ID
* @param {JSON参数} data
*/
export function batchUpdateChapterNo(data) {
return request({
url: "/Course/SetBatchChapterNo",
method: 'post',
data
})
}
/**
* 修改章节名称
* @param {JSON参数} data
*/
export function updateChapterName(data) {
return request({
url: "/Course/SetChapterName",
method: 'post',
data
})
}
/**
* 获取课程销售端口
*/
......
......@@ -87,3 +87,27 @@ export function getEmployeeAddrBook(data)
data
})
}
/**
* 个人资料修改
*/
export function setEmployeeBaseInfo(data)
{
return request({
url: '/UserInfo/SetEmployeeBaseInfo',
method: 'post',
data
})
}
/**
* 个人资料-修改密码
*/
export function updateUserPassword(data)
{
return request({
url: '/UserInfo/UpdateUserPassword',
method: 'post',
data
})
}
......@@ -69,7 +69,8 @@
},
watch: {
value(newVal, oldVal) {
if (!this.isInputChange && newVal) {
console.log("监听到变化1",newVal,this.ue.isReady,this.isInputChange)
if (!this.isInputChange) {
if (this.ue) {
if (this.ue.isReady !== 1) {
let self = this;
......@@ -84,6 +85,7 @@
}, 100);
return;
}
console.log("监听到变化",newVal)
this.ue.setContent(newVal);
} else {
this.tempContent = newVal;
......@@ -222,6 +224,9 @@
fileType +
'" class="ans-insertaudio-module" module="_insertaudio">' + ' </iframe></p>';
},
reloadNewValue(){
this.isInputChange=false
},
loadUe() {
const _this = this;
//上传附件
......
......@@ -127,10 +127,9 @@
<q-input filled stack-label :dense="false" maxlength="8" v-model="addMsg.DefaultClassNum" label="默认班级人数"
ref="DefaultClassNum" class="q-pb-lg" @keyup.native="checkInteger(addMsg,'DefaultClassNum')"
:rules="[val => !!val || '请填写默认班级人数']" />
<q-input filled stack-label :dense="false" maxlength="8" v-model="addMsg.ClassNoPrefix" label="班级编码"
ref="ClassNoPrefix" class="q-pb-lg" @keyup.native="checkInteger(addMsg,'ClassNoPrefix')"
<q-input filled stack-label maxlength="8" v-model="addMsg.ClassNoPrefix" label="班级编码(字母)"
class="q-pb-lg" onkeyup="this.value=this.value.replace(/[^a-zA-Z]/g,'')"
/>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="persistent=false" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important" @click="saveClassType()" />
......@@ -219,6 +218,7 @@
CTypeName: '', //类型名称
AddHourFee: '', //课时费加价
DefaultClassNum: '', //默认班级人数
ClassNoPrefix:'',
},
//列表数据参数
tabeMsg: {
......
This diff is collapsed.
This diff is collapsed.
......@@ -65,10 +65,17 @@
</template>
<template v-slot:body-cell-ClassName="props">
<q-td auto-width :props="props">
<q-avatar size="md" style="background:#d4dfff;color:#2961FE;font-weight:bold;" v-if="props.row.ClassName">
{{GetFirst(props.row.ClassName)}}</q-avatar>
<span style="color:#2961FE;margin-left:10px;cursor:pointer;" @click="getClassInfo(props.row)"
title="点击查看详情">{{props.row.ClassName}}</span>
<div style="display: flex;align-items: center;">
<q-avatar size="md" style="background:#d4dfff;color:#2961FE;font-weight:bold;" v-if="props.row.ClassName">
{{GetFirst(props.row.ClassName)}}</q-avatar>
<div >
<span style="color:#2961FE;margin-left:10px;cursor:pointer;" @click="getClassInfo(props.row)"
title="点击查看详情">{{props.row.ClassName}}</span>
<div style="margin-left: 10px;">{{props.row.ClassNo}}</div>
</div>
</div>
</q-td>
</template>
<template v-slot:body-cell-OtherCourseName="props">
......
......@@ -144,9 +144,9 @@
<q-item-label>恢复</q-item-label>
</q-item-section>
</q-item>
<q-item style="display:none;" clickable v-close-popup @click="goMycourse(props.row)">
<q-item clickable v-close-popup @click="goMycourse(props.row)">
<q-item-section>
<q-item-label>详情</q-item-label>
<q-item-label>课程详情</q-item-label>
</q-item-section>
</q-item>
</q-list>
......@@ -172,6 +172,7 @@
import courseForm from "../../components/course/course-form";
import coursepriceForm from "../../components/course/courseprice-form";
import selectTree from "../../components/common/select-tree";
import { openURL } from "quasar";
import {
mapState
} from "vuex";
......@@ -452,10 +453,11 @@
},
//跳转至我的课程
goMycourse(obj) {
var tempStr = "/course/courseinfo?CourseId=" + obj.CourseId;
this.$router.push({
path: tempStr
});
var tempStr = window.location.origin +"/#/course/courseinfo?CourseId=" + obj.CourseId;
// this.$router.push({
// path: tempStr
// });
openURL(tempStr)
}
}
};
......
......@@ -76,7 +76,12 @@
<div class="full-width course-menu-box q-pt-md">
<q-list style="width:180px;overflow:hidden">
<div class="classD1">
<img style="width:100%;height:100%;" alt="" :src="courseInfo.CoverImg" />
<template v-if="courseInfo.CoverImg">
<img style="width:100%;height:100%;" alt="" :src="courseInfo.CoverImg" />
</template>
<template v-else>
<img style="width:100%;height:100%;" alt="" src="../../assets/images/default.png" />
</template>
</div>
<div class="text_Degree">{{courseInfo.CourseName}}</div>
<div class="nav-content">
......@@ -84,15 +89,15 @@
<!-- <li :class="{'checkedLi':commonIndex==1}" @click="gotoPage('question',1)">
<i class="iconfont icon-tiku"></i>题库
</li> -->
<li :class="{'checkedLi':commonIndex==2}" @click="gotoPage('teachplan',2)">
<!-- <li :class="{'checkedLi':commonIndex==2}" @click="gotoPage('teachplan',2)">
<i style="font-size:20px;" class="iconfont icon-PPT"></i>教案
</li>
</li> -->
<li :class="{'checkedLi':commonIndex==3}" @click="gotoPage('chapter',3)">
<i class="iconfont icon-icon_zhangjielianxi"></i>章节
</li>
<li :class="{'checkedLi':commonIndex==4}" @click="gotoPage('coursejob',4)">
<!-- <li :class="{'checkedLi':commonIndex==4}" @click="gotoPage('coursejob',4)">
<i class="iconfont icon-icon_zhangjielianxi"></i>作业
</li>
</li> -->
</ul>
</div>
</q-list>
......@@ -130,7 +135,7 @@
opacity: 0.5
},
CourseId: 0,
commonIndex: 2, //选中
commonIndex: 3, //选中
courseInfo: {}, //课程信息
}
},
......@@ -166,7 +171,7 @@
this.getCourseInfo();
},
mounted() {
this.gotoPage('teachplan', 2);
this.gotoPage('chapter', 3);
},
methods: {
//获取课程信息
......
......@@ -407,8 +407,8 @@
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35" class="_BranchIdS">
<el-form-item label="校区" prop="BranchIdS">
<el-select filterable v-model='addMsg.BranchIdS'>
<el-form-item label="校区" prop="BranchList">
<el-select filterable multiple v-model='addMsg.BranchList'>
<el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'
:disabled="item.disabled">
</el-option>
......@@ -609,7 +609,10 @@
required: true,
message: this.$t('rule.qxzfyleixing'),
trigger: 'change'
}, ]
}, ],
BranchList:[{
type:'array',required: true,message: '请选择校区', trigger: 'change'
}]
},
addCuren: true,
ed: false,
......@@ -657,14 +660,18 @@
methods: {
goUrlNew(item) {
let path = "CashAccDetail";
this.$router.push({
name: path,
query: {
"TypeId": item.TypeId,
// this.$router.push({
// name: path,
// query: {
// "TypeId": item.TypeId,
// 'ID': item.ID,
// blank: "y",
// }
// })
this.OpenNewUrl('/financial/accDetail/'+path, {
"TypeId": item.TypeId,
'ID': item.ID,
blank: "y",
}
})
});
},
regNum(n, t) { // 判断数字 n 值 t 类型
let reg = /^\d+(\.\d{0,6})?$/
......@@ -804,11 +811,16 @@
ID: id
}, res => {
if (res.data.resultCode == 1) {
let data = res.data.data
let data = JSON.parse(JSON.stringify(res.data.data)) ;
data.BranchIdS = data.BranchList[0].RB_Branch_Id;
// this.remoteMethod(data.InemName)
// this.remoteMethod2(data.OutemName)
this.addMsg = data;
//6-30新加 校区可以多选
this.addMsg.BranchList = []
res.data.data.BranchList.forEach(x=>{
this.addMsg.BranchList.push(x.RB_Branch_Id)
})
// this.disabledOption();
} else {
this.tips(res.data.message, 'error');
......@@ -887,7 +899,7 @@
}, err => {})
},
addInstitutions() { // 保存 修改、新增
this.addMsg.BranchList = [];
// this.addMsg.BranchList = [];
if (!this.addMsg.RiskLimitMoney) {
this.addMsg.RiskLimitMoney = 0;
}
......@@ -895,13 +907,28 @@
obj = this.CompanyList.find(item => {
return item.SId === this.addMsg.BranchIdS; //筛选出匹配数据
});
let msg = {
ID: 0,
Type: 2,
RB_Branch_Id: this.addMsg.BranchIdS,
RB_BranchName: obj.SName
}
this.addMsg.BranchList.push(msg);
// let msg = {
// ID: 0,
// Type: 2,
// RB_Branch_Id: this.addMsg.BranchIdS,
// RB_BranchName: obj.SName
// }
// this.addMsg.BranchList.push(msg);
let data = [];
this.addMsg.BranchList.forEach(x=>{
this.CompanyList.map(j=>{//筛选出匹配数据
if(x == j.SId){
let msg = {
ID: 0,
Type: 2,
RB_Branch_Id: j.SId,
RB_BranchName: j.SName
}
data.push(msg)
}
})
})
this.addMsg.BranchList = data;
this.apipost('BankAccount_post_SetCashAccount', this.addMsg, res => {
if (res.data.resultCode == 1) {
this.tips('保存成功!', 'success')
......
......@@ -413,6 +413,7 @@
</span></span>
</el-tooltip>
</p>
<p v-if="item.IsStandardCurrency!=1">
<span class="_name">{{$t('fnc.sqisunyi')}}</span>
<span class="fr" v-if="item.ProfitLossMoney&&item.ProfitLossMoney!=0"
......@@ -518,8 +519,8 @@
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35" class="_BranchIdS">
<el-form-item label="校区" prop="BranchIdS">
<el-select filterable v-model='addMsg.BranchIdS'>
<el-form-item label="校区" prop="BranchList">
<el-select filterable multiple v-model='addMsg.BranchList'>
<el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'
:disabled="item.disabled">
</el-option>
......@@ -724,7 +725,11 @@
required: true,
message: this.$t('rule.qxzfyleixing'),
trigger: 'change'
}, ]
}, ],
BranchList:[{
type:'array',required: true,message: '请选择校区', trigger: 'change'
}]
},
addCuren: true,
ed: false,
......@@ -845,14 +850,19 @@
},
goUrlNew(item) {
let path = "CompanyAccDetail";
this.$router.push({
name: path,
query: {
"TypeId": item.TypeId,
'ID': item.ID,
blank: "y",
}
})
// this.$router.push({
// name: path,
// query: {
// "TypeId": item.TypeId,
// 'ID': item.ID,
// blank: "y",
// }
// })
this.OpenNewUrl('/financial/accDetail/'+path, {
"TypeId": item.TypeId,
'ID': item.ID,
});
},
goUrl(path, id, name, source, CurrencyId) {
this.$router.push({
......@@ -921,9 +931,14 @@
ID: id
}, res => {
if (res.data.resultCode == 1) {
let data = res.data.data;
let data = JSON.parse(JSON.stringify(res.data.data)) ;
data.BranchIdS = data.BranchList[0].RB_Branch_Id;
this.addMsg = data;
//6-30新加 校区可以多选
this.addMsg.BranchList = []
res.data.data.BranchList.forEach(x=>{
this.addMsg.BranchList.push(x.RB_Branch_Id)
})
// this.disabledOption();
} else {
this.tips(res.data.message, 'error');
......@@ -1006,7 +1021,7 @@
}, err => {})
},
addInstitutions() { // 保存 修改、新增
this.addMsg.BranchList = [];
// this.addMsg.BranchList = [];
if (!this.addMsg.RiskLimitMoney) {
this.addMsg.RiskLimitMoney = 0;
}
......@@ -1014,13 +1029,29 @@
obj = this.CompanyList.find(item => {
return item.SId === this.addMsg.BranchIdS; //筛选出匹配数据
});
let msg = {
ID: 0,
Type: 2,
RB_Branch_Id: this.addMsg.BranchIdS,
RB_BranchName: obj.SName
}
this.addMsg.BranchList.push(msg);
let data = [];
this.addMsg.BranchList.forEach(x=>{
this.CompanyList.map(j=>{//筛选出匹配数据
if(x == j.SId){
let msg = {
ID: 0,
Type: 2,
RB_Branch_Id: j.SId,
RB_BranchName: j.SName
}
data.push(msg)
}
})
})
// let msg = {
// ID: 0,
// Type: 2,
// RB_Branch_Id: this.addMsg.BranchIdS,
// RB_BranchName: obj.SName
// }
// this.addMsg.BranchList.push(msg);
this.addMsg.BranchList = data;
this.apipost('bankaccount_post_Set', this.addMsg, res => {
if (res.data.resultCode == 1) {
this.tips(this.$t('tips.saveYes'), "success");
......
......@@ -1069,7 +1069,6 @@
titleAlign: "left",
columnAlign: "left",
isResize: true,
isFrozen: true,
},
{
field: "ClassState",
......@@ -1080,7 +1079,6 @@
isResize: true,
result: [],
type: "select",
isFrozen: true,
formatter: function (rowData, rowIndex, pagingIndex, field) {
let state = rowData.ClassState
let text = ''
......@@ -1104,7 +1102,6 @@
isResize: true,
result: [],
type: "select",
isFrozen: true
},
{
field: "TeacherName",
......@@ -1113,12 +1110,11 @@
titleAlign: "left",
columnAlign: "left",
isResize: true,
isFrozen: true,
},
{
field: "YingShou",
formatter: this.moneyFormat,
title: "应收",
title: "原价",
width: 100,
titleAlign: "left",
columnAlign: "right",
......
......@@ -501,6 +501,9 @@
this.msg.eTradeDate = this.$route.query.eTradeDate;
this.productionDate = [this.msg.sTradeDate, this.msg.eTradeDate];
this.productionDateByTC = [this.msg.QStartDate, this.msg.QEndDate];
this.msg.RB_Branch_Id = Number(this.$route.query.RB_Branch_Id)
this.getList();
this.BankAccount_post_GetCashAccountList("query");
}
......
......@@ -565,6 +565,8 @@
this.msg.eTradeDate = this.$route.query.eTradeDate ? this.$route.query.eTradeDate : "";
this.productionDate = [this.msg.sTradeDate, this.msg.eTradeDate];
this.productionDateByTC = [this.msg.QStartDate, this.msg.QEndDate];
this.msg.RB_Branch_Id = Number(this.$route.query.RB_Branch_Id)
this.getList();
this.bankaccount_post_GetListS("query");
}
......
......@@ -460,6 +460,8 @@
this.msg.eTradeDate = this.$route.query.eTradeDate;
this.productionDate = [this.msg.sTradeDate, this.msg.eTradeDate];
this.productionDateByTC = [this.msg.QStartDate, this.msg.QEndDate];
this.msg.RB_Branch_Id = Number(this.$route.query.RB_Branch_Id)
this.getList();
this.BankAccount_post_GetPlatformList("query");
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -1035,7 +1035,7 @@
@click="dialogFormVisible=true,updateMsg.FrID=item.FrID,updateMsg.OTradeDate=item.TradeDate"></i>
</el-tooltip>
<el-tooltip class="item" content="交易方式" placement="top" v-if="active==2 && istransaction == true">
<i v-if="active==2" class="iconfont icon-jiaoyi"
<i v-if="active==2 && istransaction == true" class="iconfont icon-jiaoyi"
@click="showjiaoyi(item.FrID)"></i>
</el-tooltip>
</td>
......@@ -2549,10 +2549,10 @@
}
msg.push(obj)
})
this.apipost('Financial_post_SetFinanceTrabeInfo', msg, res => {
this.apipost('Financial_get_SetFinanceTrabeInfo', msg, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.transactionmode = true
this.transactionmode = false
this.getPageList()
}else{
this.Error(res.data.message);
......
......@@ -475,7 +475,9 @@
._TCIDAndTCNUMList {
display: flex;
}
.caoz i{
margin-bottom: 5px;
}
</style>
<template>
......@@ -713,6 +715,14 @@
border-radius: 4px;">
收入
</span>
<span v-if="scope.row.Type==4" style="display: inline-block;
padding: 2px 8px;
color: white;
background-color: #2BB87C;
line-height: 16px;
border-radius: 4px;">
调拨
</span>
<span v-if="scope.row.Type==5" style="display: inline-block;
padding: 2px 8px;
color: white;
......@@ -838,7 +848,7 @@
<el-table-column prop="StatusStr" label="当前状态"></el-table-column>
<el-table-column prop="Remark" label="操作">
<template slot-scope="scope">
<div>
<div class="caoz">
<span>
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i v-if="scope.row.Type !== 4" style="width: 30px;
......@@ -898,6 +908,21 @@
outline: none;" class="iconfont icon-fapiao" v-if="Finance_InvoiceUpdate==true && scope.row.Type==2" @click="setdaju(scope.row)">
</i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="费用类型" placement="top">
<!-- <i v-if="scope.row.isExchange" style="width: 30px;-->
<i style="width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
background-color: #47BF8C;
outline: none;" class="iconfont icon-caiwu" v-if="Finance_ExpenseType==true && (scope.row.Type==2 || scope.row.Type==1)" @click="showfeiyong(scope.row)">
</i>
</el-tooltip>
</span>
</div>
</template>
......@@ -962,6 +987,26 @@
</div>
</template>
</el-dialog>
<!-- 修改费用类型 -->
<el-dialog title="修改费用类型" width="400px"
:visible.sync="costmode" center >
<el-form label-width="110px">
<div class="rb_top_row _r_mb5" v-for='(x,y) in trabeList' :key='y'>
<p>费用类型:
<el-select filterable v-model='x.CostTypeId' placeholder="" @change="getAccountList2(x.CostTypeId,y)"
class="w250 _border_b_1">
<el-option v-for='item in GetCostTypeList' :label='item.Name' :value='item.ID' :key='item.ID' >
</el-option>
</el-select>
</p>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button class="hollowFixedBtn" @click="costmode=false">{{$t('pub.cancelBtn')}}</el-button>
<el-button class="normalBtn" type="primary" @click="preservetransaction()">{{$t('pub.sureBtn')}}</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -996,6 +1041,7 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue';
widthSon: '700px',
colorSon: "#f5f5f5",
Finance_InvoiceUpdate:false,
Finance_ExpenseType:false,
msg: {
pageIndex: 1,
pageSize: 5,
......@@ -1111,7 +1157,8 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue';
},
xgfpBox:false,
getInvoiceList:[],
costmode:false,//费用类型的修改弹窗
trabeList:[],//修改费用类型的下啦数据
}
},
created() {
......@@ -1159,9 +1206,12 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue';
let ActionMenuList = JSON.parse(localStorageData).data.ActionMenuList
if (ActionMenuList && ActionMenuList.length > 0) {
ActionMenuList.forEach(x => {
if (x.FunctionCode == 'Finance_InvoiceUpdate') {
if (x.FunctionCode == 'Finance_InvoiceUpdate') {//发票修改权限
this.Finance_InvoiceUpdate = true
}
if(x.FunctionCode == 'Finance_ExpenseType'){//费用类型修改权限
this.Finance_ExpenseType = true
}
})
}
},
......@@ -1785,6 +1835,43 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue';
"pageIndex": pageIndex
}
})
},
showfeiyong(row){
this.apipost('Financial_get_GetFinanceCostTypeList', {FrId:row.FrID}, res => {
if (res.data.resultCode == 1) {
this.trabeList = res.data.data
this.costmode = true
}
}, err => {})
},
getAccountList2(val,index){
this.GetCostTypeList.map((x)=>{
if(x.ID == val){
this.trabeList[index].CostTypeName = x.Name;
return
}
})
},
preservetransaction(){//保存费用类型的修改
let msg = []
this.trabeList.forEach(x=>{
let obj ={
ID:x.ID,
FinanceId:x.FinanceId,
CostTypeId:x.CostTypeId,
CostTypeName:x.CostTypeName,
}
msg.push(obj)
})
this.apipost('Financial_get_SetFinanceCostTypeInfo', msg, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.costmode = false
this.getPageList()
}else{
this.Error(res.data.message);
}
}, err => {})
}
}
......
......@@ -169,7 +169,7 @@
<div style="width:100%; overflow-x:auto">
<table :boeder="1" class="singeRowTable orderCompleteStatistics" style="width:3000px;border:1px solid #E6E6E6;" cellspacing="0" cellpadding="0">
<tr>
<th colspan="14" style="border-right:1px solid #999;border-bottom:1px solid #999">合同信息</th>
<th colspan="15" style="border-right:1px solid #999;border-bottom:1px solid #999">合同信息</th>
<th colspan="6" style="border-right:1px solid #999;border-bottom:1px solid #999">收款信息</th>
<th colspan="2" style="border-right:1px solid #999;border-bottom:1px solid #999">合同有效金额</th>
<th colspan="7" style="border-right:1px solid #999;border-bottom:1px solid #999">消费情况</th>
......@@ -182,6 +182,7 @@
<th :width='200'>签订时间</th>
<th :width='220'>合同编号</th>
<th :width='400'>产品名称</th>
<th :width='200'>班号</th>
<th :width='400'>班级</th>
<th :width='150'>学员名称</th>
<th :width='120'>业务员</th>
......@@ -223,7 +224,8 @@
<td>{{item.CreateTime}}</td>
<td @click="goUrl('/sale/contractManage',item.ContractNo)"><span style="cursor: pointer;text-decoration: underline;" >{{item.ContractNo}}</span></td>
<td @click="goUrl('/course/course',item.CourseName)"><span style="cursor: pointer;text-decoration: underline;" >{{item.CourseName}}</span></td>
<td @click="goUrl2('/course/classManage',item.ClassName)"><span style="cursor: pointer;text-decoration: underline;" >{{item.ClassName}}</span></td>
<td >{{item.ClassNo}}</td>
<td @click="goUrl2('/course/classManage',item.ClassName)"><div style="cursor: pointer;text-decoration: underline;" >{{item.ClassName}}</div></td>
<td>{{item.StudentName}}</td>
<td>{{item.CreateByName}}</td>
<td>{{item.TotalClassHours}}</td>
......
......@@ -139,6 +139,7 @@
<el-table-column prop="ClassDate" label="上课日期"></el-table-column>
<el-table-column prop="TimeBucket" label="上课时间段"> </el-table-column>
<el-table-column prop="GuestName" label="学生名称"> </el-table-column>
<el-table-column prop="ClassNo" width='120' label="班号"></el-table-column>
<el-table-column prop="ClassName" label="上课班级" width='200'> </el-table-column>
<el-table-column prop="CourseName" label="课程" width='200'></el-table-column>
<el-table-column prop="TeacherName" label="老师名称"></el-table-column>
......
......@@ -68,7 +68,7 @@
option-label="TeacherName" v-model="msg.TeacherId" ref="TId" :options="TeacherList" label="老师"
:dense="false" emit-value map-options />
</div>
<div class="col-3">
<!-- <div class="col-3">
<q-select filled stack-label use-input input-debounce="0" option-value="ClassId" clearable @input="getList"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false" emit-value
map-options @filter="filterFn">
......@@ -80,7 +80,7 @@
</q-item>
</template>
</q-select>
</div>
</div> -->
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="Id" option-label="Name" v-model="datetype" ref="Id"
......@@ -121,7 +121,12 @@
<el-table-column prop="Date" label="上课日期"></el-table-column>
<el-table-column prop="TimeBucket" label="上课时间段"> </el-table-column>
<el-table-column prop="TeacherName" label="老师名称"></el-table-column>
<el-table-column prop="ClassName" label="上课班级" width='200'> </el-table-column>
<el-table-column prop="ClassNo" label="班号"></el-table-column>
<el-table-column prop="ClassName" label="上课班级" width='200' :filters='ClassNameList' :filter-method="filterHandler">
<template slot="header">
<span>上课班级 <span style="font-size: 10px;color: #409EFF;">(筛选)</span> </span>
</template>
</el-table-column>
<el-table-column prop="CourseName" label="课程" width='230'></el-table-column>
<el-table-column prop="UnitPrice" label="课时单价"></el-table-column>
<el-table-column prop="KSNum" label="上课课时"></el-table-column>
......@@ -132,7 +137,9 @@
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges"
layout="total,prev, pager, next, jumper" :current-page.sync="msg.pageIndex"
@size-change="handleSizeChange"
layout="total,sizes,prev, pager, next, jumper" :current-page.sync="msg.pageIndex"
:page-sizes="[15, 1000, 10000]"
:page-size="msg.pageSize" :total='total'>
</el-pagination>
</div>
......@@ -189,6 +196,7 @@
],
ClassList: [],
allClassList: [],
ClassNameList:[],
}
},
created() {
......@@ -231,10 +239,28 @@
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData
this.ClassNameList=[],
this.tableData.forEach(x => {
let obj = {
text: x.ClassName,
value: x.ClassName
}
this.ClassNameList.push(obj)
})
this.ClassNameList = this.unique(this.ClassNameList)
this.total = res.Data.Count
}
})
},
unique(arr, Name) { //数组根据字段去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
);
},
setClass(item) {//班级
this.isShowClass = true;
getClassDropDownList({
......@@ -300,6 +326,11 @@
this.msg.pageIndex = val;
this.getList()
},
handleSizeChange(val){
this.msg.pageIndex = 1;
this.msg.pageSize = val;
this.getList()
},
txexport(){
let text = '';
......@@ -353,7 +384,11 @@
var diff = m2 - m1;
return diff;
}
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
},
......
This diff is collapsed.
......@@ -426,14 +426,19 @@ const routes = [{
component: () =>
import("pages/financial/accDetail/TransferReport.vue")
},
{
path: "/financial/accDetail/newTransferReport", //新银行日报表
component: () =>
import("pages/financial/accDetail/newTransferReport.vue")
},
{
path: "/financial/accDetail/CashReport", //现金日报表
component: () =>
import("pages/financial/accDetail/CashReport.vue")
}, {
path: "/financial/accDetail/CashReport", //现金日报表
path: "/financial/accDetail/newCashReport", //新现金日报表
component: () =>
import("pages/financial/accDetail/CashReport.vue")
import("pages/financial/accDetail/newCashReport.vue")
},
{
path: "/financial/financalDocument/ChoiceAddFinancialDocuments",
......@@ -820,6 +825,7 @@ const routes = [{
component: () =>
import("pages/course/chapter.vue")
},
{
path: "/course/coursejob", //作业管理
component: () =>
......@@ -968,7 +974,11 @@ const routes = [{
title: '资产管理'
},
},
{
path: "/course/chapter-editor", //章节管理
component: () =>
import("pages/course/chapterEditor.vue")
},
{
path: "*",
component: () =>
......
......@@ -24,4 +24,49 @@ export function validateUpperCase(str) {
export function validatAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/** 比对数组是否相同 */
export function compareArray(arrA, arrB) {
let isSame = true
if (arrA.length !== arrB.length) {
return false
} else {
arrA.some((el, idx) => {
if (el !== arrB[idx]) {
isSame = false
return true
}
})
}
return isSame
}
/** 比对对象是否相同 */
export function compareObject(objA, objB,ignoreArray, endLoop) {
let isSame = true
let isArray = '[object Array]'
let isObject = '[object Object]'
for (var key in objA) {
if (objB[key] !== '' && !objB[key] && typeof objB[key] !== 'number') {
isSame = false
break
}
let type = Object.prototype.toString.call(objA[key])
if (type === isArray && ignoreArray) {
isSame = compareArray(objA[key], objB[key])
} else if (type === isObject) {
isSame = compareObject(objA[key], objB[key],ignoreArray)
} else if (objA[key] !== objB[key]) {
isSame = false
}
if (!isSame) {
return isSame
}
}
if (isSame && !endLoop) {
isSame = compareObject(objB, objA,ignoreArray, true)
}
return isSame
}
\ No newline at end of file
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