Browse Source

1、增加服务点充值记录;
2、增加服务点提现记录;
3、增加服务点扣除记录;

panlijun 2 months ago
parent
commit
b75d348e37

+ 22 - 1
sa-frame/menu-list-sp.js

@@ -529,7 +529,28 @@ window.menuList.unshift({
 		parent: true,
 		icon: 'el-icon-s-unfold',
 		childList: [
-
+			{
+				id: 'tb-wallet-manager',
+				name: '服务点管理',
+				parent: true,
+				childList: [
+					{
+						id: 'tb-wallet-topup',
+						name: '服务点充值记录',
+						url: 'sa-view/tb-wallet-topup/tb-wallet-topup-list.html',
+					},
+					{
+						id: 'tb-wallet-topdown',
+						name: '服务点提现记录',
+						url: 'sa-view/tb-wallet-topdown/tb-wallet-topdown-list.html',
+					},
+					{
+						id: 'tb-wallet-record',
+						name: '服务掉扣除记录',
+						url: 'sa-view/tb-wallet-record/tb-wallet-record-list.html',
+					}
+				]
+			},
 			{
 				id: 'tb-goods-units',
 				name: '计价单位',

+ 5 - 1
sa-view-sp/sp-cfg/app-cfg.html

@@ -61,7 +61,10 @@
 					<!-- ---------------------------------- 其它配置 ---------------------------------- -->
 					<el-tab-pane label="其它配置" name="tab2">
 						<br>
-						<span>其它配置</span>
+						<div class="c-item br">
+							<label class="c-label">交易扣除点数:</label>
+							<el-input type="number" v-model="m.tradeNum"></el-input>
+						</div>
 					</el-tab-pane>
 
 				</el-tabs>
@@ -85,6 +88,7 @@
 					appName: 'sa-plus快速开发框架'	,// 系统名称
 					appVersionNo: 'v1.0.0',	// 系统版本
 					appVersionLog: '更新于2099-10-1',	// 更新日志
+					tradeNum:1
 				}
 			}
 		</script>

+ 6 - 0
sa-view/tb-people/tb-people-info.html

@@ -131,6 +131,12 @@
 								<th>创建时间</th>
 								<td>{{sa.forDate(m.createTime, 2)}}</td>
 							</tr>
+							<tr v-if="m.role == 1">
+								<th>服务点数</th>
+								<td>{{m.wallet}}</td>
+								<th></th>
+								<td></td>
+							</tr>
 						</table>
 					</el-form>
 				</div>

+ 149 - 0
sa-view/tb-wallet-record/tb-wallet-record-add.html

@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点交易记录-添加/修改</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style type="text/css">
+			.c-panel .el-form .c-label{width: 7em !important;}
+			.c-panel .el-form .el-input, .c-panel .el-form .el-textarea__inner{width: 250px;}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box" :class="{sbot: id}" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+                    <div class="c-title" v-if="id == 0">数据添加</div>
+					<div class="c-title" v-else>数据修改</div>
+					<el-form v-if="m">
+						<sa-item type="num" name="主键" v-model="m.id" br></sa-item>
+						<sa-item type="text" name="边民id" v-model="m.peopleId" br></sa-item>
+						<sa-item type="text" name="交易前点数" v-model="m.beforeAmount" br></sa-item>
+						<sa-item type="text" name="交易后点数" v-model="m.afterAmount" br></sa-item>
+						<sa-item type="text" name="交易扣除点数" v-model="m.amount" br></sa-item>
+						<sa-item type="text" name="关联订单号" v-model="m.tradeNo" br></sa-item>
+						<sa-item type="text" name="关联商品id" v-model="m.goodsId" br></sa-item>
+						<sa-item type="text" name="关联商品名称" v-model="m.goodsNames" br></sa-item>
+						<sa-item type="text" name="扣除时间" v-model="m.recordTime" br></sa-item>
+						<sa-item type="text" name="创建人编号" v-model="m.createBy" br></sa-item>
+						<sa-item type="text" name="创建人名称" v-model="m.createName" br></sa-item>
+						<sa-item type="text" name="创建时间" v-model="m.createTime" br></sa-item>
+						<sa-item type="text" name="更新人编号" v-model="m.updateBy" br></sa-item>
+						<sa-item type="text" name="更新人名称" v-model="m.updateName" br></sa-item>
+						<sa-item type="text" name="更新时间" v-model="m.updateTime" br></sa-item>
+						<sa-item type="enum" name="删除状态" v-model="m.deleteStatus" :jv="{0: '禁用', 1: '启用'}" jtype="3" br></sa-item>
+						<sa-item name="" class="s-ok" br>
+							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
+						</sa-item>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button type="primary" @click="ok()">确定</el-button>
+				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+			</div>
+		</div>
+        <script>
+			
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue')
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0),		// 获取超链接中的id参数(0=添加,非0=修改) 
+					m: null,		// 实体对象 
+				},
+				methods: {
+					// 创建一个 默认Model 
+					createModel: function() {
+						return {
+							id: '',		// 主键 
+							peopleId: '',		// 边民id 
+							beforeAmount: '',		// 交易前点数 
+							afterAmount: '',		// 交易后点数 
+							amount: '',		// 交易扣除点数 
+							tradeNo: '',		// 关联订单号 
+							goodsId: '',		// 关联商品id 
+							goodsNames: '',		// 关联商品名称 
+							recordTime: '',		// 扣除时间 
+							createBy: '',		// 创建人编号 
+							createName: '',		// 创建人名称 
+							createTime: '',		// 创建时间 
+							updateBy: '',		// 更新人编号 
+							updateName: '',		// 更新人名称 
+							updateTime: '',		// 更新时间 
+							deleteStatus: '',		// 删除状态(0=禁用,1=启用) 
+						}
+					},
+					// 提交数据 
+					ok: function(){
+						// 表单校验 
+						let m = this.m;
+						sa.checkNull(m.id, '请输入 [主键]');
+						sa.checkNull(m.peopleId, '请输入 [边民id]');
+						sa.checkNull(m.beforeAmount, '请输入 [交易前点数]');
+						sa.checkNull(m.afterAmount, '请输入 [交易后点数]');
+						sa.checkNull(m.amount, '请输入 [交易扣除点数]');
+						sa.checkNull(m.tradeNo, '请输入 [关联订单号]');
+						sa.checkNull(m.goodsId, '请输入 [关联商品id]');
+						sa.checkNull(m.goodsNames, '请输入 [关联商品名称]');
+						sa.checkNull(m.recordTime, '请输入 [扣除时间]');
+						sa.checkNull(m.createBy, '请输入 [创建人编号]');
+						sa.checkNull(m.createName, '请输入 [创建人名称]');
+						sa.checkNull(m.createTime, '请输入 [创建时间]');
+						sa.checkNull(m.updateBy, '请输入 [更新人编号]');
+						sa.checkNull(m.updateName, '请输入 [更新人名称]');
+						sa.checkNull(m.updateTime, '请输入 [更新时间]');
+						sa.checkNull(m.deleteStatus, '请输入 [删除状态]');
+				
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/TbWalletRecord/add', m, function(res){
+								sa.alert('增加成功', this.clean); 
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/TbWalletRecord/update', m, function(res){
+								sa.alert('修改成功', this.clean);
+							}.bind(this));
+						}
+					},
+					// 添加/修改 完成后的动作
+					clean: function() {
+						if(this.id == 0) {
+							this.m = this.createModel();
+						} else {
+							parent.app.f5();		// 刷新父页面列表
+							sa.closeCurrIframe();	// 关闭本页 
+						}
+					}
+				},
+				mounted: function(){
+					// 初始化数据 
+					if(this.id <= 0) {	
+						this.m = this.createModel();
+					} else {	
+						sa.ajax('/TbWalletRecord/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 109 - 0
sa-view/tb-wallet-record/tb-wallet-record-info.html

@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点扣除记录-详情</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style type="text/css">
+			.c-panel .c-label{width: 8em;}
+			table {
+			  font-family: arial, sans-serif;
+			  border-collapse: collapse;
+			  width: 90%;
+			  margin-top: 20px ;
+			  margin-left: auto;
+			  margin-right: auto;
+			}
+			th {
+			  border: 1px solid darkgray;
+			  text-align: left;
+			  height: 24px;
+			  padding: 8px;
+			  background-color: #dddddd;
+			}
+			td {
+			  border: 1px solid darkgray;
+			  text-align: left;
+			  padding: 8px;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+					<el-form v-if="m">
+						<table>
+							<tr>
+								<th>边民姓名</th>
+								<td>{{m.peopleName}}</td>
+							</tr>
+							<tr>
+								<th>交易前点数</th>
+								<td>{{m.beforeAmount}}</td>
+							</tr>
+							<tr>
+								<th>交易后点数</th>
+								<td>{{m.afterAmount}}</td>
+							</tr>
+							<tr>
+								<th>交易扣除点数</th>
+								<td>{{m.amount}}</td>
+							</tr>
+							<tr>
+								<th>关联订单号</th>
+								<td>{{m.tradeNo}}</td>
+							</tr>
+							<tr>
+								<th>关联商品名称</th>
+								<td>{{m.goodsNames}}</td>
+							</tr>
+							<tr>
+								<th>扣除时间</th>
+								<td>{{m.recordTime}}</td>
+							</tr>
+						</table>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button type="success" @click="sa.closeCurrIframe()">确定</el-button>
+				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-info": httpVueLoader('../../sa-frame/com/sa-info.vue')
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0),	// 获取数据ID 
+					m: null
+				},
+				methods: {
+				},
+				mounted: function() {
+					sa.ajax('/level-one-server/TbWalletRecord/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 98 - 0
sa-view/tb-wallet-record/tb-wallet-record-list.html

@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点扣除记录-列表</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+	</head>
+	<body>
+		<div class="vue-box" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 检索参数 ------------- -->
+				<div class="c-title">检索参数</div>
+				<el-form ref="form" :model='p' @submit.native.prevent>
+					<sa-item type="text" name="边民姓名" v-model="p.peopleName" width="8em"></sa-item>
+					<sa-item type="text" name="关联订单号" v-model="p.tradeNo" width="7em"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList" >
+					<sa-td type="index" name="序号"></sa-td>
+					<sa-td name="边民姓名" prop="peopleName" ></sa-td>
+					<sa-td name="交易前点数" prop="beforeAmount" ></sa-td>
+					<sa-td name="交易后点数" prop="afterAmount" ></sa-td>
+					<sa-td name="交易扣除点数" prop="amount" ></sa-td>
+					<sa-td name="关联订单号" prop="tradeNo" ></sa-td>
+					<sa-td name="关联商品id" prop="goodsId" ></sa-td>
+					<sa-td name="关联商品名称" prop="goodsNames" ></sa-td>
+					<sa-td name="扣除时间" prop="recordTime" ></sa-td>
+					<el-table-column label="操作" fixed="right"  width="240px">
+						<template slot-scope="s">
+							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
+							<el-button class="c-btn" type="primary"  @click="getPeople(s.row)">边民信息</el-button>
+							<el-button class="c-btn" type="primary"  @click="getOrder(s.row)">商品信息</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- ------------- 分页 ------------- -->
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),  
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),		
+				},
+				el: '.vue-box',
+				data: {
+					p: { // 查询参数  
+						peopleName: '',		// 边民姓名 
+						tradeNo: '',		// 关联订单号 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbWalletRecord/getList', sa.removeNull(this.p), function(res) {
+							this.dataList = res.data; // 数据
+							this.dataCount = res.dataCount; // 数据总数 
+							sa.f5TableHeight();		// 刷新表格高度 
+						}.bind(this));
+					},
+					// 查看
+					get: function(data) {
+						sa.showIframe('数据详情', 'tb-wallet-record-info.html?id=' + data.id, '1050px', '90%');
+					},
+					// 查看 - 关联边民
+					getPeople(data){
+						sa.showIframe('边民信息', '../tb-people/tb-people-info.html?id='+data.peopleId, '90%', '90%');
+					},
+					// 查看 - 关联订单
+					getOrder(data){
+						sa.showIframe('商品信息', '../tb-order/tb-order-info.html?id=' + data.orderId, '1050px', '70%');
+					}
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 143 - 0
sa-view/tb-wallet-topdown/tb-wallet-topdown-add.html

