453 lines
18 KiB
HTML
Raw Normal View History

{extend name="../../base/view/common/base" /}
2021-11-17 16:20:00 +08:00
{block name="style"}
<style>
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
.layui-form-radio{margin-right:6px}
.layui-form-radio>i{margin-right:3px; }
2021-11-17 16:20:00 +08:00
</style>
{/block}
<!-- 主体 -->
{block name="body"}
2022-06-08 15:13:48 +08:00
<form class="layui-form p-4">
<h3 class="pb-3">申请开票</h3>
2021-11-17 16:20:00 +08:00
{if condition="($id == 0)"}
<table class="layui-table">
<tr>
<td class="layui-td-gray">开票金额<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-18 23:51:14 +08:00
<input type="text" class="layui-input" name="amount" lay-verify="required|number" placeholder="请输入开票金额" lay-reqText="请输入开票金额" value="">
2021-11-17 16:20:00 +08:00
</td>
<td class="layui-td-gray">开票类型<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-24 23:15:55 +08:00
<select name="invoice_type" lay-verify="required" lay-reqText="请选择开票类型">
2021-11-18 23:37:18 +08:00
<option value="">请选择开票类型</option>
<option value="1">增值税专用发票</option>
<option value="2">普通发票</option>
<option value="3">专业发票</option>
2021-11-18 23:37:18 +08:00
</select>
2021-11-17 16:20:00 +08:00
</td>
<td class="layui-td-gray">开票主体<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-24 23:15:55 +08:00
<select name="invoice_subject" lay-verify="required" lay-reqText="请选择开票主体">
2021-11-18 23:51:14 +08:00
<option value="">请选择开票主体</option>
2022-02-11 15:23:44 +08:00
{volist name=":finance_invoice_subject()" id="vo"}
2021-11-20 00:15:42 +08:00
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
2021-11-18 23:51:14 +08:00
</select>
2021-11-17 16:20:00 +08:00
</td>
</tr>
<tr>
<td class="layui-td-gray">抬头类型<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-20 00:15:42 +08:00
<input type="radio" name="type" lay-filter="type" value="1" title="企业" checked>
<input type="radio" name="type" lay-filter="type" value="2" title="个人">
2021-11-17 16:20:00 +08:00
</td>
<td class="layui-td-gray">开票抬头<font>*</font></td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_title" class="layui-input" value="" lay-verify="required" lay-reqText="请输入开票抬头"></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">电话号码</td>
<td><input type="text" name="invoice_phone" class="layui-input" value=""></td>
2021-11-17 16:20:00 +08:00
</tr>
2021-11-20 00:15:42 +08:00
<tr class="invoice-type">
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray-2">纳税人识别号</td>
2021-11-18 23:37:18 +08:00
<td><input type="text" name="invoice_tax" class="layui-input" value=""></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">开户行</td>
2021-11-18 23:37:18 +08:00
<td><input type="text" name="invoice_bank" class="layui-input" value=""></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">银行账号</td>
2021-11-24 23:15:55 +08:00
<td><input type="text" name="invoice_account" class="layui-input" value=""></td>
2021-11-18 23:37:18 +08:00
</tr>
2021-11-20 00:15:42 +08:00
<tr class="invoice-type">
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray-2">银行营业网点</td>
2021-11-18 23:37:18 +08:00
<td><input type="text" name="invoice_banking" class="layui-input" value=""></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">地址</td>
2021-11-18 23:37:18 +08:00
<td colspan="3"><input type="text" name="invoice_address" class="layui-input" value=""></td>
</tr>
{gt name=":isModule('contract')" value="0"}
2022-10-07 00:35:28 +08:00
<tr>
<td class="layui-td-gray">关联合同</td>
2022-10-07 00:35:28 +08:00
<td colspan="5">
<input type="text" class="layui-input contract-picker" name="contract_name" placeholder="请选择需要关联的合同" readonly value="">
<input type="hidden" class="layui-input" name="contract_id" value="0">
</td>
</tr>
{/gt}
2021-11-18 23:37:18 +08:00
<tr>
2021-11-18 23:51:14 +08:00
<td class="layui-td-gray">备注信息</td>
2021-11-18 23:37:18 +08:00
<td colspan="5"><textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea></td>
2021-11-17 16:20:00 +08:00
</tr>
<tr>
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
<td colspan="5">
<div class="layui-row" id="fileList">
<input type="hidden" name="file_ids" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray">审批流程<font>*</font></td>
2021-11-18 23:51:14 +08:00
<td colspan="5">
<select name="flow_id" lay-verify="required" lay-filter="flowtype" lay-reqText="请选择审批流程">
<option value="">--请选择--</option>
{volist name="flows" id="vo"}
<option value="{$vo.id}" title="{$vo.check_type}">{$vo.name}</option>
{/volist}
</select>
</td>
</tr>
<tr id="flow_tr">
<td class="layui-td-gray">审核人<font>*</font></td>
<td colspan="5">
<input type="hidden" name="check_admin_ids" value="" readonly><input type="text" name="check_admin_name" value="" autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input" readonly>
2021-11-18 23:51:14 +08:00
</td>
</tr>
<tr>
<td class="layui-td-gray">抄送人</td>
<td colspan="5">
<input type="text" name="copy_names" value="" autocomplete="off" placeholder="请选择审核人" class="layui-input picker-more" readonly><input type="hidden" name="copy_uids" value="" readonly>
</td>
</tr>
2021-11-17 16:20:00 +08:00
</table>
{else/}
<table class="layui-table">
<tr>
<td class="layui-td-gray">开票金额<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-20 00:15:42 +08:00
<input type="text" class="layui-input" name="amount" lay-verify="required|number" placeholder="请输入开票金额" lay-reqText="请输入开票金额" value="{$detail.amount}">
2021-11-17 16:20:00 +08:00
</td>
<td class="layui-td-gray">开票类型<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-20 00:15:42 +08:00
<select name="invoice_type" lay-verify="required" lay-reqText="请选择开票类型">
2021-11-18 23:37:18 +08:00
<option value="">请选择开票类型</option>
2021-11-20 00:15:42 +08:00
<option value="1" {eq name="$detail.invoice_type" value="1"}selected{/eq}>增值税专用发票</option>
<option value="2" {eq name="$detail.invoice_type" value="2"}selected{/eq}>普通发票</option>
<option value="3" {eq name="$detail.invoice_type" value="3"}selected{/eq}>专业发票</option>
2021-11-18 23:37:18 +08:00
</select>
2021-11-17 16:20:00 +08:00
</td>
<td class="layui-td-gray">开票主体<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-24 23:15:55 +08:00
<select name="invoice_subject" lay-verify="required" lay-reqText="请选择开票主体">
2021-11-18 23:51:14 +08:00
<option value="">请选择开票主体</option>
2022-02-11 15:23:44 +08:00
{volist name=":finance_invoice_subject()" id="vo"}
2021-11-20 00:15:42 +08:00
<option value="{$vo.id}" {eq name="$vo.id" value="$detail.invoice_subject"}selected{/eq}>{$vo.title}</option>
{/volist}
2021-11-18 23:51:14 +08:00
</select>
2021-11-17 16:20:00 +08:00
</td>
</tr>
<tr>
<td class="layui-td-gray">抬头类型<font>*</font></td>
2021-11-17 16:20:00 +08:00
<td>
2021-11-20 00:15:42 +08:00
<input type="radio" name="type" lay-filter="type" value="1" title="企业" {eq name="$detail.type" value="1"}checked{/eq}>
<input type="radio" name="type" lay-filter="type" value="2" title="个人" {eq name="$detail.type" value="2"}checked{/eq}>
2021-11-17 16:20:00 +08:00
</td>
<td class="layui-td-gray">开票抬头<font>*</font></td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_title" class="layui-input" value="{$detail.invoice_title}"></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">电话号码</td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_phone" class="layui-input" value="{$detail.invoice_phone}"></td>
2021-11-17 16:20:00 +08:00
</tr>
2021-11-20 00:15:42 +08:00
<tr class="invoice-type" {eq name="$detail.type" value="2"}style="display:none"{/eq}>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray-2">纳税人识别号</td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_tax" class="layui-input" value="{$detail.invoice_tax}"></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">开户行</td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_bank" class="layui-input" value="{$detail.invoice_bank}"></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">银行账号</td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_account" class="layui-input" value="{$detail.invoice_account}"></td>
2021-11-18 23:37:18 +08:00
</tr>
2021-11-20 00:15:42 +08:00
<tr class="invoice-type" {eq name="$detail.type" value="2"}style="display:none"{/eq}>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray-2">银行营业网点</td>
2021-11-20 00:15:42 +08:00
<td><input type="text" name="invoice_banking" class="layui-input" value="{$detail.invoice_banking}"></td>
2022-07-20 23:30:09 +08:00
<td class="layui-td-gray">地址</td>
2021-11-20 00:15:42 +08:00
<td colspan="3"><input type="text" name="invoice_address" class="layui-input" value="{$detail.invoice_address}"></td>
2021-11-18 23:37:18 +08:00
</tr>
{gt name=":isModule('contract')" value="0"}
2022-10-07 00:35:28 +08:00
<tr>
<td class="layui-td-gray">关联合同</td>
2022-10-07 00:35:28 +08:00
<td colspan="5">
<input type="text" class="layui-input contract-picker" name="contract_name" placeholder="请选择需要关联的合同" readonly value="{$detail.contract_name}">
<input type="hidden" class="layui-input" name="contract_id" value="{$detail.contract_id}">
</td>
</tr>
{/gt}
2021-11-18 23:37:18 +08:00
<tr>
2021-11-18 23:51:14 +08:00
<td class="layui-td-gray">备注信息</td>
2021-11-20 00:15:42 +08:00
<td colspan="5"><textarea name="remark" placeholder="请输入备注信息" class="layui-textarea">{$detail.remark}</textarea></td>
2021-11-17 16:20:00 +08:00
</tr>
<tr>
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
<td colspan="5" style="line-height:inherit">
<div class="layui-row" id="fileList">
<input type="hidden" name="file_ids" value="{$detail.file_ids}">
{notempty name="$detail.file_ids"}
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="uploadImg{$vo.id}">
<div class="file-card">
<i class="file-icon iconfont icon-renwuguanli"></i>
<div class="file-title">{$vo.name}</div>
<div class="file-tool">
<a href="{$vo.filepath}" download="{$vo.name}" target="_blank" title="下载查看"><i class="iconfont icon-shujudaoru blue"></i></a>
<i class="btn-delete iconfont icon-shanchu red" data-id="{$vo.id}" title="删除"></i>
</div>
</div>
</div>
{/volist}
{/notempty}
</div>
</td>
</tr>
2021-11-18 23:51:14 +08:00
<tr>
<td class="layui-td-gray">审批流程<font>*</font></td>
<td colspan="5">
<select name="flow_id" lay-verify="required" lay-filter="flowtype" lay-reqText="请选择审批流程">
<option value="">--请选择--</option>
{volist name="flows" id="vo"}
<option value="{$vo.id}" title="{$vo.check_type}">{$vo.name}</option>
{/volist}
</select>
</td>
</tr>
<tr id="flow_tr">
<td class="layui-td-gray">审核人<font>*</font></td>
2021-11-18 23:51:14 +08:00
<td colspan="5">
<input type="hidden" name="check_admin_ids" value="" readonly><input type="text" name="check_admin_name" value="" autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input" readonly>
2021-11-18 23:51:14 +08:00
</td>
</tr>
<tr>
<td class="layui-td-gray">抄送人</td>
<td colspan="5">
<input type="text" name="copy_names" value="" autocomplete="off" placeholder="请选择审核人" class="layui-input picker-more" readonly><input type="hidden" name="copy_uids" value="" readonly>
</td>
</tr>
2021-11-18 23:51:14 +08:00
</table>
2021-11-17 16:20:00 +08:00
{/if}
2022-06-08 15:13:48 +08:00
<div class="py-3">
2021-11-17 16:20:00 +08:00
<input name="id" id="id" type="hidden" value="{$id}">
<button class="layui-btn layui-btn-normal " lay-submit="" lay-filter="webform">保存并提交审核</button>
2021-11-17 16:20:00 +08:00
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
2022-06-08 15:13:48 +08:00
<script>
// 查找指定的元素在数组中的位置
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) {
return i;
}
}
return -1;
};
// 通过索引删除数组元素
Array.prototype.remove = function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
const moduleInit = ['tool','employeepicker'];
function gouguInit() {
2022-10-07 00:35:28 +08:00
var form = layui.form,upload = layui.upload,tool=layui.tool,table=layui.table,employeepicker = layui.employeepicker,laydate = layui.laydate;
//选择抬头类型
form.on('radio(type)', function (data) {
if(data.value==2){
$('.invoice-type').hide();
}
else{
$('.invoice-type').show();
}
});
2022-10-07 00:35:28 +08:00
//选择关联合同
$('.contract-picker').on('click', function () {
contractProject();
});
var contractTable;
function contractProject() {
layer.open({
title: '选择合同',
area: ['600px', '580px'],
type: 1,
content: '<div class="picker-table">\
<form class="layui-form pb-2">\
<div class="layui-input-inline" style="width:480px;">\
<input type="text" name="keywords" placeholder="合同名称" class="layui-input" autocomplete="off" />\
</div>\
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="search_form">提交搜索</button>\
</form>\
<div id="contractTable"></div></div>',
success: function () {
contractTable = table.render({
elem: '#contractTable'
, url: '/contract/api/get_contract'
, page: true //开启分页
, limit: 10
, cols: [[
{ type: 'radio', title: '选择' }
, { field: 'id', width: 100, title: '编号', align: 'center' }
, { field: 'name', title: '合同名称' }
]]
});
//项目搜索提交
form.on('submit(search_form)', function (data) {
contractTable.reload({ where: { keywords: data.field.keywords }, page: { curr: 1 } });
return false;
});
},
btn: ['确定'],
2022-11-12 01:22:53 +08:00
btnAlign: 'c',
2022-10-07 00:35:28 +08:00
yes: function () {
var checkStatus = table.checkStatus(contractTable.config.id);
var data = checkStatus.data;
if (data.length > 0) {
$('[name="contract_name"]').val(data[0].name);
$('[name="contract_id"]').val(data[0].id);
layer.closeAll();
}
else {
layer.msg('请先选择合同');
return false;
}
}
})
}
//监听提交
form.on('submit(webform)', function(data){
$.ajax({
url: "/finance/invoice/add",
type:'post',
data:data.field,
success:function(e){
layer.msg(e.msg);
if (e.code == 0) {
parent.layui.tool.close(1000);
}
}
})
return false;
});
form.on('select(flowtype)', function(data){
var check_type = data.elem[data.elem.selectedIndex].title;
var formHtml='<td class="layui-td-gray">审核人<font>*</font></td>\
<td colspan="5">\
<input type="text" name="check_admin_name" value="" autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input picker-one"><input type="hidden" name="check_admin_ids" value="">\
</td>';
if(check_type == 2){
$('#flow_tr').html(formHtml);
form.render();
}
if(data.value==''){
return false;
}
$.ajax({
url: "/api/index/get_flow_users",
type:'get',
data:{id:data.value},
success: function (e) {
if (e.code == 0) {
var flowLi='';
var flow_data = e.data.flow_data;
if(e.data.copy_uids && e.data.copy_uids !=''){
$('[name="copy_names"]').val(e.data.copy_unames);
$('[name="copy_uids"]').val(e.data.copy_uids.split(','));
}
if(check_type == 1 || check_type == 3){
for(var a=0;a<flow_data.length;a++){
var userList='',sign_type = '';
if(check_type == 1){
if(flow_data[a].flow_type==1){
userList+= '<li style="padding:3px 0">当前部门负责人</li>';
}
else if(flow_data[a].flow_type==2){
userList+= '<li style="padding:3px 0">上级部门负责人</li>';
}
else{
if(flow_data[a].flow_type==3){
sign_type= ' <span class="layui-badge layui-bg-blue">或签</span>';
}
if(flow_data[a].flow_type==4){
sign_type= ' <span class="layui-badge layui-bg-blue">会签</span>';
}
for(var b=0;b<flow_data[a].user_id_info.length;b++){
userList+= '<li style="padding:3px 0"><img src="'+flow_data[a].user_id_info[b].thumb+'" style="width:24px; height:24px; border-radius:50%; margin-right:8px;" />'+flow_data[a].user_id_info[b].name+'</li>';
}
}
}
else if(check_type == 3){
sign_type= ' <span class="layui-badge layui-bg-blue">'+flow_data[a].flow_name+'</span>'
for(var b=0;b<flow_data[a].user_id_info.length;b++){
userList+= '<li style="padding:3px 0"><img src="'+flow_data[a].user_id_info[b].thumb+'" style="width:24px; height:24px; border-radius:50%; margin-right:8px;" />'+flow_data[a].user_id_info[b].name+'</li>';
}
}
flowLi+='<li class="layui-timeline-item">\
<i class="layui-icon layui-timeline-axis">&#xe63f;</i>\
<div class="layui-timeline-content">\
<p class="layui-timeline-title"><strong>第'+(a+1)+'级审批</strong>'+sign_type+'</p>\
<ul>'+userList+'</ul>\
</div>\
</li>';
}
formHtml = '<td class="layui-td-gray">审批流程</td>\
<td colspan="7">\
<ul id="flowList" class="layui-timeline">'+flowLi+'</ul>\
</td>';
$('#flow_tr').html(formHtml);
}
}
}
})
});
$('#fileList').on('click', '.btn-delete', function () {
var _id = $(this).data('id');
var idsStr = $('#fileList input').val(),idsArray = [];
if (idsStr != '') {
idsArray = idsStr.split(",");
}
idsArray.remove(_id);
$('#fileList input').attr('value', idsArray.join(','));
$('#uploadImg' + _id).remove();
})
//多附件上传
upload.render({
elem: '#upFile'
,url: "/api/index/upload"
,multiple: true
,accept: 'file' //普通文件
,exts: 'png|jpg|gif|jpeg|doc|docx|ppt|pptx|xls|xlsx|pdf|zip|rar|7z' //只允许上传文件格式
,done: function(res){
layer.msg(res.msg);
if (res.code == 0) {
//上传成功
var idsStr = $('#fileList input').val(),idsArray = [];
if (idsStr != '') {
idsArray = idsStr.split(",");
2021-11-17 16:20:00 +08:00
}
idsArray.push(res.data.id);
$('#fileList input').attr('value', idsArray.join(','));
let temp = `<div class="layui-col-md4" id="uploadImg${res.data.id}">
<div class="file-card">
<i class="file-icon iconfont icon-renwuguanli"></i>
<div class="file-title">${res.data.name}</div>
<div class="file-tool">
<a href="${res.data.filepath}" download="${res.data.name}" title="下载查看" target="_blank"><i class="iconfont icon-shujudaoru blue"></i></a>
<i class="btn-delete iconfont icon-shanchu red" data-id="${res.data.id}" title="删除"></i>
</div>
</div>
</div>`;
$('#fileList').append(temp);
}
}
});
}
</script>
2021-11-17 16:20:00 +08:00
{/block}
<!-- /脚本 -->