340 lines
14 KiB
HTML
340 lines
14 KiB
HTML
|
|
<!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>
|