Commit b5b87096 authored by zhengke's avatar zhengke

修改

parent fa6dba0b
...@@ -152,4 +152,16 @@ export function GetMyEducationContractPageList(data) { ...@@ -152,4 +152,16 @@ export function GetMyEducationContractPageList(data) {
method: 'post', method: 'post',
data data
}) })
}
/**
* 获取退课协议管理列表
*
*/
export function GetBackClassProtocolPage(data) {
return request({
url: '/EducationContract/GetBackClassProtocolPage',
method: 'post',
data
})
} }
\ No newline at end of file
<template>
<div class="page-content">
<q-table :pagination="pageMsg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" title="合同信息" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title">合同信息</div>
<q-space />
<div class="page-option"></div>
</template>
<template v-slot:body-cell-CreateByName="props">
<q-td :props="props">
<q-avatar rounded size="sm" v-if="props.row.CreateByPhoto">
<img :src="props.row.CreateByPhoto" />
</q-avatar>
<q-avatar rounded size="sm" color="teal-10" text-color="white" v-if="!props.row.CreateByPhoto">
{{ props.value.substring(0, 1) }}</q-avatar>
{{ props.row.CreateByName }}
</q-td>
</template>
<template v-slot:body-cell-StudentName="props">
<q-td auto-width :props="props">
<span v-if="props.row.Sign" style="color: #67c23a">【已签字】</span>
<span v-else style="color: #e95252">【未签字】</span>
{{ props.row.StudentName }}
</q-td>
</template>
<template v-slot:body-cell-Status="props">
<q-td auto-width :props="props">
<span v-if="props.row.Status == 0" style="color: #e6a23c">草稿</span>
<span v-if="props.row.Status == 1" style="color: #409eff">提交审核</span>
<span v-if="props.row.Status == 2" style="color: #67c23a">审合通过</span>
<span v-if="props.row.Status == 3" style="color: #f56c6c">驳回</span>
<span v-if="props.row.Status == 4" style="color: #e95252">取消</span>
</q-td>
</template>
<template v-slot:body-cell-IsCompanySeal="props">
<q-td auto-width :props="props">
<span v-if="props.row.IsCompanySeal == 0" style="color: #e95252">未盖章</span>
<span v-if="props.row.IsCompanySeal == 1" style="color: #67c23a">已盖章</span>
</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>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<div>
<q-btn flat size="xs" v-if="props.row.Status == 0 || props.row.Status == 3" icon="edit" color="accent"
style="font-weight: 400" @click="EditContract(props.row)" label="编辑" />
<el-tooltip content="复制链接发送给客人签字" placement="top" effect="light">
<q-btn flat size="xs" v-if="
props.row.Status == 2 &&
(props.row.Sign == '' || props.row.Sign == null)
" icon="iconfont icon-qianming" color="accent" style="font-weight: 400" @click="CopyUrl(props.row)"
label="获取合同链接" />
</el-tooltip>
<q-btn flat size="xs" icon="iconfont icon-View" color="accent" @click="goContract(props.row)"
style="font-weight: 400" label="查看" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left: 10px" v-if="
props.row.Status == 0 ||
props.row.Status == 2 ||
props.row.Status == 3
">
<q-list>
<q-item clickable v-close-popup v-if="props.row.Status == 0 || props.row.Status == 3"
@click="operationContract(props.row, 1)">
<q-item-section>
<q-item-label>提交审核</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup v-if="props.row.Status == 2" @click="downloadContract(props.row)">
<q-item-section>
<q-item-label>下载</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup v-if="props.row.Status == 0" @click="operationContract(props.row, 4)">
<q-item-section>
<q-item-label>取消</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</div>
</q-td>
</template>
</q-table>
</div>
</template>
<script>
export default {
props: {
dataList: {
type: Array,
default: null
},
loading: {
type: Boolean,
default: null
}
},
data() {
return {
columns: [{
name: "ContractNo",
label: "合同编号",
align: "left",
field: "ContractNo",
},
{
name: "CTypeName",
label: "类型",
align: "left",
field: "CTypeName",
},
{
name: "StudentName",
label: "学生名称",
field: "StudentName",
align: "left",
},
{
name: "CourseName",
label: "课程名称",
align: "left",
field: "CourseName",
},
{
name: "CreateByName",
label: "创建人",
align: "left",
field: "CreateByName",
},
{
name: "CreateTime",
label: "创建时间",
align: "left",
field: "CreateTime",
},
{
name: "SchoolStatusStr",
label: "关联退课申请单",
align: "left",
field: "SchoolStatusStr",
},
{
name: "status",
label: "审核状态",
align: "left",
field: "SchoolStatusStr"
},
{
name: "IsCompanySeal",
label: "是否盖章",
align: "left",
field: "Status",
},
{
name: "optioned",
label: "操作",
field: "RoomId",
},
],
pageMsg: {
rowsPerPage: 12,
},
}
},
created() {},
mounted() {},
methods: {
}
}
</script>
<style>
</style>
<template> <template>
<div> <div class="page-body">
退学协议管理 <div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.QOrderId" label="订单id"
@clear="resetSearch" maxlength="30" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" v-model="msg.AuditStatus" :options="StatusOpts"
option-value="Id" option-label="Name" label="状态" emit-value map-options />
</div>
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ProtocolNum"
label="合同编号" @clear="resetSearch" maxlength="30" />
</div>
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.PartyAName"
label="学生姓名" @clear="resetSearch" maxlength="30" />
</div>
</div>
</div> </div>
</template> <courserefund-form :loading="loading" :dataList="dataList"></courserefund-form>
\ No newline at end of file <q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</div>
</template>
<script>
import {
GetBackClassProtocolPage
} from "../../api/sale/contract";
import courserefundForm from "../../components/course/courserefund-form"
export default {
meta: {
title: "退课协议管理",
},
components: {
courserefundForm
},
data() {
return {
loading: true,
msg: {
pageIndex: 1,
pageSize: 12,
PartyAName: '张三',
AuditStatus: -1,
QOrderId: 0,
ProtocolNum: '123',
IsQueryAll: 1
},
pageCount: 0,
dataList: [],
//状态下拉
StatusOpts: [{
Id: -1,
Name: "不限",
},
{
Id: 0,
Name: "草稿",
},
{
Id: 1,
Name: "提交审核",
},
{
Id: 2,
Name: "审核通过(行政)",
},
{
Id: 5,
Name: "审核通过(学管)",
},
{
Id: 3,
Name: "驳回",
},
{
Id: 4,
Name: "取消",
},
],
};
},
created() {},
mounted() {
this.getList();
},
methods: {
//获取校区列表
getList() {
this.loading = true;
GetBackClassProtocolPage(this.msg).then((res) => {
this.loading = false;
if (res.Code == 1) {
console.log(res,'数据');
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}
});
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
//分页改变
changePage(val) {
this.msg.pageIndex = val;
this.getList();
},
},
};
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<style>
.TCdiv_content {
width: 100%;
margin: 0 auto;
background-color: #fff;
height: 100%;
-webkit-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
text-size-adjust: 100%;
color: #000;
}
.TCdiv_content .NavFixed {
position: fixed;
top: 0;
width: 100%;
z-index: 200;
background: #fff;
}
.TCdiv_content .navHidden {
width: 100%;
overflow: hidden;
height: 3rem;
}
.TCdiv_content .navHidden .wrap {
width: 100%;
/* height: 3rem; */
overflow-x: scroll;
overflow-y: hidden;
}
.TCdiv_content .navHidden .Navul {
width: 28rem;
padding: 0;
display: flex;
height: 3rem;
line-height: 3rem;
margin: 0;
border-bottom: 1px solid #ccc;
}
.TCdiv_content .navHidden .Navul li {
display: inline-block;
margin-left: 1rem;
box-sizing: border-box;
cursor: pointer;
font-size: 1rem;
cursor: pointer;
}
.navHidden .ActiveLi {
border-bottom: 2px solid #24ade5;
}
.CisHideen {
display: none;
overflow: hidden;
}
.contractTitle {
font-size: 1.2rem;
margin-bottom: 10px;
}
.ContractMain {
/* padding: 100px 15px 80px 15px; */
position: relative;
background: #fff;
min-height: 100vh;
}
.CliSignDiv {
position: fixed;
border: 1px solid #d1d1d1;
width: 100%;
background-color: #fff;
z-index: 999;
margin: auto;
display: block;
z-index: -999;
}
.TcConfirmMain .isShowSign {
z-index: 999 !important;
}
.TCdiv_content .signSpan {
position: fixed;
bottom: 0;
width: 100%;
left: 0;
background: #fff;
border-top: 1px solid #ccc;
z-index: 1000;
}
.TCdiv_content .signSpan .sign {
width: 75%;
margin: 0 auto;
text-align: center;
cursor: pointer;
height: 60px;
line-height: 60px;
}
.ContractMain p {
font-size: 1rem;
line-height: 26px;
margin: 0;
margin-bottom: 5px;
}
.conReFund_Suojin {
text-indent: 20px;
display: flex;
font-size:1rem;
flex-wrap:wrap;
line-height: 26px;
margin-bottom:10px;
}
.comTop {
margin-top: 10px;
}
.conUnderLine {
text-decoration: underline;
}
.CanvasDiv {
width: 100%;
height: calc(100% - 4rem);
padding-top: 5%;
}
.dash {
padding: 10px;
box-sizing: border-box;
border: 1px dashed #ccc;
width: 95%;
height: 98%;
margin: 0 auto;
overflow: hidden;
}
.CanvasDiv #canvas {
width: 100%;
height: 100%;
}
.ContractName {
width: 100%;
font-size: 1.3rem;
text-align: center;
}
.contractTitleTwo {
font-size: 1rem;
margin-bottom: 10px;
}
.comConInput {
width: 100%;
border-bottom: 1px solid #c0c0c0;
text-align: left;
padding-bottom: 5px;
}
.TCdiv_content .gzqzUl{
margin:0;
padding:0;
}
.TCdiv_content .gzqzUl li{
border-bottom: 1px solid #ddd;
padding:14px;
position: relative;
box-sizing: border-box;
list-style-type: none;
}
.feeTable{
width:100%;
}
.feeTable th, .feeTable td{
border:1px solid #d1d1d1;
text-align: center;
height:35px;
}
.TCdiv_content .gzqzUl .bgli{
background: #eee;
width: 100%;
padding: 0!important;
height:20px;
}
.CourseBackSign{
display:flex;
font-size:1rem;
margin-bottom:1rem;
}
.TuitractInput {
border: 0;
display: inline-block;
border-bottom: 1px solid #c0c0c0;
width: 2rem;
font-size: 20px;
text-align: center;
text-indent: 0;
}
</style>
<template>
<div class="TcConfirmMain">
<div class="TCdiv_content">
<!-- 签字 -->
<div class="signSpan">
<div @click="goSign()" class="sign">
<span style="padding:0;"><i style="font-size:1.2rem" class="iconfont icon-qianming"></i></span>
<span style="font-size:1.2rem;margin-left:0.2rem;" v-if="dataList.Sign==''||dataList.Sign==null">签字</span>
<span style="font-size:1.2rem;margin-left:0.2rem;" v-else>重新签字</span>
</div>
</div>
<div class="NavFixed">
<p style="background:#24ade5;text-align:center;color:#fff;padding:6px 0;font-size:1rem;margin-bottom:0;">培训课程退款协议</p>
</div>
<div class="ContractMain">
<div style="padding:60px 15px 80px 15px;">
<div class="CourseBackSign">
<div>
甲方:
</div>
<div style="margin-left:3rem;">(家长/监护人):</div>
</div>
<div class="CourseBackSign">
<div>
乙方:
</div>
<div style="margin-left:3rem;">法定代表人:</div>
</div>
<div class="conReFund_Suojin">
甲乙双方经平等友好协商就<div class="TuitractInput" style="width:4rem">1988</div>
<div class="TuitractInput" style="width:2rem">12</div><div class="TuitractInput" style="width:2rem">12</div>日签订的《培训课程协议》
解除合作关系。
</div>
<div class="conReFund_Suojin">
第一条:原协议内容
</div>
<div class="conReFund_Suojin">
原协议报名人员:<div class="TuitractInput" style="width:14rem;text-align:left;"></div>
</div>
<div class="conReFund_Suojin">
原报名项目:<div class="TuitractInput" style="width:16rem;text-align:left;"></div>
</div>
<div class="conReFund_Suojin">
原报名项目原价:<div class="TuitractInput" style="width:14rem;text-align:left;">4564</div>
</div>
<div class="conReFund_Suojin">
折后(优惠)价:<div class="TuitractInput" style="width:14rem;text-align:left;">1234</div>
</div>
<div class="conReFund_Suojin">
原收据:<div class="TuitractInput" style="width:14rem;text-align:left;">1234</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import {
GetEducationContractInfo
} from '../api/sale/contract'
export default {
data() {
return {
dataList: [],
dialogVisible: false,
gmsg: {
ContractId: 0
},
dataList: {},
ActiveTab: 1,
};
},
created() {
if (this.$route.query.ContractId) {
this.gmsg.ContractId = this.$route.query.ContractId;
this.getList();
}
},
methods: {
//获取数据
getList() {
GetEducationContractInfo(this.gmsg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data;
}
})
},
ChangeTab(num) {
this.ActiveTab = num;
},
//跳转至合同签名
goSign(){
this.$router.push({
path: '/contractSign',
query: {
ContractId: this.gmsg.ContractId,
Money:this.dataList.Money
}
});
}
},
mounted() {
}
};
</script>
...@@ -1155,6 +1155,11 @@ const routes = [{ ...@@ -1155,6 +1155,11 @@ const routes = [{
component: () => component: () =>
import("pages/courseRefund.vue") import("pages/courseRefund.vue")
}, },
{
path: "/courseRefundH5",
component: () =>
import("pages/courseRefundH5.vue")
},
{ {
path: "/financial/financalDocument/PrintPage", //财务单据打印 path: "/financial/financalDocument/PrintPage", //财务单据打印
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