Commit fa6dba0b authored by 罗超's avatar 罗超
parents eeade482 390b7d26
......@@ -12,7 +12,7 @@ export default {
<style>
@import url("~assets/css/font.css");
@import url("//at.alicdn.com/t/font_2077629_fty5i519neb.css");
@import url("//at.alicdn.com/t/font_2077629_ew7nihu6b4p.css");
.q-scrollarea__thumb {
z-index: 999999 !important;
}
......
......@@ -75,6 +75,44 @@ export function getBuyingRequisitionAuditDetail(data) {
});
}
//耗材 入库单的审核
export function suppliesStockInAuditOrRefund(data) {
return request({
url: '/supplies/SuppliesStockInAuditOrRefund',
method: 'post',
data
});
}
//耗材 入库单的详情
export function getSuppliesStockInAuditDetail(data) {
return request({
url: '/supplies/GetSuppliesStockInAuditDetail',
method: 'post',
data
});
}
//资产 入库单的审核
export function propertyStockInAuditOrRefund(data) {
return request({
url: '/property/PropertyStockInAuditOrRefund',
method: 'post',
data
});
}
//资产 入库单的详情
export function getPropertyStockInAuditDetail(data) {
return request({
url: '/property/GetPropertyStockInAuditDetail',
method: 'post',
data
});
}
export function UploadSelfFileT(path, files, successCall, ocr) {
......
......@@ -38,7 +38,7 @@
</q-item-section>
</q-item>
<!-- 跳转资产 -->
<q-item class="q-my-sm" clickable v-ripple @click="goUrlZC">
<q-item class="q-my-sm" clickable v-ripple @click="goUrlZC(1)">
<q-item-section avatar>
<q-avatar style="background-color: #F3F6F9;" rounded size="40px" text-color="primary">
<i class="iconfont icon-zichan"></i>
......@@ -48,6 +48,28 @@
<q-item-label class="font-pfb">资产管理</q-item-label>
</q-item-section>
</q-item>
<!-- 跳转资产 -->
<q-item class="q-my-sm" clickable v-ripple @click="goUrlZC(2)">
<q-item-section avatar>
<q-avatar style="background-color: #F3F6F9;" rounded size="40px" text-color="primary">
<i class="iconfont icon-qinggoudan"></i>
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label class="font-pfb">请购审核</q-item-label>
</q-item-section>
</q-item>
<!-- 跳转资产 -->
<q-item class="q-my-sm" clickable v-ripple @click="goUrlZC(3)">
<q-item-section avatar>
<q-avatar style="background-color: #F3F6F9;" rounded size="40px" text-color="primary">
<i class="iconfont icon-ruku"></i>
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label class="font-pfb">入库审核</q-item-label>
</q-item-section>
</q-item>
</q-list>
<q-separator color="grey-2" class="q-my-md"></q-separator>
<div class="text-weight-bold" style="font-size:16px;">常用功能</div>
......@@ -170,13 +192,22 @@ export default {
})
},
goUrlZC() {
goUrlZC(type) {
let userinfo = this.getLocalStorage();
let token=Lockr.get("Token");
// let url = "http://www.test.com:8080/#/Autologin?ObjInfo=" + token + "&SecretKey=" + userinfo.UploadConfig.SecretKey;
// let url = "http://zcyx.oytour.com/#/Autologin?ObjInfo=" + token + "&SecretKey=" + userinfo.UploadConfig.SecretKey;
if(type==1){
let url = url_jump_zc +"/#/Autologin?ObjInfo=" + token + "&SecretKey=" + userinfo.UploadConfig.SecretKey;
window.open(url)
}else if(type==2){
let url = url_jump_zc +"/#/Autologin?ObjInfo=" + token + "&SecretKey=" + userinfo.UploadConfig.SecretKey+ "&ComeFrom=2";
window.open(url)
}else if(type==3){
let url = url_jump_zc +"/#/Autologin?ObjInfo=" + token + "&SecretKey=" + userinfo.UploadConfig.SecretKey+ "&ComeFrom=3";
window.open(url)
}
},
},
}
......
This diff is collapsed.
......@@ -66,15 +66,18 @@
<q-badge v-if="item.TargetJoinType==3" color="green" label="已续费" style="margin-left:5px;"
class="q-mr-xs" />
<div style="display:inline-block;">
<q-badge v-if="(item.JoinType==4||item.JoinType==5 ||item.TargetJoinType==4||item.TargetJoinType==5) &&item.FirstOrderId>0" color="blue" label="关联拆分订单"
style="margin-left:5px;cursor:pointer;">
<q-badge
v-if="(item.JoinType==4||item.JoinType==5 ||item.TargetJoinType==4||item.TargetJoinType==5) &&item.FirstOrderId>0"
color="blue" label="关联拆分订单" style="margin-left:5px;cursor:pointer;">
</q-badge>
<q-popup-proxy>
<q-banner>
<div style="width: 500px;">
<template v-if="item.SplitDetailsList&&item.SplitDetailsList.length>0">
<div style="margin-bottom:5px;color:#000;" v-for="(subItem,subIndex) in item.SplitDetailsList" :key="subIndex">
从 【{{subItem.S_ClassName}}】({{subItem.S_OrderId}}) {{subItem.T_JoinTypeName}}到【{{subItem.T_ClassName}}】({{subItem.T_OrderId}})
<div style="margin-bottom:5px;color:#000;" v-for="(subItem,subIndex) in item.SplitDetailsList"
:key="subIndex">
从 【{{subItem.S_ClassName}}】({{subItem.S_OrderId}})
{{subItem.T_JoinTypeName}}到【{{subItem.T_ClassName}}】({{subItem.T_OrderId}})
</div>
</template>
</div>
......@@ -387,7 +390,10 @@
</tr>
<tr v-for="subItem in item.GuestList">
<td>{{subItem.GuestName}}</td>
<td>{{subItem.ContractNo}}</td>
<td>
<span style="color:var(--q-color-primary);cursor:pointer;"
@click="getShowContract(subItem)">{{subItem.ContractNo}}</span>
</td>
<td>{{subItem.ContractStatusStr}}</td>
<td>
<template v-if="subItem.ContractId==0">
......@@ -875,6 +881,23 @@
<!--合同信息-->
<eduinfo-form v-if="isShowEduForm" :seting-obj="eduObj" @close="closeEdudia" @success="refreshPage">
</eduinfo-form>
<div v-if="isShowContract" class="_show_img_box" @click="(isShowContract = false), (imgViewList = [])">
<div style="
position: absolute;
width: 800px;
height: 600px;
left: 50%;
top: 50%;
margin-left: -400px;
margin-top: -300px;
">
<el-carousel :initial-index="initialIndex" height="600px" :interval="5000" trigger="click">
<el-carousel-item style="height: 600px; overflow: auto" v-for="(item, index) in imgViewList" :key="index">
<img :src="item" style="" />
</el-carousel-item>
</el-carousel>
</div>
</div>
</div>
</template>
......@@ -1017,6 +1040,10 @@
HelpEnterId: '',
}, //关联老师参数
TeacherList: [], //下拉老师
isShowContract: false,
imgViewUrl: '',
imgViewList: [],
initialIndex: 0,
}
},
created() {
......@@ -1060,6 +1087,21 @@
},
mounted() {},
methods: {
//点击合同编号预览
getShowContract(item) {
this.isShowPop=false;
if (item.ContractUrlList.length > 0) {
//预览图片
if (item.ContractType == 2) {
this.isShowContract = true;
this.imgViewUrl = item.ContractUrlList[0];
this.imgViewList = item.ContractUrlList;
}
if(item.ContractType==1){
this.previewPDF(item.ContractUrlList[0]);
}
}
},
//初始化权限信息
initAuth() {
if (this.authObj) {
......
......@@ -315,7 +315,7 @@
</div>
</template>
<div v-if="GetDetail.Is_CanAudit==1 && compType=='shenpi' && !needSign" class="_upload_box" style="margin-bottom:20px;padding-left:75px">
<ul class="clearfix">
<ul class="clearfix" style="padding: 0;margin: 0;">
<li v-for="(img,imgIndex) in uploadImgList" :key="imgIndex">
<img :src="img" alt="">
<div class="_delete_img" @click="deleteImg(imgIndex)">
......@@ -406,7 +406,9 @@
import CheckDetails from "./CheckDetails.vue";
import {getAuditChangeLogPageList,setBuyingRequisitionManagers,getEmployeeList,bRAuditOrRefund,getBuyingRequisitionAuditDetail} from "../../../api/administration/AssetsShenpi"
import {url_jump_zc,ViittoFileUrl} from "../../../utils/url"
import {
UploadSelfFile
} from '../../../api/common/common'
export default {
name: 'PurchaseRequisitionDetail',
components: {
......@@ -574,8 +576,13 @@ export default {
var fileName = `${that.uuid(10,10)}.png`;
var path = `/assets/sign/`;
newArr.push(this.dataURLtoFile(imgUrl,fileName))
this.UploadSelfFileT(path, newArr, x => {
this.addMsg.SignImage=that.domainManager().ViittoFileUrl+x.data.FilePath;
// this.UploadSelfFileT(path, newArr, x => {
// this.addMsg.SignImage=that.domainManager().ViittoFileUrl+x.data.FilePath;
// }, 1);
UploadSelfFile('Temporary', this.dataURLtoFile(imgUrl,fileName), x => {
if(x.Code==1){
this.addMsg.SignImage = x.FileUrl
}
}, 1);
this.signState=false;
......@@ -784,10 +791,12 @@ export default {
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => {
let obj = this.domainManager().ViittoFileUrl + x.data.FilePath
UploadSelfFile('Temporary', file.file, x => {
if(x.Code==1){
let obj = x.FileUrl
this.uploadImgList.push(obj)
this.$message.success('上传成功')
}
}, 1);
},
getDetail(){
......
<template>
<div>
退学协议管理
</div>
</template>
\ No newline at end of file
<template>
<div>报名合同管理</div>
</template>
\ No newline at end of file
<style>
.TuitractView {
width: 930px;
min-height: 500px;
height: auto;
margin: auto;
padding: 20px 0;
color: #000;
}
.firstPage {
margin: 30px;
}
.operationAgree {
font-size: 40px;
letter-spacing: 10px;
text-align: center;
margin: 20px 0;
}
.operationTitle {
display: flex;
align-items: baseline;
justify-content: center;
position: relative;
}
.TuiContract {
position: absolute;
bottom: 28px;
right: 130px;
}
.Tui_Jiafang{
display:flex;
font-size:20px;
margin-bottom:20px;
}
.Tui_Inner{
text-indent: 40px;
font-size:20px;
line-height: 35px;
margin-bottom:10px;
}
.TuitractInput {
border: 0;
display: inline-block;
border-bottom: 1px solid #c0c0c0;
width: 200px;
font-size: 20px;
text-align: center;
text-indent: 0;
}
.Tui_SignZhang{
display: flex;
font-size:20px;
justify-content: space-between;
margin-bottom:20px;
}
</style>
<template>
<div class="TuitractView">
<div class="firstPage">
<div class="operationTitle">
<div class="operationAgree">培训课程退款协议</div>
<div class="TuiContract">合约编号:123</div>
</div>
<div class="Tui_Jiafang">
<div style="margin-right:100px;">甲方:</div>
<div>(家长/监护人):</div>
</div>
<div class="Tui_Jiafang">
<div style="margin-right:150px;">乙方:</div>
<div>法定代表人:</div>
</div>
<div class="Tui_Inner">
甲乙双方经平等友好协商就 <div class="TuitractInput" style="width: 90px;">1988</div>
<div class="TuitractInput" style="width: 80px;">12</div><div class="TuitractInput" style="width: 80px;">12</div>
签订的《培训课程协议》解除合作关系。
</div>
<div class="Tui_Inner">第一条:原协议内容</div>
<div class="Tui_Inner">
原协议报名人员:<div class="TuitractInput" style="width: 300px;">1988</div>
</div>
<div class="Tui_Inner">
原报名项目:<div class="TuitractInput" style="width: 300px;">1988</div>
</div>
<div class="Tui_Inner">
原报名项目原价:<div class="TuitractInput" style="width: 100px;">1988</div>
折后(优惠)价:<div class="TuitractInput" style="width: 100px;">1988</div>
</div>
<div class="Tui_Inner">
原协议已收学费:<div class="TuitractInput" style="width: 300px;text-align:left;">
大写:
</div>
(¥<div class="TuitractInput" style="width: 100px;">12</div>元整)。
</div>
<div class="Tui_Inner">
原收据编号:<div class="TuitractInput" style="width: 150px;"></div>
</div>
<div class="Tui_Inner">
原收款人:<div class="TuitractInput" style="width: 150px;"></div>
</div>
<div class="Tui_Inner">
第二条:乙方共计课时<div class="TuitractInput" style="width: 80px;"></div>节;已销课时
<div class="TuitractInput" style="width: 80px;"></div>节:剩余课时
<div class="TuitractInput" style="width: 80px;"></div>
</div>
<div class="Tui_Inner">
甲方应退还乙方未上课时费用<div class="TuitractInput" style="width: 200px;">五千六百八十元整</div>
(¥<div class="TuitractInput" style="width: 80px;"></div>元整),原协
议自动终止、收据自动失效。退还帐户名<div class="TuitractInput" style="width: 200px;"></div>,退还帐号:<div class="TuitractInput" style="width: 300px;"></div>
退还学费=乙方已缴总学费-已上课程学费-(乙方已缴学费-已上课程学费)*10%,其中“(乙方已缴课程学费)*10%”为违约金。
</div>
<div class="Tui_Inner">
第三条:乙方应将原协议和收据原件交还甲方,若原件无法交还,请乙方<br/>在此声明:
<div class="TuitractInput" style="width: 300px;"></div>
</div>
<div class="Tui_Inner">
第四条:本协议自签订之日起正式生效。
</div>
<div class="Tui_SignZhang">
<div>甲方(家长/监护人)签字(盖章): </div>
<div>甲方(家长/监护人)签字(盖章): </div>
</div>
<div class="Tui_SignZhang">
<div>签署日期:</div>
<div>签署日期:</div>
</div>
</div>
</div>
</template>
......@@ -383,6 +383,9 @@ export default {
this.getList();
},
methods: {
onItemClick(){
},
//获取校区列表
getList() {
this.loading = true;
......
......@@ -46,10 +46,13 @@
text-align: center;
line-height: 20px;
}
.el-image-viewer__wrapper{
z-index:9999!important;
}
</style>
<template>
<div class="page-body">
<div class="page-content">
<div class="page-content student_List">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="stickycreatInsertStr-column-table" separator="none" :data="data" :columns="columns" row-key="name"
:visible-columns="visibleColumns">
......@@ -214,14 +217,14 @@
</div>
<div>
<div class="_addUpload_stu" style="margin:15px 0 0 20px;min-height:100px;">
<template v-for="(file, fIndex) in saveMsg">
<div v-if="file.Type == 2">
<template v-for="(file, fIndex) in addMsg.ContractUrl">
<div v-if="addMsg.ContractType == 2">
<div style="width: 100%; height: 100%; overflow: hidden">
<img :src="file.Url ? file.Url : file.Content" @click="showUpLoadFile(file)" />
<el-image style="width: 100%; height: 100%" :src="file" :preview-src-list="addMsg.ContractUrl"></el-image>
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type == 1" style="float:left;">
<div v-if="addMsg.ContractType == 1" style="float:left;">
<div class="iconfont icon-pdf" style="font-size:38px;color:green;text-align:center;line-height:75px;" @click="showUpLoadFile(file)"></div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
......@@ -244,23 +247,6 @@
</q-card-actions>
</q-card>
</q-dialog>
<div v-if="picIsShow" class="_show_img_box" @click="(picIsShow = false), (picObj = [])">
<div style="
position: absolute;
width: 800px;
height: 600px;
left: 50%;
top: 50%;
margin-left: -400px;
margin-top: -300px;
">
<el-carousel :initial-index="initialIndex" height="600px" :interval="5000" trigger="click">
<el-carousel-item style="height: 600px; overflow: auto" v-for="(item, index) in picObj" :key="index">
<img :src="item" style="" />
</el-carousel-item>
</el-carousel>
</div>
</div>
</div>
</template>
......@@ -439,9 +425,6 @@
visibleColumns: [
], //可见列
saveMsg: [],
picObj: [],
picIsShow:false,
initialIndex: 0,
ContractTypeList:[{
Name:'PDF',
......@@ -491,37 +474,19 @@
},
methods: {
resetContractArr(){
this.saveMsg = [];
this.addMsg.ContractUrl = [];
},
showUpLoadFile(i) {
// 预览上传文件
if (i.Type == 3) {
this.picObj.push(i.Url);
// this.imgList.push(i.Url)
this.picIsShow = true;
} else {
if (
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "PDF" ||
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "TXT"
) {
this.previewPDF(i.Url);
showUpLoadFile(file) {
if (file) {
this.previewPDF(file);
} else {
window.open(
"https://view.officeapps.live.com/op/view.aspx?src=" + i.Url
"https://view.officeapps.live.com/op/view.aspx?src=" + file
);
}
}
},
deleteUploadFile(i) {
// 删除上传文件
this.saveMsg.splice(i, 1);
this.addMsg.ContractUrl.splice(i, 1);
},
uploadFileBtn(file) {
......@@ -572,12 +537,6 @@
if (x.Code == 1) {
if(this.addMsg.ContractType==1){
if(this.addMsg.ContractUrl.length<1){
this.saveMsg.push({
Content: x.FileUrl,
ID: 0,
Type: fileTypeNumber,
Url: x.FileUrl,
});
this.addMsg.ContractUrl.push(x.FileUrl);
}else{
this.$q.notify({
......@@ -587,12 +546,6 @@
})
}
}else{
this.saveMsg.push({
Content: x.FileUrl,
ID: 0,
Type: fileTypeNumber,
Url: x.FileUrl,
});
this.addMsg.ContractUrl.push(x.FileUrl);
}
this.$message.success(this.$t("tips.scchenggong"));
......@@ -781,17 +734,6 @@
this.addMsg.ContractType = item.ContractType;
this.addMsg.GuestContractNo = item.GuestContractNo;
this.addMsg.ContractUrl = item.ContractUrlList;
this.saveMsg=[];
if(this.addMsg.ContractUrl&&this.addMsg.ContractUrl.length>0){
this.addMsg.ContractUrl.forEach(x=>{
this.saveMsg.push({
Content: x,
ID: 0,
Type: this.addMsg.ContractType,
Url: x
});
})
}
this.persistent = true;
},
//删除学员
......
......@@ -669,6 +669,16 @@ const routes = [{
component: () =>
import("pages/administration/outWorkApproval.vue")
},
{
path: "/administration/registContractManage", //报名合同管理
component: () =>
import("pages/administration/registContractManage.vue")
},
{
path: "/administration/dropSchoolManage", //退学协议管理
component: () =>
import("pages/administration/dropSchoolManage.vue")
},
{
path: "/sale/japaneseTrain", //日语培训列表
component: () =>
......@@ -1140,6 +1150,11 @@ const routes = [{
component: () =>
import("pages/contractView.vue")
},
{
path: "/courseRefund",
component: () =>
import("pages/courseRefund.vue")
},
{
path: "/financial/financalDocument/PrintPage", //财务单据打印
component: () =>
......@@ -1168,6 +1183,16 @@ const routes = [{
title: '资产管理'
},
},
{
path: "/SuppliesStockInShenpi", //耗材入库审核
component: () =>
import("pages/administration/AssetsSystem/SuppliesStockInShenpi")
},
{
path: "/PropertyStockInShenpi", //资产入库审核
component: () =>
import("pages/administration/AssetsSystem/PropertyStockInShenpi")
},
{
path: "/course/chapter-editor", //章节管理
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