Commit 7bb81535 authored by 黄奎's avatar 黄奎
parents bdbf6e4b e29c7c13
......@@ -41,6 +41,41 @@ export function getPropertyInfo(data) {
data
});
}
//设置经办人
export function setBuyingRequisitionManagers(data) {
return request({
url: '/property/SetBuyingRequisitionManagers',
method: 'post',
data
});
}
//获取经办人的列表
export function getEmployeeList(data) {
return request({
url: '/User/GetEmployeeList',
method: 'post',
data
});
}
// 请购单审核
export function bRAuditOrRefund(data) {
return request({
url: '/property/BRAuditOrRefund',
method: 'post',
data
});
}
// 请购单审核
export function getBuyingRequisitionAuditDetail(data) {
return request({
url: '/property/GetBuyingRequisitionAuditDetail',
method: 'post',
data
});
}
export function UploadSelfFileT(path, files, successCall, ocr) {
if (files && files.length > 0) {
......
import request from '../../utils/request'
import request_zc from '../../utils/request_zc'
/**
* 获取收支明细数据
......@@ -44,4 +45,28 @@ export function getEasyReportList(data) {
method: 'post',
data
})
}
// 财务单据 资产采购详情
export function getPropertyProcurementInfo(data) {
return request_zc({
url: '/property/GetPropertyProcurementInfo',
method: 'post',
data
});
}
// 财务单据 耗材采购详情
export function getSuppliesProcurementInfo(data) {
return request_zc({
url: '/supplies/GetSuppliesProcurementInfo',
method: 'post',
data
});
}
// 财务单据 教育出库详情
export function getStockOutPageList(data) {
return request_zc({
url: '/Warehouse/GetStockOutPageList',
method: 'post',
data
});
}
\ No newline at end of file
......@@ -30,7 +30,7 @@
<q-tab-panel name="msg" class="scroll _scrollbar">
<q-list v-if="socektArr.length>0">
<q-item class="q-my-sm q-pa-xs items-start" v-for="(x,i) in socektArr" :key="i" clickable v-ripple
@click="goMsgDetail(x.JumpUrl),readMsgLog(x.Id,i)">
@click="goMsgDetail(x.JumpUrl,x),readMsgLog(x.Id,i)">
<!-- <q-item-section avatar>
<q-avatar :style="{'background-color':x.icons.backgroundColor}" rounded size="40px"
:text-color="x.icons.color">
......@@ -97,6 +97,7 @@
import {
sendSock
} from '../../api/common/socket'
import {url_jump_zc} from "../../utils/url"
import noneData from './none-data'
import NoneData from './none-data.vue'
......@@ -328,24 +329,31 @@
},
//跳转链接 新页面打开
goMsgDetail(url) {
var hostName = window.location.hostname;
var port = window.location.port;
var newurl = ""
if (url != null && url.length > 0) {
if (url.indexOf('http://') == -1 || url.indexOf('https://') == -1) {
if (url.indexOf("www") == -1) {
newurl = "http://" + hostName + (port != 80 ? ":" + port : "") + "/#" + url;
} else {
newurl = "http://" + url;
goMsgDetail(url,item) {
if(item.CategoryId == 5){
let zcurl=url_jump_zc+'#'+url;
// let zcurl='http://www.test.com:8080/#'+url;
window.open(zcurl)
}else{
var hostName = window.location.hostname;
var port = window.location.port;
var newurl = ""
if (url != null && url.length > 0) {
if (url.indexOf('http://') == -1 || url.indexOf('https://') == -1) {
if (url.indexOf("www") == -1) {
newurl = "http://" + hostName + (port != 80 ? ":" + port : "") + "/#" + url;
} else {
newurl = "http://" + url;
}
} else {
newurl = url
}
}
if (newurl) {
window.open(newurl, "_blank");
}
} else {
newurl = url
}
}
if (newurl) {
window.open(newurl, "_blank");
}
},
//看过后删除
readMsgLog(Id, index) {
......
<template>
<div class="page-body">
<div class="approvalDetails " v-loading="pageLoad">
<div style="border-bottom:1px solid #E2E4EB;padding-bottom:10px">
<span class="pageTitle" style="float:inherit">请购单详情</span>
<span @click="backTo" class="backTo" style="">返回</span>
<span @click="GoZcUrl" style="font-size:12px;text-decoration:underline;cursor: pointer;float:right">跳转到资产管理</span>
</div>
<div style="margin-top:30px;background:rgba(255,255,255,1);border-radius:10px;padding:20px;position:relative;">
<el-row class="HeaderDiv" style="border-bottom:1px solid #E2E4EB;padding-bottom:20px">
<!-- <span class="underline"></span>
<el-col :span="12" style="position:relative;padding-left:50px">
<span class="titleSpan">
<span>{{GetDetail.FirstStr}}</span>
</span>-->
<p class="c11 f14" style="padding-top:12px">{{GetDetail.BuyStatusName}}</p>
<!-- <span class="underline"></span>
</el-col>
<el-col class="StateCol" :span="12" style="text-align:right;padding-top:15px">
<span v-if="GetDetail.AuditStatus==1" class="spz">{{GetDetail.AuditStatusName}}</span>
<span v-if="GetDetail.AuditStatus==2 || GetDetail.AuditStatus==4" class="ytg">{{GetDetail.AuditStatusName}}</span>
<span v-if="GetDetail.AuditStatus==3 || GetDetail.AuditStatus==5" class="wtg">{{GetDetail.AuditStatusName}}</span>
</el-col>-->
</el-row>
<el-row>
<el-col :span="24">
<el-row class="zcInfo">
<el-col :span="12">
<span>标题 :</span>
<span>{{GetDetail.Name}}</span>
</el-col>
<el-col v-if="GetDetail.Source!=2 && GetDetail.Source!=4 && GetDetail.Source!=5 && GetDetail.Source!=6" :span="12">
<span>申请人 :</span>
<span>{{GetDetail.EmName}}</span>
</el-col>
<el-col v-if="GetDetail.Source!=2 && GetDetail.Source!=4 && GetDetail.Source!=5 && GetDetail.Source!=6" :span="12">
<span>类型 :</span>
<span>{{GetDetail.TypeName}}</span>
</el-col>
<el-col :span="12">
<span>校区 :</span>
<span>{{GetDetail.SchoolName}}</span>
</el-col>
<el-col :span="12">
<span>分类 :</span>
<span>{{GetDetail.CategoryName}}</span>
</el-col>
<el-col :span="12">
<span>申请时间 :</span>
<span>{{GetDetail.UpdateDate}}</span>
</el-col>
<el-col :span="12">
<span>预计使用时间 :</span>
<span>{{GetDetail.UseTime}}</span>
</el-col>
<el-col :span="12">
<span>经办人 :</span>
<span>{{GetDetail.ManagersName}}</span>
<span @click="SetBuyingRequisitionManagers=true" class="backTo">修改经办人</span>
</el-col>
<el-col :span="24" style="dispaly:flex">
<span>内容 :</span>
<div v-html="GetDetail.Content"></div>
</el-col>
<el-col :span="24" style="dispaly:flex" v-if="GetDetail.ImageList.length>0">
<span>图片 :</span>
<div class="imgBox">
<div v-for="(url,index) in GetDetail.ImageList" :key="index" class="imgItem" @click="showImg(GetDetail)">
<img :src="url" alt="" style="width: auto; height: 120px;">
</div>
</div>
</el-col>
</el-row>
</el-col>
<!--图片 -->
<!-- <el-col v-if="GetDetail.ImageList && GetDetail.ImageList.length>0" :span="6" style="padding-top:20px">
<el-carousel height="150px" trigger="click" :interval="20000">
<el-carousel-item style="text-align:center;line-height:150px" v-for="item in GetDetail.ImageList" :key="item">
<img @click="showImg(GetDetail)" style="max-width:100%;max-height:100%" :src="item" alt="">
</el-carousel-item>
</el-carousel>
</el-col> -->
</el-row>
</div>
<div style="margin-top:30px;background:rgba(255,255,255,1);border-radius:10px;padding:20px;position:relative;">
<ul class="allStep" style="position:relative;">
<li v-for="(item,index) in GetDetail.AuditSteps" :key="index">
<div>
<span v-if="index!=0" class="line"></span>
<span class="circle">
<img src="../../../assets/img/step2.png" alt="">
</span>
<span style="display:inline-block;position:relative;top:20px">
<div>{{item.AuditDescription}}</div>
<div style="margin-top:10px;color:#089bab">{{item.AuditWayName}}</div>
</span>
</div>
</li>
<el-popover
popper-class="detailsIT_Journal"
width="250"
trigger="click">
<div class="InfoChangeLog" >
<div class="changLog">
<p class="_log_t">流程日志</p>
<ul class="changLogList" v-if="danjuList.length>0">
<li class="changLogList_l" v-for="(log,li) in danjuList" :key="li">
<span style="background-color: #47BF8C" class="_radius_green"></span>
<p> <span class="_color_blue">{{log.UpdateBy}}</span> <span style="float:right" class="fr changLog_time">{{log.UpdateDate}}</span> </p>
<p class="_dtel">{{log.Content}}</p>
</li>
</ul>
<ul v-else>
<li>暂无修改日志</li>
</ul>
</div>
</div>
<span slot="reference" class="rizhi underline">单据操作日志</span>
</el-popover>
</ul>
<div class="_process clearfix">
<div class="_process_box">
<template v-for="(item,index) in GetDetail.AuditSteps">
<div class="_pb_son" :class="{_none_after:(item.NextStep==1||item.Status==4),_bohui_after:(GetDetail.Status==3 && !IsBoHui && index===GetDetail.AuditSteps.length-1)}" v-if="item.Sort==0 || (item.Status==1 && item.NextStep==1) || (item.Status==2 && item.Sort!=0) || (item.Status==4)">
<div class="_left_radius" v-if="item.Sort==0">发起</div>
<div class="_left_radius _left_radius_sus" v-if="item.NextStep==1">
<span v-if="item.SpecialNode==2">待签</span>
<span v-else>待审</span>
</div>
<div class="_left_radius" v-if="item.Sort!=0 && item.Status==2">
<span v-if="item.SpecialNode==2">已签</span>
<span v-else>通过</span>
</div>
<div class="_left_radius _left_radius_err" v-else-if="item.Status==4">驳回</div>
<div class="_right_content" v-if="item.AuditWay==2 || item.AuditWay==3">
<p class="_name">
<span class="_n">{{item.AuditDescription}}<span class="_sm">({{item.AuditWay==2?'会签':'或签'}})</span></span>
</p>
<div class="_more _mgt_15" v-for="(son,sindex) in item.AuditRecordList" v-if="son.AuditStatus==2">
<div class="_right_content">
<p class="_name">
<span class="_n PingFangSC">{{son.AuditName}}</span>
<span class="_sn" v-if="son.AuditStatus==2">
<span v-if="item.SpecialNode==2">已签</span>
<span v-else>通过</span>
</span>
<span class="_time _time_n">{{son.AduitDate}}</span>
</p>
<template v-if="son.CareOfRemarks">
<div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)">
<p><span></span>{{z.BeFrom}}<span><i class="_color_green">转交</i></span>{{z.Target}}</p>
<p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p>
</div>
</template>
<div class="_pp_info" v-if="son.AuditStatus!=1 && item.SpecialNode!=2">
<p>{{!son.Remark || son.Remark==''?'无' : son.Remark}}</p>
<div class="_info_img" v-if="son.ImageList!=null&&son.AuditStatus==2" >
<ul class="clearfix" v-if="son.ImageList.length&&son.ImageList.length>=1">
<li v-for="(img,imgI) in son.ImageList">
<img v-if="!img" src="../../../assets/img/Travelslider.png" alt="">
<img v-else :src="img" alt="">
<div class="_see_img" @click="showImg(son,2)">
<i class="iconfont icon-sousuo"></i>
</div>
</li>
</ul>
</div>
</div>
<div v-if="son.SignImage!=''">
<img style="height: 82px;width: 143px;margin-top:10px;border: 1px solid #eee" :src="son.SignImage">
</div>
</div>
</div>
<div class="_more _mgt_15" v-for="(son,sindex) in item.AuditRecordList" v-if="son.AuditStatus!=2">
<div class="_right_content" v-if="item.AuditWay==2&&son.AuditStatus!=2">
<p class="_name">
<span class="_n PingFangSC">{{son.AuditName}}</span>
<span class="_sn" v-if="son.AuditStatus==2">
<span v-if="item.SpecialNode==2">已签</span>
<span v-else>通过</span>
</span>
<span class="_m" v-else-if="son.AuditStatus==4">驳回</span>
<span class="_sm" v-else-if="son.AuditStatus==1">
<span v-if="item.SpecialNode==2">待签</span>
<span v-else>待审</span>
</span>
<span class="_time _time_n" v-if="item.Status!=1">{{son.AduitDate}}</span>
</p>
<template v-if="son.CareOfRemarks">
<div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)">
<p><span></span>{{z.BeFrom}}<span><i class="_color_green">转交</i></span>{{z.Target}}</p>
<p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p>
</div>
</template>
<div class="_pp_info" v-if="item.Status!=1">
<p>{{!son.Remark || son.Remark==''?'无' : son.Remark}}</p>
<div class="_info_img" v-if="son.ImageList!=null&&item.Status!=1" >
<ul class="clearfix" v-if="son.ImageList.length&&son.ImageList.length>=1">
<li v-for="(img,imgI) in son.ImageList">
<img v-if="!img" src="../../../assets/img/Travelslider.png" alt="">
<img v-else :src="img" alt="">
<div class="_see_img" @click="showImg(son,2)">
<i class="iconfont icon-sousuo"></i>
</div>
</li>
</ul>
</div>
</div>
<div v-if="son.SignImage!=''">
<img style="height: 82px;width: 143px;margin-top:10px;border: 1px solid #eee" :src="son.SignImage">
</div>
</div>
<div class="_right_content" v-else-if="item.AuditWay==3 && son.AuditStatus==1">
<p class="_name">
<span class="_n PingFangSC">{{son.AuditName}}</span>
<span class="_sm" v-if="item.Status==2 && item.Sort!=0">通过</span>
<span class="_m" v-else-if="item.Status==4">驳回</span>
<span class="_sm _left_radius_sus" v-else-if="son.AuditStatus==1">待审</span>
<span class="_time _time_n" v-if="item.Status!=1">{{son.AduitDate}}</span>
</p>
<template v-if="son.CareOfRemarks">
<div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)">
<p><span></span>{{z.BeFrom}}<span><i class="_color_green">转交</i></span>{{z.Target}}</p>
<p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p>
</div>
</template>
<div class="_pp_info" v-if="item.Status!=1">
<p>{{!son.Remark || son.Remark==''?'无' : son.Remark}}</p>
<div class="_info_img" v-if="son.ImageList!=null&&item.Status!=1" >
<ul class="clearfix" v-if="son.ImageList.length&&son.ImageList.length>=1">
<li v-for="(img,imgI) in son.ImageList">
<img v-if="!img" src="../../../assets/img/Travelslider.png" alt="">
<img v-else :src="img" alt="">
<div class="_see_img" @click="showImg(son)">
<i class="iconfont icon-sousuo"></i>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="_right_content" v-else-if="item.AuditWay==3 && son.AuditStatus==4">
<p class="_name">
<span class="_n PingFangSC">{{son.AuditName}}</span>
<span class="_sm" v-if="item.Status==2 && item.Sort!=0">通过</span>
<span class="_m" v-else-if="item.Status==4">驳回</span>
<span class="_sm _left_radius_sus" v-else-if="son.AuditStatus==1">待审</span>
<span class="_time _time_n" v-if="item.Status!=1">{{son.AduitDate}}</span>
</p>
<template v-if="son.CareOfRemarks">
<div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)">
<p><span></span>{{z.BeFrom}}<span><i class="_color_green">转交</i></span>{{z.Target}}</p>
<p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p>
</div>
</template>
<div class="_pp_info" v-if="item.Status!=1">
<p>{{son.Remark!=''?son.Remark:'无'}}</p>
<div class="_info_img" v-if="son.ImageList!=null&&item.Status!=1" >
<ul class="clearfix" v-if="son.ImageList.length&&son.ImageList.length>=1">
<li v-for="(img,imgI) in son.ImageList">
<img v-if="!img" src="../../../assets/img/Travelslider.png" alt="">
<img v-else :src="img" alt="">
<div class="_see_img" @click="showImg(son)">
<i class="iconfont icon-sousuo"></i>
</div>
</li>
</ul>
</div>
</div>
<div v-if="son.SignImage!=''">
<img style="height: 82px;width: 143px;margin-top:10px;border: 1px solid #eee" :src="son.SignImage">
</div>
</div>
</div>
</div>
<div class="_right_content" v-else>
<div class="_more" v-for="(son,sindex) in item.AuditRecordList">
<p class="_name">
<span class="_n">{{son.AuditName}}<span class="_sm">{{item.AuditDescription}}</span></span>
<span class="_time _time_n" v-if="item.NextStep!=1">{{son.AduitDate}}</span>
</p>
<div class="_right_content">
<div class="_pp_info" v-if="item.NextStep!=1 && item.SpecialNode!=2">
<p>{{son.Remark==''?'无':son.Remark}}</p>
<div class="_info_img" v-if="son.ImageList!=null" >
<ul class="clearfix" v-if="son.ImageList.length&&son.ImageList.length>=1">
<li v-for="(img,imgI) in son.ImageList">
<img v-if="!img" src="../../../assets/img/Travelslider.png" alt="">
<img v-else :src="img" alt="">
<div class="_see_img" @click="showImg(son)">
<i class="iconfont icon-sousuo"></i>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- beizhu -->
<textarea v-if="item.NextStep==1 && compType=='shenpi' && item.SpecialNode!=2" class="_textareaNew" v-model="addMsg.AuditDescription" placeholder="请输入..."></textarea>
<!-- 签名(当前审核人是否需要签名) -->
<div v-if="GetDetail.Is_CanAudit==1 && item.NextStep==1 && item.SpecialNode!=0 && compType=='shenpi'" style="margin:10px 0;padding:10px 0 0 0">
<p>
<span @click="signState=true" class="signSpan f12">签名</span>
</p>
<div v-show="addMsg.SignImage!=''">
<img style="height: 82px;width: 143px;margin-top:10px;border:1px solid rgb(238, 238, 238)" :src="addMsg.SignImage">
</div>
</div>
</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">
<li v-for="(img,imgIndex) in uploadImgList" :key="imgIndex">
<img :src="img" alt="">
<div class="_delete_img" @click="deleteImg(imgIndex)">
<i style="color:#FFA475" class="iconfont icon-shanchu"></i>
</div>
</li>
<li v-if="uploadImgList.length<10">
<el-upload
action=""
class="avatar-uploader"
:http-request="uploadFileBtn"
:show-file-list="false"
:multiple="true"
:limit="10">
<i class="el-icon-plus avatar-uploader-icon"></i>
<span class="_upload_tips f12">最多可上传10张图片</span>
</el-upload>
</li>
</ul>
</div>
<div class="_pb_son" :class="GetDetail.AuditStatus==1?'_none_after':''" v-if="GetDetail.AuditStatus==1">
<div class="_left_radius" >结束</div>
<div class="_right_content">
<p class="_time">累计耗时:{{endDate}}</p>
</div>
</div>
<div v-if="GetDetail.Is_CanAudit==1 && compType=='shenpi'" class="button" style="padding-left:15px;margin-top:20px">
<span v-if="needSign" @click="approvalOrder(1)" class="tongguo" >保存</span>
<div v-if="!needSign" style="display:inline-block">
<span @click="approvalOrder(1)" class="tongguo" >通过</span>
<span @click="approvalOrder(2)" class="bohui" >驳回</span>
</div>
</div>
<!-- 申请人审批 -->
</div>
</div>
</div>
<!-- 签名 -->
<div class="Sign" :class="signState?'zindex':''">
<div class="signature">
<p class="f14" style="padding:10px 10px 10px 0">签名
<span @click="CloseSign" style="float:right" class="el-icon-close"></span>
</p>
<div class="signatureBox">
<div class="canvasBox" ref="canvasHW">
<canvas ref="canvasF" @touchstart='touchStart' @touchmove='touchMove' @touchend='touchEnd' @mousedown="mouseDown" @mousemove="mouseMove" @mouseup="mouseUp"></canvas>
<div class="button" style="text-align:center;margin-top:20px">
<span @click="commit" class="bohui" >提交</span>
<span @click="overwrite" class="tongguo" >重写</span>
</div>
</div>
</div>
</div>
</div>
<el-dialog title="资产详情" top="0" :visible.sync="CheckDetailState" width="1150px">
<CheckDetails ref="mychild"></CheckDetails>
</el-dialog>
<viewer :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer">
<img v-for="src in images" :src="src" :key="src">
</viewer>
<!-- 设置经办人 -->
<el-dialog title="设置经办人" top="0" :visible.sync="SetBuyingRequisitionManagers" >
<el-form :model="ManagersMsg" :rules="Managers_rules" ref="SetBuyingRequisitionManagers" label-width="100px" class="demo-ruleForm">
<el-form-item label="经办人" prop="ManagersId">
<el-select v-model="ManagersMsg.ManagersId" placeholder="请选择经办人">
<el-option
v-for="item in EmployeeList"
:key="item.EmployeeId"
:label="item.EmName"
:value="item.EmployeeId"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<el-button slot="footer" round @click="submitForm('SetBuyingRequisitionManagers')" style="background-color:#089bab;color:#fff">提交</el-button>
</el-dialog>
</div>
</div>
</template>
<script>
import CheckDetails from "./CheckDetails.vue";
import {getAuditChangeLogPageList,setBuyingRequisitionManagers,getEmployeeList,bRAuditOrRefund,getBuyingRequisitionAuditDetail} from "../../../api/administration/AssetsShenpi"
import {url_jump_zc,ViittoFileUrl} from "../../../utils/url"
export default {
name: 'PurchaseRequisitionDetail',
components: {
CheckDetails
},
data(){
return{
images:[],
imageOptions:{
navbar:false,
title:false
},
pageLoad:false,
danjuList:[],
tableData:[],
GetDetail:{
AuditSteps:[],
DetailList:[],
ImageList:[],
},
IsBoHui:false,
uploadImgList:[],
addMsg:{
AuditDescription:'',
ImageList:[],
UseReceiveId:'',
AuditType:'',
SignImage:'',
},
compType:'',
backto:'',
showTable:'',
danjuMsg:{
pageIndex:1,
pageSize:20,
ResourceId:'',
Type:3,
},
imgSrc:'',
stageInfo:'',
imgUrl:'',
client: {},
points: [],
canvasTxt: null,
startX: 0,
startY: 0,
moveY: 0,
moveX: 0,
endY: 0,
endX: 0,
w: null,
h: null,
isDown: false,
isViewAutograph: this.$route.query.isViews > 0,
contractSuccess: this.$route.query.contractSuccess,
signState:false,
needSign:false,
endDate:'',
PropertyId:'',
CheckDetailState:false,
SetBuyingRequisitionManagers:false,//设置经办人 弹窗
ManagersMsg:{
BuyingRequisitionId:0,//采购单id
ManagersId:0,//经办人id
},
EmployeeList:[],
Managers_rules:{
ManagersId: [
{ required: true, message: '请选择经办人', trigger: 'change' }
],
}
}
},
created(){
if(this.$route.query.compType){
this.compType=this.$route.query.compType;
}
this.backto=this.$route.query.backto?this.$route.query.backto:'';
this.showTable=this.$route.query.showTable?this.$route.query.showTable:'';
if(this.$route.query.Id){
this.addMsg.UseReceiveId=this.$route.query.Id;
this.danjuMsg.ResourceId=this.$route.query.Id;
this.ManagersMsg.BuyingRequisitionId=this.$route.query.Id;
}
this.getDetail();
this.getdanjuList();
this.getEmployee();
},
mounted(){
let canvas = this.$refs.canvasF
canvas.height = this.$refs.canvasHW.offsetHeight - 100
canvas.width = this.$refs.canvasHW.offsetWidth - 10
this.canvasTxt = canvas.getContext('2d')
this.stageInfo = canvas.getBoundingClientRect()
},
methods:{
GoZcUrl(){
let url=url_jump_zc+"/#/Home";
window.open(url)
},
inited (viewer){
this.$viewer = viewer
},
showImg(obj, type){
this.images=[];
if(obj.ImageList && obj.ImageList.length>0){
this.images=obj.ImageList;
}
this.$viewer.show()
},
getCheckDes(item){
this.PropertyId=item.PropertyId;
this.CheckDetailState=true;
setTimeout(()=>{
this.$refs.mychild.InitData(this.PropertyId);
},10)
},
CloseSign(){
this.signState=false;
},
// 签名
//重写
overwrite() {
this.canvasTxt.clearRect(0, 0, this.$refs.canvasF.width, this.$refs.canvasF.height)
this.points = []
},
uuid(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [],
i;
radix = radix || chars.length;
if (len) {
// Compact form
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
},
dataURLtoFile(dataurl, filename) {//将base64转换为文件
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
},
//提交签名
commit() {
let that=this;
let imgUrl =this.$refs.canvasF.toDataURL();
let newArr = [];
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;
}, 1);
this.signState=false;
},
mouseDown(ev) {
ev = ev || event
ev.preventDefault()
if (1) {
let obj = {
x: ev.offsetX,
y: ev.offsetY
}
this.startX = obj.x
this.startY = obj.y
this.canvasTxt.beginPath()
this.canvasTxt.moveTo(this.startX, this.startY)
this.canvasTxt.lineTo(obj.x, obj.y)
this.canvasTxt.stroke()
this.canvasTxt.closePath()
this.points.push(obj)
this.isDown = true
}
},
mouseMove(ev) {
ev = ev || event
ev.preventDefault()
if (this.isDown) {
let obj = {
x: ev.offsetX,
y: ev.offsetY
}
this.moveY = obj.y
this.moveX = obj.x
this.canvasTxt.beginPath()
this.canvasTxt.moveTo(this.startX, this.startY)
this.canvasTxt.lineTo(obj.x, obj.y)
this.canvasTxt.stroke()
this.canvasTxt.closePath()
this.startY = obj.y
this.startX = obj.x
this.points.push(obj)
}
},
mouseUp(ev) {
ev = ev || event
ev.preventDefault()
if (1) {
let obj = {
x: ev.offsetX,
y: ev.offsetY
}
this.canvasTxt.beginPath()
this.canvasTxt.moveTo(this.startX, this.startY)
this.canvasTxt.lineTo(obj.x, obj.y)
this.canvasTxt.stroke()
this.canvasTxt.closePath()
this.points.push(obj)
this.points.push({x: -1, y: -1})
this.isDown = false
}
},
//mobile
touchStart(ev) {
ev = ev || event
ev.preventDefault()
if (ev.touches.length == 1) {
let obj = {
x: ev.targetTouches[0].clienX,
y: ev.targetTouches[0].clientY,
}
this.startX = obj.x
this.startY = obj.y
this.canvasTxt.beginPath()
this.canvasTxt.moveTo(this.startX, this.startY)
this.canvasTxt.lineTo(obj.x, obj.y)
this.canvasTxt.stroke()
this.canvasTxt.closePath()
this.points.push(obj)
}
},
touchMove(ev) {
ev = ev || event
ev.preventDefault()
if (ev.touches.length == 1) {
let obj = {
x: ev.targetTouches[0].clientX - this.stageInfo.left,
y: ev.targetTouches[0].clientY - this.stageInfo.top
}
this.moveY = obj.y
this.moveX = obj.x
this.canvasTxt.beginPath()
this.canvasTxt.moveTo(this.startX, this.startY)
this.canvasTxt.lineTo(obj.x, obj.y)
this.canvasTxt.stroke()
this.canvasTxt.closePath()
this.startY = obj.y
this.startX = obj.x
this.points.push(obj)
}
},
touchEnd(ev) {
ev = ev || event
ev.preventDefault()
if (ev.touches.length == 1) {
let obj = {
x: ev.targetTouches[0].clientX - this.stageInfo.left,
y: ev.targetTouches[0].clientY - this.stageInfo.top
}
this.canvasTxt.beginPath()
this.canvasTxt.moveTo(this.startX, this.startY)
this.canvasTxt.lineTo(obj.x, obj.y)
this.canvasTxt.stroke()
this.canvasTxt.closePath()
this.points.push(obj)
}
},
// 签名结束
backTo(){
if(this.showTable!=''){
this.$router.push({
path: "/" + this.backto,
query:{
showTable:this.showTable
}
});
}else{
this.$router.push({
path: "/" + this.backto
});
}
},
getdanjuList(){
getAuditChangeLogPageList(this.danjuMsg).then((res)=>{
if (res.data.resultCode === 1) {
let data=res.data.data.pageData;
data.forEach(x=>{
x.UpdateDate = this.$commonUtils.formatMsgTime(x.UpdateDate)
})
this.danjuList=data;
} else {
this.Error(res.data.message);
}
})
},
approvalOrder(num){
if(this.GetDetail.Is_AuditSelf==1){
this.Error("制单人跟审核人不能相同哟,请转交!");
return;
}
if(this.needSign){
if(this.addMsg.SignImage==""){
this.Error("请签名!");
return;
}
}
this.addMsg.AuditType=num;
this.addMsg.ImageList=this.uploadImgList;
bRAuditOrRefund(this.addMsg).then((res)=>{
if (res.data.resultCode === 1) {
this.getDetail();
this.Success(res.data.message);
this.addMsg={
AuditDescription:'',
ImageList:[],
UseReceiveId:'',
AuditType:'',
SignImage:'',
}
} else {
this.Error(res.data.message);
}
})
},
deleteImg(i){ // 删除
this.uploadImgList.splice(i,1)
},
uploadFileBtn(file) { //上传
if(file.file.size > 1024 * 1024 * 10) {
this.$message.warning('文件大小不能超过10M!')
return
}
// 1 文档 2 数据 3 图片
let typeArr=[
{stringArr:'GIF|JPG|JPEG|PNG|BMP',type:3},
{stringArr:'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',type:1},
]
let ft=file.file.name.substring(file.file.name.lastIndexOf('.')+1,file.file.name.length).toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x=>{
if(x.stringArr.indexOf(ft)!='-1')
{
fileTypeNumber=x.type;
typeOk = true;
}
})
if (!typeOk) return this.$message.error('请上传图片、word、excel类型的文件!');
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => {
let obj = this.domainManager().ViittoFileUrl + x.data.FilePath
this.uploadImgList.push(obj)
this.$message.success('上传成功')
}, 1);
},
getDetail(){
this.pageLoad=true;
getBuyingRequisitionAuditDetail({RequisitionId:this.addMsg.UseReceiveId}).then((res)=>{
this.pageLoad=false;
if (res.data.resultCode === 1) {
let data=res.data.data;
this.GetDetail=res.data.data;
if(data.AuditStatus==1){
let len = data.AuditSteps.length - 1;
let sLen = data.AuditSteps[len].AuditRecordList[data.AuditSteps[len].AuditRecordList.length-1];
let begTime = data.AuditSteps[0].AuditRecordList[0].AduitDate;
let enTime = sLen && sLen.AduitDate ? sLen.AduitDate : begTime;
let newTime = this.$commonUtils.formatMsgTime2(begTime,enTime);
this.endDate = newTime.replace("前","");
}
let list = [];
for ( let i = 0; i < this.GetDetail.AuditSteps.length ; i++ ){
list.push(this.GetDetail.AuditSteps[i]);
if(this.GetDetail.AuditSteps[i].Status==4){
this.IsBoHui = true;
break;
}
if(this.GetDetail.AuditSteps[i].NextStep==1 && this.GetDetail.AuditSteps[i].SpecialNode==2){
this.needSign = true;
break;
}
}
// this.GetDetail.FirstStr=this.GetDetail.SourceName.slice(0,1)
this.GetDetail.AuditSteps = list;
this.ManagersMsg.ManagersId=data.ManagersId
} else {
this.Error(res.data.message);
}
})
},
//设置经办人
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.SetBuyingRequisitionManagers=false
// this.apiJavaPost("/api/property/SetBuyingRequisitionManagers",this.ManagersMsg,(res)=>{
// if(res.data.resultCode===1){
// this.getDetail()
// }
// })
setBuyingRequisitionManagers(this.ManagersMsg).then((res)=>{
if (res.data.resultCode === 1) {
this.getDetail()
} else {
this.Error(res.data.message);
}
})
}
});
},
// 获取经办人列表
getEmployee(){
getEmployeeList({}).then((res)=>{
if (res.data.resultCode === 1) {
this.EmployeeList=res.data.data;
} else {
this.Error(res.data.message);
}
})
},
},
}
</script>
<style>
@import "./css/common.css";
.viewer{display: none !important;}
.approvalDetails ._pp_info ._info_img li:hover ._see_img{
opacity: 1;
}
.approvalDetails ._pp_info ._see_img .icon-sousuo{
color:#fff!important;
}
.approvalDetails li{
list-style-type: none;
}
.detailsIT_Journal .changLogList_l{
list-style-type: none;
}
.approvalDetails ._pp_info ._see_img{
position: absolute;
top: 0;
width: 100%;
height: 100%;
line-height: 120px;
text-align: center;
background-color: rgba(2, 2, 2, 0.4);
display: inherit;
opacity: 0;
left:0;
-webkit-transition: all linear .4s;
transition: all linear .4s;
}
.approvalDetails ._pp_info ._info_img li img{
width: 100%;
height: 100%;
}
.approvalDetails ._pp_info ._info_img li{
display: inline-block;
width:120px;
height:120px;
overflow:hidden;
position: relative;
cursor: pointer;
}
.approvalDetails ._pp_info ._info_img{
margin-top:10px;
}
.approvalDetails ._pb_son:last-child::after{
display: none;
}
.approvalDetails .signSpan{
display: inline-block;
width: 100px;
height: 34px;
line-height: 34px;
border-radius: 22px;
text-align: center;
cursor: pointer;
font-size: 12px;
font-family: "Microsoft YaHei";
background: #FFA475;
color: #fff;
}
.approvalDetails{
position: relative;
}
.approvalDetails .zindex{
z-index: 9999!important;
opacity: 1!important;
}
.approvalDetails .signature{
width:600px;
background: #fff;
padding:15px;
border-radius: 20px;
cursor: pointer;
}
.approvalDetails .Sign{
position: fixed;
width:100%;
height:100%;
top:0;
left:0;
background: rgba(0,0,0,.4);
z-index: -500;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
}
.approvalDetails .Sign .signatureBox {
width: 100%;
height: 300px;
box-sizing: border-box;
overflow: hidden;
background: #fff;
z-index: 100;
display: flex;
flex-direction: column;
margin-top:20px;
padding:0 20px;
box-sizing: border-box;
}
.Sign .canvasBox {
box-sizing: border-box;
flex: 1;
}
.approvalDetails .Sign canvas {
border: 1px solid #7d7d7d;
}
.approvalDetails .Sign .btnBox {
padding: 10px;
text-align: center;
}
.approvalDetails .Sign .btnBox button:first-of-type {
background: transparent;
border-radius: 4px;
height: 40px;
width: 80px;
font-size: 14px;
}
.approvalDetails .Sign .btnBox button:last-of-type {
background: #71b900;
color: #fff;
border-radius: 4px;
height: 40px;
width: 80px;
font-size: 14px;
}
.approvalDetails ._textareaNew{
width: 80%;
height: 50px;
background-color: white;
border-radius: 4px;
border: 1px solid #E5E5E5;
font-size: 12px;
color: #333333;
padding: 12px 14px;
margin-top: 13px;
position: relative;
}
.approvalDetails ._upload_tips{font-size: 12px;position: absolute;top: 71%;width: 100%;left: 0;text-align: center;color: #949494;}
.approvalDetails ._pb_son._none_after::after{content: '';display: none}
.approvalDetails .avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 143px;
height: 82px;
line-height: 82px;
text-align: center;
}
.approvalDetails .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.approvalDetails ._delete_img{position: absolute;top: 0px;height:82px;width:143px;line-height: 34px;text-align: center;background-color: rgba(2, 2, 2, 0.6);display: inherit;opacity: 0;transition: all linear .5s}
.approvalDetails ._delete_img i.iconfont{display: inline-block;width: 32px;height: 32px;border-radius: 50%;color: #E95252 !important;background-color:rgba(251, 251, 251, 0.9); margin-top: 26px;}
.approvalDetails ._upload_box ul li{float: left;height:82px;width:143px;padding:0px 20px 20px 0;text-align: center;position: relative;cursor: pointer;margin-right: 10px;}
.approvalDetails ._upload_box ul li img{height:82px;width:143px;}
.approvalDetails ._upload_box ul li:hover ._delete_img{opacity: 1;}
.approvalDetails .button span{
display: inline-block;
width:120px;
height:40px;
line-height:40px;
border-radius:22px;
text-align: center;
cursor: pointer;
font-size: 12px;
font-family: "Microsoft YaHei";
margin-right: 20px;
}
.tongguo{
background:rgba(0,210,214,1);
color:#fff;
}
.bohui{
border:1px solid rgba(0,210,214,1);
color:rgba(0,210,214,1);
}
.approvalDetails ._zhuan_msg{
font-size: 12px;
margin-top:10px;
padding-bottom: 10px;
}
.approvalDetails ._zhuan_msg span{
display: inline-block;
margin-right: 5px;
color: #696969;
}
.approvalDetails ._zhuan_msg span:last-child{
margin-left: 5px;
}
.approvalDetails ._zhuan_msg p:nth-child(2){
color: #696969;
}
.approvalDetails ._zhuan_msg ._color_green{
color: #089bab
}
.approvalDetails ._right_content ._name ._n{font-size: 14px;color: #333333;font-weight: bold;}
.approvalDetails ._right_content ._name ._m{color: #FFFFFF;font-size: 12px;display: inline-block;padding: 2px 5px;background-color: #E95252;margin-left: 5px;border-radius: 4px;}
.approvalDetails ._right_content ._name ._sm{color: #FFFFFF;font-size: 12px;display: inline-block;padding: 2px 5px;background-color: #FF9600;margin-left: 5px;border-radius: 4px;font-weight: 100;}
.approvalDetails ._right_content ._name ._sn{color: #FFFFFF;font-size: 12px;display: inline-block;padding: 2px 5px;background-color: #089bab;margin-left: 5px;border-radius: 4px;}
.approvalDetails ._right_content ._time,.approvalDetails ._time{font-size: 12px;color: #666666;padding-top: 5px;}
.approvalDetails ._right_content ._pp_info,.approvalDetails ._textarea{border-radius: 10px; background:rgba(245,245,245,1);font-size: 12px;color: #333333;padding: 12px 14px;margin-top: 13px;position: relative;width:80%}
.approvalDetails ._right_content ._pp_info:before{display:block;content:'';border-width:8px 8px 8px 8px;border-style:solid;border-color: transparent transparent rgba(245,245,245,1) transparent;position:absolute;left:10px;top:-16px;}
.approvalDetails ._mgt_15{margin-top: 15px;}
.approvalDetails ._more ._right_content .iconfont{color: #AAAAAA}
.approvalDetails ._more ._right_content ._name ._n{font-size: 14px;color: #333333;font-weight: bold;padding-left: 3px;}
.approvalDetails ._pb_son{position: relative;padding-left: 75px;min-height: 100px;padding-bottom: 10px}
.approvalDetails ._left_radius{z-index:1;width: 40px;height: 40px;border-radius: 50%;text-align: center;line-height: 40px;background-color: #089bab;color: white;font-size: 12px;position: absolute;left: 15px;}
.approvalDetails ._left_radius_err{background-color: #E95252 !important;}
.approvalDetails ._left_radius_sus{background-color: #FFA475 !important;}
.approvalDetails ._pb_son::after{content: '';width: 4px;height: 100%;background-color: #089bab;display: inline-block;position: absolute;clear: both;left: 33px;top: 0;}
.approvalDetails ._pb_son._none_after::after{content: '';display: none}
.approvalDetails ._pb_son._bohui_after::after{background-color: #E95252 !important;display: inline-block}
.approvalDetails ._process_box{padding-top: 30px;padding-bottom: 40px;}
.approvalDetails ._process{margin-top: 20px}
.approvalDetails .rightDiv .FirstName{
width:40px;
height:40px;
line-height:40px;
background:rgba(40,202,204,0.3);
color:#089bab;
border-radius:50%;
text-align: center;
display: inline-block;
font-size: 18px;
}
.approvalDetails .stepItem .rightDiv{
width: 100%;
background:rgba(255,255,255,1);
box-shadow:0px 2px 5px 0px rgba(176,176,176,0.1);
border-radius:10px;
}
.approvalDetails .stepItem ._left_radius{
width: 16px;
height: 16px;
border-radius: 50%;
text-align: center;
position: absolute;
left: 0;
z-index: 2;
}
.approvalDetails .stepItem{
position: relative;
padding-left: 75px;
min-height: 100px;
padding-bottom: 30px;
}
.approvalDetails .rizhi{
font-size:12px;
font-family:"Microsoft YaHei";
font-weight:400;
text-decoration:underline;
color:rgba(166,198,198,1);
position: absolute;
right: 0;
cursor: pointer;
}
.approvalDetails .allStep li .line{
width:57px;
display: inline-block;
border-bottom: 1px dashed #FFA475;
margin:0 10px;
position: relative;
top: -7px;
}
.approvalDetails .allStep li{
display: inline-block;
font-size: 12px;
font-family: "Microsoft YaHei";
}
.approvalDetails .allStep .circle img{
width: 100%;
height: 100%;
}
.approvalDetails .allStep .circle .circleSpan{
display: inline-block;
width:16px;
height:16px;
background:rgba(232,232,232,1);
border-radius:50%;
}
.approvalDetails .allStep .circle{
display: inline-block;
width:16px;
height:16px;
border-radius:50%;
}
.approvalDetails .zcInfo .el-col {
font-size: 12px;
margin-top: 20px;
color:#111111;
}
.approvalDetails .zcInfo .el-col span:nth-child(1){
color:#999999;
display: inline-block;
width: 85px;
}
.approvalDetails .HeaderDiv .underline{
display: block;
width:135px;
height:2px;
position: absolute;
bottom: 0;
background: #089bab;
}
.approvalDetails .titleSpan{
position: absolute;
left: 0;
}
.approvalDetails .titleSpan span{
display: inline-block;
width:44px;
height:44px;
line-height:44px;
background:rgba(40,202,204,0.3);
border-radius:50%;
font-size: 20px;
color: #089bab;
text-align: center;
}
.approvalDetails .StateCol span{
width:60px;
height:26px;
line-height:26px;
border-radius:8px;
display: inline-block;
color:#fff;
text-align: center;
font-size: 12px;
font-family: "Microsoft YaHei";
}
.approvalDetails .StateCol .spz{
background:rgba(114,184,255,1);
}
.approvalDetails .StateCol .ytg{
background:#089bab;
}
.approvalDetails .StateCol .wtg{
background:#FFA475;
}
.imgBox{
display: flex;
}
.imgItem{
min-width: 150px;
height: 150px;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10px;
}
</style>
.routerTitle {
background: #fff;
padding: 15px 30px;
text-align: right;
border-bottom: 1px solid rgb(226, 228, 235);
padding-bottom: 10px;
}
.padContent {
padding: 15px 30px;
box-sizing: border-box;
}
.chartTitle .el-input__icon {
line-height: unset;
color: #fff!important;
}
.el-input__suffix {
display: table-cell;
vertical-align: middle;
}
.chartTitle .el-select .el-input__inner {
width: 100%;
height: 100%;
background: transparent;
border: none;
color: #fff;
}
.chaxunSpan {
width: 90px;
height: 34px;
line-height: 34px;
background: #089bab;
border-radius: 17px;
color: #fff;
font-size: 12px;
display: inline-block;
text-align: center;
cursor: pointer;
font-family: "Microsoft YaHei";
}
.addSpan {
width: 90px;
height: 34px;
border: 1px solid #089bab;
color: #089bab;
border-radius: 20px;
line-height: 34px;
font-size: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-family: "Microsoft YaHei";
box-sizing: border-box;
}
.pageTitle {
color: #111111;
font-size: 30px;
/*14px;*/
float: left;
/*padding-top: 10px;*/
margin-top: -10px;
font-family: muil;
/* font-weight: 600; */
}
.roatImg {
transform: rotate(180deg);
}
/* chexkbox */
.myTable input[type="checkbox"] {
width: 15px;
height: 15px;
display: inline-block;
text-align: center;
vertical-align: middle;
line-height: 15px;
position: relative;
}
.myTable input[type="checkbox"]::before {
content: "";
position: absolute;
top: 0;
left: 0;
background: #fff;
width: 100%;
height: 100%;
border: 1px solid #B9ECED
}
.myTable input[type="checkbox"]:checked::before {
content: "\2713";
background-color: #fff;
position: absolute;
top: 0;
left: 0;
width: 100%;
border: 1px solid #089bab;
color: #089bab;
font-size: 18px;
font-family: "PingFangR";
}
/* myTable */
.myTable {
width: 100%;
font-size: 12px;
border-collapse: collapse;
font-family: "Microsoft YaHei"!important;
min-width:1280px;
}
.myTable thead th {
color: #000000;
padding-left: 20px;
height: 50px;
line-height: 50px;
text-align: left;
font-family: "muil";
font-size: 14px;
}
.myTable thead tr {
background: transparent!important;
}
/* .myTable .hoverSpan1{
left: -20px;
}
.myTable .hoverSpan2{
right: -20px;
} */
.myTable .commonStyle {
height: 100%;
background: #fff;
position: absolute;
width: 20px;
top: 0;
display: none;
}
.miniTable tr td {
padding: 6px 0 6px 20px!important;
}
.myTable tbody tr {
background: #fff;
border-bottom: 1px solid #F8FAFB;
cursor: pointer;
}
.myTable tbody tr:last-child {
border-bottom: none;
}
.noHoverTable tr {
border-bottom: none!important;
}
.noHoverTable tr:nth-child(even) {
background: #fff!important;
}
.myTable tr:nth-child(even) {
background: #F6F9FB;
}
.myTable tbody .trNobottom:first-child {
border-top: none!important;
}
.myTable .trNobottom {
border-top: 1px solid #E2E4EB!important;
border-bottom: none!important;
}
.myTable tbody tr:hover {
box-shadow: 0px 0 20px 0px rgba(176, 176, 176, 0.2);
transition: transform .5s ease;
/* transform: scaleX(1.02); */
}
.noHoverTable tbody tr:hover {
box-shadow: 0 0 0 transparent!important;
}
.myTable tbody tr:hover .commonStyle {
/* display: block; */
transition: transform .5s ease;
box-shadow: 0px 0px 0px 0px rgba(176, 176, 176, 0.2);
}
.myTable tbody tr:hover td {
border-radius: 0!important;
}
.myTable tbody tr:first-child td:first-child {
border-radius: 20px 0 0 0;
}
.myTable tbody tr:first-child td:last-child {
border-radius: 0 20px 0 0;
}
.myTable tbody tr:last-child td:first-child {
border-radius: 0 0 0 20px;
}
.myTable tbody tr:last-child td:last-child {
border-radius: 0 0 20px 0;
}
.borderTable tbody tr:first-child td:first-child {
border-radius: 0!important;
}
.borderTable tbody tr:first-child td:last-child {
border-radius: 0!important;
}
/* 合并无圆角 */
.noHoverTable tbody tr:first-child td:first-child {
/* border-radius:0!important; */
}
.noHoverTable tbody tr:first-child td:last-child {
/* border-radius:0!important; */
}
.noHoverTable tbody tr:last-child td:first-child {
border-radius: 0!important;
}
.noHoverTable tbody tr:last-child td:last-child {
border-radius: 0!important;
}
.myTable tr td {
position: relative;
padding: 11px 0 11px 20px;
}
.f12 {
font-size: 12px;
font-family: "Microsoft YaHei"!important;
}
.f14 {
font-size: 14px;
}
.f16 {
font-size: 16px;
}
.f20 {
font-size: 20px;
}
.f22 {
font-size: 39px;
font-family: muil;
font-weight: 500;
}
.f40 {
font-size: 40px;
}
.c11 {
color: #111111;
}
.c99 {
color: #999999;
}
.cd6 {
color: #089bab;
}
.bold {
/* font-family: "PingFangR" */
font-family: "MUIL";
font-weight: 600;
}
.clearfix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
}
.basefix:after {
clear: both;
content: '.';
display: block;
height: 0;
overflow: hidden;
}
.cred {
color: #F56C6C;
}
/* 头部切换 */
.ChangeTable {
float: left;
}
.ChangeTable .spanActive {
color: #fff!important;
background: #089bab!important;
box-shadow: 0px 5px 6px 0px rgba(28, 162, 164, 0.4);
}
.ChangeTable span {
display: inline-block;
width: 100px;
text-align: center;
height: 34px;
line-height: 34px;
background: #e2e4e8;
border-radius: 8px;
font-size: 12px;
font-family: "Microsoft YaHei";
cursor: pointer;
margin-left: 20px;
color: #B8C4C4;
}
.ColorSpan {
display: inline-block;
width: 24px;
height: 24px;
line-height: 24px;
text-align: center;
border-radius: 50%;
font-size: 12px;
font-family: "Microsoft YaHei";
}
.huangSpan {
background: #FFE4D5;
color: #FFA87C;
}
.greenSpan {
background: #BEEFF0;
color: #089bab;
}
.purpleSpan {
background: #D7D6FF;
color: #7B78FF;
}
.buleSpan {
background: #D4EAFF;
color: #73B8FF;
}
.redSpan {
background: #FFD6D5;
color: #FF7874;
}
.dialogI {
width: 4px;
height: 4px;
background: rgba(255, 164, 117, 1);
border-radius: 50%;
display: inline-block;
margin-right: 8px;
position: relative;
top: -2px;
}
.underline {
text-decoration: underline;
cursor: pointer;
}
.dialogul {
position: relative;
left: 0;
}
.dialogul li {
display: inline-block;
min-width: 204px;
height: 50px;
line-height: 50px;
background: rgba(255, 255, 255, 1);
-webkit-box-shadow: 0px 6px 14px 0px rgba(176, 176, 176, 0.1);
box-shadow: 0px 6px 14px 0px rgba(176, 176, 176, 0.1);
border-radius: 10px;
margin-right: 20px;
margin-bottom: 20px;
}
.dialogul li .el-input__inner {
border: none!important;
outline: none!important;
color: #111111;
padding-left: 15px!important;
}
.text1 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.text2 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.text3 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.text4 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
.backTo {
width: 80px;
height: 34px;
line-height: 34px;
background: #089bab;
border-radius: 17px;
text-align: center;
color: #fff;
font-size: 12px;
font-family: "Microsoft YaHei";
display: inline-block;
margin-left: 15px;
cursor: pointer;
}
/* 日志 */
.detailsIT_Journal .InfoChangeLog {
height: auto;
max-height: 220px;
background-color: #FFFFFF;
}
.detailsIT_Journal .changLogList {
padding-left: 20px;
max-height: 180px;
overflow: auto;
}
.detailsIT_Journal .changLogList_l {
border-left: 1px solid #E9E9E9;
position: relative;
padding-bottom: 10px;
padding-left: 20px;
padding-top: 10px;
}
.detailsIT_Journal ._radius_green {
background-color: #47BF8C;
width: 7px;
height: 7px;
border-radius: 50%;
display: inline-block;
position: absolute;
left: -4px;
top: 19px;
}
.detailsIT_Journal .changLog_time {
color: #666666;
font-size: 12px;
display: inline-block;
padding-right: 10px
}
.zcSpanQuery {
position: absolute;
right: 50px;
top: -60px;
display: inline-block;
width: 75px;
height: 32px;
line-height: 32px;
background: #089bab;
border-radius: 17px;
text-align: center;
color: #fff;
font-size: 12px;
font-family: "Microsoft YaHei";
display: inline-block;
margin-left: 15px;
cursor: pointer;
}
.vue-treeselect__placeholder {
color: #111111!important;
}
/* borderTable */
.borderTable {
width: 100%;
font-size: 12px;
border-collapse: collapse;
font-family: "Microsoft YaHei"!important;
}
.borderTable thead th {
color: #000000;
padding-left: 20px;
height: 50px;
line-height: 50px;
text-align: left;
font-family: "PingFangR";
}
.borderTable thead tr {
background: transparent!important;
}
.borderTable .hoverSpan1 {
left: -20px;
}
.borderTable .hoverSpan2 {
right: -20px;
}
.borderTable .commonStyle {
height: 100%;
background: #fff;
position: absolute;
width: 20px;
top: 0;
display: none;
}
.borderTable tr {
background: #fff;
cursor: pointer;
}
.borderTable tr:nth-child(even) {
/* background:#F6F9FB!important; */
}
/* .borderTable .trNobottom{
border-top: 4px solid #F8FAFB!important;
border-bottom:none!important;
} */
.borderTable tbody tr:hover {
box-shadow: 0px 0 20px 0px rgba(176, 176, 176, 0.2);
transition: transform .5s ease;
/* transform: scaleX(1.02); */
}
.borderTable tbody tr:hover .commonStyle {
display: block;
transition: transform .5s ease;
box-shadow: 0px 0px 0px 0px rgba(176, 176, 176, 0.2);
}
.borderTable tbody tr:hover td {
border-radius: 0!important;
}
.borderTable tbody tr:first-child td:first-child {
border-radius: 20px 0 0 0;
}
.borderTable tbody tr:first-child td:last-child {
border-radius: 0 20px 0 0;
}
.borderTable tbody tr:last-child td:first-child {
border-radius: 0 0 0 20px;
}
.borderTable tbody tr:last-child td:last-child {
border-radius: 0 0 20px 0;
}
.borderTable tr td {
position: relative;
padding: 11px 0 11px 20px;
border: 1px solid #E2E4EB;
}
.tableMoreUl {
background: #F6F9FB;
width: 100%;
font-size: 12px;
}
.tableMoreUl li {
border-bottom: 1px solid #E2E4EB;
padding: 12px;
}
.tableMoreUl li span {
display: inline-block;
width: 22%;
}
.tableMoreUl li:last-child {
border-bottom: none;
}
.el-textarea__inner {
border: none!important;
outline: none!important;
}
.myTable tbody .noData td {
border-radius: 0!important;
}
.lastTdLeft{
border-radius: 0 0 0 20px!important;
}
.lastTdRight{
border-radius: 0 0 20px 0!important;
}
\ No newline at end of file
......@@ -817,6 +817,15 @@
@click="goassets(GetDetail.ReFinanceId,GetDetail.OtherType)"> 电商采购单:{{GetDetail.ReFinanceId}}</span>
<span class="fr" style="text-decoration: underline;cursor: pointer;" v-if="GetDetail.OtherType==16"
@click="goassets(GetDetail.ReFinanceId,GetDetail.OtherType)"> 电商出库单:{{GetDetail.ReFinanceId}}</span>
<span class="fr" style="text-decoration: underline;cursor: pointer;" v-if="GetDetail.OtherType==31"
@click="goassets2(GetDetail.ReFinanceId,GetDetail.OtherType)"> 教育资产采购:{{GetDetail.ReFinanceId}}</span>
<span class="fr" style="text-decoration: underline;cursor: pointer;" v-if="GetDetail.OtherType==32"
@click="goassets2(GetDetail.ReFinanceId,GetDetail.OtherType)"> 教育耗材采购:{{GetDetail.ReFinanceId}}</span>
<span class="fr" style="text-decoration: underline;cursor: pointer;" v-if="GetDetail.OtherType==33"
@click="goassets2(GetDetail.ReFinanceId,GetDetail.OtherType)"> 教育耗材出库:{{GetDetail.ReFinanceId}}</span>
<span class="fr" style="text-decoration: underline;cursor: pointer;" v-if="GetDetail.OtherType==17"
@click="lookbreakage(GetDetail.ReFinanceId)"> 报损/报溢单:{{GetDetail.ReFinanceId}}</span>
<span v-if="GetDetail.TemplateId==28 || GetDetail.TemplateId==30" @click="Gourl(GetDetail)"
......@@ -2123,6 +2132,20 @@
},
})
},
goassets2(ID,OtherType){
var tempStr = ''
if(OtherType==31){
tempStr = '/financial/financalDocument/PropertyProcurementDetails?id='+ID;
}else if(OtherType==32){
tempStr = '/financial/financalDocument/SuppliesProcurementDetail?id='+ID;
}else if(OtherType==33){
tempStr = '/financial/financalDocument/InAndOutDdetails?id='+ID;
}
this.$router.push({
path: tempStr
});
},
lookbreakage(ID) {
this.$router.replace({
name: "breakageSingle",
......
<style>
.InAndOutDdetails .zcInfo .el-col {
font-size: 12px;
margin-top: 20px;
color: #111111;
}
</style>
<template>
<div class="page-body InAndOutDdetails">
<el-row
class="HeaderDiv"
style="border-bottom: 1px solid #e2e4eb; padding-bottom: 20px"
>
<el-col :span="12">
<p
class="c11 f14"
style="padding-top: 12px"
>
{{GetDetail.StockOutStateStr}}
</p>
</el-col>
</el-row>
<el-row>
<el-col :span="18">
<el-row class="zcInfo">
<el-col :span="12">
<span>出库单编码:</span>
<span>{{ GetDetail.StockOutNum }}</span>
</el-col>
<el-col :span="12">
<span>领取人 :</span>
<span>{{ GetDetail.EmName }}</span>
</el-col>
<el-col :span="12">
<span>仓库名称 :</span>
<span>{{ GetDetail.WareHouseName }}</span>
</el-col>
<el-col :span="12">
<span>出库时间 :</span>
<span>{{ GetDetail.UpdateDate }}</span>
</el-col>
<el-col :span="12">
<span>操作人/时间 :</span>
<span>{{ GetDetail.UpdateBy }}{{GetDetail.StockOutDate}}</span>
</el-col>
<el-col :span="12" v-if="GetDetail.ApplyForId>0">
<span>申请单 :</span>
<span style="text-decoration:underline;color:#2961FE;cursor:pointer;" @click="gourl()">{{ GetDetail.ApplyForId }}</span>
</el-col>
</el-row>
</el-col>
</el-row>
<p class="f16 c11" style="margin-top: 25px">出库清单</p>
<div class="page-content" style="margin-top:10px">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-right-column-table sticky-column-table" separator="none" hide-bottom
:data="GetDetail.DetailList" :columns="columns" row-key="Id">
<template v-slot:body-cell-WareHouseName="props">
<q-td :props="props">
<span v-for="(x,y) in props.row.GoodsCategoryList" :key="y">{{x}} <span v-if="props.row.GoodsCategoryList.length !== y+1"> , </span></span>
</q-td>
</template>
</q-table>
</div>
</div>
</template>
<script>
import{
getStockOutPageList
} from '../../../api/finance/index'
export default {
props: {},
data() {
return {
GetDetail:{},
loading:false,
msg:{
rowsPerPage: 1000,
},
columns: [
{
name: 'SuppliesName',
label: '耗材名称',
field: 'SuppliesName',
align: 'left',
},
{
name: 'SuppliesNum',
label: '耗材编码',
field: 'SuppliesNum',
align: 'left',
},
{
name: 'CategoryName',
label: '分类名称',
field: 'CategoryName',
align: 'left',
},
{
name: 'WareHouseName',
required: true,
label: '品牌名称',
align: 'left',
field: row => row.WareHouseName
},
{
name: 'InventoryNum',
label: '库存',
field: 'InventoryNum',
align: 'left'
},
{
name: 'Number',
label: '出库数量',
field: 'Number',
align: 'left'
},
],
}
},
created() {},
mounted() {
this.getStockOutPageList();
},
methods: {
getStockOutPageList(){
let msg={
pageIndex:1,
pageSize:10,
StockOutNum:'',
SuppliesNum:'',
SuppliesName:'',
SupplierName:'',
StartTime:'',
EndTime:'',
WarehouseId:'',
EmployeeId:'',
Id:0,
RB_Group_id:''
}
msg.Id = this.$route.query.id;
msg.RB_Group_id = this.getLocalStorage().Group_Id
getStockOutPageList(msg).then(res => {
this.loading = false;
this.GetDetail = res.data.data.pageData[0]
}).catch(() => {
this.loading = false;
})
},
gourl(){
let ID = this.GetDetail.ApplyForId;
let tempStr = '/sale/SuppliesStockOutApplyForDetail?Id='+ID;
this.$router.push({
path: tempStr
});
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<style>
.PropertyProcurementDetails .zcInfo .el-col {
font-size: 12px;
margin-top: 20px;
color: #111111;
}
</style>
<template>
<div class="page-body PropertyProcurementDetails">
<el-row
class="HeaderDiv"
style="border-bottom: 1px solid #e2e4eb; padding-bottom: 20px"
>
<el-col :span="12">
<p
class="c11 f14"
style="padding-top: 12px"
v-if="GetDetail.StockInStatus == 1"
>
未入库
</p>
<p
class="c11 f14"
style="padding-top: 12px"
v-if="GetDetail.StockInStatus == 2"
>
部分入库
</p>
<p
class="c11 f14"
style="padding-top: 12px"
v-if="GetDetail.StockInStatus == 3"
>
已入库
</p>
</el-col>
</el-row>
<el-row>
<el-col :span="18">
<el-row class="zcInfo">
<el-col :span="12">
<span>校区:</span>
<span>{{ GetDetail.SchoolName }}</span>
</el-col>
<el-col :span="12">
<span>供应商 :</span>
<span>{{ GetDetail.SupplierName }}</span>
</el-col>
<el-col :span="12">
<span>创建人 :</span>
<span>{{ GetDetail.CreateByName }}</span>
</el-col>
<el-col :span="12">
<span>创建时间 :</span>
<span>{{ GetDetail.CreateDate }}</span>
</el-col>
<!-- <el-col :span="12">
<span>总数量 :</span>
<span>{{ GetDetail.TotalNumber }}</span>
</el-col>
<el-col :span="12">
<span>总价格 :</span>
<span>{{ GetDetail.TotalCostMoney }}</span>
</el-col> -->
<!-- <el-col :span="24">
<span>购置日期 :</span>
<el-date-picker
v-model="GetDetail.BuyDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-col> -->
<el-col :span="24">
<span>备注 :</span>
<span>{{ GetDetail.Remark }}</span>
</el-col>
</el-row>
</el-col>
</el-row>
<p class="f16 c11" style="margin-top: 25px">资产清单</p>
<div class="page-content" style="margin-top:10px">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-right-column-table sticky-column-table" separator="none" hide-bottom
:data="GetDetail.DetailList" :columns="columns" row-key="Id">
<template v-slot:body-cell-EmName="props">
<div>{{props.row.EmName}}</div>
<div>{{props.row.GetTime}}</div>
</template>
</q-table>
</div>
</div>
</template>
<script>
import{
getPropertyProcurementInfo
} from '../../../api/finance/index'
export default {
props: {},
data() {
return {
GetDetail:{},
loading:false,
msg:{
rowsPerPage: 1000,
},
columns: [
{
name: 'PropertyName',
label: '名称',
field: 'PropertyName',
align: 'left',
},
{
name: 'BrandName',
label: '品牌',
field: 'BrandName',
align: 'left',
},
{
name: 'CategoryName',
label: '分类',
field: 'CategoryName',
align: 'left',
},
{
name: 'CostMoney',
label: '单价',
align: 'left',
field: 'CostMoney'
},
{
name: 'Number',
label: '采购数量',
field: 'Number',
align: 'left'
},
{
name: 'StockInNum',
label: '已入数量',
field: 'StockInNum',
align: 'left'
},
],
}
},
created() {},
mounted() {
this.getPropertyProcurementInfo();
},
methods: {
getPropertyProcurementInfo(){
getPropertyProcurementInfo({ProcurementId:this.$route.query.id}).then(res => {
this.loading = false;
this.GetDetail = res.data.data
}).catch(() => {
this.loading = false;
})
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<style>
.SuppliesProcurementDetail .zcInfo .el-col {
font-size: 12px;
margin-top: 20px;
color: #111111;
}
</style>
<template>
<div class="page-body SuppliesProcurementDetail">
<el-row
class="HeaderDiv"
style="border-bottom: 1px solid #e2e4eb; padding-bottom: 20px"
>
<el-col :span="12">
<p
class="c11 f14"
style="padding-top: 12px"
v-if="GetDetail.StockInStatus == 1"
>
未入库
</p>
<p
class="c11 f14"
style="padding-top: 12px"
v-if="GetDetail.StockInStatus == 2"
>
部分入库
</p>
<p
class="c11 f14"
style="padding-top: 12px"
v-if="GetDetail.StockInStatus == 3"
>
已入库
</p>
</el-col>
</el-row>
<el-row>
<el-col :span="18">
<el-row class="zcInfo">
<el-col :span="12">
<span>校区:</span>
<span>{{ GetDetail.SchoolName }}</span>
</el-col>
<el-col :span="12">
<span>供应商 :</span>
<span>{{ GetDetail.SupplierName }}</span>
</el-col>
<el-col :span="12">
<span>创建人 :</span>
<span>{{ GetDetail.CreateByName }}</span>
</el-col>
<el-col :span="12">
<span>创建时间 :</span>
<span>{{ GetDetail.CreateDate }}</span>
</el-col>
<el-col :span="12">
<span>仓库 :</span>
<span>{{ GetDetail.WareHouseName }}</span>
</el-col>
<el-col :span="24">
<span>备注 :</span>
<span>{{ GetDetail.Remark }}</span>
</el-col>
</el-row>
</el-col>
</el-row>
<p class="f16 c11" style="margin-top: 25px">资产清单</p>
<div class="page-content" style="margin-top:10px">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-right-column-table sticky-column-table" separator="none" hide-bottom
:data="GetDetail.DetailList" :columns="columns" row-key="Id">
<template v-slot:body-cell-EmName="props">
<div>{{props.row.EmName}}</div>
<div>{{props.row.GetTime}}</div>
</template>
</q-table>
</div>
</div>
</template>
<script>
import{
getSuppliesProcurementInfo
} from '../../../api/finance/index'
export default {
props: {},
data() {
return {
GetDetail:{},
loading:false,
msg:{
rowsPerPage: 1000,
},
columns: [
{
name: 'SuppliesName',
label: '名称',
field: 'SuppliesName',
align: 'left',
},
{
name: 'BrandName',
label: '品牌',
field: 'BrandName',
align: 'left',
},
{
name: 'CategoryName',
label: '分类',
field: 'CategoryName',
align: 'left',
},
{
name: 'CostMoney',
label: '单价',
align: 'left',
field: 'CostMoney'
},
{
name: 'Number',
label: '采购数量',
field: 'Number',
align: 'left'
},
{
name: 'StockInNum',
label: '已入数量',
field: 'StockInNum',
align: 'left'
},
],
}
},
created() {},
mounted() {
this.getSuppliesProcurementInfo();
},
methods: {
getSuppliesProcurementInfo(){
getSuppliesProcurementInfo({ProcurementId:this.$route.query.id}).then(res => {
this.loading = false;
this.GetDetail = res.data.data
}).catch(() => {
this.loading = false;
})
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
......@@ -42,8 +42,8 @@
</p>
</el-col>
<el-col :span="12">
<el-button @click="setStockoutdig=true" round style="float: right;background-color:#2961fe;color:#fff;margin-left:10px" v-if="isSelfCreate" :disabled="GetDetail.AuditStatus == 2">修改状态</el-button>
<el-button @click="SetStockout" round style="float: right;background-color:#2961fe;color:#fff;" :disabled="GetDetail.AuditStatus != 2||GetDetail.StockOutStatus === 3">出库</el-button>
<!-- <el-button @click="setStockoutdig=true" round style="float: right;background-color:#2961fe;color:#fff;margin-left:10px" v-if="isSelfCreate" :disabled="GetDetail.AuditStatus == 2">修改状态</el-button>
<el-button @click="SetStockout" round style="float: right;background-color:#2961fe;color:#fff;" :disabled="GetDetail.AuditStatus != 2||GetDetail.StockOutStatus === 3">出库</el-button> -->
</el-col>
</el-row>
<el-row>
......@@ -73,16 +73,6 @@
<span>总数量 :</span>
<span>{{ GetDetail.TotalNumber }}</span>
</el-col>
<el-col :span="12" style="display:flex">
<span>仓库 :</span>
<div>
<q-select filled use-input input-debounce="0" option-value="Id"
option-label="Name" v-model="GetDetail.WareHouseId" :options="storeList" dense
emit-value map-options>
</q-select>
</div>
</el-col>
<el-col :span="24">
<span>备注 :</span>
<span>{{ GetDetail.Remark }}</span>
......@@ -92,19 +82,7 @@
</el-row>
<p class="f16 c11" style="margin-top: 25px">明细</p>
<!-- <el-row style="float:right" class="zcInfo">
<el-col :span="24" >
<span>购置日期 :</span>
<el-date-picker
v-model="GetDetail.BuyDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-col>
</el-row> -->
<table
style="margin-top: 10px"
class="myTable noHoverTable"
......@@ -118,7 +96,6 @@
<th>分类</th>
<th>数量</th>
<th>已出数量</th>
<th width="150px">出库数量</th>
</thead>
<tbody>
<tr v-for="(item, index) in GetDetail.DetailList" :key="index">
......@@ -127,9 +104,7 @@
<td>{{ item.CategoryName }}</td>
<td>{{ item.Number }}</td>
<td>{{ item.StockOutNum }}</td>
<td>
<q-input v-model.number="item.WaitStockOutNum" type="number" @input="inputval(item.WaitStockOutNum,item.Number,index)" :min="0" :max="item.Number" :disable="GetDetail.AuditStatus != 2||GetDetail.StockOutStatus === 3"></q-input>
</td>
</tr>
<tr v-show="GetDetail.DetailList.length == 0">
......@@ -138,36 +113,7 @@
</tbody>
</table>
</div>
<q-dialog v-model="setStockoutdig">
<q-card class="q-px-md" style="width:1000px;">
<q-card-section class="row items-center q-pb-none">
<div class="text-h6">修改状态</div>
<q-space />
<q-btn icon="close" flat round dense v-close-popup />
</q-card-section>
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-6 q-mt-lg">
<q-select filled use-input input-debounce="0" option-value="id" label="类型"
option-label="name" v-model="stateMsg.Type" :options="stateOption"
emit-value map-options>
</q-select>
</div>
</div>
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-12 q-mt-lg">
<q-input v-model="stateMsg.Remark" label="备注" type="textarea" filled></q-input>
</div>
</div>
<div class="col row wrap q-mr-lg q-col-gutter-md q-mb-lg">
<div class="col-12 q-mt-lg" >
<q-btn color="primary" label="提交" style="float:right" class="q-ml-sm" @click="SetStockoutState"></q-btn>
<q-btn text-color="primary" label="取消" style="float:right" @click="setStockoutdig=false"></q-btn>
</div>
</div>
</q-card>
</q-dialog>
</div>
</template>
......@@ -238,7 +184,8 @@ export default {
}
},
backTo() {
this.$router.push("/sale/SuppliesStockOutApplyForMan");
// this.$router.push("/sale/SuppliesStockOutApplyForMan");
this.$router.go(-1);//返回上一层
},
getDetail() {
this.pageLoad = true;
......
......@@ -442,6 +442,23 @@ const routes = [{
component: () =>
import("pages/financial/financalDocument/FinancialDocumentsDetail.vue")
},
{
path: "/financial/financalDocument/PropertyProcurementDetails", //资产采购详情
component: () =>
import("pages/financial/financalDocument/PropertyProcurementDetails.vue")
},
{
path: "/financial/financalDocument/SuppliesProcurementDetail", //耗材采购详情
component: () =>
import("pages/financial/financalDocument/SuppliesProcurementDetail.vue")
},
{
path: "/financial/financalDocument/InAndOutDdetails", //财务单据 教育耗材出库
component: () =>
import("pages/financial/financalDocument/InAndOutDdetails.vue")
},
{
path: "/financial/financalDocument/BasicDocuments", //财务 财务单据 审核标准单据
component: () =>
......@@ -770,6 +787,15 @@ const routes = [{
title: '资产管理'
},
},
{
path: '/RequisitionShenpi', //资产管理审批
name: 'RequisitionShenpi',
component: () => import('pages/administration/AssetsSystem/RequisitionShenpi'),
meta: {
title: '资产管理'
},
},
{
path: "*",
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