yn_cw_gj/src/main/resources/static/pages/finance/payable.html

340 lines
14 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>应付录入</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/dataTables.bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../layui-v2.8.3/layui/css/layui.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/work/publicStyles.css">
<style>
button{
border-radius: 7px !important;
}
#addBtn{
background-color: #f59a23 !important;
}
#exportBt{
background-color: #f2f2f2 !important;
color: #000000 !important;
border: 1px solid #ababab !important;
}
.wrap {
word-wrap: break-word;
}
</style>
</head>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12" >
<header style="height: 100%">
<div align="left">
<table style="width: 100%">
<tr>
<td>
<form class="form-inline layui-form" onsubmit="return false">
<div class="form-group">
<div class="layui-inline">
<div class="layui-input-inline">
<input id="htmc" type="text" class="layui-input" style="width: 200px" placeholder="请输入合同名称">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input id="gysmc" type="text" class="layui-input" style="width: 200px" placeholder="请输入供应商名称">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input id="spbh" type="text" class="layui-input" style="width: 200px" placeholder="请输入商品编号">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input id="pzh" type="text" class="layui-input" style="width: 200px" placeholder="请输入单号(凭证号)">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input id="zdr" type="text" class="layui-input" style="width: 200px" placeholder="请输入制单人">
</div>
</div>
<div class="layui-input-inline" style="width: 10%;">
<input id="startTime" name="startTime" type="text" class="layui-input" style="border: 1px solid #D2D2D2; width: 100%" readonly placeholder="请选择开始时间">
</div>
<div class="layui-input-inline" style="width: 10%;">
<input id="endTime" name="endTime" type="text" class="layui-input" style="border: 1px solid #D2D2D2; width: 100%" readonly placeholder="请选择结束时间">
</div>
<button id="searchBt" class="layui-btn" permission="sys:payable:query" style="margin-left: 15px;">
搜索
</button>
<button id="addBtn" class="layui-btn" onclick="addForm()" permission="sys:payable:add">
添加
</button>
<button id="exportBt" class="layui-btn" >
下载
</button>
</div>
</form>
</td>
</tr>
</table>
</div>
</header>
<div style="margin-left: 15px;margin-right: 15px;">
<div class="widget-body">
<table id="demo" lay-filter="test" class="layui-table" lay-size="lg">
</table>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="../../js/libs/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../js/jq.js"></script>
<script type="text/javascript" src="../../js/plugin/datatables/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../../js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="../../layui-v2.8.3/layui/layui.js"></script>
<script type="text/javascript" src="../../js/my/permission.js"></script>
<script type="text/javascript" src="../../js/publicJs.js"></script>
<script type="text/javascript" src="../../js/common_methon.js"></script>
<script type="text/html" id="gysmcView">
<a style="color: #35B3F1;cursor:pointer;" onclick="buttonquerygysmc('{{d.htmcid}}')">{{d.gysmc}}</a>
</script>
<script type="text/html" id="toolsBar">
<a style="color: #009688;font-size: 16px;cursor:pointer;" onclick="openForm('{{d.id}}')">修改</a>
<span> | </span>
<a style="color: #009688;font-size: 16px;cursor:pointer;" onclick="del('{{d.id}}')">删除</a>
</script>
<script type="text/javascript">
var pers = checkPermission();
var example;
var form;
var layuiForm;
let laydate
layui.use(['form', 'laydate', 'upload'], function () {
table = layui.table;
form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
layuiForm = form;
laydate = layui.laydate;
form.render();
form.verify({});
// 日期选择器渲染
laydate.render({
elem: '#startTime',
format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#endTime',
format: 'yyyy-MM-dd'
});
table.render({
elem: '#demo'
, url: ctxPath + '/payable/getList' //数据接口
, method: 'post' //方式默认是get
, toolbar: true //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
,defaultToolbar: []
, where: {
htmc :$('#htmc').val(),
gysmc :$('#gysmc').val(),
spbh :$('#spbh').val(),
pzh :$('#pzh').val(),
zdr :$('#zdr').val(),
startTime :$('#startTime').val(),
endTime :$('#endTime').val()
} //post请求必须加where post请求需要的参数
, cellMinWidth: 80
, cols: [[ //表头
{field: 'number', width:100,title: '序号', align: 'center', type: 'numbers'}
, {field: 'rq',width:200, align: 'center', title: '日期'}
, {field: 'pzh', width: 200, align: 'center', title: '单号(凭证号)'}
, {field: 'htmc', width: 220, align: 'center', title: '合同名称(项目名称)'}
, {field: 'department', width: 220, align: 'center', title: '组织机构'}
, {field: 'gysmc', width: 200, align: 'center',title:'往来单位',templet: '#gysmcView'}
, {field: 'spbh', width: 200, align: 'center', title: '商品编号'}
, {field: 'spmc', width: 200, align: 'center', title: '商品名称'}
, {field: 'je', width: 200, align: 'center', title: '金额'}
, {field: 'fphm', width: 200, align: 'center', title: '发票号码'}
, {field: 'kpje', width: 200, align: 'center', title: '开票金额'}
, {field: 'zdr', width: 200, align: 'center', title: '制单人'}
, {field: 'spzy', width: 200, align: 'center', title: '收票摘要'}
, {fixed: 'right',title: '操作', width: 150,align: 'center', toolbar: '#toolsBar'}
]]
, id: 'menuTable'
, page: true //开启分页
, loading: true //数据加载中。。。
, limits: [5, 10, 20] //一页选择显示3,5或10条数据
, limit: 10 //一页显示5条数据
, response: {
statusCode: 200 //规定成功的状态码默认0
}, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据res为从url中get到的数据
let result;
if (res.data !== '' && res.data != null && res.data !== "null") {
if (this.page.curr) {
result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
} else {
result = res.data.slice(0, this.limit);
}
}
return {
"code": res.code, //解析接口状态
"msg": res.msg, //解析提示文本
"count": res.count, //解析数据长度
"data": result, //解析数据列表
};
},
toolbar: "#toolbar"
});
});
function buttonquerygysmc(htmcid) {
localStorage.setItem("htmcid",htmcid);
var index = layer.open({
title: ["查看", 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'supplierInfoView.html',
area: ["60%","80%"],
maxmin: false,
});
}
function addForm(){
openForms("","新增");
}
/**
* 新增功能
*/
function openForms(id,title){
localStorage.setItem("id",id);
// layerOpenForm(title,"./addRole.html","80%","95%")
var index = layer.open({
title: [title, 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: "./addPayable.html",
area: ["70%","90%"],
maxmin: false,
});
}
/**
* 修改功能
*/
function openForm(id){
localStorage.setItem("id",id);
$.ajax({
type : 'get',
url : ctxPath + '/payable/'+id,
async : false,
success: function (data) {
var height = '90%';
var width = '70%';
var index = layer.open({
title: ['修改','color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'addPayable.html',
area: [width, height],
maxmin: false,
success:function(layero,index){
var myIframe = window[layero.find('iframe')[0]['name']];
var fnc = myIframe.setData(data); //aaa()为子页面的方法
},
});
}
})
}
function del(id){
layer.confirm('确定要删除吗?', {
btn : [ '确定', '取消' ]
}, function() {
$.ajax({
type : 'delete',
url : ctxPath + '/payable/'+id,
success : function(data) {
table.reload('menuTable');
layer.msg("删除成功");
}
});
layer.close(1);
});
}
$("#searchBt").click(function () {
let startIpt = $('#startTime').val()
let endIpt = $('#endTime').val()
console.log(startIpt, endIpt)
if (
startIpt === '' && endIpt !== ''
||
startIpt !== '' && endIpt === ''
||
startIpt === null && endIpt !== null
||
startIpt !== null && endIpt === null
) {
layer.msg('请填写完整日期!', {
icon: 2,
time: 2000
})
} else if (Date.parse(startIpt) > Date.parse(endIpt)) {
layer.msg('请选择正确的日期范围!', { icon: 5, time: 1500 }, () => {
})
} else {
table.reload('menuTable', {
url: ctxPath + '/payable/getList'
, method: 'post' //方式默认是get
, page: true
, where: {
htmc :$('#htmc').val(),
gysmc :$('#gysmc').val(),
spbh :$('#spbh').val(),
pzh :$('#pzh').val(),
zdr :$('#zdr').val(),
startTime :$('#startTime').val(),
endTime :$('#endTime').val()
} //设定异步数据接口的额外参数
});
}
});
$("#exportBt").click(function () {
var token = localStorage.getItem("token");
var loadingMsg = layer.msg('下载中,请稍候...', {icon: 16, scrollbar: false, time: 0});
var url = ctxPath + "/payable/exp?htmc=" + $("#htmc").val().trim()+"&gysmc=" + $("#gysmc").val().trim()+ "&spbh=" + $("#spbh").val().trim()+"&pzh=" + $("#pzh").val().trim()+"&zdr=" + $("#zdr").val().trim()+"&startTime=" + $("#startTime").val().trim()+"&endTime=" + $("#endTime").val().trim()+"&token=" + token;
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
var blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = "应付录入信息.xlsx"; // 文件名
}else {
layer.msg('导出发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
}
a.click()
window.URL.revokeObjectURL(url)
};
xhr.send();
});
</script>