@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点提现记录-添加/修改</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style type="text/css">
+			.c-panel .el-form .c-label{width: 7em !important;}
+			.c-panel .el-form .el-input, .c-panel .el-form .el-textarea__inner{width: 250px;}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box" :class="{sbot: id}" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+                    <div class="c-title" v-if="id == 0">数据添加</div>
+					<div class="c-title" v-else>数据修改</div>
+					<el-form v-if="m">
+						<sa-item type="num" name="主键" v-model="m.id" br></sa-item>
+						<sa-item type="text" name="边民id" v-model="m.peopleId" br></sa-item>
+						<sa-item type="text" name="商户号" v-model="m.mchid" br></sa-item>
+						<sa-item type="text" name="商户系统内部订单号" v-model="m.outTradeNo" br></sa-item>
+						<sa-item type="text" name="微信支付系统生成的订单号" v-model="m.transactionId" br></sa-item>
+						<sa-item type="text" name="提现金额" v-model="m.amount" br></sa-item>
+						<sa-item type="text" name="提现时间" v-model="m.topdownTime" br></sa-item>
+						<sa-item type="text" name="创建时间" v-model="m.createTime" br></sa-item>
+						<sa-item type="text" name="创建人编号" v-model="m.createBy" br></sa-item>
+						<sa-item type="text" name="创建人名称" v-model="m.createName" br></sa-item>
+						<sa-item type="text" name="更新时间" v-model="m.updateTime" br></sa-item>
+						<sa-item type="text" name="更新人编号" v-model="m.updateBy" br></sa-item>
+						<sa-item type="text" name="更新人名称" v-model="m.updateName" br></sa-item>
+						<sa-item type="enum" name="删除状态" v-model="m.deleteStatus" :jv="{0: '禁用', 1: '启用'}" jtype="3" br></sa-item>
+						<sa-item name="" class="s-ok" br>
+							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
+						</sa-item>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button type="primary" @click="ok()">确定</el-button>
+				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+			</div>
+		</div>
+        <script>
+			
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue')
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0),		// 获取超链接中的id参数(0=添加,非0=修改) 
+					m: null,		// 实体对象 
+				},
+				methods: {
+					// 创建一个 默认Model 
+					createModel: function() {
+						return {
+							id: '',		// 主键 
+							peopleId: '',		// 边民id 
+							mchid: '',		// 商户号 
+							outTradeNo: '',		// 商户系统内部订单号 
+							transactionId: '',		// 微信支付系统生成的订单号 
+							amount: '',		// 提现金额 
+							topdownTime: '',		// 提现时间 
+							createTime: '',		// 创建时间 
+							createBy: '',		// 创建人编号 
+							createName: '',		// 创建人名称 
+							updateTime: '',		// 更新时间 
+							updateBy: '',		// 更新人编号 
+							updateName: '',		// 更新人名称 
+							deleteStatus: '',		// 删除状态(0=禁用,1=启用) 
+						}
+					},
+					// 提交数据 
+					ok: function(){
+						// 表单校验 
+						let m = this.m;
+						sa.checkNull(m.id, '请输入 [主键]');
+						sa.checkNull(m.peopleId, '请输入 [边民id]');
+						sa.checkNull(m.mchid, '请输入 [商户号]');
+						sa.checkNull(m.outTradeNo, '请输入 [商户系统内部订单号]');
+						sa.checkNull(m.transactionId, '请输入 [微信支付系统生成的订单号]');
+						sa.checkNull(m.amount, '请输入 [提现金额]');
+						sa.checkNull(m.topdownTime, '请输入 [提现时间]');
+						sa.checkNull(m.createTime, '请输入 [创建时间]');
+						sa.checkNull(m.createBy, '请输入 [创建人编号]');
+						sa.checkNull(m.createName, '请输入 [创建人名称]');
+						sa.checkNull(m.updateTime, '请输入 [更新时间]');
+						sa.checkNull(m.updateBy, '请输入 [更新人编号]');
+						sa.checkNull(m.updateName, '请输入 [更新人名称]');
+						sa.checkNull(m.deleteStatus, '请输入 [删除状态]');
+				
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/TbWalletTopdown/add', m, function(res){
+								sa.alert('增加成功', this.clean); 
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/TbWalletTopdown/update', m, function(res){
+								sa.alert('修改成功', this.clean);
+							}.bind(this));
+						}
+					},
+					// 添加/修改 完成后的动作
+					clean: function() {
+						if(this.id == 0) {
+							this.m = this.createModel();
+						} else {
+							parent.app.f5();		// 刷新父页面列表
+							sa.closeCurrIframe();	// 关闭本页 
+						}
+					}
+				},
+				mounted: function(){
+					// 初始化数据 
+					if(this.id <= 0) {	
+						this.m = this.createModel();
+					} else {	
+						sa.ajax('/TbWalletTopdown/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 106 - 0
sa-view/tb-wallet-topdown/tb-wallet-topdown-info.html

@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点提现记录-详情</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style type="text/css">
+			.c-panel .c-label{width: 8em;}
+			table {
+			  font-family: arial, sans-serif;
+			  border-collapse: collapse;
+			  width: 90%;
+			  margin-top: 20px ;
+			  margin-left: auto;
+			  margin-right: auto;
+			}
+			th {
+			  border: 1px solid darkgray;
+			  text-align: left;
+			  height: 24px;
+			  padding: 8px;
+			  background-color: #dddddd;
+			}
+			td {
+			  border: 1px solid darkgray;
+			  text-align: left;
+			  padding: 8px;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+					<el-form v-if="m">
+						<table>
+							<tr>
+								<th>边民姓名</th>
+								<td>{{m.peopleName}}</td>
+							</tr>
+							<tr>
+								<th>商户号</th>
+								<td>{{m.mchid}}</td>
+							</tr>
+							<tr>
+								<th>商户系统内部订单号</th>
+								<td>{{m.outTradeNo}}</td>
+							</tr>
+							<tr>
+								<th>微信支付系统生成的订单号</th>
+								<td>{{m.transactionId}}</td>
+							</tr>
+							<tr>
+								<th>充值金额</th>
+								<td>{{m.amount}}</td>
+							</tr>
+							<tr>
+								<th>充值时间</th>
+								<td>{{m.topdownTime}}</td>
+							</tr>
+						</table>
+
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button type="success" @click="sa.closeCurrIframe()">确定</el-button>
+				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-info": httpVueLoader('../../sa-frame/com/sa-info.vue')
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0),	// 获取数据ID 
+					m: null
+				},
+				methods: {
+				},
+				mounted: function() {
+					sa.ajax('/level-one-server/TbWalletTopdown/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 91 - 0
sa-view/tb-wallet-topdown/tb-wallet-topdown-list.html

@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点提现记录-列表</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+	</head>
+	<body>
+		<div class="vue-box" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 检索参数 ------------- -->
+				<div class="c-title">检索参数</div>
+				<el-form ref="form" :model='p' @submit.native.prevent>
+					<sa-item type="text" name="边民姓名" v-model="p.peopleName" width="8em"></sa-item>
+					<sa-item type="text" name="商户号" v-model="p.mchid" width="7em"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList" >
+					<sa-td type="index" name="序号"></sa-td>
+					<sa-td name="边民姓名" prop="peopleName" ></sa-td>
+					<sa-td name="商户号" prop="mchid" ></sa-td>
+					<sa-td name="商户系统内部订单号" prop="outTradeNo" ></sa-td>
+					<sa-td name="微信支付系统生成的订单号" prop="transactionId" ></sa-td>
+					<sa-td name="提现金额" prop="amount" ></sa-td>
+					<sa-td name="提现时间" prop="topdownTime" ></sa-td>
+					<el-table-column label="操作" fixed="right"  width="160px">
+						<template slot-scope="s">
+							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
+							<el-button class="c-btn" type="primary"  @click="getPeople(s.row)">边民信息</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- ------------- 分页 ------------- -->
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),  
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),		
+				},
+				el: '.vue-box',
+				data: {
+					p: { // 查询参数  
+						peopleName: '',		// 边民姓名 
+						mchid: '',		// 商户号 	 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbWalletTopdown/getList', sa.removeNull(this.p), function(res) {
+							this.dataList = res.data; // 数据
+							this.dataCount = res.dataCount; // 数据总数 
+							sa.f5TableHeight();		// 刷新表格高度 
+						}.bind(this));
+					},
+					// 查看
+					get: function(data) {
+						sa.showIframe('数据详情', 'tb-wallet-topdown-info.html?id=' + data.id, '70%', '90%');
+					},
+					// 查看 - 根据选中的边民
+					getPeople(data){
+						sa.showIframe('边民信息', '../tb-people/tb-people-info.html?id='+data.peopleId, '90%', '90%');
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 143 - 0
sa-view/tb-wallet-topup/tb-wallet-topup-add.html

@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点充值记录-添加/修改</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style type="text/css">
+			.c-panel .el-form .c-label{width: 7em !important;}
+			.c-panel .el-form .el-input, .c-panel .el-form .el-textarea__inner{width: 250px;}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box" :class="{sbot: id}" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+                    <div class="c-title" v-if="id == 0">数据添加</div>
+					<div class="c-title" v-else>数据修改</div>
+					<el-form v-if="m">
+						<sa-item type="num" name="主键" v-model="m.id" br></sa-item>
+						<sa-item type="text" name="边民id" v-model="m.peopleId" br></sa-item>
+						<sa-item type="text" name="商户号" v-model="m.mchid" br></sa-item>
+						<sa-item type="text" name="商户系统内部订单号" v-model="m.outTradeNo" br></sa-item>
+						<sa-item type="text" name="微信支付系统生成的订单号" v-model="m.transactionId" br></sa-item>
+						<sa-item type="text" name="充值金额" v-model="m.amount" br></sa-item>
+						<sa-item type="text" name="充值时间" v-model="m.topupTime" br></sa-item>
+						<sa-item type="text" name="创建时间" v-model="m.createTime" br></sa-item>
+						<sa-item type="text" name="创建人编号" v-model="m.createBy" br></sa-item>
+						<sa-item type="text" name="创建人名称" v-model="m.createName" br></sa-item>
+						<sa-item type="text" name="更新时间" v-model="m.updateTime" br></sa-item>
+						<sa-item type="text" name="更新人编号" v-model="m.updateBy" br></sa-item>
+						<sa-item type="text" name="更新人名称" v-model="m.updateName" br></sa-item>
+						<sa-item type="enum" name="删除状态" v-model="m.deleteStatus" :jv="{0: '禁用', 1: '启用'}" jtype="3" br></sa-item>
+						<sa-item name="" class="s-ok" br>
+							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
+						</sa-item>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button type="primary" @click="ok()">确定</el-button>
+				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+			</div>
+		</div>
+        <script>
+			
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue')
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0),		// 获取超链接中的id参数(0=添加,非0=修改) 
+					m: null,		// 实体对象 
+				},
+				methods: {
+					// 创建一个 默认Model 
+					createModel: function() {
+						return {
+							id: '',		// 主键 
+							peopleId: '',		// 边民id 
+							mchid: '',		// 商户号 
+							outTradeNo: '',		// 商户系统内部订单号 
+							transactionId: '',		// 微信支付系统生成的订单号 
+							amount: '',		// 充值金额 
+							topupTime: '',		// 充值时间 
+							createTime: '',		// 创建时间 
+							createBy: '',		// 创建人编号 
+							createName: '',		// 创建人名称 
+							updateTime: '',		// 更新时间 
+							updateBy: '',		// 更新人编号 
+							updateName: '',		// 更新人名称 
+							deleteStatus: '',		// 删除状态(0=禁用,1=启用) 
+						}
+					},
+					// 提交数据 
+					ok: function(){
+						// 表单校验 
+						let m = this.m;
+						sa.checkNull(m.id, '请输入 [主键]');
+						sa.checkNull(m.peopleId, '请输入 [边民id]');
+						sa.checkNull(m.mchid, '请输入 [商户号]');
+						sa.checkNull(m.outTradeNo, '请输入 [商户系统内部订单号]');
+						sa.checkNull(m.transactionId, '请输入 [微信支付系统生成的订单号]');
+						sa.checkNull(m.amount, '请输入 [充值金额]');
+						sa.checkNull(m.topupTime, '请输入 [充值时间]');
+						sa.checkNull(m.createTime, '请输入 [创建时间]');
+						sa.checkNull(m.createBy, '请输入 [创建人编号]');
+						sa.checkNull(m.createName, '请输入 [创建人名称]');
+						sa.checkNull(m.updateTime, '请输入 [更新时间]');
+						sa.checkNull(m.updateBy, '请输入 [更新人编号]');
+						sa.checkNull(m.updateName, '请输入 [更新人名称]');
+						sa.checkNull(m.deleteStatus, '请输入 [删除状态]');
+				
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/TbWalletTopup/add', m, function(res){
+								sa.alert('增加成功', this.clean); 
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/TbWalletTopup/update', m, function(res){
+								sa.alert('修改成功', this.clean);
+							}.bind(this));
+						}
+					},
+					// 添加/修改 完成后的动作
+					clean: function() {
+						if(this.id == 0) {
+							this.m = this.createModel();
+						} else {
+							parent.app.f5();		// 刷新父页面列表
+							sa.closeCurrIframe();	// 关闭本页 
+						}
+					}
+				},
+				mounted: function(){
+					// 初始化数据 
+					if(this.id <= 0) {	
+						this.m = this.createModel();
+					} else {	
+						sa.ajax('/TbWalletTopup/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 105 - 0
sa-view/tb-wallet-topup/tb-wallet-topup-info.html

@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点充值记录-详情</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style type="text/css">
+			.c-panel .c-label{width: 8em;}
+			table {
+			  font-family: arial, sans-serif;
+			  border-collapse: collapse;
+			  width: 90%;
+			  margin-top: 20px ;
+			  margin-left: auto;
+			  margin-right: auto;
+			}
+			th {
+			  border: 1px solid darkgray;
+			  text-align: left;
+			  height: 24px;
+			  padding: 8px;
+			  background-color: #dddddd;
+			}
+			td {
+			  border: 1px solid darkgray;
+			  text-align: left;
+			  padding: 8px;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+					<el-form v-if="m">
+						<table>
+							<tr>
+								<th>边民姓名</th>
+								<td>{{m.peopleName}}</td>
+							</tr>
+							<tr>
+								<th>商户号</th>
+								<td>{{m.mchid}}</td>
+							</tr>
+							<tr>
+								<th>商户系统内部订单号</th>
+								<td>{{m.outTradeNo}}</td>
+							</tr>
+							<tr>
+								<th>微信支付系统生成的订单号</th>
+								<td>{{m.transactionId}}</td>
+							</tr>
+							<tr>
+								<th>充值金额</th>
+								<td>{{m.amount}}</td>
+							</tr>
+							<tr>
+								<th>充值时间</th>
+								<td>{{m.topupTime}}</td>
+							</tr>
+						</table>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button type="success" @click="sa.closeCurrIframe()">确定</el-button>
+				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-info": httpVueLoader('../../sa-frame/com/sa-info.vue')
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0),	// 获取数据ID 
+					m: null
+				},
+				methods: {
+				},
+				mounted: function() {
+					sa.ajax('/level-one-server/TbWalletTopup/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 92 - 0
sa-view/tb-wallet-topup/tb-wallet-topup-list.html

@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>服务点充值记录-列表</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+	</head>
+	<body>
+		<div class="vue-box" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 检索参数 ------------- -->
+				<div class="c-title">检索参数</div>
+				<el-form ref="form" :model='p' @submit.native.prevent>
+					<sa-item type="text" name="边民姓名" v-model="p.peopleName" width="8em"></sa-item>
+					<sa-item type="text" name="商户号" v-model="p.mchid" width="7em"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList" >
+					<sa-td type="index" name="序号"></sa-td>
+					<sa-td name="边民姓名" prop="peopleName" ></sa-td>
+					<sa-td name="商户号" prop="mchid" ></sa-td>
+					<sa-td name="商户系统内部订单号" prop="outTradeNo" ></sa-td>
+					<sa-td name="微信支付系统生成的订单号" prop="transactionId" ></sa-td>
+					<sa-td name="充值金额" prop="amount" ></sa-td>
+					<sa-td name="充值时间" prop="topupTime" ></sa-td>
+
+					<el-table-column label="操作" fixed="right"  width="160px">
+						<template slot-scope="s">
+							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
+							<el-button class="c-btn" type="primary"  @click="getPeople(s.row)">边民信息</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- ------------- 分页 ------------- -->
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),  
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),		
+				},
+				el: '.vue-box',
+				data: {
+					p: { // 查询参数  
+						peopleName: '',		// 边民姓名 
+						mchid: '',		// 商户号 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbWalletTopup/getList', sa.removeNull(this.p), function(res) {
+							this.dataList = res.data; // 数据
+							this.dataCount = res.dataCount; // 数据总数 
+							sa.f5TableHeight();		// 刷新表格高度 
+						}.bind(this));
+					},
+					// 查看
+					get: function(data) {
+						sa.showIframe('数据详情', 'tb-wallet-topup-info.html?id=' + data.id, '1050px', '90%');
+					},
+					// 查看 - 根据选中的边民
+					getPeople(data){
+						sa.showIframe('边民信息', '../tb-people/tb-people-info.html?id='+data.peopleId, '90%', '90%');
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>