2025-06-25 10:53:11 +08:00

242 lines
7.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<style>
.layui-table-cell {
overflow: visible;
text-overflow: inherit;
height: auto !important;
line-height: 38px;
}
.layui-table-box {
min-height: 400px !important;
}
.layui-table-body {
height: 400px;
}
</style>
<form class="layui-form page-content p-4">
<h3 class="h3-title">新建报销</h3>
<div class="p-4 border-b">
<h3 class="h3-title hover">
<span>基本信息</span>
</h3>
</div>
<div class="layui-row border-b">
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray-2">账单编号<font>*</font>
</td>
<td>
<input type="text" name="order" lay-verify="required" disabled class="layui-input"
value="{{ generateBillNumber() }}" />
</td>
<td class="layui-td-gray-2">隶属部门<font>*</font>
</td>
<td colspan="3">
<select name="department" lay-verify="required" lay-reqText="请选择项目类型" class="layui-select" lay-search=""
lay-filter="department"></select>
</td>
</tr>
<tr>
<td class="layui-td-gray-2">隶属项目<font>*</font>
</td>
<td colspan="4">
<select name="project" lay-verify="required" lay-reqText="请选择项目类型" class="layui-select" lay-search=""
lay-filter="project"></select>
</td>
</tr>
<tr>
<td class="layui-td-gray-2">备注
</td>
<td colspan="4">
<textarea name="schedule" lay-verify="" lay-reqText="请输入" placeholder="请输入备注" class="layui-textarea" value=""
rows="1"></textarea>
</td>
</tr>
</table>
</div>
<div class="p-4 border-b">
<h3 class="h3-title hover">
<span>报销信息</span>
<button class="layui-btn layui-btn-normal" id="addRowBtn">增加条目</button>
</h3>
</div>
<div class="layui-row border-b">
<table class="layui-table" id="editableTable"></table>
</div>
<div class="pt-1">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">
立即提交
</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
<!-- 模态框 -->
<div id="myModal" style="display:none;">
<div class="layui-form layui-form-pane" style="padding: 20px;">
<!-- 在这里放置你的表单内容 -->
<div class="layui-form-item">
<label class="layui-form-label">报销类别</label>
<div class="layui-input-block">
<select name="reimcate" lay-verify="required">
<option value=""></option>
<!-- 这里放置报销类别的选项 -->
</select>
</div>
</div>
<!-- 其他表单项 -->
</div>
</div>
<script>
//生成账单编号
function generateBillNumber() {
var currentDate = new Date();
var year = currentDate.getFullYear().toString().slice(-2);
var month = ('0' + (currentDate.getMonth() + 1)).slice(-2);
var day = ('0' + currentDate.getDate()).slice(-2);
var hours = ('0' + currentDate.getHours()).slice(-2);
var minutes = ('0' + currentDate.getMinutes()).slice(-2);
var seconds = ('0' + currentDate.getSeconds()).slice(-2);
var milliseconds = ('00' + currentDate.getMilliseconds()).slice(-3);
return year + month + day + hours + minutes + seconds + milliseconds;
}
// 修改生成账单编号的函数直接设置到对应的input元素的value属性上
function setBillNumber() {
var billNumber = generateBillNumber();
document.querySelector('input[name="order"]').value = billNumber;
}
// 调用函数设置账单编号
setBillNumber();
</script>
<script>
layui.use(["form", "layer", "table", "jquery"], function () {
var form = layui.form,
layer = layui.layer,
table = layui.table,
$ = layui.jquery;
// 初始化表格
var editableTable = table.render({
elem: '#editableTable',
cols: [[
{
field: 'cate', title: '报销类别', templet: function (d) {
return `<select name="reimcate${d.LAY_INDEX}" class="layui-select" lay-filter="reimcateSelects"></select>`;
}
},
{ field: 'price', title: '报销金额', edit: 'text' },
{ field: 'haveticket', title: '是否有票', edit: 'text' },
{ field: 'tickets', title: '发票查看', edit: 'text' },
{ field: 'remark', title: '备注', edit: 'text' },
{ fixed: 'right', title: "操作", align: "center", toolbar: "#barDemo" },
]],
data: []
});
// 点击按钮打开模态框
$("#addRowBtn").on("click", function (event) {
event.preventDefault(); // 阻止默认的点击行为
layer.open({
type: 2,
title: '新增条目',
shade: 0.8,
area: ['70%', '90%'], // 宽高
content: '/reimbursement/index/additem',//
success: function (layero, index) {
// 弹出层加载成功后的回调,可在此处进行其他操作
}
});
});
// 获取项目类别
fetch("/reimbursement/index/getproject")
.then((response) => response.json())
.then((data) => {
var select = document.querySelector('select[name="project"]');
select.innerHTML = '<option value="">请选择项目类型</option>';
data.data.forEach((project) => {
var option = document.createElement("option");
option.value = project.id;
option.innerText = project.project;
select.appendChild(option);
});
form.render("select");
})
.catch((error) => {
console.error("Error:", error);
});
// 获取部门
fetch("/reimbursement/index/getdepartment")
.then((response) => response.json())
.then((data) => {
var select = document.querySelector('select[name="department"]');
select.innerHTML = '<option value="">请选择项目类型</option>';
data.data.forEach((department) => {
var option = document.createElement("option");
option.value = department.id;
option.innerText = department.department;
select.appendChild(option);
});
form.render("select");
})
.catch((error) => {
console.error("Error:", error);
});
// 获取报销类别
// fetch("/reimbursement/index/reimcate")
// .then((response) => response.json())
// .then((data) => {
// var select = document.querySelector('select[name="reimcate"]');
// select.innerHTML = '<option value="">请选择项目类型</option>';
// data.data.forEach((reimcate) => {
// var option = document.createElement("option");
// option.value = reimcate.id;
// option.innerText = reimcate.reimcate;
// select.appendChild(option);
// });
// form.render("select");
// })
// .catch((error) => {
// console.error("Error:", error);
// });
// 监听提交事件
form.on("submit(webform)", function (data) {
// 发送请求并处理响应
fetch("/reimbursement/index/add", {
method: "POST",
body: JSON.stringify(data.field),
headers: {
"Content-Type": "application/json",
},
})
.then((response) => response.json())
.then((result) => {
layer.msg(result.msg);
if (result.code === 2) {
setTimeout(function () {
document.querySelector("form").reset(); // Reset the form
location.reload(); // 刷新页面
}, 1000);
}
});
return false;
});
});
</script>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="delete">删除</a>
</script>