6 Commits e8b0695379 ... 71133a7a91

Auteur SHA1 Message Date
  qzy 71133a7a91 支付充值 il y a 4 mois
  qzy 5cc0165fac 服务点管理 il y a 9 mois
  qzy 667117d2bb 查询优化 il y a 10 mois
  qzy 993f2cf006 查询优化 il y a 10 mois
  qzy 157723b6e2 Merge remote-tracking branch 'origin/feature/wxPay' into feature/temp il y a 10 mois
  panlijun b75d348e37 1、增加服务点充值记录; il y a 11 mois

+ 1 - 1
login.html

@@ -189,7 +189,7 @@
 			// 你所有要改的代码全在这里   ↓↓↓↓↓
 
 			// 所有参考属性
-			var page_title = '你好,欢迎登录系统'; // 页面标题
+			var page_title = '智慧边民互市交易服务平台'; // 页面标题
 			var key = 'admin'; // 默认的账号
 			var password = 'admin123'; // 默认的password   fdsg@3,;27Rf
 			var logo = 'sa-frame/admin-logo.png'; // logo地址,为空字符串则不显示

+ 326 - 292
sa-frame/menu-list-sp.js

@@ -7,11 +7,11 @@ window.menuList.unshift({
 		isShow: false, // 隐藏显示
 		info: '身份相关权限,不显示在菜单上',
 		childList: [{
-				id: '1',
-				name: '身份-超管',
-				info: '最高权限,超管身份的代表(请谨慎授权)',
-				isShow: false
-			},
+			id: '1',
+			name: '身份-超管',
+			info: '最高权限,超管身份的代表(请谨慎授权)',
+			isShow: false
+		},
 			{
 				id: '11',
 				name: '身份-普通账号',
@@ -32,11 +32,11 @@ window.menuList.unshift({
 		info: '对本系统的各种监控',
 		parent: true,
 		childList: [{
-				id: 'sql-console',
-				name: 'SQL监控台',
-				url: 'sa-view-sp/sp-console/sql-console.html',
-				info: 'sql控制台'
-			},
+			id: 'sql-console',
+			name: 'SQL监控台',
+			url: 'sa-view-sp/sp-console/sql-console.html',
+			info: 'sql控制台'
+		},
 			{
 				id: 'redis-console',
 				name: 'Redis控制台',
@@ -62,22 +62,22 @@ window.menuList.unshift({
 		icon: 'el-icon-unlock',
 		info: '对系统角色权限的分配等设计,敏感度较高,请谨慎授权',
 		childList: [{
-				id: 'admin-list',
-				name: '用户列表',
-				url: 'sa-view-sp/sp-admin/admin-list.html',
-				info: '所有管理员账号'
-			}, {
-				id: 'role-list',
-				name: '角色列表',
-				url: 'sa-view-sp/sp-role/role-list.html',
-				info: '管理系统各种角色',
-				childList: [{
-					id: 'role-add',
-					name: '添加角色',
-					info: '添加角色的权限',
-					isShow: false
-				}]
-			},
+			id: 'admin-list',
+			name: '用户列表',
+			url: 'sa-view-sp/sp-admin/admin-list.html',
+			info: '所有管理员账号'
+		}, {
+			id: 'role-list',
+			name: '角色列表',
+			url: 'sa-view-sp/sp-role/role-list.html',
+			info: '管理系统各种角色',
+			childList: [{
+				id: 'role-add',
+				name: '添加角色',
+				info: '添加角色的权限',
+				isShow: false
+			}]
+		},
 			{
 				id: 'menu-list',
 				name: '菜单列表',
@@ -117,10 +117,10 @@ window.menuList.unshift({
 				name: '隐私政策&协议',
 				url: 'sa-view/tb-agreement/tb-agreement-list.html',
 				childList: [{
-						id: 'tb-agreement-add',
-						name: '协议表添加',
-						isShow: true
-					},
+					id: 'tb-agreement-add',
+					name: '协议表添加',
+					isShow: true
+				},
 					{
 						id: 'tb-agreement-edit',
 						name: '协议表更新',
@@ -158,37 +158,37 @@ window.menuList.unshift({
 				icon: 'el-icon-school',
 				parent: true,
 				childList: [{
-						id: 'tb-trade-area',
-						icon: 'el-icon-s-management',
-						name: '场所管理',
-						url: 'sa-view/tb-trade-area/tb-trade-area-list.html',
-						childList: [{
-								id: 'tb-trade-area-add',
-								name: '添加场所',
-								isShow: false
-							},
-							{
-								id: 'tb-trade-area-edit',
-								name: '更新场所',
-								isShow: false
-							},
-							{
-								id: 'tb-trade-area-del',
-								name: '删除场所',
-								isShow: false
-							},
-						]
+					id: 'tb-trade-area',
+					icon: 'el-icon-s-management',
+					name: '场所管理',
+					url: 'sa-view/tb-trade-area/tb-trade-area-list.html',
+					childList: [{
+						id: 'tb-trade-area-add',
+						name: '添加场所',
+						isShow: false
 					},
+						{
+							id: 'tb-trade-area-edit',
+							name: '更新场所',
+							isShow: false
+						},
+						{
+							id: 'tb-trade-area-del',
+							name: '删除场所',
+							isShow: false
+						},
+					]
+				},
 					{
 						id: 'tb-group',
 						icon: 'el-icon-s-data',
 						name: '互助组管理',
 						url: 'sa-view/tb-group/tb-group-list.html',
 						childList: [{
-								id: 'tb-group-add',
-								name: '互助组添加',
-								isShow: false
-							},
+							id: 'tb-group-add',
+							name: '互助组添加',
+							isShow: false
+						},
 							{
 								id: 'tb-group-edit',
 								name: '互助组更新',
@@ -212,10 +212,10 @@ window.menuList.unshift({
 						name: '边民管理',
 						url: 'sa-view/tb-people/tb-people-list.html',
 						childList: [{
-								id: 'tb-people-add',
-								name: '边民添加',
-								isShow: false
-							},
+							id: 'tb-people-add',
+							name: '边民添加',
+							isShow: false
+						},
 							{
 								id: 'tb-people-bind-shop',
 								name: '绑定店铺',
@@ -239,10 +239,10 @@ window.menuList.unshift({
 						name: '商铺管理',
 						url: 'sa-view/tb-shop/tb-shop-list.html',
 						childList: [{
-								id: 'tb-shop-add',
-								name: '商铺添加',
-								isShow: false
-							},
+							id: 'tb-shop-add',
+							name: '商铺添加',
+							isShow: false
+						},
 							{
 								id: 'tb-shop-edit',
 								name: '商铺更新',
@@ -263,10 +263,10 @@ window.menuList.unshift({
 						icon:'el-icon-smoking',
 						url: 'sa-view/tb-goods-units/tb-goods-units-list.html',
 						childList: [{
-								id: 'tb-goods-units-add',
-								name: '计价单位添加',
-								isShow: false
-							},
+							id: 'tb-goods-units-add',
+							name: '计价单位添加',
+							isShow: false
+						},
 							{
 								id: 'tb-goods-units-edit',
 								name: '计价单位更新',
@@ -285,10 +285,10 @@ window.menuList.unshift({
 						icon:'el-icon-notebook-2',
 						url: 'sa-view/tb-goods-type/tb-goods-type-list.html',
 						childList: [{
-								id: 'tb-goods-type-add',
-								name: '商品分类添加',
-								isShow: true
-							},
+							id: 'tb-goods-type-add',
+							name: '商品分类添加',
+							isShow: true
+						},
 							{
 								id: 'tb-goods-type-edit',
 								name: '商品分类更新',
@@ -307,10 +307,10 @@ window.menuList.unshift({
 						icon:'el-icon-grape',
 						url: 'sa-view/tb-goods/tb-goods-list.html',
 						childList: [{
-								id: 'tb-goods-add',
-								name: '商品添加',
-								isShow: false
-							},
+							id: 'tb-goods-add',
+							name: '商品添加',
+							isShow: false
+						},
 							{
 								id: 'tb-goods-edit',
 								name: '商品更新',
@@ -330,10 +330,10 @@ window.menuList.unshift({
 						name: '合作社',
 						url: 'sa-view/tb-cooperative/tb-cooperative-list.html',
 						childList: [{
-								id: 'tb-cooperative-add',
-								name: '添加合作社',
-								isShow: false
-							},
+							id: 'tb-cooperative-add',
+							name: '添加合作社',
+							isShow: false
+						},
 							{
 								id: 'tb-cooperative-edit',
 								name: '更新合作社',
@@ -354,27 +354,27 @@ window.menuList.unshift({
 				parent: true,
 				icon: 'el-icon-office-building',
 				childList: [{
-						id: 'tb-purchaser',
-						icon: 'el-icon-film',
-						name: '企业收购商',
-						url: 'sa-view/tb-purchaser/tb-purchaser-list.html',
-						childList: [{
-								id: 'tb-purchaser-add',
-								name: '收购商添加',
-								isShow: false
-							},
-							{
-								id: 'tb-purchaser-edit',
-								name: '收购商更新',
-								isShow: false
-							},
-							{
-								id: 'tb-purchaser-del',
-								name: '收购商删除',
-								isShow: false
-							},
-						]
+					id: 'tb-purchaser',
+					icon: 'el-icon-film',
+					name: '企业收购商',
+					url: 'sa-view/tb-purchaser/tb-purchaser-list.html',
+					childList: [{
+						id: 'tb-purchaser-add',
+						name: '收购商添加',
+						isShow: false
 					},
+						{
+							id: 'tb-purchaser-edit',
+							name: '收购商更新',
+							isShow: false
+						},
+						{
+							id: 'tb-purchaser-del',
+							name: '收购商删除',
+							isShow: false
+						},
+					]
+				},
 					{
 						id: 'tb-purchaser-judge',
 						icon: 'el-icon-s-check',
@@ -391,10 +391,10 @@ window.menuList.unshift({
 						name: '个人收购商',
 						url: 'sa-view/tb-purchaser-personal/tb-purchaser-personal-list.html',
 						childList: [{
-								id: 'tb-purchaser-add',
-								name: '收购商添加',
-								isShow: false
-							},
+							id: 'tb-purchaser-add',
+							name: '收购商添加',
+							isShow: false
+						},
 							{
 								id: 'tb-purchaser-edit',
 								name: '收购商更新',
@@ -424,10 +424,10 @@ window.menuList.unshift({
 						name: '个体户(开票)',
 						url: 'sa-view/tb-people-tax-account/tb-people-tax-account-list.html',
 						childList: [{
-								id: 'tb-people-tax-account-add',
-								name: '个体户(开票)添加',
-								isShow: false
-							},
+							id: 'tb-people-tax-account-add',
+							name: '个体户(开票)添加',
+							isShow: false
+						},
 							{
 								id: 'tb-people-tax-account-edit',
 								name: '个体户(开票)更新',
@@ -452,37 +452,37 @@ window.menuList.unshift({
 		icon: 'el-icon-mobile-phone',
 		parent: true,
 		childList: [{
-				id: 'app-menu',
-				icon: 'el-icon-s-operation',
-				name: '菜单管理',
-				url: 'sa-view/app-menu/app-menu-list.html',
-				childList: [{
-						id: 'app-menu-add',
-						name: 'app菜单管理添加',
-						isShow: false
-					},
-					{
-						id: 'app-menu-edit',
-						name: 'app菜单管理更新',
-						isShow: false
-					},
-					{
-						id: 'app-menu-del',
-						name: 'app菜单管理删除',
-						isShow: false
-					},
-				]
+			id: 'app-menu',
+			icon: 'el-icon-s-operation',
+			name: '菜单管理',
+			url: 'sa-view/app-menu/app-menu-list.html',
+			childList: [{
+				id: 'app-menu-add',
+				name: 'app菜单管理添加',
+				isShow: false
 			},
+				{
+					id: 'app-menu-edit',
+					name: 'app菜单管理更新',
+					isShow: false
+				},
+				{
+					id: 'app-menu-del',
+					name: 'app菜单管理删除',
+					isShow: false
+				},
+			]
+		},
 			{
 				id: 'app-role',
 				icon: 'el-icon-postcard',
 				name: '角色管理',
 				url: 'sa-view/app-role/app-role-list.html',
 				childList: [{
-						id: 'app-role-add',
-						name: '添加',
-						isShow: false
-					},
+					id: 'app-role-add',
+					name: '添加',
+					isShow: false
+				},
 					{
 						id: 'app-role-edit',
 						name: '更新',
@@ -501,10 +501,10 @@ window.menuList.unshift({
 				name: '账号管理',
 				url: 'sa-view/app-user/app-user-list.html',
 				childList: [{
-						id: 'app-user-add',
-						name: '添加',
-						isShow: false
-					},
+					id: 'app-user-add',
+					name: '添加',
+					isShow: false
+				},
 					{
 						id: 'app-user-edit',
 						name: '更新',
@@ -523,10 +523,10 @@ window.menuList.unshift({
 				icon: 'el-icon-apple',
 				url: 'sa-view/tb-app/tb-app-list.html',
 				childList: [{
-						id: 'tb-app-add',
-						name: 'APK管理添加',
-						isShow: false
-					},
+					id: 'tb-app-add',
+					name: 'APK管理添加',
+					isShow: false
+				},
 					{
 						id: 'tb-app-edit',
 						name: 'APK管理更新',
@@ -545,10 +545,10 @@ window.menuList.unshift({
 				icon:'el-icon-document',
 				url: 'sa-view/tb-port-news/tb-port-news-list.html',
 				childList: [{
-						id: 'tb-port-news-add',
-						name: '口岸资讯添加',
-						isShow: true
-					},
+					id: 'tb-port-news-add',
+					name: '口岸资讯添加',
+					isShow: true
+				},
 					{
 						id: 'tb-port-news-edit',
 						name: '口岸资讯更新',
@@ -567,10 +567,10 @@ window.menuList.unshift({
 				icon: 'el-icon-receiving',
 				url: 'sa-view/tb-message/tb-message-list.html',
 				childList: [{
-						id: 'tb-message-add',
-						name: '通知消息添加',
-						isShow: false
-					},
+					id: 'tb-message-add',
+					name: '通知消息添加',
+					isShow: false
+				},
 					{
 						id: 'tb-message-edit',
 						name: '通知消息更新',
@@ -583,17 +583,17 @@ window.menuList.unshift({
 					},
 				]
 			},
-			
+
 			{
 				id: 'tb-banner',
 				name: '轮播图',
 				icon:'el-icon-picture-outline',
 				url: 'sa-view/tb-banner/tb-banner-list.html',
 				childList: [{
-						id: 'tb-banner-add',
-						name: '轮播图添加',
-						isShow: true
-					},
+					id: 'tb-banner-add',
+					name: '轮播图添加',
+					isShow: true
+				},
 					{
 						id: 'tb-banner-edit',
 						name: '轮播图更新',
@@ -623,71 +623,52 @@ window.menuList.unshift({
 		name: '交易管理',
 		parent: true,
 		icon: 'el-icon-s-unfold',
-		childList: [{
-				id: 'level-one-market',
-				icon: 'el-icon-school',
-				name: '一级市场',
-				parent: true,
-				childList: [{
-						id: 'listing-manage',
-						name: '上架管理',
-						icon: 'el-icon-shopping-cart-full',
-						parent: true,
-						childList: [{
-							id: 'listing-management',
-							name: '整车订单',
-							icon: 'el-icon-notebook-2',
-							url: 'sa-view/listing-management/listing-management.html',
-							childList: [{
-								id: 'tb-order-edit-price',
-								name: '修改上架金额',
-								isShow: false
-							}]
-						}]
-					},
-
+		childList: [
+			{
+			id: 'level-one-market',
+			icon: 'el-icon-school',
+			name: '一级市场',
+			parent: true,
+			childList: [
+				
 					{
 						id: 'level-order',
 						name: '交易订单',
 						icon: 'el-icon-s-operation',
 						parent: true,
 						childList: [{
-								id: 'ht-trade-settlement',
-								name: '进境结算单',
-								icon: 'el-icon-s-home',
-								url: 'sa-view/ht-trade-settlement/ht-trade-settlement-list.html',
-								childList: [{
-										id: 'ht-trade-settlement-add',
-										name: '添加订单',
-										isShow: false
-									},
-									{
-										id: 'ht-trade-settlement-edit',
-										name: '修改订单',
-										isShow: false
-									},
-									{
-										id: 'tb-order-edit-price',
-										name: '修改上架金额',
-										isShow: false
-									},
-									{
-										id: 'ht-trade-settlement-hzsconfirm',
-										name: '互助社确认',
-										isShow: false
-									},
-								]
-							},
+							id: 'ht-trade-settlement',
+							name: '进境结算单',
+							icon: 'el-icon-s-home',
+							url: 'sa-view/ht-trade-settlement/ht-trade-settlement-list.html',
+							childList: [
+								{
+									id: 'ht-trade-settlement-edit',
+									name: '修改订单',
+									isShow: false
+								},
+								{
+									id: 'tb-order-edit-price',
+									name: '修改上架金额',
+									isShow: false
+								},
+								{
+									id: 'ht-trade-settlement-hzsconfirm',
+									name: '互助社确认',
+									isShow: false
+								},
+							]
+						},
 							{
 								id: 'tb-order',
 								name: '边民购买订单',
 								icon: 'el-icon-s-custom',
 								url: 'sa-view/tb-order/tb-order-list.html',
 								childList: [{
-										id: 'tb-order-edit',
-										name: '修改订单',
-										isShow: false
-									},
+									id: 'tb-order-edit',
+									name: '修改订单',
+									isShow: false
+								},
 									{
 										id: 'tb-order-del',
 										name: '删除订单',
@@ -712,6 +693,10 @@ window.menuList.unshift({
 										id: 'tb-order-sendCXB001',
 										name: '推送结关',
 										isShow: false
+									},{
+										id: 'tb-order-refund',
+										name: '退款',
+										isShow: false
 									},
 								]
 							},
@@ -721,10 +706,10 @@ window.menuList.unshift({
 								icon: 'el-icon-s-unfold',
 								url: 'sa-view/tb-import-order/tb-import-order-list.html',
 								childList: [{
-										id: 'tb-import-order-add',
-										name: '订单添加',
-										isShow: false
-									},
+									id: 'tb-import-order-add',
+									name: '订单添加',
+									isShow: false
+								},
 									{
 										id: 'tb-import-order-edit',
 										name: '订单更新',
@@ -739,53 +724,102 @@ window.menuList.unshift({
 							},
 						]
 					},
-					{
-						id: 'returns-chargebacks-list',
-						name: '退运/单管理',
-						parent: true,
-						icon: 'el-icon-position',
-						childList: [{
-								id: 'ht-returns-settlement',
-								name: '退运订单',
-								icon: 'el-icon-c-scale-to-original',
-								url: 'sa-view/ht-settlement-error/ht-trade-returns-list.html'
-							},
-							{
-								id: 'ht-chargebacks-settlement',
-								name: '退单订单',
-								icon: 'el-icon-date',
-								url: 'sa-view/ht-settlement-error/ht-trade-chargebacks-list.html'
-							},
-
-						]
-					},
-				]
+				{
+				id: 'listing-manage',
+				name: '上架管理',
+				icon: 'el-icon-shopping-cart-full',
+				parent: true,
+				childList: [{
+					id: 'listing-management',
+					name: '整车订单',
+					icon: 'el-icon-notebook-2',
+					url: 'sa-view/listing-management/listing-management.html',
+					childList: [{
+						id: 'tb-order-edit-price',
+						name: '修改上架金额',
+						isShow: false
+					}]
+				}]
 			},
+				{
+					id: 'tb-wallet-manager',
+					name: '服务点管理',
+					parent: true,
+					icon:'el-icon-s-operation',
+					childList: [
+						{
+							id: 'tb-wallet-topup',
+							name: '充值记录',
+							url: 'sa-view/tb-wallet-topup/tb-wallet-topup-list.html',
+							icon:'el-icon-collection'
+						},
+						{
+							id: 'tb-wallet-topup-fail',
+							name: '未支付记录',
+							url: 'sa-view/tb-wallet-topup/tb-wallet-topup-fail.html',
+							icon:'el-icon-collection'
+						},
+						{
+							id: 'tb-wallet-record',
+							name: '扣除记录',
+							url: 'sa-view/tb-wallet-record/tb-wallet-record-list.html',
+							icon:'el-icon-notebook-1'
+						},
+						{
+							id: 'tb-wallet-topdown',
+							name: '提现记录',
+							url: 'sa-view/tb-wallet-topdown/tb-wallet-topdown-list.html',
+							icon:'el-icon-files'
+						},
+					]
+				},
+				{
+					id: 'returns-chargebacks-list',
+					name: '退运/单管理',
+					parent: true,
+					icon: 'el-icon-position',
+					childList: [{
+						id: 'ht-returns-settlement',
+						name: '退运订单',
+						icon: 'el-icon-c-scale-to-original',
+						url: 'sa-view/ht-settlement-error/ht-trade-returns-list.html'
+					},
+						{
+							id: 'ht-chargebacks-settlement',
+							name: '退单订单',
+							icon: 'el-icon-date',
+							url: 'sa-view/ht-settlement-error/ht-trade-chargebacks-list.html'
+						},
+
+					]
+				},
+			]
+		},
 			{
 				id: 'order-list',
 				name: '二级市场',
 				parent: true,
 				icon: 'el-icon-office-building',
 				childList: [{
-						id: 'tb-import-order-judge',
-						name: '互助委托协议审核',
-						url: 'sa-view/tb-import-order/tb-import-order-judge.html',
-						childList: [{
-							id: 'tb-import-order-do-judge',
-							name: '审核',
-							isShow: false
-						}, ]
-					},
+					id: 'tb-import-order-judge',
+					name: '互助委托协议审核',
+					url: 'sa-view/tb-import-order/tb-import-order-judge.html',
+					childList: [{
+						id: 'tb-import-order-do-judge',
+						name: '审核',
+						isShow: false
+					}, ]
+				},
 					{
 						id: 'tb-orders',
 						name: '订单管理',
 						icon: 'el-icon-document-copy',
 						url: 'sa-view/tb-orders/tb-orders-list.html',
 						childList: [{
-								id: 'tb-orders-add',
-								name: '添加订单',
-								isShow: false
-							},
+							id: 'tb-orders-add',
+							name: '添加订单',
+							isShow: false
+						},
 							{
 								id: 'tb-orders-edit',
 								name: '修改订单',
@@ -812,37 +846,37 @@ window.menuList.unshift({
 		parent: true,
 		icon: 'el-icon-s-grid',
 		childList: [{
-				id: 'tb-driver',
-				icon: 'el-icon-s-custom',
-				name: '司机管理',
-				url: 'sa-view/tb-driver/tb-driver-list.html',
-				childList: [{
-						id: 'tb-driver-add',
-						name: '司机添加',
-						isShow: true
-					},
-					{
-						id: 'tb-driver-edit',
-						name: '司机更新',
-						isShow: true
-					},
-					{
-						id: 'tb-driver-del',
-						name: '司机删除',
-						isShow: true
-					},
-				]
+			id: 'tb-driver',
+			icon: 'el-icon-s-custom',
+			name: '司机管理',
+			url: 'sa-view/tb-driver/tb-driver-list.html',
+			childList: [{
+				id: 'tb-driver-add',
+				name: '司机添加',
+				isShow: true
 			},
+				{
+					id: 'tb-driver-edit',
+					name: '司机更新',
+					isShow: true
+				},
+				{
+					id: 'tb-driver-del',
+					name: '司机删除',
+					isShow: true
+				},
+			]
+		},
 			{
 				id: 'tb-vehicle',
 				icon: 'el-icon-s-check',
 				name: '车辆管理',
 				url: 'sa-view/tb-vehicle/tb-vehicle-list.html',
 				childList: [{
-						id: 'tb-vehicle-add',
-						name: '车辆添加',
-						isShow: true
-					},
+					id: 'tb-vehicle-add',
+					name: '车辆添加',
+					isShow: true
+				},
 					{
 						id: 'tb-vehicle-edit',
 						name: '车辆更新',
@@ -862,28 +896,28 @@ window.menuList.unshift({
 		parent: true,
 		icon: 'el-icon-s-shop',
 		childList: [{
-				id: 'tb-company-list',
-				name: '收费企业',
-				icon: 'el-icon-folder-opened',
-				info: '企业管理表数据的维护',
-				url: 'sa-view/tb-company/tb-company-list.html',
-				childList: [{
-						id: 'tb-company-add',
-						name: '企业添加',
-						isShow: false
-					},
-					{
-						id: 'tb-company-edit',
-						name: '企业更新',
-						isShow: false
-					},
-					{
-						id: 'tb-company-del',
-						name: '企业删除',
-						isShow: false
-					},
-				]
+			id: 'tb-company-list',
+			name: '收费企业',
+			icon: 'el-icon-folder-opened',
+			info: '企业管理表数据的维护',
+			url: 'sa-view/tb-company/tb-company-list.html',
+			childList: [{
+				id: 'tb-company-add',
+				name: '企业添加',
+				isShow: false
 			},
+				{
+					id: 'tb-company-edit',
+					name: '企业更新',
+					isShow: false
+				},
+				{
+					id: 'tb-company-del',
+					name: '企业删除',
+					isShow: false
+				},
+			]
+		},
 			{
 				id: 'tb-fee-item-list',
 				name: '费用管理',
@@ -891,10 +925,10 @@ window.menuList.unshift({
 				info: '费项管理表数据的维护',
 				url: 'sa-view/tb-fee-item/tb-fee-item-list.html',
 				childList: [{
-						id: 'tb-fee-item-add',
-						name: '费项添加',
-						isShow: false
-					},
+					id: 'tb-fee-item-add',
+					name: '费项添加',
+					isShow: false
+				},
 					{
 						id: 'tb-fee-item-edit',
 						name: '费项更新',
@@ -917,4 +951,4 @@ window.menuList.unshift({
 		]
 	}
 
-);
+);

+ 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>

+ 34 - 2
sa-view/app-user/app-user-list.html

@@ -33,7 +33,6 @@
 					</sa-item>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
 					<el-button type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
-					<el-button v-if="sa.isAuth('app-user-add')" size="mini" type="primary" @click="add()">新增</el-button>
 				</el-form>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList" >
@@ -60,7 +59,7 @@
 					<el-table-column label="操作" fixed="right"  width="270px">
 						<template slot-scope="s">
 							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
-							<el-button v-if="sa.isAuth('app-user-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button  v-if="sa.isAuth('app-user-edit')&&(s.row.userType==1||s.row.userType==2)" class="c-btn" type="primary" icon="el-icon-edit" @click="updateRole(s.row)">类型</el-button>
 							<el-button v-if="sa.isAuth('app-user-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="pass(s.row)">改密</el-button>
 							<el-button v-if="sa.isAuth('app-user-del')" class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
 						</template>
@@ -69,6 +68,21 @@
 				<!-- ------------- 分页 ------------- -->
 				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
 			</div>
+			<el-dialog
+			  title="修改类型"
+			  :visible.sync="dialogVisible"
+			  width="400px">
+			  <sa-item name="类型">
+			  	<el-select v-model="form.userType">
+			  		<el-option label="边民" :value="1"></el-option>
+			  		<el-option label="组长" :value="2"></el-option>
+			  	</el-select>
+			  </sa-item>
+			  <span slot="footer" class="dialog-footer">
+			    <el-button @click="dialogVisible = false">取 消</el-button>
+			    <el-button type="primary" @click="subEditRole">确 定</el-button>
+			  </span>
+			</el-dialog>
 		</div>
 		<script>
 			var app = new Vue({
@@ -78,6 +92,7 @@
 				},
 				el: '.vue-box',
 				data: {
+					dialogVisible:false,
 					p: { // 查询参数
 						phone: '',		// 手机号码
 						name: '',		// 姓名
@@ -87,8 +102,25 @@
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合
+					form:{
+						userType:'',
+						id:''
+					}
 				},
 				methods: {
+					updateRole(data){
+						this.dialogVisible=true;
+						this.form={
+							userType:data.userType,
+							id:data.id
+						}
+					},
+					subEditRole(){
+						sa.ajax('/sp-admin/AppUser/updateRole', sa.removeNull(this.form), function(res) {
+							this.dialogVisible=false;
+							sa.f5();		// 刷新表格高度
+						}.bind(this));
+					},
 					// 刷新
 					f5: function() {
 						sa.ajax('/sp-admin/AppUser/getList', sa.removeNull(this.p), function(res) {

+ 21 - 5
sa-view/ht-byte/ht-byte-list.html

@@ -44,6 +44,8 @@
 							<el-option label="退单" value="010"></el-option>
 						</el-select>
 					</sa-item>
+					<sa-item type="date" name="日期" v-model="p.createTime" width="90px"></sa-item>
+					<sa-item type="text" name="车牌" v-model="p.veNo" width="90px"></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>
@@ -59,11 +61,14 @@
 							<div v-if="s.row.finishStatus==2">处理失败</div>
 						</template>
 					</sa-td>
-					<sa-td name="时间" prop="createTime"></sa-td>
-					<el-table-column label="操作" fixed="right" width="120px">
+					<sa-td name="车牌" prop="veNo"></sa-td>
+					<sa-td name="创建时间" prop="createTime"></sa-td>
+					<sa-td name="完成时间" prop="finishTime"></sa-td>
+					<el-table-column label="操作" fixed="right" width="140px">
 						<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="success" @click="get(s.row)">查看</el-button>
+							<el-button v-if="s.row.dataType==007||s.row.dataType==008" class="c-btn" type="primary"
+								@click="doExec(s.row)">执行</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
@@ -87,6 +92,7 @@
 						body: '', // 字节数据主体 
 						queueName: '', // mq队列名称 
 						finishStatus: '', // 完成对象转换状态 
+						searchDate: '',
 						createTime: '', // 创建时间 
 						pageNo: 1, // 当前页 
 						pageSize: 10, // 页大小 
@@ -96,6 +102,16 @@
 					dataList: [], // 数据集合 
 				},
 				methods: {
+					doExec(data) {
+						sa.confirm('是否再次执行?', function() {
+							sa.ajax('/async-server/HtByte/updateStatus?id=' + data.id, function(res) {
+								sa.ok('操作成功');
+								sa.f5TableHeight(); // 刷新表格高度
+								this.f5();
+							}.bind(this))
+						}.bind(this));
+					},
+
 					// 刷新
 					f5: function() {
 						sa.ajax('/async-server/HtByte/getList', sa.removeNull(this.p), function(res) {
@@ -108,7 +124,7 @@
 					get: function(data) {
 						sa.showIframe('数据详情', 'ht-byte-info.html?id=' + data.id, '900px', '800px');
 					},
-				
+
 				},
 				created: function() {
 					this.f5();

+ 7 - 5
sa-view/ht-trade-settlement/ht-trade-settlement-list.html

@@ -28,6 +28,8 @@
 				<el-form ref="form" :model='p' @submit.native.prevent>
 					<sa-item type="text" name="车牌号" v-model="p.veNo" width="7em"></sa-item>
 					<sa-item type="date" name="申报日期" v-model="p.declTime" width="7em"></sa-item>
+					<sa-item type="text" name="商品" v-model="p.goodsNames" width="7em"></sa-item>
+					<sa-item type="text" name="商铺" v-model="p.shopName" 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>
@@ -60,12 +62,12 @@
 									class="c-btn" type="info" @click="hzsConfirm(s.row)">互助社确认</el-button>
 							</span>
 							<span>
-								<el-button v-if="sa.isAuth('tb-order-deduction')&&s.row.hzsConfirmStatus==1" class="c-btn" type="warning"
-									@click="ToDeductionByVeNo(s.row)">按车订单扣款</el-button>
+								<el-button v-if="sa.isAuth('tb-order-deduction')&&s.row.hzsConfirmStatus==1"
+									class="c-btn" type="warning" @click="ToDeductionByVeNo(s.row)">按车订单扣款</el-button>
 							</span>
 							<span>
-								<el-button v-if="sa.isAuth('tb-order-sendCXB001')&&s.row.hzsConfirmStatus==1" class="c-btn" type="warning"
-									@click="ToSendCXB001ByVeNo(s.row)">推送结关</el-button>
+								<el-button v-if="sa.isAuth('tb-order-sendCXB001')&&s.row.hzsConfirmStatus==1"
+									class="c-btn" type="warning" @click="ToSendCXB001ByVeNo(s.row)">推送结关</el-button>
 							</span>
 						</template>
 					</el-table-column>
@@ -117,7 +119,7 @@
 					hzsConfirm(data) {
 						sa.confirm('是否确认订单', function() {
 							sa.ajax('/level-one-server/HtTradeSettlement/hzsConfirm?id=' + data.id, function(
-							res) {
+								res) {
 								sa.ok('确认成功');
 								this.f5();
 							}.bind(this))

+ 1 - 0
sa-view/ht-trade-settlement/tb-order-sendCXB001ByVeNo.html

@@ -55,6 +55,7 @@
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td type="index" name="序号" width="80px"></sa-td>
 					<sa-td name="车牌号" prop="veNo"></sa-td>
+					<sa-td name="订单号" prop="tradeNo" width="200"></sa-td>
 					<sa-td name="买家" prop="buyUserName"></sa-td>
 					<sa-td name="商品名称" prop="goodsNames" width="200px"></sa-td>
 					<sa-td name="总重量" prop="netWt"></sa-td>

+ 3 - 3
sa-view/listing-management/listing-management-order.html

@@ -88,7 +88,7 @@
 							@click="saleBatch()">批量转售</el-button>
 						<el-button v-if="sa.isAuth('tb-order-edit-price')" type="warning" style="margin-bottom:10px;"
 							@click="callBackSleBatch()">批量撤销转售</el-button>
-						
+
 					</div>
 				</el-form>
 				<div style="display: flex;padding: 10px;font-size: 16px;">
@@ -96,7 +96,7 @@
 					<div style="margin-left: 10px;">已上架:{{statics.upSize}};</div>
 					<div style="margin-left: 10px;">未上架:<span style="color:red">{{statics.notUpSize}}</span>;</div>
 					<div style="margin-left: 10px;">上架总金额:<span
-							style="color:red;font-weight: bold;">{{statics.upTotalPrice}}元</span>;</div>
+							style="color:red;font-weight: bold;">{{Math.round(statics.upTotalPrice*100)/100}}元</span>;</div>
 					<div style="margin-left: 10px;">已转售:{{statics.saleSize}};</div>
 					<div style="margin-left: 10px;">未转售:<span style="color:red">{{statics.notSaleSize}}</span></div>
 				</div>
@@ -403,4 +403,4 @@
 			})
 		</script>
 	</body>
-</html>
+</html>

+ 28 - 1
sa-view/listing-management/listing-management.html

@@ -23,9 +23,33 @@
 					<sa-item type="text" name="车牌号" v-model="p.veNo" width="8em"></sa-item>
 					<sa-item type="text" name="商品名称" v-model="p.goodsNames" width="11em"></sa-item>
 					<sa-item type="date" name="申报日期" v-model="p.declTime" width="7em"></sa-item>
+					<sa-item type="text" name="航次号" v-model="p.voyageNo" width="11em"></sa-item>
 				</el-form>
 				<el-form ref="form" :model='p' @submit.native.prevent>
-					<sa-item type="text" name="航次号" v-model="p.voyageNo" width="11em"></sa-item>
+					<sa-item name="上架状态" width="120px">
+						<el-select v-model="p.upStatus">
+							<el-option label="全部" value=""></el-option>
+							<el-option label="已上架" value="1"></el-option>
+							<el-option label="未上架" value="2"></el-option>
+							<el-option label="部分上架" value="3"></el-option>
+						</el-select>
+					</sa-item>
+					<sa-item name="转售状态" width="120px">
+						<el-select v-model="p.saleStatus">
+							<el-option label="全部" value=""></el-option>
+							<el-option label="已转售" value="1"></el-option>
+							<el-option label="未转售" value="2"></el-option>
+							<el-option label="部分转售" value="3"></el-option>
+						</el-select>
+					</sa-item>
+					<sa-item name="销售状态" width="120px">
+						<el-select v-model="p.beOrderStatus">
+							<el-option label="全部" value=""></el-option>
+							<el-option label="已销售" value="1"></el-option>
+							<el-option label="未销售" value="2"></el-option>
+							<el-option label="部分销售" value="3"></el-option>
+						</el-select>
+					</sa-item>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()" style="margin-left: 163px">查询</el-button>
 					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
 				</el-form>
@@ -68,6 +92,9 @@
 						goodsNames: '',		// 商品名称
 						returns:0,
 						chargebacks:0,
+						upStatus:'',
+						saleStatus:'',
+						beOrderStatus:'',
 						pageNo: 1,		// 当前页
 						pageSize: 10,	// 页大小
 						sortType: 0		// 排序方式

+ 4 - 5
sa-view/tb-import-order/tb-import-order-list.html

@@ -22,6 +22,7 @@
 				<el-form ref="form" :model='p' @submit.native.prevent>
 					<sa-item type="text" name="业务编号" v-model="p.platSeqNo" width="100px"></sa-item>
 					<sa-item type="text" name="车牌号" v-model="p.veNo" width="100px"></sa-item>
+					<sa-item type="text" name="申报人" v-model="p.declareName" width="100px"></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>
@@ -31,13 +32,11 @@
 					<sa-td name="业务编号" prop="platSeqNo" width="150px"></sa-td>
 					<sa-td name="预录入编号" prop="preNo" width="150px"></sa-td>
 					<sa-td name="申报人姓名" prop="declareName" ></sa-td>
+					<sa-td name="边民" prop="peopleName" ></sa-td>
 					<!--<sa-td name="申报人身份证号" prop="ciphertextIdno" width="140px"></sa-td>-->
 					<sa-td name="车牌号" prop="veNo" ></sa-td>
-					<sa-td name="互市区" prop="fieldName" width="160px"></sa-td>
-					<sa-td name="总金额" prop="sumAmt" ></sa-td>
-					<sa-td name="总毛重(kg)" prop="sumGrossWt" ></sa-td>
-					<sa-td name="总净重(kg)" prop="sumNetWt" ></sa-td>
-					<sa-td name="币制" prop="currCode" ></sa-td>
+					<sa-td name="总金额" prop="gLimit" ></sa-td>
+					<sa-td name="总重重(kg)" prop="gGrossWt" ></sa-td>
 					<sa-td name="件数" prop="packNo" ></sa-td>
 					<sa-td name="运输批次号" prop="manifestId" width="150px"></sa-td>
 					<sa-td name="创建时间" prop="createTime" width="140px"></sa-td>

+ 3 - 31
sa-view/tb-order/tb-order-bank-list.html

@@ -17,46 +17,18 @@
 	<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.id"></sa-item>
-					<sa-item type="text" name="报文编号" v-model="p.sn"></sa-item>
-					<sa-item type="text" name="报文发送时间" v-model="p.date"></sa-item>
-					<sa-item type="text" name="互市点机构代码" v-model="p.organization"></sa-item>
-					<sa-item type="text" name="银行标识" v-model="p.bankCode"></sa-item>
-					<sa-item type="text" name="报文业务类型" v-model="p.operation"></sa-item>
-					<sa-item type="text" name="消息回执代码" v-model="p.code"></sa-item>
-					<sa-item type="text" name="订单号" v-model="p.source"></sa-item>
-					<sa-item type="text" name="扣款成功的流水单号" v-model="p.result"></sa-item>
-					<sa-item type="text" name="回执内容" v-model="p.note"></sa-item>
-					<sa-item type="text" name="创建时间" v-model="p.createTime"></sa-item>
-					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
-				</el-form> -->
-				<!-- <div class="fast-btn">
-					<el-button v-if="sa.isAuth('bank-info-add')" size="mini" type="primary" @click="add()">新增</el-button>
-					<el-button size="mini" type="success" @click="getBySelect()">查看</el-button>
-					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
-				</div> -->
-				<!-- ------------- 数据列表 ------------- -->
+
 				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<!-- <sa-td name="报文编号" prop="sn" ></sa-td> -->
 					<sa-td name="互市代码" prop="organization" ></sa-td>
 					<sa-td name="银行标识" prop="bankCode" ></sa-td>
 					<sa-td name="业务类型" prop="operation" ></sa-td>
 					<sa-td name="回执代码" prop="code" ></sa-td>
-					<sa-td name="订单号" prop="source" width="180px"></sa-td>
+					<sa-td name="订单号" prop="source" width="189px"></sa-td>
 					<sa-td name="流水单号" prop="result" ></sa-td>
 					<sa-td name="回执内容" prop="note" width="300px"></sa-td>
 					<!-- <sa-td name="报文发送时间" prop="date" width="150px"></sa-td> -->
 					<sa-td name="创建时间" prop="createTime" width="150px"></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 v-if="sa.isAuth('bank-info-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button v-if="sa.isAuth('bank-info-del')" class="c-btn" type="danger" icon="el-icon-delete" @click="del(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>

+ 37 - 54
sa-view/tb-order/tb-order-list.html

@@ -70,7 +70,7 @@
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td type="index" width="30px"></sa-td>
 					<sa-td name="车牌号" prop="veNo"></sa-td>
-					<sa-td name="订单号" prop="tradeNo" width="180"></sa-td>
+					<sa-td name="订单号" prop="tradeNo" width="210"></sa-td>
 					<sa-td name="边民" prop="buyUserName"></sa-td>
 					<sa-td name="商家名称" prop="enterpriseName" width="280px"></sa-td>
 					<sa-td name="商品名称" prop="goodsNames" width="200px"></sa-td>
@@ -92,9 +92,20 @@
 					<!--(一级市场)订单扣款回执状态[0=初始值 1=扣款成功 2=扣款失败]-->
 					<sa-td name="扣款状态" prop="sxb010Status">
 						<template slot-scope="s">
-							<div v-if="s.row.sxb010Status===0">未扣款</div>
-							<div v-if="s.row.sxb010Status===1">扣款成功</div>
-							<div v-else-if="s.row.sxb010Status===2">扣款失败</div>
+						<div v-if="s.row.sxb010Status===3">扣款中</div>
+						<div v-else>
+							<div v-if="s.row.refundStatus==0">
+								<div v-if="s.row.sxb010Status===0">未扣款</div>
+								<div v-if="s.row.sxb010Status===1">扣款成功</div>
+								<div v-else-if="s.row.sxb010Status===2">扣款失败</div>
+							</div>
+							<div v-else>
+								<div v-if="s.row.refundStatus===1">退款成功</div>
+								<div v-if="s.row.refundStatus===2">退款失败</div>
+								<div v-if="s.row.refundStatus===3">退款中</div>
+							</div>
+						</div>
+														
 						</template>
 					</sa-td>
 					<sa-td name="销售状态" prop="beingOrder"><!--订单转售后是否在二级市场被下单-->
@@ -120,22 +131,23 @@
 						:jv="{1: '已确认[green]', 0: '未确认[#ff910a]'}"></sa-td>
 					<el-table-column label="操作" fixed="right" width="210px" align="center">
 						<template slot-scope="s">
-							<el-button class="c-btn" type="success"
-								@click="get(s.row)">查看</el-button>
-							<el-button class="c-btn" type="primary"
-								@click="getBank(s.row)">银行回执</el-button>
+							<el-button class="c-btn" type="success" @click="get(s.row)">查看</el-button>
+							<el-button class="c-btn" type="primary" @click="getBank(s.row)">银行回执</el-button>
 							<span>
-								<el-button v-if="s.row.sxb010Status!=1
+								<el-button v-if="(s.row.sxb010Status!=1||s.row.refundStatus==1)&&s.row.sxb010Status!=3
 												&&s.row.peopleConfirmStatus===1 && s.row.applyConfirmStatus===1
-												&&sa.isAuth('tb-order-deduction')" class="c-btn" type="warning" @click="deductionHandle(s.row)">订单扣款</el-button>
+												&&sa.isAuth('tb-order-deduction')" class="c-btn" type="warning"
+									@click="deductionHandle(s.row)">订单扣款</el-button>
 							</span>
 							<span>
-							<!-- 	<el-button v-if="s.row.finishStatus!=1
+								<!-- 	<el-button v-if="s.row.finishStatus!=1
 												&&sa.isAuth('tb-order-sendCXB001')" class="c-btn" type="warning"
 									@click="sendCXB001Handle(s.row)">推送结关</el-button> -->
 							</span>
-							<el-button v-if="sa.isAuth('tb-order-send009')&&s.row.applyConfirmStatus==0" class="c-btn" type="danger"
-								@click="send009ToHt(s.row)">人工确认</el-button>
+							<el-button v-if="sa.isAuth('tb-order-send009')&&s.row.applyConfirmStatus==0" class="c-btn"
+								type="danger" @click="send009ToHt(s.row)">推送009</el-button>
+							<el-button v-if="sa.isAuth('tb-order-refund')&&s.row.sxb010Status==1&&(s.row.refundStatus==0||s.row.refundStatus==2)" class="c-btn"
+								type="danger" @click="orderRefund(s.row)">退款</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
@@ -206,7 +218,7 @@
 						chargebacks: 0,
 						pageNo: 1, // 当前页
 						pageSize: 10, // 页大小
-						sortType: 0 ,// 排序方式
+						sortType: 0, // 排序方式
 						saleMainId: sa.p('mainId', ''),
 					},
 					dataCount: 0,
@@ -248,12 +260,19 @@
 							this.model.visible = false;
 						}.bind(this));
 					},
-
+					orderRefund(data) {
+						sa.confirm('是否执行订单退款操作', function() {
+							sa.ajax('/level-one-server/TbOrder/orderRefund?id=' + data.id, function(res) {
+								sa.ok('操作成功');
+								this.f5();
+							}.bind(this))
+						}.bind(this));
+					},
 					deductionHandle(data) {
 						sa.confirm('是否执行订单扣款操作', function() {
 							sa.ajax('/level-one-server/TbOrder/deduction?id=' + data.id, function(res) {
 								sa.ok('操作成功');
-								sa.f5TableHeight(); // 刷新表格高度
+								this.f5();
 							}.bind(this))
 						}.bind(this));
 					},
@@ -319,43 +338,7 @@
 					getBank: function(data) {
 						sa.showIframe('银行回执', 'tb-order-bank-list.html?tradeNo=' + data.tradeNo, '1300px', '90%');
 					},
-					// 修改
-					update: function(data) {
-						sa.showIframe('修改数据', 'tb-order-add.html?id=' + data.id, '1000px', '90%');
-					},
-					// 新增
-					add: function(data) {
-						sa.showIframe('新增数据', 'tb-order-add.html?id=-1', '1000px', '90%');
-					},
-					// 删除
-					del: function(data) {
-						sa.confirm('是否删除,此操作不可撤销', function() {
-							sa.ajax('/level-one-server/TbOrder/delete?id=' + data.id, function(res) {
-								sa.arrayDelete(this.dataList, data);
-								sa.ok('删除成功');
-								sa.f5TableHeight(); // 刷新表格高度
-							}.bind(this))
-						}.bind(this));
-					},
-					// 批量删除
-					deleteByIds: function() {
-						// 获取选中元素的id列表
-						let selection = this.$refs['data-table'].selection;
-						let ids = sa.getArrayField(selection, 'id');
-						if (selection.length == 0) {
-							return sa.msg('请至少选择一条数据')
-						}
-						// 提交删除
-						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/level-one-server/TbOrder/deleteByIds', {
-								ids: ids.join(',')
-							}, function(res) {
-								sa.arrayDelete(this.dataList, selection);
-								sa.ok('删除成功');
-								sa.f5TableHeight(); // 刷新表格高度
-							}.bind(this))
-						}.bind(this));
-					},
+			
 
 				},
 				created: function() {
@@ -365,4 +348,4 @@
 			})
 		</script>
 	</body>
-</html>
+</html>

+ 92 - 85
sa-view/tb-orders/tb-orders-list.html

@@ -3,7 +3,8 @@
 	<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" />
+		<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="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
@@ -22,41 +23,57 @@
 				<!-- ------------- 检索参数 ------------- -->
 				<div class="c-title">检索参数</div>
 				<el-form ref="form" :model='p' @submit.native.prevent>
-					<sa-item type="text" name="车牌号" v-model="p.veNo" width="80px"></sa-item>
-					<sa-item type="text" name="货主" v-model="p.leaderName" width="90px"></sa-item>
-					<sa-item type="text" name="订单编号" v-model="p.orderNo" width="90px"></sa-item>
-					<sa-item name="订单状态" width="90px">
-						<el-select v-model="p.orderFinish" style="width: 120px;">
-							<el-option label="全部" value=""></el-option>
-							<el-option label="未完成" value="0"></el-option>
-							<el-option label="已完成" value="1"></el-option>
-						</el-select>
-					</sa-item>
-					<sa-item name="支付状态" width="90px">
-						<el-select v-model="p.isPay" style="width: 120px;">
-							<el-option label="全部" value=""></el-option>
-							<el-option label="未支付" value="0"></el-option>
-							<el-option label="支付中" value="3"></el-option>
-							<el-option label="支付失败" value="2"></el-option>
-							<el-option label="支付成功" value="1"></el-option>
-						</el-select>
-					</sa-item>
-					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
-					<el-button type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
-					<!-- <el-button v-if="sa.isAuth('tb-orders-add')" size="mini" type="primary" @click="add()">新增</el-button> -->
+					<div>
+						<sa-item type="text" name="车牌号" v-model="p.veNo" width="80px"></sa-item>
+						<sa-item type="text" name="货主" v-model="p.leaderName" width="90px"></sa-item>
+						<sa-item type="text" name="商品" v-model="p.goodsName" width="90px"></sa-item>
+						<sa-item type="text" name="订单编号" v-model="p.orderNo" width="90px"></sa-item>
+					</div>
+					<div>
+						<sa-item name="订单状态" width="90px">
+							<el-select v-model="p.orderFinish" style="width: 120px;">
+								<el-option label="全部" value=""></el-option>
+								<el-option label="未完成" value="0"></el-option>
+								<el-option label="已完成" value="1"></el-option>
+							</el-select>
+						</sa-item>
+						<sa-item name="支付状态" width="90px">
+							<el-select v-model="p.isPay" style="width: 120px;">
+								<el-option label="全部" value=""></el-option>
+								<el-option label="未支付" value="0"></el-option>
+								<el-option label="支付中" value="3"></el-option>
+								<el-option label="支付失败" value="2"></el-option>
+								<el-option label="支付成功" value="1"></el-option>
+							</el-select>
+						</sa-item>
+						<sa-item name="下单状态" width="90px">
+							<el-select v-model="p.beOrder" style="width: 120px;">
+								<el-option label="全部" value=""></el-option>
+								<el-option label="未下单" value="1"></el-option>
+								<el-option label="已下单" value="2"></el-option>
+							</el-select>
+						</sa-item>
+						<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+						<el-button type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
+						<el-button type="primary" @click="payBatch">批量扣款</el-button>
+					</div>
 				</el-form>
 				<!-- ------------- 数据列表 ------------- -->
-				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<sa-td type="index" width="30px"></sa-td>
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					<sa-td type="selection" width="30px"></sa-td>
 					<sa-td name="车牌号" prop="veNo" width="80px"></sa-td>
 					<sa-td name="订单编号" prop="orderNo" width="180px"></sa-td>
-					<sa-td name="商品名称" prop="goodsName" ></sa-td>
+					<sa-td name="商品名称" prop="goodsName" width="160px"></sa-td>
 					<sa-td name="货主" prop="leaderName" width="100px"></sa-td>
 					<sa-td name="转售金额" prop="resalePrice" width="80px"></sa-td>
 					<sa-td name="买家" prop="purchaserName" width="100px"></sa-td>
-					<sa-td name="下单时间" prop="orderTime" width="100px"></sa-td>
-					<sa-td name="订单状态" prop="orderFinish" type="enum" :jv="{0: '未完成[#ff910a]', 1: '已完成[green]'}" @change="s => updateOrderFinish(s.row)" width="80px"></sa-td>
-					<sa-td name="支付状态" prop="isPay" type="enum" :jv="{0: '未支付[#ff910a]', 1: '支付成功[green]', 2: '支付失败[red]', 3: '支付中[blue]'}" width="80px"></sa-td>
+					<sa-td name="转售时间" prop="createTime" width="140px"></sa-td>
+					<sa-td name="下单时间" prop="orderTime" width="160px"></sa-td>
+					<sa-td name="支付状态" prop="isPay" type="enum"
+						:jv="{0: '未支付[#ff910a]', 1: '支付成功[green]', 2: '支付失败[red]', 3: '支付中[blue]'}"
+						width="80px"></sa-td>
+					<sa-td name="订单状态" prop="orderFinish" type="enum" :jv="{0: '未完成[#ff910a]', 1: '已完成[green]'}"
+						@change="s => updateOrderFinish(s.row)" width="80px"></sa-td>
 					<sa-td name="补扣次数" prop="deductionCount" width="80px">
 						<template slot-scope="s">
 							<div v-if="s.row.deductionCount==0">0</div>
@@ -64,23 +81,23 @@
 						</template>
 					</sa-td>
 					<sa-td name="补扣时间" prop="deductionTime" width="140px"></sa-td>
-					<sa-td name="转售时间" prop="createTime" width="140px"></sa-td>
-					<el-table-column label="操作" fixed="right" width="390px">
+
+					<el-table-column label="操作" fixed="right" width="320px">
 						<template slot-scope="s">
-							<el-button class="c-btn" type="success"  @click="get(s.row)">查看</el-button>
-							<el-button class="c-btn" type="primary" icon="el-icon-info" @click="getBank(s.row)">银行回执</el-button>
+							<el-button class="c-btn" type="success" @click="get(s.row)">查看</el-button>
+							<el-button class="c-btn" type="primary" @click="getBank(s.row)">银行回执</el-button>
 							<span>
-								<el-button
-										   class="c-btn" type="warning"  @click="deduction(s.row)">采购补扣款</el-button>
-								<el-button v-else :disabled="true" class="c-btn" type="warning">采购补扣款</el-button>
+								<el-button v-if="s.row.isPay!=1" class="c-btn" type="warning"
+									@click="deduction(s.row)">补扣款</el-button>
 							</span>
-							<el-button class="c-btn" type="primary" icon="el-icon-printer" @click="subPrint(s.row)">交易凭证</el-button>
-							<el-button class="c-btn" type="info" icon="el-icon-info" @click="subEmail(s.row)">电子协议</el-button>
+							<el-button class="c-btn" type="primary" @click="subPrint(s.row)">交易凭证</el-button>
+							<el-button class="c-btn" type="info" @click="subEmail(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>
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount"
+					@change="f5()"></sa-item>
 			</div>
 		</div>
 		<script>
@@ -92,22 +109,45 @@
 				el: '.vue-box',
 				data: {
 					p: { // 查询参数
-						orderNo: '',		// 订单编号
-						goodsName: '',		// 商品名称
-						pageNo: 1,		// 当前页
-						pageSize: 10,	// 页大小
-						sortType: 0		// 排序方式
+						orderFinish: '',
+						isPay: '',
+						orderNo: '', // 订单编号
+						goodsName: '', // 商品名称
+						beOrder: '',
+						pageNo: 1, // 当前页
+						pageSize: 10, // 页大小
+						sortType: 0 // 排序方式
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合
 				},
 				methods: {
+					payBatch() {
+						// 获取选中元素的id列表
+						let selection = this.$refs['data-table'].selection;
+						let ids = sa.getArrayField(selection, 'id');
+						if (selection.length == 0) {
+							return sa.msg('请至少选择一条数据')
+						}
+						let isPayList = selection.filter(obj => obj.isPay == 1 || obj.isPay == 3);
+						if (isPayList.length > 0) {
+							return sa.msg('数据中包含了已支付或支付中订单');
+						}
+						sa.confirm('是否执行补扣款操作', function() {
+							sa.ajax('/level-two-server/TbOrders/payBatch', {
+								ids: ids.join(',')
+							}, function(res) {
+								sa.ok('操作成功');
+								this.f5();
+							}.bind(this))
+						}.bind(this));
+					},
 					// 刷新
 					f5: function() {
 						sa.ajax('/level-two-server/TbOrders/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数
-							sa.f5TableHeight();		// 刷新表格高度
+							sa.f5TableHeight(); // 刷新表格高度
 						}.bind(this));
 					},
 					// 查看
@@ -130,59 +170,26 @@
 						sa.confirm('是否执行补扣款操作', function() {
 							sa.ajax('/level-two-server/TbOrders/deduction?id=' + data.id, function(res) {
 								sa.ok('操作成功');
-								sa.f5TableHeight();		// 刷新表格高度
+								sa.f5TableHeight(); // 刷新表格高度
 								this.f5();
 							}.bind(this))
 						}.bind(this));
 					},
-					// 修改
-					update: function(data) {
-						sa.showIframe('修改数据', 'tb-orders-add.html?id=' + data.id, '1000px', '90%');
-					},
-					// 新增
-					add: function(data) {
-						sa.showIframe('新增数据', 'tb-orders-add.html?id=-1', '1000px', '90%');
-					},
-					// 删除
-					del: function(data) {
-						sa.confirm('是否删除,此操作不可撤销', function() {
-							sa.ajax('/level-two-server/TbOrders/delete?id=' + data.id, function(res) {
-								sa.arrayDelete(this.dataList, data);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
-								this.f5()
-							}.bind(this))
-						}.bind(this));
-					},
-					// 批量删除
-					deleteByIds: function() {
-						// 获取选中元素的id列表
-						let selection = this.$refs['data-table'].selection;
-						let ids = sa.getArrayField(selection, 'id');
-						if(selection.length == 0) {
-							return sa.msg('请至少选择一条数据')
-						}
-						// 提交删除
-						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/level-two-server/TbOrders/deleteByIds', {ids: ids.join(',')}, function(res) {
-								sa.arrayDelete(this.dataList, selection);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
-							}.bind(this))
-						}.bind(this));
-					},
 					// 改 - 订单状态已完成 (0=禁用,1=启用)
 					updateOrderFinish: function(data) {
 						// 声明变量记录是否成功
 						var isOk = false;
 						var oldValue = data.orderFinish;
-						var ajax = sa.ajax('/level-two-server/TbOrders/updateOrderFinish', {id: data.id, value: data.orderFinish}, function(res) {
+						var ajax = sa.ajax('/level-two-server/TbOrders/updateOrderFinish', {
+							id: data.id,
+							value: data.orderFinish
+						}, function(res) {
 							isOk = true;
 							sa.msg('修改成功');
 						}.bind(this));
 						// 如果未能修改成功, 则回滚
 						$.when(ajax).done(function() {
-							if(isOk == false) {
+							if (isOk == false) {
 								data.status = oldValue;
 							}
 						})
@@ -195,4 +202,4 @@
 			})
 		</script>
 	</body>
-</html>
+</html>

+ 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>

+ 3 - 2
sa-view/tb-people/tb-people-list.html

@@ -49,11 +49,12 @@
 					<sa-td name="姓名" prop="name"></sa-td>
 					<sa-td name="性别" prop="sex" type="enum" :jv="{'1': '男', '2': '女'}"></sa-td>
 					<sa-td name="手机号码" prop="phone" type="phone"></sa-td>
-					<sa-td name="身份证" prop="idCard" type="idCard"></sa-td>
+					<sa-td name="身份证" prop="idCard" type="idCard" width="200"></sa-td>
 					<sa-td name="互助组" prop="groupName"></sa-td>
 					<sa-td name="银行" prop="bankName" width="160"></sa-td>
 					<sa-td name="银行卡" prop="bankCode" width="200"></sa-td>
-					<sa-td name="创建时间" prop="createTime"></sa-td>
+					<sa-td name="剩余点数" prop="wallet" width="200"></sa-td>
+					<sa-td name="创建时间" prop="createTime" width="160"></sa-td>
 					<el-table-column label="操作" width="280px" fixed="right">
 						<template slot-scope="s">
 							<el-button class="c-btn" type="success" icon="el-icon-view"

+ 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>

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

@@ -0,0 +1,113 @@
+<!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.veNo}}</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>

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

@@ -0,0 +1,100 @@
+<!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>
+					<sa-item type="text" name="车牌号" v-model="p.veNo" width="7em"></sa-item>
+					<sa-item type="text" name="商品名称" v-model="p.goodsNames" 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="amount" ></sa-td>
+					<sa-td name="交易后点数" prop="afterAmount" ></sa-td>
+					<sa-td name="订单号" prop="tradeNo" width="200"></sa-td>
+					<sa-td name="商品名称" prop="goodsNames" width="250"></sa-td>
+					<sa-td name="车牌号" prop="veNo" width="150"></sa-td>
+					<sa-td name="扣除时间" prop="recordTime" width="160"></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, '800px', '70%');
+					},
+					// 查看 - 关联边民
+					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>

+ 90 - 0
sa-view/tb-wallet-topup/tb-wallet-topup-fail.html

@@ -0,0 +1,90 @@
+<!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>
+					<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>
+				<!-- ------------- 数据列表 ------------- -->
+				<div style="padding: 10px 15px;font-weight: bold;">总充值数:<span>{{sum}}</span></div>
+				<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="outTradeNo" width="200"></sa-td>
+					<sa-td name="充值点数" prop="amount"></sa-td>
+					<sa-td name="充值时间" prop="topupTime" width="160"></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="check(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: '', // 商户号 
+						payStatus: 3,
+						pageNo: 1, // 当前页 
+						pageSize: 10, // 页大小 
+						sortType: 0 // 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+					sum: 0
+				},
+				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));
+					},
+					check: function(data) {
+						sa.ajax('/level-one-server/TbWalletTopup/checkStatus?id=' + data.id, function(res) {
+							sa.alert(res.data)
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 109 - 0
sa-view/tb-wallet-topup/tb-wallet-topup-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.outTradeNo}}</td>
+							</tr>
+							<tr>
+								<th>微信订单号</th>
+								<td>{{m.transactionId}}</td>
+							</tr>
+							<tr>
+								<th>充值前点数</th>
+								<td>{{m.beforeAmount}}</td>
+							</tr>
+							<tr>
+								<th>充值点数</th>
+								<td>{{m.amount}}</td>
+							</tr>
+							<tr>
+								<th>充值后点数</th>
+								<td>{{m.afterAmount}}</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>

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

@@ -0,0 +1,101 @@
+<!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>
+					<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>
+				<!-- ------------- 数据列表 ------------- -->
+				<div style="padding: 10px 15px;font-weight: bold;">总充值数:<span>{{sum}}</span></div>
+				<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="outTradeNo" width="200"></sa-td>
+					<sa-td name="微信订单号" prop="transactionId" width="250"></sa-td>
+					<sa-td name="充值前点数" prop="beforeAmount" ></sa-td>
+					<sa-td name="充值点数" prop="amount" ></sa-td>
+					<sa-td name="充值后点数" prop="afterAmount" ></sa-td>
+					<sa-td name="充值时间" prop="topupTime" width="160"></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: '',		// 商户号 
+						payStatus:2,
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+					sum:0
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbWalletTopup/getList', sa.removeNull(this.p), function(res) {
+							this.dataList = res.data; // 数据
+							this.dataCount = res.dataCount; // 数据总数 
+							this.getSum()
+							sa.f5TableHeight();		// 刷新表格高度 
+						}.bind(this));
+					},
+					getSum: function() {
+						sa.ajax('/level-one-server/TbWalletTopup/getSum', sa.removeNull(this.p), function(res) {
+							this.sum = res.data; // 数据
+						}.bind(this));
+					},
+					// 查看
+					get: function(data) {
+						sa.showIframe('数据详情', 'tb-wallet-topup-info.html?id=' + data.id, '800px', '70%');
+					},
+					// 查看 - 根据选中的边民
+					getPeople(data){
+						sa.showIframe('边民信息', '../tb-people/tb-people-info.html?id='+data.peopleId, '90%', '90%');
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>