转账单功能完成

This commit is contained in:
weizhiqiang 2019-10-22 09:55:59 +08:00
parent 204e6795fe
commit 0483721e4f
14 changed files with 1652 additions and 0 deletions

View file

@ -0,0 +1,94 @@
package com.skyeye.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.service.TransferService;
/**
* @Author 卫志强
* @Description 转账单
* @Date 2019/10/20 10:22
*/
@Controller
public class TransferController {
@Autowired
private TransferService transferService;
/**
* 查询转账单列表信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/TransferController/queryTransferByList")
@ResponseBody
public void queryTransferByList(InputObject inputObject, OutputObject outputObject) throws Exception{
transferService.queryTransferByList(inputObject, outputObject);
}
/**
* 添加转账单
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/TransferController/insertTransfer")
@ResponseBody
public void insertTransfer(InputObject inputObject, OutputObject outputObject) throws Exception{
transferService.insertTransfer(inputObject, outputObject);
}
/**
* 查询转账单用于数据回显
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/TransferController/queryTransferToEditById")
@ResponseBody
public void queryTransferToEditById(InputObject inputObject, OutputObject outputObject) throws Exception{
transferService.queryTransferToEditById(inputObject, outputObject);
}
/**
* 编辑转账单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/TransferController/editTransferById")
@ResponseBody
public void editTransferById(InputObject inputObject, OutputObject outputObject) throws Exception{
transferService.editTransferById(inputObject, outputObject);
}
/**
* 删除转账单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/TransferController/deleteTransferById")
@ResponseBody
public void deleteTransferById(InputObject inputObject, OutputObject outputObject) throws Exception{
transferService.deleteTransferById(inputObject, outputObject);
}
/**
* 查看转账单详情
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/TransferController/queryTransferByDetail")
@ResponseBody
public void queryTransferByDetail(InputObject inputObject, OutputObject outputObject) throws Exception{
transferService.queryTransferByDetail(inputObject, outputObject);
}
}

View file

@ -0,0 +1,39 @@
package com.skyeye.dao;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import java.util.List;
import java.util.Map;
/**
* @Author: 卫志强
* @Description: TODO
* @Date: 2019/10/20 10:23
*/
public interface TransferDao {
public List<Map<String, Object>> queryTransferByList(Map<String, Object> params, PageBounds pageBounds) throws Exception;
public int insertTransfer(Map<String, Object> params) throws Exception;
public int insertTransferItem(List<Map<String, Object>> entitys) throws Exception;
public Map<String, Object> queryTransferToEditById(Map<String, Object> params) throws Exception;
public int editTransferById(Map<String, Object> params) throws Exception;
public int editTransferByDeleteFlag(Map<String, Object> params) throws Exception;
public Map<String, Object> queryTransferDetailById(Map<String, Object> params) throws Exception;
public List<Map<String, Object>> queryTransferItemsDetailById(Map<String, Object> bean) throws Exception;
public List<Map<String, Object>> queryTransferItemsToEditById(Map<String, Object> params) throws Exception;
public int editTransferItemsByDeleteFlag(Map<String, Object> params) throws Exception;
public int deleteTransferItemById(Map<String, Object> params) throws Exception;
public List<Map<String, Object>> queryUserInfoById(Map<String, Object> bean) throws Exception;
}

View file

@ -0,0 +1,25 @@
package com.skyeye.service;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
/**
* @Author: 卫志强
* @Description: TODO
* @Date: 2019/10/20 10:22
*/
public interface TransferService {
public void queryTransferByList(InputObject inputObject, OutputObject outputObject) throws Exception;
public void insertTransfer(InputObject inputObject, OutputObject outputObject) throws Exception;
public void queryTransferToEditById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void editTransferById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void deleteTransferById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void queryTransferByDetail(InputObject inputObject, OutputObject outputObject) throws Exception;
}

View file

@ -0,0 +1,240 @@
package com.skyeye.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.ToolUtil;
import com.skyeye.dao.TransferDao;
import com.skyeye.erp.util.ErpConstants;
import com.skyeye.erp.util.ErpOrderNum;
import com.skyeye.service.TransferService;
import net.sf.json.JSONArray;
/**
* @Author 卫志强
* @Description TODO
* @Date 2019/10/20 10:23
*/
@Service
public class TransferServiceImpl implements TransferService {
@Autowired
private TransferDao transferDao;
/**
* 查询转账单列表信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryTransferByList(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
List<Map<String, Object>> beans = transferDao.queryTransferByList(params,
new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString())));
PageList<Map<String, Object>> beansPageList = (PageList<Map<String, Object>>) beans;
int total = beansPageList.getPaginator().getTotalCount();
outputObject.setBeans(beans);
outputObject.settotal(total);
}
/**
* 添加转账单
* @param inputObject
* @param outputObject
* @throws Exception
*/
@SuppressWarnings("unchecked")
@Override
@Transactional(value="transactionManager")
public void insertTransfer(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
String initemStr = params.get("initemStr").toString();
if(ToolUtil.isJson(initemStr)) {
//财务主表ID
String useId = ToolUtil.getSurFaceId();
String userId = inputObject.getLogParams().get("id").toString();
//处理数据
JSONArray jArray = JSONArray.fromObject(initemStr);
//转账单中间转换对象财务子表存储对象
Map<String, Object> bean;
List<Map<String, Object>> entitys = new ArrayList<>();//财务子表实体集合信息
BigDecimal allPrice = new BigDecimal("0");//主单总价
BigDecimal itemAllPrice = null;//子单对象
for(int i = 0; i < jArray.size(); i++){
bean = jArray.getJSONObject(i);
Map<String, Object> entity = new HashMap<>();
//获取子项金额
itemAllPrice = new BigDecimal(bean.get("initemMoney").toString());
entity.put("id", ToolUtil.getSurFaceId());
entity.put("headerId", useId);
entity.put("accountId", bean.get("accountId"));
entity.put("eachAmount", bean.get("initemMoney"));
entity.put("remark", bean.get("remark"));
entity.put("userId", userId);
entity.put("deleteFlag", 0);
entitys.add(entity);
//计算总金额
allPrice = allPrice.add(itemAllPrice);
}
if(entitys.size() == 0){
outputObject.setreturnMessage("请选择账户");
return;
}
Map<String, Object> accountHead = new HashMap<>();
ErpOrderNum erpOrderNum = new ErpOrderNum();
String orderNum = erpOrderNum.getAccountOrderNumBySubType(userId, ErpConstants.AccountTheadSubType.TRANSFER_ORDER.getNum());
accountHead.put("id", useId);
accountHead.put("type", ErpConstants.AccountTheadSubType.TRANSFER_ORDER.getNum());//转账单
accountHead.put("billNo", orderNum);
accountHead.put("totalPrice", allPrice);
accountHead.put("userId", userId);
accountHead.put("accountId", params.get("accountId"));
accountHead.put("operTime", params.get("operTime"));
accountHead.put("handsPersonId", params.get("handsPersonId"));
accountHead.put("remark", params.get("remark"));
accountHead.put("changeAmount", params.get("changeAmount"));
accountHead.put("deleteFlag", 0);
transferDao.insertTransfer(accountHead);
transferDao.insertTransferItem(entitys);
}else{
outputObject.setreturnMessage("数据格式错误");
}
}
/**
* 查询转账单用于数据回显
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryTransferToEditById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
Map<String, Object> bean = transferDao.queryTransferToEditById(params);
if(bean != null && !bean.isEmpty()){
List<Map<String, Object>> beans = transferDao.queryTransferItemsToEditById(params);
bean.put("items", beans);
//获取经手人员
List<Map<String, Object>> userInfo = transferDao.queryUserInfoById(bean);
bean.put("userInfo", userInfo);
outputObject.setBean(bean);
outputObject.settotal(1);
}else{
outputObject.setreturnMessage("未查询到信息!");
}
}
/**
* 编辑转账单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@SuppressWarnings("unchecked")
@Override
@Transactional(value="transactionManager")
public void editTransferById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
String initemStr = params.get("initemStr").toString();
if(ToolUtil.isJson(initemStr)) {
String useId = params.get("id").toString();
String userId = inputObject.getLogParams().get("id").toString();
//处理数据
JSONArray jArray = JSONArray.fromObject(initemStr);
//转账单中间转换对象财务子表存储对象
Map<String, Object> bean;
List<Map<String, Object>> entitys = new ArrayList<>();//财务子表实体集合信息
BigDecimal allPrice = new BigDecimal("0");//主单总价
BigDecimal itemAllPrice = null;//子单对象
for(int i = 0; i < jArray.size(); i++){
bean = jArray.getJSONObject(i);
Map<String, Object> entity = new HashMap<>();
//获取子项金额
itemAllPrice = new BigDecimal(bean.get("initemMoney").toString());
entity.put("id", ToolUtil.getSurFaceId());
entity.put("headerId", useId);
entity.put("accountId", bean.get("accountId"));
entity.put("eachAmount", bean.get("initemMoney"));
entity.put("remark", bean.get("remark"));
entity.put("userId", userId);
entity.put("deleteFlag", "0");
entitys.add(entity);
//计算总金额
allPrice = allPrice.add(itemAllPrice);
}
if(entitys.size() == 0){
outputObject.setreturnMessage("请选择账户");
return;
}
Map<String, Object> accountHead = new HashMap<>();
accountHead.put("id", useId);
accountHead.put("userId", userId);
accountHead.put("totalPrice", allPrice);
accountHead.put("accountId", params.get("accountId"));
accountHead.put("operTime", params.get("operTime"));
accountHead.put("handsPersonId", params.get("handsPersonId"));
accountHead.put("remark", params.get("remark"));
accountHead.put("changeAmount", params.get("changeAmount"));
transferDao.editTransferById(accountHead);
//删除之前的绑定信息
transferDao.deleteTransferItemById(params);
transferDao.insertTransferItem(entitys);
}else{
outputObject.setreturnMessage("数据格式错误");
}
}
/**
* 删除转账单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
@Transactional(value="transactionManager")
public void deleteTransferById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
params.put("deleteFlag", 1);
transferDao.editTransferByDeleteFlag(params);
transferDao.editTransferItemsByDeleteFlag(params);
}
/**
* 查看转账单详情
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryTransferByDetail(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
//获取财务主表信息
Map<String, Object> bean = transferDao.queryTransferDetailById(params);
if(bean != null && !bean.isEmpty()){
//获取子表信息
List<Map<String, Object>> beans = transferDao.queryTransferItemsDetailById(bean);
bean.put("items", beans);
outputObject.setBean(bean);
outputObject.settotal(1);
}else{
outputObject.setreturnMessage("该数据已不存在.");
}
}
}

View file

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.dao.TransferDao">
<select id="queryTransferByList" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.change_amount changeAmount,
FORMAT(a.total_price, 2) totalPrice,
a.bill_no billNo,
CONVERT (a.bill_time, CHAR) billTime,
(SELECT group_concat(distinct m.user_name) FROM sys_eve_user_staff m WHERE INSTR(CONCAT(',', a.hands_person_id, ','), CONCAT(',', m.user_id, ','))) hansPersonName,
a.remark
FROM
erp_accounthead a
WHERE
a.delete_flag = '0'
AND a.tenant_id = #{userId}
AND a.type = '5'
<if test="billNo != '' and billNo != null">
AND a.bill_no LIKE '%${billNo}%'
</if>
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND a.bill_time >= #{startTime} AND #{endTime} >= a.bill_time
</if>
ORDER BY a.bill_time DESC, a.id ASC
</select>
<insert id="insertTransfer" parameterType="java.util.Map">
INSERT INTO erp_accounthead(
id, type, hands_person_id, change_amount, total_price, account_id, bill_no, bill_time, remark, tenant_id, delete_flag
) VALUES
(#{id}, #{type}, #{handsPersonId}, #{changeAmount}, #{totalPrice}, #{accountId}, #{billNo}, #{operTime}, #{remark}, #{userId}, #{deleteFlag})
</insert>
<insert id="insertTransferItem" parameterType="java.util.Map">
INSERT INTO erp_accountitem(
id, header_id, account_id, each_amount, remark, tenant_id, delete_flag
) VALUES
<foreach collection="list" item="item" index="index" separator="," >
(#{item.id}, #{item.headerId}, #{item.accountId}, #{item.eachAmount}, #{item.remark}, #{item.userId}, #{item.deleteFlag})
</foreach>
</insert>
<select id="queryTransferToEditById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.type payType,
a.hands_person_id handsPersonId,
CONVERT(a.change_amount, decimal(24, 2)) changeAmount,
CONVERT(a.total_price, decimal(24, 2)) totalPrice,
a.bill_no billNo,
CONVERT (a.bill_time, char) billTime,
a.remark,
a.account_id accountId
FROM
erp_accounthead a
WHERE
a.id = #{id}
AND a.type = '5'
AND a.delete_flag = '0'
ORDER BY a.bill_time DESC
</select>
<select id="queryTransferItemsToEditById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.account_id accountId,
CONVERT(a.each_amount , decimal(24, 2)) initemMoney,
a.remark
FROM
erp_accountitem a
WHERE
a.header_id = #{id}
</select>
<update id="editTransferById" parameterType="java.util.Map">
UPDATE erp_accounthead
<set>
hands_person_id = #{handsPersonId},
change_amount = #{changeAmount},
total_price = #{totalPrice},
bill_time = #{operTime},
remark = #{remark},
account_id = #{accountId}
</set>
WHERE
id = #{id}
AND tenant_id = #{userId}
</update>
<delete id="deleteTransferItemById" parameterType="java.util.Map">
DELETE
FROM
erp_accountitem
WHERE
header_id = #{id}
</delete>
<update id="editTransferByDeleteFlag" parameterType="java.util.Map">
UPDATE erp_accounthead
<set>
delete_flag = #{deleteFlag}
</set>
WHERE
id = #{id}
AND tenant_id = #{userId}
</update>
<update id="editTransferItemsByDeleteFlag" parameterType="java.util.Map">
UPDATE erp_accountitem
<set>
delete_flag = #{deleteFlag}
</set>
WHERE
header_id = #{id}
AND tenant_id = #{userId}
</update>
<select id="queryTransferDetailById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
FORMAT(a.change_amount, 2) changeAmount,
FORMAT(a.total_price, 2) totalPrice,
a.bill_no billNo,
CONVERT (a.bill_time, CHAR) operTime,
a.remark,
group_concat(distinct b.user_name) hansPersonName,
c.`name` accountName
FROM
erp_accounthead a
LEFT JOIN sys_eve_user_staff b ON INSTR(CONCAT(',', a.hands_person_id, ','), CONCAT(',', b.user_id, ','))
LEFT JOIN erp_account c ON c.id = a.account_id
WHERE
a.delete_flag = '0'
AND a.tenant_id = #{userId}
AND a.id = #{id}
AND a.type = '5'
ORDER BY a.bill_time DESC
</select>
<select id="queryTransferItemsDetailById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
FORMAT(a.each_amount, 2) eachAmount,
a.remark,
t.`name` accountName
FROM
erp_accountitem a
LEFT JOIN erp_account t ON a.account_id = t.id
WHERE
a.header_id = #{id}
AND a.delete_flag = '0'
</select>
<select id="queryUserInfoById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.user_id id,
a.user_name `name`,
a.email
FROM
sys_eve_user_staff a
WHERE
INSTR(CONCAT(',', #{handsPersonId}, ','), CONCAT(',', a.user_id, ','))
</select>
</mapper>

View file

@ -477,4 +477,40 @@
</url>
<!-- 付款单管理结束 -->
<!-- 转账单管理开始 -->
<url id="transfer001" path="/post/TransferController/queryTransferByList" val="查询转账单列表信息" allUse="2">
<property id="billNo" name="billNo" ref="" var="单据编号" />
<property id="startTime" name="startTime" ref="" var="开始日期" />
<property id="endTime" name="endTime" ref="" var="结束日期" />
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
</url>
<url id="transfer002" path="/post/TransferController/insertTransfer" val="添加转账单" allUse="2">
<property id="operTime" name="operTime" ref="required" var="单据日期"></property>
<property id="accountId" name="accountId" ref="required" var="付款账户"></property>
<property id="handsPersonId" name="handsPersonId" ref="required" var="经手人Id"></property>
<property id="remark" name="remark" ref="" var="备注"></property>
<property id="changeAmount" name="changeAmount" ref="required,double" var="优惠金额"></property>
<property id="initemStr" name="initemStr" ref="required" var="账户列表" />
</url>
<url id="transfer003" path="/post/TransferController/queryTransferToEditById" val="查询转账单用于数据回显" allUse="2">
<property id="rowId" name="id" ref="required" var="转账单Id"></property>
</url>
<url id="transfer004" path="/post/TransferController/editTransferById" val="编辑转账单信息" allUse="2">
<property id="rowId" name="id" ref="required" var="转账单Id"></property>
<property id="operTime" name="operTime" ref="required" var="单据日期"></property>
<property id="accountId" name="accountId" ref="required" var="付款账户"></property>
<property id="handsPersonId" name="handsPersonId" ref="required" var="经手人Id"></property>
<property id="remark" name="remark" ref="" var="备注"></property>
<property id="changeAmount" name="changeAmount" ref="required,double" var="优惠金额"></property>
<property id="initemStr" name="initemStr" ref="required" var="账户列表" />
</url>
<url id="transfer005" path="/post/TransferController/deleteTransferById" val="删除转账单信息" allUse="2">
<property id="rowId" name="id" ref="required" var="转账单Id"></property>
</url>
<url id="transfer006" path="/post/TransferController/queryTransferByDetail" val="查询转账单详情" allUse="2">
<property id="rowId" name="id" ref="required" var="转账单Id"></property>
</url>
<!-- 转账单管理结束 -->
</controller>

View file

@ -0,0 +1,236 @@
var userReturnList = new Array();//选择用户返回的集合或者进行回显的集合
var chooseOrNotMy = "1";//人员列表中是否包含自己--1.包含;其他参数不包含
var chooseOrNotEmail = "2";//人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
var checkType = "2";//人员选择类型1.多选;其他。单选
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
winui.renderColor();
layui.use(['form', 'tagEditor'], function(form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$,
laydate = layui.laydate;
var rowNum = 1; //表格的序号
var accountHtml = "";//账户
var usetableTemplate = $("#usetableTemplate").html();
var selOption = getFileContent('tpl/template/select-option.tpl');
var handsPersonList = new Array();//经手人员
//单据时间
laydate.render({
elem: '#operTime',
type: 'datetime',
value: getFormatDate(),
trigger: 'click'
});
initAccountHtml();
//初始化账户
function initAccountHtml() {
AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载账户数据
accountHtml = getDataUseHandlebars(selOption, json);
$("#accountId").html(accountHtml);
//渲染
form.render();
//初始化一行数据
addRow();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//数量变化
$("body").on("input", ".rkMoney", function() {
//计算价格
calculatedTotalPrice();
});
$("body").on("change", ".rkMoney", function() {
calculatedTotalPrice();
});
//计算总价
function calculatedTotalPrice(){
var rowTr = $("#useTable tr");
var allPrice = 0;
$.each(rowTr, function(i, item) {
//获取行坐标
var rowNum = $(item).attr("trcusid").replace("tr", "");
//获取金额
var initemMoney = parseFloat(isNull($("#initemMoney" + rowNum).val()) ? "0" : $("#initemMoney" + rowNum).val());
//输出金额
$("#initemMoney" + rowNum).html((initemMoney).toFixed(2));
allPrice += initemMoney;
});
$("#allPrice").html(allPrice.toFixed(2));
}
form.on('submit(formAddBean)', function(data) {
//表单验证
if(winui.verifyForm(data.elem)) {
//获取数据
var rowTr = $("#useTable tr");
if(rowTr.length == 0) {
winui.window.msg('请选择账户名称.', {icon: 2, time: 2000});
return false;
}
var tableData = new Array();
var noError = false; //循环遍历表格数据时,是否有其他错误信息
$.each(rowTr, function(i, item) {
//获取行编号
var rowNum = $(item).attr("trcusid").replace("tr", "");
if(inTableDataArrayByAssetarId($("#accountId" + rowNum).val(), tableData)) {
$("#accountId" + rowNum).addClass("layui-form-danger");
$("#accountId" + rowNum).focus();
winui.window.msg('一张单中不允许出现相同账户信息.', {icon: 2, time: 2000});
noError = true;
return false;
}
var row = {
accountId: $("#accountId" + rowNum).val(),
initemMoney: $("#initemMoney" +rowNum).val(),
remark: $("#remark" + rowNum).val()
};
tableData.push(row);
});
if(noError) {
return false;
}
var handsPersonId = "";
$.each(handsPersonList, function (i, item) {
handsPersonId = item.id;
});
if(isNull(handsPersonId)){
winui.window.msg('请选择经手人.', {icon: 2, time: 2000});
return false;
}
var params = {
handsPersonId: handsPersonId,
operTime: $("#operTime").val(),
accountId: $("#accountId").val(),
remark: $("#remark").val(),
changeAmount: $("#changeAmount").val(),
initemStr: JSON.stringify(tableData)
};
AjaxPostUtil.request({url: reqBasePath + "transfer002", params: params, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
parent.layer.close(index);
parent.refreshCode = '0';
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
return false;
});
//判断选中的账户是否也在数组中
function inTableDataArrayByAssetarId(accountId, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.accountId === accountId) {
isIn = true;
return false;
}
});
return isIn;
}
$('#handsPersonId').tagEditor({
initialTags: [],
placeholder: '请选择经手人员',
beforeTagDelete: function(field, editor, tags, val) {
var inArray = -1;
$.each(handsPersonList, function(i, item) {
if(val === item.name) {
inArray = i;
return false;
}
});
if(inArray != -1) { //如果该元素在集合中存在
handsPersonList.splice(inArray, 1);
}
}
});
//人员选择
$("body").on("click", "#toHandsPersonSelPeople", function(e){
userReturnList = [].concat(handsPersonList);
_openNewWindows({
url: "../../tpl/common/sysusersel.html",
title: "人员选择",
pageId: "sysuserselpage",
area: ['80vw', '80vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
//移除所有tag
var tags = $('#handsPersonId').tagEditor('getTags')[0].tags;
for (i = 0; i < tags.length; i++) {
$('#handsPersonId').tagEditor('removeTag', tags[i]);
}
handsPersonList = [].concat(userReturnList);
//添加新的tag
$.each(handsPersonList, function(i, item){
$('#handsPersonId').tagEditor('addTag', item.name);
});
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
});
//新增行
$("body").on("click", "#addRow", function() {
addRow();
});
//删除行
$("body").on("click", "#deleteRow", function() {
deleteRow();
});
//新增行
function addRow() {
var par = {
id: "row" + rowNum.toString(), //checkbox的id
trId: "tr" + rowNum.toString(), //行的id
accountId: "accountId" + rowNum.toString(), //账户id
initemMoney: "initemMoney" + rowNum.toString(), //金额id
remark: "remark" + rowNum.toString() //备注id
};
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
//赋值给账户
$("#" + "accountId" + rowNum.toString()).html(accountHtml);
form.render('select');
form.render('checkbox');
rowNum++;
}
//删除行
function deleteRow() {
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
if(checkRow.length > 0) {
$.each(checkRow, function(i, item) {
$(item).parent().parent().remove();
});
} else {
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
}
}
$("body").on("click", "#cancle", function() {
parent.layer.close(index);
});
});
});

View file

@ -0,0 +1,267 @@
var userReturnList = new Array();//选择用户返回的集合或者进行回显的集合
var chooseOrNotMy = "1";//人员列表中是否包含自己--1.包含;其他参数不包含
var chooseOrNotEmail = "2";//人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
var checkType = "2";//人员选择类型1.多选;其他。单选
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
winui.renderColor();
layui.use(['form', 'tagEditor'], function(form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$,
laydate = layui.laydate;
var rowNum = 1; //表格的序号
var accountHtml = "";//账户
var beanTemplate = $("#beanTemplate").html();
var usetableTemplate = $("#usetableTemplate").html();
var selOption = getFileContent('tpl/template/select-option.tpl');
var handsPersonList = new Array();//经手人员
//加载单据数据
var orderObject = [];
showGrid({
id: "showForm",
url: reqBasePath + "transfer003",
params: {rowId: parent.rowId},
pagination: false,
template: beanTemplate,
ajaxSendAfter:function(json){
//单据时间
laydate.render({
elem: '#operTime',
type: 'datetime',
trigger: 'click'
});
orderObject = json;
initAccountHtml();
var userNames = "";
handsPersonList = json.bean.userInfo;
$.each(handsPersonList, function (i, item) {
userNames += item.name + ',';
});
//人员选择
$('#handsPersonId').tagEditor({
initialTags: userNames.split(','),
placeholder: '请选择经手人员',
beforeTagDelete: function(field, editor, tags, val) {
var inArray = -1;
$.each(handsPersonList, function(i, item) {
if(val === item.name) {
inArray = i;
return false;
}
});
if(inArray != -1) { //如果该元素在集合中存在
handsPersonList.splice(inArray, 1);
}
}
});
}
});
//初始化账户
function initAccountHtml() {
AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载账户数据
accountHtml = getDataUseHandlebars(selOption, json);
$("#accountId").html(accountHtml);
//渲染数据到页面
initDataToShow();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//渲染数据到页面
function initDataToShow(){
$("#accountId").val(orderObject.bean.accountId);//付款账户
//渲染列表项
$.each(orderObject.bean.items, function(i, item){
addRow();
$("#accountId" + (rowNum - 1)).val(item.accountId);//账户回显
$("#initemMoney" + (rowNum - 1)).val(item.initemMoney.toFixed(2));//金额回显
$("#remark" + (rowNum - 1)).val(item.remark);//备注回显
//设置标识
$("tr[trcusid='tr" + (rowNum - 1) + "']").attr("thisid", item.id);
});
//渲染
form.render();
}
form.on('submit(formEditBean)', function(data) {
//表单验证
if(winui.verifyForm(data.elem)) {
var rowTr = $("#useTable tr");
if(rowTr.length == 0) {
winui.window.msg('请选择账户.', {icon: 2, time: 2000});
return false;
}
var tableData = new Array();
var noError = false; //循环遍历表格数据时,是否有其他错误信息
$.each(rowTr, function(i, item) {
//获取行编号
var rowNum = $(item).attr("trcusid").replace("tr", "");
if(inTableDataArrayByAssetarId($("#accountId" + rowNum).val(), tableData)) {
$("#accountId" + rowNum).addClass("layui-form-danger");
$("#accountId" + rowNum).focus();
winui.window.msg('一张单中不允许出现相同账户信息.', {icon: 2, time: 2000});
noError = true;
return false;
}
var row = {
accountId: $("#accountId" + rowNum).val(),
initemMoney: $("#initemMoney" +rowNum).val(),
remark: $("#remark" + rowNum).val()
};
tableData.push(row);
});
if(noError) {
return false;
}
var handsPersonId = "";
$.each(handsPersonList, function (i, item) {
handsPersonId = item.id;
});
if(isNull(handsPersonId)){
winui.window.msg('请选择经手人.', {icon: 2, time: 2000});
return false;
}
var params = {
rowId: parent.rowId,
handsPersonId: handsPersonId,
operTime: $("#operTime").val(),
accountId: $("#accountId").val(),
remark: $("#remark").val(),
changeAmount: $("#changeAmount").val(),
initemStr: JSON.stringify(tableData)
};
AjaxPostUtil.request({url: reqBasePath + "transfer004", params: params, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
parent.layer.close(index);
parent.refreshCode = '0';
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
return false;
});
$("body").on("input", ".rkMoney", function() {
//计算价格
calculatedTotalPrice();
});
$("body").on("change", ".rkMoney", function() {
calculatedTotalPrice();
});
//计算总价
function calculatedTotalPrice(){
var rowTr = $("#useTable tr");
var allPrice = 0;
$.each(rowTr, function(i, item) {
//获取行坐标
var rowNum = $(item).attr("trcusid").replace("tr", "");
//获取金额
var initemMoney = parseFloat(isNull($("#initemMoney" + rowNum).val()) ? "0" : $("#initemMoney" + rowNum).val());
//输出金额
$("#initemMoney" + rowNum).html((initemMoney).toFixed(2));
allPrice += initemMoney;
});
$("#allPrice").html(allPrice.toFixed(2));
}
//判断选中的账户是否也在数组中
function inTableDataArrayByAssetarId(accountId, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.accountId === accountId) {
isIn = true;
return false;
}
});
return isIn;
}
//人员选择
$("body").on("click", "#toHandsPersonSelPeople", function(e){
userReturnList = [].concat(handsPersonList);
_openNewWindows({
url: "../../tpl/common/sysusersel.html",
title: "人员选择",
pageId: "sysuserselpage",
area: ['80vw', '80vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
//移除所有tag
var tags = $('#handsPersonId').tagEditor('getTags')[0].tags;
for (i = 0; i < tags.length; i++) {
$('#handsPersonId').tagEditor('removeTag', tags[i]);
}
handsPersonList = [].concat(userReturnList);
//添加新的tag
$.each(handsPersonList, function(i, item){
$('#handsPersonId').tagEditor('addTag', item.name);
});
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
});
//新增行
$("body").on("click", "#addRow", function() {
addRow();
});
//删除行
$("body").on("click", "#deleteRow", function() {
deleteRow();
});
//新增行
function addRow() {
var par = {
id: "row" + rowNum.toString(), //checkbox的id
trId: "tr" + rowNum.toString(), //行的id
accountId: "accountId" + rowNum.toString(), //账户id
initemMoney: "initemMoney" + rowNum.toString(), //金额id
remark: "remark" + rowNum.toString() //备注id
};
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
//赋值给账户
$("#" + "accountId" + rowNum.toString()).html(accountHtml);
form.render('select');
form.render('checkbox');
rowNum++;
}
//删除行
function deleteRow() {
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
if(checkRow.length > 0) {
$.each(checkRow, function(i, item) {
$(item).parent().parent().remove();
});
} else {
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
}
}
$("body").on("click", "#cancle", function() {
parent.layer.close(index);
});
});
});

View file

@ -0,0 +1,28 @@
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui'], function (exports) {
winui.renderColor();
layui.use(['form'], function (form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$;
var beanTemplate = $("#beanTemplate").html();
showGrid({
id: "showForm",
url: reqBasePath + "transfer006",
params: {rowId: parent.rowId},
pagination: false,
template: beanTemplate,
ajaxSendAfter:function(json){
form.render();
}
});
});
});

View file

@ -0,0 +1,171 @@
var rowId = "";
//单据的开始时间、结束时间
var startTime = "", endTime = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'laydate'], function (exports) {
winui.renderColor();
var $ = layui.$,
form = layui.form,
laydate = layui.laydate,
table = layui.table;
authBtn('1571638020191');
laydate.render({
elem: '#billTime', //指定元素
range: '~'
});
//表格渲染
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: reqBasePath + 'transfer001',
where: {billNo: $("#billNo").val(), startTime: startTime, endTime: endTime},
even: true, //隔行变色
page: true,
limits: [8, 16, 24, 32, 40, 48, 56],
limit: 8,
cols: [[
{ title: '序号', type: 'numbers'},
{ field: 'billNo', title: '单据编号', align: 'left', width: 200, templet: function(d){
return '<a lay-event="details" class="notice-title-click">' + d.billNo + '</a>';
}},
{ field: 'totalPrice', title: '合计金额', align: 'left', width: 120},
{ field: 'hansPersonName', title: '经手人', align: 'left', width: 100},
{ field: 'billTime', title: '单据日期', align: 'center', width: 140 },
{ field: 'remark', title: '备注', align: 'center', width: 140 },
{ title: '操作', fixed: 'right', align: 'center', width: 200, toolbar: '#tableBar'}
]]
});
table.on('tool(messageTable)', function (obj) { //注tool是工具条事件名test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'delete') { //删除
deletetransfer(data);
}else if (layEvent === 'details') { //详情
details(data);
}else if (layEvent === 'edit') { //编辑
edit(data);
}
});
//搜索表单
form.render();
form.on('submit(formSearch)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
loadTable();
}
return false;
});
//编辑
function edit(data){
rowId = data.id;
_openNewWindows({
url: "../../tpl/transfer/transferedit.html",
title: "编辑",
pageId: "transferedit",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
//删除
function deletetransfer(data){
layer.confirm('确认要删除信息吗?', { icon: 3, title: '删除操作' }, function (index) {
AjaxPostUtil.request({url:reqBasePath + "transfer005", params: {rowId: data.id}, type:'json', callback:function(json){
if(json.returnCode == 0){
winui.window.msg("删除成功。", {icon: 1,time: 2000});
loadTable();
}else{
winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
}
}});
});
}
//详情
function details(data){
rowId = data.id;
_openNewWindows({
url: "../../tpl/transfer/transferinfo.html",
title: "详情",
pageId: "transferinfo",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
//添加
$("body").on("click", "#addBean", function(){
_openNewWindows({
url: "../../tpl/transfer/transferadd.html",
title: "新增",
pageId: "transferadd",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
});
$("body").on("click", "#reloadTable", function() {
loadTable();
});
$("body").on("click", "#formSearch", function () {
refreshTable();
})
//刷新
function loadTable(){
if(isNull($("#billTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#billTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#billTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {where:{billNo: $("#billNo").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}});
}
//搜索
function refreshTable(){
if(isNull($("#billTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#billTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#billTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {page: {curr: 1}, where:{billNo: $("#billNo").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}})
}
exports('transferlist', {});
});

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="margin: 0 auto; padding: 20px;">
<form class="layui-form" action="" id="showForm">
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款账户<i class="red">*</i></label>
<div class="layui-input-block">
<select id="accountId" lay-search win-verify="required"></select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项<i class="red">*</i></label>
<div class="layui-input-block">
<div class="winui-toolbar">
<div class="winui-tool" style="text-align: left;">
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
</div>
</div>
<table class="layui-table">
<thead>
<tr>
<th style="width: 30px;"></th>
<th style="width: 120px;">账户名称</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs3">
<label class="layui-form-label">共计金额</label>
<div class="layui-input-block ver-center" id="allPrice">
0.00
</div>
</div>
<div class="layui-form-item layui-col-xs3">
<label class="layui-form-label">实付金额<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入实付金额" class="layui-input" value="0.00"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">经手人<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="handsPersonId" name="handsPersonId" placeholder="请选择经手人员" class="layui-input" style="padding-right: 30px;"/>
<i class="fa fa-user-plus input-icon" id="toHandsPersonSelPeople"></i>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea id="remark" name="remark" placeholder="请输入备注" class="layui-textarea" style="height: 100px;" maxlength="200"></textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" id="cancle">取消</button>
<button class="winui-btn" lay-submit lay-filter="formAddBean">保存</button>
</div>
</div>
</form>
</div>
<!-- usetableTemplate -->
<script type="text/x-handlebars-template" id="usetableTemplate">
<tr trcusid="{{trId}}">
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
<td><select id="{{accountId}}" lay-search win-verify="required"></select></td>
<td><input type="text" class="layui-input rkMoney" id="{{initemMoney}}" win-verify="required|money"/></td>
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
</tr>
</script>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/transfer/'}).use('transferadd');
</script>
</body>
</html>

View file

@ -0,0 +1,105 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="margin: 0 auto; padding: 20px;">
<!-- beanTemplate -->
<script type="text/x-handlebars-template" id="beanTemplate">
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款账户<i class="red">*</i></label>
<div class="layui-input-block">
<select id="accountId" lay-search win-verify="required"></select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input" value="{{billTime}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项<i class="red">*</i></label>
<div class="layui-input-block">
<div class="winui-toolbar">
<div class="winui-tool" style="text-align: left;">
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
</div>
</div>
<table class="layui-table">
<thead>
<tr>
<th style="width: 30px;"></th>
<th style="width: 120px;">账户名称</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs3">
<label class="layui-form-label">共计金额</label>
<div class="layui-input-block ver-center" id="allPrice">
{{totalPrice}}
</div>
</div>
<div class="layui-form-item layui-col-xs3">
<label class="layui-form-label">实付金额</label>
<div class="layui-input-block">
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入实付金额" class="layui-input" value="{{changeAmount}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">经手人<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="handsPersonId" name="handsPersonId" placeholder="请选择经手人员" class="layui-input" style="padding-right: 30px;"/>
<i class="fa fa-user-plus input-icon" id="toHandsPersonSelPeople"></i>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea id="remark" name="remark" placeholder="请输入备注" class="layui-textarea" style="height: 100px;" maxlength="200">{{remark}}</textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" id="cancle">取消</button>
<button class="winui-btn" lay-submit lay-filter="formEditBean">保存</button>
</div>
</div>
{{/bean}}
</script>
<form class="layui-form" action="" id="showForm">
</form>
</div>
<!-- usetableTemplate -->
<script type="text/x-handlebars-template" id="usetableTemplate">
<tr trcusid="{{trId}}">
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
<td><select id="{{accountId}}" lay-search win-verify="required"></select></td>
<td><input type="text" class="layui-input rkMoney" id="{{initemMoney}}" win-verify="required|money"/></td>
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
</tr>
</script>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/transfer/'}).use('transferedit');
</script>
</body>
</html>

View file

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="padding:20px; margin:0 auto;">
<form class="layui-form" action="" id="showForm">
</form>
<script type="text/x-handlebars-template" id="beanTemplate">
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款账户:</label>
<div class="layui-input-block ver-center">
{{accountName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期:</label>
<div class="layui-input-block ver-center">
{{operTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">单据编号:</label>
<div class="layui-input-block ver-center">
{{billNo}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项:</label>
<div class="layui-input-block ver-center">
<table class="layui-table">
<thead>
<tr>
<th style="width: 120px;">账户名称</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
{{#each items}}
<tr>
<td>{{accountName}}</td>
<td>{{eachAmount}}</td>
<td>{{remark}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs3">
<label class="layui-form-label">共计金额:</label>
<div class="layui-input-block ver-center">
{{totalPrice}}元
</div>
</div>
<div class="layui-form-item layui-col-xs3">
<label class="layui-form-label">实付金额:</label>
<div class="layui-input-block ver-center">
{{changeAmount}}元
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">经手人:</label>
<div class="layui-input-block ver-center">
{{hansPersonName}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block ver-center">
{{remark}}
</div>
</div>
{{/bean}}
</script>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/transfer/'}).use('transferinfo');
</script>
</body>
</html>

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div class="txtcenter" style="margin:0 auto;padding-top:10px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">单据编号</label>
<div class="layui-input-inline">
<input type="text" id="billNo" name="billNo" placeholder="请输入单据编号" class="layui-input" />
</div>
<label class="layui-form-label">单据日期</label>
<div class="layui-input-inline">
<input type="text" id="billTime" name="billTime" placeholder="请选择单据日期" class="layui-input" />
</div>
<button type="reset" class="layui-btn layui-btn-primary list-form-search">重置</button>
<button class="layui-btn list-form-search" lay-submit lay-filter="formSearch">搜索</button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
<button id="addBean" class="winui-toolbtn" auth="1571638020191"><i class="fa fa-plus" aria-hidden="true"></i>新增</button>
</div>
</div>
<div style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
<script type="text/html" id="tableBar">
{{# if(auth('1571638030608')){ }}
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
{{# } }}
{{# if(auth('1571638039187')){ }}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
{{# } }}
</script>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/transfer/'}).use('transferlist');
</script>
</body>
</html>