242 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <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> |