Commit 363be216 authored by 黄奎's avatar 黄奎

页面修改

parent 0a9efcf7
...@@ -49,6 +49,11 @@ ...@@ -49,6 +49,11 @@
.el-select-dropdown { .el-select-dropdown {
z-index: 9999 !important; z-index: 9999 !important;
} }
.CusTask_Date .el-input__inner {
background: transparent !important;
border: 0 !important;
}
</style> </style>
<template> <template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale"> <q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale">
...@@ -69,55 +74,40 @@ ...@@ -69,55 +74,40 @@
</div> </div>
<div class="row wrap q-pb-lg"> <div class="row wrap q-pb-lg">
<div class="col-6"> <div class="col-6">
<q-input filled v-model="objOption.TaskStartTime" class="q-pr-lg" mask="date" label="开始时间"> <div class="CusTask_Date">
<template v-slot:append> <q-field filled stack-label label="开始时间" class="col-6 q-pb-lg q-pr-lg">
<q-icon name="event" class="cursor-pointer">  <template v-slot:control>
<q-popup-proxy ref="qDateProxy1" cover transition-show="scale" transition-hide="scale"> <el-date-picker v-model="objOption.TaskStartTime" value-format='yyyy-MM-dd HH:mm:ss' type="datetime"
<q-date v-model="objOption.TaskStartTime"> size="small" clear-icon="iconfont icon-guanbi"></el-date-picker>    
<div class="row items-center justify-end"> </template>
<q-btn v-close-popup label="Close" color="primary" flat /> </q-field>
</div> </div>
</q-date>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div> </div>
<div class="col-6"> <div class="col-6">
<q-input filled v-model="objOption.TaskEndTime" mask="date" label="结束时间"> <div class="CusTask_Date">
<template v-slot:append> <q-field filled stack-label label="结束时间" class="col-6 q-pb-lg">
<q-icon name="event" class="cursor-pointer">  <template v-slot:control>
<q-popup-proxy ref="qDateProxy2" cover transition-show="scale" transition-hide="scale"> <el-date-picker v-model="objOption.TaskEndTime" value-format='yyyy-MM-dd HH:mm:ss' type="datetime"
<q-date v-model="objOption.TaskEndTime"> size="small" clear-icon="iconfont icon-guanbi"></el-date-picker>    
<div class="row items-center justify-end"> </template>
<q-btn v-close-popup label="Close" color="primary" flat /> </q-field>
</div> </div>
</q-date>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div> </div>
</div> </div>
<div class="row wrap"> <div class="row wrap">
<div class="col-6"> <div class="col-6">
<q-input filled v-model="objOption.ExchangeEndTime" class="q-pr-lg" mask="date" label="兑换截止日期"> <div class="CusTask_Date">
<template v-slot:append> <q-field filled stack-label label="兑换截止日期" class="col-6 q-pb-lg q-pr-lg">
<q-icon name="event" class="cursor-pointer">  <template v-slot:control>
<q-popup-proxy ref="ExchangeEndTime" cover transition-show="scale" transition-hide="scale"> <el-date-picker v-model="objOption.ExchangeEndTime" value-format='yyyy-MM-dd HH:mm:ss' type="datetime"
<q-date v-model="objOption.ExchangeEndTime"> size="small" clear-icon="iconfont icon-guanbi"></el-date-picker>    
<div class="row items-center justify-end"> </template>
<q-btn v-close-popup label="Close" color="primary" flat /> </q-field>
</div> </div>
</q-date>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div> </div>
<div class="col-6"> <div class="col-6">
<q-select filled stack-label option-value="Id" option-label="Name" v-model="objOption.TaskFinishType" <q-select filled option-value="Id" option-label="Name" v-model="objOption.TaskFinishType"
:options="finishTypeObj" label="请选择" dense emit-value map-options /> :options="finishTypeObj" label="任务完成类型" emit-value map-options />
</div> </div>
</div> </div>
<div class="row wrap" style="margin-top:20px;"> <div class="row wrap" style="margin-top:20px;">
...@@ -136,9 +126,8 @@ ...@@ -136,9 +126,8 @@
</el-upload> </el-upload>
</div> </div>
</div> </div>
<div class="q-pt-none scroll" style="max-height:60hv;margin-bottom:20px;"> <div class="q-pt-none scroll" style="max-height:60hv;margin-bottom:20px;">
<q-btn color="accent" size="sm" icon="add" style="margin-bottom:20px;" label="新增子任务" @click="addSubTask()" /> <q-btn color="accent" size="sm" icon="add" style="margin-bottom:20px;" label="新增完成条件" @click="addSubTask()" />
<template v-for="(sItem, sIndex) in objOption.DetailsList"> <template v-for="(sItem, sIndex) in objOption.DetailsList">
<div :key="sIndex" class="Details_List"> <div :key="sIndex" class="Details_List">
<q-input filled stack-label maxlength="20" style="width:523px;" dense v-model="sItem.DetailsName" <q-input filled stack-label maxlength="20" style="width:523px;" dense v-model="sItem.DetailsName"
...@@ -199,7 +188,6 @@ ...@@ -199,7 +188,6 @@
@click="deleSubTask(index)" /> @click="deleSubTask(index)" />
</div> </div>
</template> </template>
</div> </div>
<div class="row wrap"> <div class="row wrap">
<div class="col-12"> <div class="col-12">
......
<!--停课表单审核信息--> <!--停课表单审核信息-->
<style> <style>
.backbill-Dialog .drawerTop { .backbill-Dialog .drawerTop {
width: 100%; width: 100%;
height: 50px; height: 50px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
background-color: #f0f5fb; background-color: #f0f5fb;
padding: 5px 10px; padding: 5px 10px;
align-items: center; align-items: center;
} }
.backbill-Dialog .classFirst { .backbill-Dialog .classFirst {
color: #000000; color: #000000;
font-weight: bold; font-weight: bold;
} }
.backbill-Dialog .className { .backbill-Dialog .className {
margin-left: 10px; margin-left: 10px;
} }
.backbill-Dialog .classStatus { .backbill-Dialog .classStatus {
padding: 3px 8px; padding: 3px 8px;
background-color: #c8d7fc; background-color: #c8d7fc;
color: #2961fe; color: #2961fe;
font-size: 12px; font-size: 12px;
border-radius: 2px; border-radius: 2px;
margin-left: 20px; margin-left: 20px;
} }
.backbill-Dialog .normalName { .backbill-Dialog .normalName {
color: #999999; color: #999999;
} }
.backbill-Dialog .normalInner { .backbill-Dialog .normalInner {
color: #111111; color: #111111;
} }
.drop_NameDown { .drop_NameDown {
margin-top: 20px; margin-top: 20px;
width: 300px; width: 300px;
} }
.backinfoContent { .backinfoContent {
margin: 10px; margin: 10px;
padding-bottom: 80px; padding-bottom: 80px;
} }
.backinfoContent .role_Line { .backinfoContent .role_Line {
width: 3px; width: 3px;
height: 11px; height: 11px;
margin-right: 10px; margin-right: 10px;
background-color: #3fc4ff; background-color: #3fc4ff;
display: inline-block; display: inline-block;
} }
.backinfoContent .backinfo_Item { .backinfoContent .backinfo_Item {
color: #000000; color: #000000;
font-weight: bold; font-weight: bold;
} }
.backinfoContent .backInfo_One { .backinfoContent .backInfo_One {
margin: 20px 0; margin: 20px 0;
} }
.backinfoContent .backOtherInfo { .backinfoContent .backOtherInfo {
color: #111111; color: #111111;
} }
.backinfoContent .backInfo_Title { .backinfoContent .backInfo_Title {
display: inline-block; display: inline-block;
width: 75px; width: 75px;
text-align: left; text-align: left;
color: #999999; color: #999999;
} }
.backinfoContent .replayReason { .backinfoContent .replayReason {
width: 100%; width: 100%;
min-height: 100px; min-height: 100px;
background-color: #f0f5fb; background-color: #f0f5fb;
border-radius: 3px; border-radius: 3px;
padding: 20px; padding: 20px;
margin: 20px 0; margin: 20px 0;
} }
.backinfoContent .replay_Title { .backinfoContent .replay_Title {
font-weight: bold; font-weight: bold;
color: #111111; color: #111111;
} }
.backinfoContent .chaosong_Peo { .backinfoContent .chaosong_Peo {
display: inline-block; display: inline-block;
padding: 2px 3px; padding: 2px 3px;
color: #fff; color: #fff;
border-radius: 3px; border-radius: 3px;
margin: 0 5px 5px 0; margin: 0 5px 5px 0;
background-color: #9cf; background-color: #9cf;
} }
.backinfoContent .topBaseInfo { .backinfoContent .topBaseInfo {
/* height: 300px; */ /* height: 300px; */
overflow: auto; overflow: auto;
} }
.topBaseInfo::-webkit-scrollbar { .topBaseInfo::-webkit-scrollbar {
width: 3px; width: 3px;
height: 3px; height: 3px;
background-color: #f5f5f5; background-color: #f5f5f5;
} }
/*!*定义滚动条轨道 内阴影+圆角*!*/ /*!*定义滚动条轨道 内阴影+圆角*!*/
.topBaseInfo::-webkit-scrollbar-track { .topBaseInfo::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px; border-radius: 10px;
background-color: #f5f5f5; background-color: #f5f5f5;
} }
/*!*定义滑块 内阴影+圆角*!*/ /*!*定义滑块 内阴影+圆角*!*/
.topBaseInfo::-webkit-scrollbar-thumb { .topBaseInfo::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
-webkit-box-shadow: -webkit-gradient( -webkit-box-shadow: -webkit-gradient(linear,
linear, 0 0,
0 0, 0 100%,
0 100%, color-stop(0.5, rgba(255, 255, 255, 0.2)),
color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.5, transparent),
color-stop(0.5, transparent), to(transparent));
to(transparent) background-color: #0ae;
); }
background-color: #0ae;
} ._addUpload_box {
display: block;
._addUpload_box { margin-top: 15px;
display: block; }
margin-top: 15px;
} ._addUpload_box img {
width: 100%;
._addUpload_box img { }
width: 100%;
} ._addUpload_box>div {
float: left;
._addUpload_box > div { width: 138px;
float: left; height: 92px;
width: 138px; border: 1px dashed rgba(210, 210, 210, 1);
height: 92px; border-radius: 2px;
border: 1px dashed rgba(210, 210, 210, 1); cursor: pointer;
border-radius: 2px; margin-bottom: 10px;
cursor: pointer; padding: 5px;
margin-bottom: 10px; margin-right: 10px;
padding: 5px; position: relative;
margin-right: 10px; text-align: center;
position: relative; }
text-align: center;
} ._addUpload_box>div:hover {
background-color: #f5f5f5;
._addUpload_box > div:hover { }
background-color: #f5f5f5;
} ._addFile_name {
padding-left: 15px;
._addFile_name { max-width: 450px;
padding-left: 15px; overflow: hidden;
max-width: 450px; text-overflow: ellipsis;
overflow: hidden; white-space: nowrap;
text-overflow: ellipsis; }
white-space: nowrap;
} ._addUpload_box .icon-guanbi1 {
font-size: 12px;
._addUpload_box .icon-guanbi1 { color: white;
font-size: 12px; display: inline-block;
color: white; margin-left: 15px;
display: inline-block; position: absolute;
margin-left: 15px; right: -6px;
position: absolute; top: -9px;
right: -6px; background-color: #f56c6c;
top: -9px; border-radius: 50%;
background-color: #f56c6c; height: 20px;
border-radius: 50%; width: 20px;
height: 20px; text-align: center;
width: 20px; line-height: 20px;
text-align: center; }
line-height: 20px;
} ._addUpload_box .icon-guanbi1:hover {
font-size: 12px;
._addUpload_box .icon-guanbi1:hover { color: #c94052;
font-size: 12px; }
color: #c94052;
} .._addUpload_box .icon-excel,
._addUpload_box .icon-pdf,
.._addUpload_box .icon-excel, ._addUpload_box .icon-txt,
._addUpload_box .icon-pdf, ._addUpload_box .icon-wenjian,
._addUpload_box .icon-txt, ._addUpload_box .icon-yasuobao,
._addUpload_box .icon-wenjian, ._addUpload_box .icon-shipin,
._addUpload_box .icon-yasuobao, ._addUpload_box .icon-word {
._addUpload_box .icon-shipin, text-align: center;
._addUpload_box .icon-word { font-size: 38px;
text-align: center; color: green;
font-size: 38px; line-height: 75px;
color: green; }
line-height: 75px;
} ._addUpload_box .icon-yasuobao {
._addUpload_box .icon-yasuobao { color: gray;
color: gray; }
}
._show_img_box {
._show_img_box { position: fixed;
position: fixed; background: rgba(0, 0, 0, 0.6);
background: rgba(0, 0, 0, 0.6); left: 0;
left: 0; top: 0;
top: 0; width: 100%;
width: 100%; height: 100%;
height: 100%; z-index: 999;
z-index: 999; text-align: center;
text-align: center; }
}
._addUpload_tips {
._addUpload_tips { font-size: 12px;
font-size: 12px; color: #999999;
color: #999999; }
}
._jump_page {
._jump_page { cursor: pointer;
cursor: pointer; text-decoration: underline;
text-decoration: underline; }
}
._jump_page:hover {
._jump_page:hover { color: #c94052;
color: #c94052; }
}
</style> </style>
<template> <template>
<q-dialog <q-dialog v-model="persistent" maximized full-height seamless position="right" @hide="closeShenheForm">
v-model="persistent" <q-card style="margin-top: 61px; width: 850px" class="no-border-radius backbill-Dialog">
maximized
full-height
seamless
position="right"
@hide="closeShenheForm"
>
<q-card
style="margin-top: 61px; width: 850px"
class="no-border-radius backbill-Dialog"
>
<div class="drawerTop"> <div class="drawerTop">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<div class="className"> <div class="className">
...@@ -246,14 +235,7 @@ ...@@ -246,14 +235,7 @@
</div> </div>
</div> </div>
</div> </div>
<q-tabs <q-tabs style="margin: 15px" v-model="tabCheck" narrow-indicator dense align="left" class="text-primary">
style="margin: 15px"
v-model="tabCheck"
narrow-indicator
dense
align="left"
class="text-primary"
>
<q-tab :ripple="false" name="first" label="详细信息" /> <q-tab :ripple="false" name="first" label="详细信息" />
<q-tab :ripple="false" name="second" label="审批记录" /> <q-tab :ripple="false" name="second" label="审批记录" />
</q-tabs> </q-tabs>
...@@ -289,8 +271,7 @@ ...@@ -289,8 +271,7 @@
</div> </div>
</div> </div>
<div class="backinfo_Item"> <div class="backinfo_Item">
<span class="role_Line" style="background-color: #f28c1d"></span <span class="role_Line" style="background-color: #f28c1d"></span>教学信息
>教学信息
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
...@@ -303,11 +284,8 @@ ...@@ -303,11 +284,8 @@
<span class="backInfo_Title">班级信息:</span> <span class="backInfo_Title">班级信息:</span>
<span class="backOtherInfo"> <span class="backOtherInfo">
{{ setingObj.DataObj.ClassName }} {{ setingObj.DataObj.ClassName }}
<span <span style="color: #2961fe; cursor: pointer"
style="color: #2961fe; cursor: pointer" @click="goClassManage(setingObj.DataObj.ClassName)">{{ setingObj.ClassNo }}</span>
@click="goClassManage(setingObj.DataObj.ClassName)"
>{{ setingObj.ClassNo }}</span
>
</span> </span>
</div> </div>
</div> </div>
...@@ -320,81 +298,60 @@ ...@@ -320,81 +298,60 @@
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">学习课程:</span> <span class="backInfo_Title">学习课程:</span>
<span <span class="backOtherInfo" style="color: #2961fe; cursor: pointer" @click="
class="backOtherInfo"
style="color: #2961fe; cursor: pointer"
@click="
goCourse( goCourse(
setingObj.DataObj.Order_Guest_ViewModel.CourseName setingObj.DataObj.Order_Guest_ViewModel.CourseName
) )
" ">{{
>{{
setingObj.DataObj.Order_Guest_ViewModel.CourseName setingObj.DataObj.Order_Guest_ViewModel.CourseName
}}</span }}</span>
>
</div> </div>
</div> </div>
<div class="backinfo_Item"> <div class="backinfo_Item">
<span class="role_Line" style="background-color: #02c499"></span <span class="role_Line" style="background-color: #02c499"></span>学习信息
>学习信息
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">总课时:</span> <span class="backInfo_Title">总课时:</span>
<span class="backOtherInfo" <span class="backOtherInfo">{{
>{{
setingObj.DataObj.Order_Guest_ViewModel.TotalHours setingObj.DataObj.Order_Guest_ViewModel.TotalHours
}} }}
课时</span 课时</span>
>
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">已学课时:</span> <span class="backInfo_Title">已学课时:</span>
<span <span class="backOtherInfo" style="color: #2961fe; cursor: pointer" @click="
class="backOtherInfo"
style="color: #2961fe; cursor: pointer"
@click="
goStudentsClassSee( goStudentsClassSee(
setingObj.DataObj.Order_Guest_ViewModel setingObj.DataObj.Order_Guest_ViewModel
) )
" ">{{
>{{
setingObj.DataObj.Order_Guest_ViewModel.CompleteHours setingObj.DataObj.Order_Guest_ViewModel.CompleteHours
}} }}
课时</span 课时</span>
>
<!-- <span class="backOtherInfo">{{setingObj.DataObj.Order_Guest_ViewModel.Ranks}} 课时</span> --> <!-- <span class="backOtherInfo">{{setingObj.DataObj.Order_Guest_ViewModel.Ranks}} 课时</span> -->
</div> </div>
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">剩余课时:</span> <span class="backInfo_Title">剩余课时:</span>
<span class="backOtherInfo" <span class="backOtherInfo">{{
>{{
setingObj.DataObj.Order_Guest_ViewModel.TotalHours - setingObj.DataObj.Order_Guest_ViewModel.TotalHours -
setingObj.DataObj.Order_Guest_ViewModel.CompleteHours setingObj.DataObj.Order_Guest_ViewModel.CompleteHours
}} }}
课时</span 课时</span>
>
</div> </div>
</div> </div>
<div class="backinfo_Item"> <div class="backinfo_Item">
<span class="role_Line" style="background-color: #8175fb"></span <span class="role_Line" style="background-color: #8175fb"></span>其他信息
>其他信息
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">关联单号:</span> <span class="backInfo_Title">关联单号:</span>
<span <span class="backOtherInfo" style="color: #2961fe; cursor: pointer" @click="
class="backOtherInfo"
style="color: #2961fe; cursor: pointer"
@click="
goOrderStatic( goOrderStatic(
setingObj.DataObj.Order_Guest_ViewModel.OrderId setingObj.DataObj.Order_Guest_ViewModel.OrderId
) )
" ">{{ setingObj.DataObj.Order_Guest_ViewModel.OrderId }}</span>
>{{ setingObj.DataObj.Order_Guest_ViewModel.OrderId }}</span
>
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">关联销售:</span> <span class="backInfo_Title">关联销售:</span>
...@@ -404,27 +361,15 @@ ...@@ -404,27 +361,15 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<span class="backInfo_Title" <span class="backInfo_Title">附件:<span v-if="fj.length === 0"></span></span>
>附件:<span v-if="fj.length === 0"></span></span
>
</div> </div>
<div class="row flex" v-if="fj.length > 0"> <div class="row flex" v-if="fj.length > 0">
<div class="_addUpload_box clearfix flex"> <div class="_addUpload_box clearfix flex">
<template v-for="(item, index) in fj"> <template v-for="(item, index) in fj">
<div <div style="width: 138px; height: 92px; overflow: hidden" :key="index"
style="width: 138px; height: 92px; overflow: hidden" @click="showUpLoadFile(item)">
:key="index" <img :src="item.url" v-if="item.type === 2" style="width: 100%; height: auto; overflow: hidden" />
@click="showUpLoadFile(item)" <span v-if="item.type === 1" class="iconfont" :class="
>
<img
:src="item.url"
v-if="item.type === 2"
style="width: 100%; height: auto; overflow: hidden"
/>
<span
v-if="item.type === 1"
class="iconfont"
:class="
item.suffix == 'PDF' item.suffix == 'PDF'
? 'icon-pdf' ? 'icon-pdf'
: item.suffix == 'TXT' : item.suffix == 'TXT'
...@@ -432,20 +377,10 @@ ...@@ -432,20 +377,10 @@
: item.suffix == 'DOCX' || item.suffix == 'DOC' : item.suffix == 'DOCX' || item.suffix == 'DOC'
? 'icon-word' ? 'icon-word'
: 'icon-excel' : 'icon-excel'
" "></span>
></span> <span v-if="item.type === 3" class="iconfont icon-yasuobao"></span>
<span <span v-if="item.type === 4" class="iconfont icon-shipin"></span>
v-if="item.type === 3" <span v-if="item.type === 5" class="iconfont icon-wenjian"></span>
class="iconfont icon-yasuobao"
></span>
<span
v-if="item.type === 4"
class="iconfont icon-shipin"
></span>
<span
v-if="item.type === 5"
class="iconfont icon-wenjian"
></span>
</div> </div>
</template> </template>
</div> </div>
...@@ -464,36 +399,20 @@ ...@@ -464,36 +399,20 @@
</div> </div>
</div> </div>
<div v-if="showType == 2"> <div v-if="showType == 2">
<div <div style="
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-top: 20px; margin-top: 20px;
" ">
>
<div>审批意见</div> <div>审批意见</div>
<div> <div>
<q-radio <q-radio v-model="stopBillMsg.AuditStatus" :val="2" label="通过" />
v-model="stopBillMsg.AuditStatus" <q-radio v-model="stopBillMsg.AuditStatus" :val="3" label="驳回" />
:val="2"
label="通过"
/>
<q-radio
v-model="stopBillMsg.AuditStatus"
:val="3"
label="驳回"
/>
</div> </div>
</div> </div>
<q-input <q-input filled stack-label :dense="false" v-model="stopBillMsg.Description" type="textarea"
filled label="审批意见" />
stack-label
:dense="false"
v-model="stopBillMsg.Description"
type="textarea"
label="审批意见"
/>
</div> </div>
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<div class="row"> <div class="row">
...@@ -501,61 +420,35 @@ ...@@ -501,61 +420,35 @@
<template v-if="tempPeople.length > 0"> <template v-if="tempPeople.length > 0">
<div style="display: inline-block; width: 45px">抄送:</div> <div style="display: inline-block; width: 45px">抄送:</div>
<!-- RecipientIds --> <!-- RecipientIds -->
<div <div style="
style="
display: inline-block; display: inline-block;
margin-left: 5px; margin-left: 5px;
width: 340px; width: 340px;
" ">
> <span class="chaosong_Peo" v-for="(childItem, cindex) in tempPeople">
<span
class="chaosong_Peo"
v-for="(childItem, cindex) in tempPeople"
>
{{ getName(childItem) }} {{ getName(childItem) }}
</span> </span>
</div> </div>
</template> </template>
</div> </div>
<div <div class="col-6" style="
class="col-6"
style="
justify-content: flex-end; justify-content: flex-end;
display: flex; display: flex;
align-items: center; align-items: center;
" ">
> <i class="iconfont icon-aite" style="
<i
class="iconfont icon-aite"
style="
font-size: 20px; font-size: 20px;
margin: 7px 20px 0 0; margin: 7px 20px 0 0;
cursor: pointer; cursor: pointer;
" " v-if="showType == 2">
v-if="showType == 2"
>
<q-popup-proxy> <q-popup-proxy>
<q-banner> <q-banner>
<div style="width: 350px"> <div style="width: 350px">
<div style="margin: 10px 0 15px 0">抄送</div> <div style="margin: 10px 0 15px 0">抄送</div>
<q-select <q-select class="col-6 q-pb-lg q-pr-lg" multiple clearable filled stack-label use-input
class="col-6 q-pb-lg q-pr-lg" option-value="Id" option-label="EmployeeName" v-model="tempPeople" ref="ManagerId"
multiple :options="EmployeeList" label="选择人员" :dense="false" emit-value map-options
clearable @filter="filterFn">
filled
stack-label
use-input
option-value="Id"
option-label="EmployeeName"
v-model="tempPeople"
ref="ManagerId"
:options="EmployeeList"
label="选择人员"
:dense="false"
emit-value
map-options
@filter="filterFn"
>
<template v-slot:no-option> <template v-slot:no-option>
<q-item> <q-item>
<q-item-section class="text-grey"> <q-item-section class="text-grey">
...@@ -569,12 +462,7 @@ ...@@ -569,12 +462,7 @@
</q-popup-proxy> </q-popup-proxy>
</i> </i>
<q-btn class="q-mr-md" label="关闭" @click="closeBackInfo" /> <q-btn class="q-mr-md" label="关闭" @click="closeBackInfo" />
<q-btn <q-btn v-if="showType == 2" color="accent q-px-md" label="确认" @click="saveBackClassInfo()" />
v-if="showType == 2"
color="accent q-px-md"
label="确认"
@click="saveBackClassInfo()"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -582,33 +470,19 @@ ...@@ -582,33 +470,19 @@
</div> </div>
</div> </div>
<div v-if="tabCheck == 'second'"> <div v-if="tabCheck == 'second'">
 <flowinfoForm  <flowinfoForm :seting-obj="setingObj" :showType="showType" @close="closeShenheForm" @success="refreshPage">
:seting-obj="setingObj"
:showType="showType"
@close="closeShenheForm"
@success="refreshPage"
>
</flowinfoForm> </flowinfoForm>
</div> </div>
</q-card> </q-card>
<div <div class="dialog-out-close" @click="closeShenheForm" style="
class="dialog-out-close"
@click="closeShenheForm"
style="
height: 40px !important; height: 40px !important;
border-top-left-radius: 4px !important; border-top-left-radius: 4px !important;
border-bottom-left-radius: 4px !important; border-bottom-left-radius: 4px !important;
" ">
>
<q-icon name="iconfont icon-jujue1" size="26px" /> <q-icon name="iconfont icon-jujue1" size="26px" />
</div> </div>
<div <div v-if="picIsShow" class="_show_img_box" @click="(picIsShow = false), (picObj = [])">
v-if="picIsShow" <div style="
class="_show_img_box"
@click="(picIsShow = false), (picObj = [])"
>
<div
style="
position: absolute; position: absolute;
max-width: 800px; max-width: 800px;
height: auto; height: auto;
...@@ -616,16 +490,9 @@ ...@@ -616,16 +490,9 @@
top: 50%; top: 50%;
margin-left: -400px; margin-left: -400px;
transform: translateY(-50%); transform: translateY(-50%);
" ">
> <el-image style="width: 100%; height: 100%" fit="cover" v-for="(item, index) in picObj" :key="index" :src="item"
<el-image :preview-src-list="picObj">
style="width: 100%; height: 100%"
fit="cover"
v-for="(item, index) in picObj"
:key="index"
:src="item"
:preview-src-list="picObj"
>
</el-image> </el-image>
</div> </div>
</div> </div>
...@@ -633,242 +500,247 @@ ...@@ -633,242 +500,247 @@
</template> </template>
<script> <script>
import flowinfoForm from "../sale/flowinfo-form"; import flowinfoForm from "../sale/flowinfo-form";
import { saveBackBillAduit, queryBackBillMoney } from "../../api/sale/bill"; import {
import { queryEmployee } from "../../api/users/user"; saveBackBillAduit,
export default { queryBackBillMoney
props: { } from "../../api/sale/bill";
setingObj: { import {
type: Object, queryEmployee
default: null, } from "../../api/users/user";
}, export default {
showType: { props: {
type: Number, setingObj: {
default: 1, type: Object,
}, default: null,
}, },
components: { showType: {
flowinfoForm, type: Number,
}, default: 1,
data() {
return {
persistent: true,
tabCheck: "first", //默认选第一个
stopBillMsg: {
Id: 0,
// BackMoney: 0, //实际退款金额
Description: "", //审批意见
AuditStatus: 2, //审核状态
SpecialNode: 0, //是否特殊节点
RecipientIds: "", //抄送人
}, },
classPriceObj: {}, //课程价格信息
EmployeeList: [],
AllemployeeList: [],
tempPeople: [], //抄送人数组
//附件---s
picIsShow: false,
picObj: [],
initialIndex: 0,
//附件---e
};
},
computed: {
fj() {
let arr = [];
let fjlist = this.setingObj.ReceiptFileList;
fjlist.map((item) => {
let suffix = item.split(".")[item.split(".").length - 1].toUpperCase();
if ("DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF|TXT".indexOf(suffix) != "-1") {
let obj = {
url: item,
type: 1,
suffix: suffix,
};
arr.push(obj);
} else if ("GIF|JPG|JPEG|PNG|BMP|WEBP".indexOf(suffix) != "-1") {
let obj = {
url: item,
type: 2,
suffix: suffix,
};
arr.push(obj);
} else if ("ZIP|RAR|7Z|TAR".indexOf(suffix) != "-1") {
let obj = {
url: item,
type: 3,
suffix: suffix,
};
arr.push(obj);
} else if (
"MP4|3GP|AVI|MOV|WMV|RMVB|MKV|M4V|FLV".indexOf(suffix) != "-1"
) {
let obj = {
url: item,
type: 4,
suffix: suffix,
};
arr.push(obj);
} else {
let obj = {
url: item,
type: 5,
suffix: suffix,
};
arr.push(obj);
}
});
return arr;
}, },
}, components: {
created() { flowinfoForm,
this.getEmployee();
},
mounted() {
this.stopBillMsg.Id = this.setingObj.Id;
this.stopBillMsg.SpecialNode = this.setingObj.SpecialNode;
if (this.stopBillMsg.SpecialNode == 1) {
this.getBackBillMoney();
}
},
methods: {
getBackBillMoney() {
queryBackBillMoney({
BackId: this.setingObj.RelationId,
}).then((res) => {
if (res.Code == 1) {
this.classPriceObj = res.Data;
}
});
}, },
closeBackInfo() { data() {
this.persistent = false; return {
this.$emit("close"); persistent: true,
tabCheck: "first", //默认选第一个
stopBillMsg: {
Id: 0,
// BackMoney: 0, //实际退款金额
Description: "", //审批意见
AuditStatus: 2, //审核状态
SpecialNode: 0, //是否特殊节点
RecipientIds: "", //抄送人
},
classPriceObj: {}, //课程价格信息
EmployeeList: [],
AllemployeeList: [],
tempPeople: [], //抄送人数组
//附件---s
picIsShow: false,
picObj: [],
initialIndex: 0,
//附件---e
};
}, },
//停课单据审核 computed: {
saveBackClassInfo() { fj() {
var str = ""; let arr = [];
if (this.tempPeople && this.tempPeople.length > 0) { let fjlist = this.setingObj.ReceiptFileList;
this.tempPeople.forEach((item) => { fjlist.map((item) => {
str += "," + item; let suffix = item.split(".")[item.split(".").length - 1].toUpperCase();
if ("DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF|TXT".indexOf(suffix) != "-1") {
let obj = {
url: item,
type: 1,
suffix: suffix,
};
arr.push(obj);
} else if ("GIF|JPG|JPEG|PNG|BMP|WEBP".indexOf(suffix) != "-1") {
let obj = {
url: item,
type: 2,
suffix: suffix,
};
arr.push(obj);
} else if ("ZIP|RAR|7Z|TAR".indexOf(suffix) != "-1") {
let obj = {
url: item,
type: 3,
suffix: suffix,
};
arr.push(obj);
} else if (
"MP4|3GP|AVI|MOV|WMV|RMVB|MKV|M4V|FLV".indexOf(suffix) != "-1"
) {
let obj = {
url: item,
type: 4,
suffix: suffix,
};
arr.push(obj);
} else {
let obj = {
url: item,
type: 5,
suffix: suffix,
};
arr.push(obj);
}
}); });
return arr;
},
},
created() {
this.getEmployee();
},
mounted() {
this.stopBillMsg.Id = this.setingObj.Id;
this.stopBillMsg.SpecialNode = this.setingObj.SpecialNode;
if (this.stopBillMsg.SpecialNode == 1) {
this.getBackBillMoney();
} }
if (str && str != "") {
str = str.substr(1);
}
this.stopBillMsg.RecipientIds = str;
saveBackBillAduit(this.stopBillMsg).then((res) => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "审核成功!",
position: "top",
});
//调用父页面成功方法
this.$emit("success");
this.$emit("close");
}
});
}, },
//获取员工列表 methods: {
getEmployee() { getBackBillMoney() {
var qMsg = { queryBackBillMoney({
EmployeeName: "", BackId: this.setingObj.RelationId,
}; }).then((res) => {
queryEmployee(qMsg).then((res) => { if (res.Code == 1) {
if (res.Code == 1) { this.classPriceObj = res.Data;
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
this.AllemployeeList = JSON.parse(JSON.stringify(jsonData));
this.EmployeeList = JSON.parse(JSON.stringify(jsonData));
} }
});
},
closeBackInfo() {
this.persistent = false;
this.$emit("close");
},
//停课单据审核
saveBackClassInfo() {
var str = "";
if (this.tempPeople && this.tempPeople.length > 0) {
this.tempPeople.forEach((item) => {
str += "," + item;
});
} }
}); if (str && str != "") {
}, str = str.substr(1);
//筛选员工
filterFn(val, update) {
update(() => {
if (val === "") {
this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList));
} else {
const needle = val.toLowerCase();
this.EmployeeList = this.AllemployeeList.filter(
(v) => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
} }
}); this.stopBillMsg.RecipientIds = str;
}, saveBackBillAduit(this.stopBillMsg).then((res) => {
//获取员工姓名 if (res.Code == 1) {
getName(id) { this.$q.notify({
let str = ""; icon: "iconfont icon-chenggong",
this.EmployeeList.forEach((x) => { color: "accent",
if (id == x.Id) { timeout: 2000,
str = x.EmployeeName; message: "审核成功!",
} position: "top",
}); });
return str; //调用父页面成功方法
}, this.$emit("success");
//跳转到班级管理 this.$emit("close");
goClassManage(ClassName) { }
this.OpenNewUrl("/course/classManage", { });
ClassName: ClassName, },
}); //获取员工列表
}, getEmployee() {
//跳转到报名统计 var qMsg = {
goOrderStatic(OrderId) { EmployeeName: "",
this.OpenNewUrl("/sale/orderStatistics", { };
OrderId: OrderId, queryEmployee(qMsg).then((res) => {
}); if (res.Code == 1) {
}, var jsonData = res.Data;
//跳转到课耗明细 if (jsonData && jsonData.length > 0) {
goStudentsClassSee(item) { this.AllemployeeList = JSON.parse(JSON.stringify(jsonData));
this.OpenNewUrl("/teacher/studentsClassSee", { this.EmployeeList = JSON.parse(JSON.stringify(jsonData));
StudentId: item.Id, }
TeacherId: item.Teacher_Id, }
ClassId: item.ClassId, });
}); },
}, //筛选员工
//跳转到课程管理 filterFn(val, update) {
goCourse(name) { update(() => {
this.OpenNewUrl("/course/course", { if (val === "") {
Name: name, this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList));
}); } else {
}, const needle = val.toLowerCase();
refreshPage() { this.EmployeeList = this.AllemployeeList.filter(
this.persistent = false; (v) => v.EmployeeName.toLowerCase().indexOf(needle) > -1
this.$emit("success"); );
}, }
closeShenheForm() { });
this.persistent = false; },
this.$emit("close"); //获取员工姓名
}, getName(id) {
handleDate(T) { let str = "";
let date = T.split("T"); this.EmployeeList.forEach((x) => {
return date[0]; if (id == x.Id) {
}, str = x.EmployeeName;
showUpLoadFile(i) { }
// 预览上传文件 });
if (i.type == 2) { return str;
this.picObj.push(i.url); },
this.picIsShow = true; //跳转到班级管理
} else if (i.type == 1) { goClassManage(ClassName) {
if (i.suffix == "PDF" || i.suffix == "TXT") { this.OpenNewUrl("/course/classManage", {
this.previewPDF(i.url); ClassName: ClassName,
});
},
//跳转到报名统计
goOrderStatic(OrderId) {
this.OpenNewUrl("/sale/orderStatistics", {
OrderId: OrderId,
});
},
//跳转到课耗明细
goStudentsClassSee(item) {
this.OpenNewUrl("/teacher/studentsClassSee", {
StudentId: item.Id,
TeacherId: item.Teacher_Id,
ClassId: item.ClassId,
});
},
//跳转到课程管理
goCourse(name) {
this.OpenNewUrl("/course/course", {
Name: name,
});
},
refreshPage() {
this.persistent = false;
this.$emit("success");
},
closeShenheForm() {
this.persistent = false;
this.$emit("close");
},
handleDate(T) {
let date = T.split("T");
return date[0];
},
showUpLoadFile(i) {
// 预览上传文件
if (i.type == 2) {
this.picObj.push(i.url);
this.picIsShow = true;
} else if (i.type == 1) {
if (i.suffix == "PDF" || i.suffix == "TXT") {
this.previewPDF(i.url);
} else {
this.downloadFile(i);
}
} else { } else {
this.downloadFile(i); this.downloadFile(i);
} }
} else { },
this.downloadFile(i); downloadFile(i) {
} const a = document.createElement("a");
}, a.setAttribute("download", "");
downloadFile(i) { a.setAttribute("href", i.url);
const a = document.createElement("a"); a.click();
a.setAttribute("download", ""); },
a.setAttribute("href", i.url);
a.click();
}, },
}, };
}; </script>
</script> \ No newline at end of file
...@@ -81,6 +81,18 @@ ...@@ -81,6 +81,18 @@
field: 'PeopleNum', field: 'PeopleNum',
align: 'left', align: 'left',
}, },
{
name: 'BalanceStateStr',
label: '返佣',
field: 'BalanceStateStr',
align: 'left',
},
{
name: 'RemitStr',
label: '提现',
field: 'RemitStr',
align: 'left',
},
{ {
name: 'UpdateTimeStr', name: 'UpdateTimeStr',
label: '更新时间', label: '更新时间',
...@@ -96,7 +108,7 @@ ...@@ -96,7 +108,7 @@
pageSize: 12, pageSize: 12,
rowsPerPage: 12, rowsPerPage: 12,
RebateType: 1, RebateType: 1,
Description:"", Description: "",
}, },
pageCount: 0, pageCount: 0,
taskOption: null, taskOption: null,
......
...@@ -45,101 +45,113 @@ ...@@ -45,101 +45,113 @@
data() { data() {
return { return {
columns: [{ columns: [{
name: 'BalanceTypeStr', name: 'BalanceTypeStr',
label: '类型', label: '类型',
field: 'BalanceTypeStr', field: 'BalanceTypeStr',
align: 'left' align: 'left'
},
{
name: 'Money',
label: '变更金额',
align: 'left',
field: 'Money'
},
{
name: 'Description',
label: '变更详情',
field: 'Description',
align: 'left',
},
{
name: 'ClassName',
label: '班级信息',
field: 'ClassName',
align: 'left',
},
{
name: 'OrderId',
label: '订单编号',
field: 'OrderId',
align: 'left',
},
{
name: 'PeopleNum',
label: '订单人数',
field: 'PeopleNum',
align: 'left',
},
{
name: 'UpdateTimeStr',
label: '更新时间',
field: 'UpdateTimeStr',
align: 'left',
},
],
dataList: [],
loading: true,
msg: {
CustomerId: 0,
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
RebateType: 2,
Description:"",
}, },
pageCount: 0, {
taskOption: null, name: 'Money',
isShowTask: false, label: '变更金额',
} align: 'left',
}, field: 'Money'
created() {
if (this.$route.query && this.$route.query.CustomerId) {
this.msg.CustomerId = this.$route.query.CustomerId
}
},
mounted() {
this.getList()
},
methods: {
resetSearch() {
this.loading = true;
this.msg.pageIndex = 1;
this.getList();
}, },
{
changePage(val) { name: 'Description',
this.msg.pageIndex = val; label: '变更详情',
this.loading = true; field: 'Description',
this.getList(); align: 'left',
}, },
RefreshPage() { {
this.getList() name: 'ClassName',
label: '班级信息',
field: 'ClassName',
align: 'left',
}, },
//获取数据 {
getList() { name: 'OrderId',
this.loading = true; label: '订单编号',
GetCustomerBalanceDetailPage(this.msg).then(res => { field: 'OrderId',
this.loading = false; align: 'left',
if (res.Code == 1) { },
this.dataList = res.Data.PageData; {
this.pageCount = res.Data.PageCount; name: 'PeopleNum',
} label: '订单人数',
}).catch(() => { field: 'PeopleNum',
this.loading = false align: 'left',
}) },
} {
name: 'BalanceStateStr',
label: '返佣',
field: 'BalanceStateStr',
align: 'left',
},
{
name: 'RemitStr',
label: '提现',
field: 'RemitStr',
align: 'left',
},
{
name: 'UpdateTimeStr',
label: '更新时间',
field: 'UpdateTimeStr',
align: 'left',
},
],
dataList: [],
loading: true,
msg: {
CustomerId: 0,
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
RebateType: 2,
Description: "",
}, },
} pageCount: 0,
taskOption: null,
isShowTask: false,
}
},
created() {
if (this.$route.query && this.$route.query.CustomerId) {
this.msg.CustomerId = this.$route.query.CustomerId
}
},
mounted() {
this.getList()
},
methods: {
resetSearch() {
this.loading = true;
this.msg.pageIndex = 1;
this.getList();
},
changePage(val) {
this.msg.pageIndex = val;
this.loading = true;
this.getList();
},
RefreshPage() {
this.getList()
},
//获取数据
getList() {
this.loading = true;
GetCustomerBalanceDetailPage(this.msg).then(res => {
this.loading = false;
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}
}).catch(() => {
this.loading = false
})
}
},
}
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
......
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