Browse Source

边民收益,企业服务费设置,收费记录

qzyReal 1 year ago
parent
commit
d2f00614d5

+ 1 - 1
login.html

@@ -158,7 +158,7 @@
 						</div>
 						<div class="lg">
 							<img src="sa-frame/login/code.png" class="icon" />
-							<input type="number" name="verCode" value="" placeholder="请输入验证码" />
+							<input type="text" name="verCode" value="" placeholder="请输入验证码" />
 							<img id="captcha" />
 							<div class="clear"></div>
 						</div>

+ 2 - 2
sa-frame/com/sa-item.vue

@@ -14,8 +14,8 @@
 	</div>
 	<!-- 数字input -->
 	<div class="c-item" :class="{br: br}" v-else-if="type == 'num'">
-		<label class="c-label">{{name}}:</label> 
-		<el-input type="number" :value="value" @input="onInput" :placeholder="placeholder" :disabled="disabled"></el-input>
+		<label class="c-label"><span style="color: red;" v-if="need">*</span>{{name}}:</label> 
+		<el-input type="number" :value="value" @input="onInput" placeholder="请输入" :disabled="disabled"></el-input>
 	</div>
 	<!-- 密码input -->
 	<div class="c-item" :class="{br: br}" v-else-if="type == 'password'">

+ 670 - 590
sa-frame/menu-list-sp.js

@@ -2,605 +2,685 @@
 // 如需添加自定义菜单,请不要更改此文件,请在 menu-list.js 里添加 (没有这个文件就新建) 
 window.menuList = window.menuList || [];
 window.menuList.unshift({
-	id: 'bas',
-	name: '身份相关',
-	isShow: false, // 隐藏显示 
-	info: '身份相关权限,不显示在菜单上',
-	childList: [{
-			id: '1',
-			name: '身份-超管',
-			info: '最高权限,超管身份的代表(请谨慎授权)',
-			isShow: false
-		},
-		{
-			id: '11',
-			name: '身份-普通账号',
-			isShow: false,
-			info: '无特殊权限'
-		},
-		{
-			id: '99',
-			name: '允许进入后台管理',
-			isShow: false,
-			info: '只有拥有这个权限的角色才可以进入后台'
-		},
-	]
-}, {
-	id: 'console',
-	name: '监控中心',
-	icon: 'el-icon-view',
-	info: '对本系统的各种监控',
-	parent: true,
-	childList: [{
-			id: 'sql-console',
-			name: 'SQL监控台',
-			url: 'sa-view-sp/sp-console/sql-console.html',
-			info: 'sql控制台'
-		},
-		{
-			id: 'redis-console',
-			name: 'Redis控制台',
-			url: 'sa-view-sp/sp-console/redis-console.html',
-			info: 'redis常用工具'
-		},
-		{
-			id: 'apilog-list',
-			name: 'API请求日志',
-			url: 'sa-view-sp/sp-apilog/api-log-list.html',
-			info: '记录本系统所有的api请求'
-		},
-		{
-			id: 'form-generator',
-			name: '在线表单构建',
-			url: 'https://mrhj.gitee.io/form-generator/#/'
-		},
-	]
-}, {
-	id: 'auth',
-	name: '权限控制',
-	parent: true,
-	icon: 'el-icon-unlock',
-	info: '对系统角色权限的分配等设计,敏感度较高,请谨慎授权',
-	childList: [{
-			id: 'role-list',
-			name: '角色列表',
-			url: 'sa-view-sp/sp-role/role-list.html',
-			info: '管理系统各种角色',
-			childList: [{
-				id: 'role-add',
-				name: '添加角色',
-				info: '添加角色的权限',
+		id: 'bas',
+		name: '身份相关',
+		isShow: false, // 隐藏显示 
+		info: '身份相关权限,不显示在菜单上',
+		childList: [{
+				id: '1',
+				name: '身份-超管',
+				info: '最高权限,超管身份的代表(请谨慎授权)',
 				isShow: false
-			}]
-		},
-		{
-			id: 'menu-list',
-			name: '菜单列表',
-			url: 'sa-view-sp/sp-role/menu-list.html',
-			info: '所有菜单项预览'
-		},
-		{
-			id: 'admin-list',
-			name: '管理员列表',
-			url: 'sa-view-sp/sp-admin/admin-list.html',
-			info: '所有管理员账号'
-		},
-		{
-			id: 'admin-add',
-			name: '管理员添加',
-			url: 'sa-view-sp/sp-admin/admin-add.html',
-			info: '添加一个管理员'
-		},
-		// {id: 'apilog-list', name: '请求日志监控', url: 'sa-view-sp/sp-apilog/api-log-list.html', info: '记录本系统所有的api请求'},
-	]
-}, {
-	id: 'sp-cfg',
-	name: '系统配置',
-	icon: 'el-icon-setting',
-	parent: true,
-	info: '有关系统的一些配置',
-	childList: [{
-			id: 'sp-cfg-app',
-			name: '系统对公配置',
-			url: 'sa-view-sp/sp-cfg/app-cfg.html'
-		},
-		{
-			id: 'sp-cfg-server',
-			name: '服务器私有配置',
-			url: 'sa-view-sp/sp-cfg/server-cfg.html'
-		},
-		{
-			id: 'tb-port-news',
-			name: '口岸资讯管理',
-			url: 'sa-view/tb-port-news/tb-port-news-list.html',
-			childList: [{
-					id: 'tb-port-news-add',
-					name: '口岸资讯添加',
-					isShow: true
-				},
-				{
-					id: 'tb-port-news-edit',
-					name: '口岸资讯更新',
-					isShow: true
-				},
-				{
-					id: 'tb-port-news-del',
-					name: '口岸资讯删除',
-					isShow: true
-				},
-			]
-		},
-		{
-			id: 'tb-banner',
-			name: '轮播图',
-			url: 'sa-view/tb-banner/tb-banner-list.html',
-			childList: [{
-					id: 'tb-banner-add',
-					name: '轮播图添加',
-					isShow: true
-				},
-				{
-					id: 'tb-banner-edit',
-					name: '轮播图更新',
-					isShow: true
-				},
-				{
-					id: 'tb-banner-del',
-					name: '轮播图删除',
-					isShow: true
-				},
-			]
-		},
-		{
-			id: 'tb-agreement',
-			name: '隐私政策&协议',
-			url: 'sa-view/tb-agreement/tb-agreement-list.html',
-			childList: [{
-					id: 'tb-agreement-add',
-					name: '协议表添加',
-					isShow: true
-				},
-				{
-					id: 'tb-agreement-edit',
-					name: '协议表更新',
-					isShow: true
-				},
-				{
-					id: 'tb-agreement-del',
-					name: '协议表删除',
-					isShow: true
-				},
-			]
-		},
-	]
-}, {
-	id: 'tb-base-data',
-	name: '基础数据管理',
-	parent: true,
-	icon: 'el-icon-copy-document',
-	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-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-edit',
-					name: '互助组更新',
-					isShow: false
-				},
-				{
-					id: 'tb-group-del',
-					name: '互助组删除',
-					isShow: false
-				},
-				{
-					id: 'tb-member-list',
-					name: '查寻组内成员',
-					isShow: false
-				},
-			]
-		},
-		{
-			id: 'tb-people',
-			icon: 'el-icon-user',
-			name: '边民管理',
-			url: 'sa-view/tb-people/tb-people-list.html',
-			childList: [{
-					id: 'tb-people-add',
-					name: '边民添加',
-					isShow: false
-				},
-				{
-					id: 'tb-people-edit',
-					name: '边民更新',
-					isShow: false
-				},
-				{
-					id: 'tb-people-del',
-					name: '边民删除',
-					isShow: false
-				},
-			]
-		},
+			},
+			{
+				id: '11',
+				name: '身份-普通账号',
+				isShow: false,
+				info: '无特殊权限'
+			},
+			{
+				id: '99',
+				name: '允许进入后台管理',
+				isShow: false,
+				info: '只有拥有这个权限的角色才可以进入后台'
+			},
+		]
+	}, {
+		id: 'console',
+		name: '监控中心',
+		icon: 'el-icon-view',
+		info: '对本系统的各种监控',
+		parent: true,
+		childList: [{
+				id: 'sql-console',
+				name: 'SQL监控台',
+				url: 'sa-view-sp/sp-console/sql-console.html',
+				info: 'sql控制台'
+			},
+			{
+				id: 'redis-console',
+				name: 'Redis控制台',
+				url: 'sa-view-sp/sp-console/redis-console.html',
+				info: 'redis常用工具'
+			},
+			{
+				id: 'apilog-list',
+				name: 'API请求日志',
+				url: 'sa-view-sp/sp-apilog/api-log-list.html',
+				info: '记录本系统所有的api请求'
+			},
+			{
+				id: 'form-generator',
+				name: '在线表单构建',
+				url: 'https://mrhj.gitee.io/form-generator/#/'
+			},
+		]
+	}, {
+		id: 'auth',
+		name: '权限控制',
+		parent: true,
+		icon: 'el-icon-unlock',
+		info: '对系统角色权限的分配等设计,敏感度较高,请谨慎授权',
+		childList: [{
+				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: '菜单列表',
+				url: 'sa-view-sp/sp-role/menu-list.html',
+				info: '所有菜单项预览'
+			},
+			{
+				id: 'admin-list',
+				name: '管理员列表',
+				url: 'sa-view-sp/sp-admin/admin-list.html',
+				info: '所有管理员账号'
+			},
+			{
+				id: 'admin-add',
+				name: '管理员添加',
+				url: 'sa-view-sp/sp-admin/admin-add.html',
+				info: '添加一个管理员'
+			},
+			// {id: 'apilog-list', name: '请求日志监控', url: 'sa-view-sp/sp-apilog/api-log-list.html', info: '记录本系统所有的api请求'},
+		]
+	}, {
+		id: 'sp-cfg',
+		name: '系统配置',
+		icon: 'el-icon-setting',
+		parent: true,
+		info: '有关系统的一些配置',
+		childList: [{
+				id: 'sp-cfg-app',
+				name: '系统对公配置',
+				url: 'sa-view-sp/sp-cfg/app-cfg.html'
+			},
+			{
+				id: 'sp-cfg-server',
+				name: '服务器私有配置',
+				url: 'sa-view-sp/sp-cfg/server-cfg.html'
+			},
+			{
+				id: 'tb-port-news',
+				name: '口岸资讯管理',
+				url: 'sa-view/tb-port-news/tb-port-news-list.html',
+				childList: [{
+						id: 'tb-port-news-add',
+						name: '口岸资讯添加',
+						isShow: true
+					},
+					{
+						id: 'tb-port-news-edit',
+						name: '口岸资讯更新',
+						isShow: true
+					},
+					{
+						id: 'tb-port-news-del',
+						name: '口岸资讯删除',
+						isShow: true
+					},
+				]
+			},
+			{
+				id: 'tb-banner',
+				name: '轮播图',
+				url: 'sa-view/tb-banner/tb-banner-list.html',
+				childList: [{
+						id: 'tb-banner-add',
+						name: '轮播图添加',
+						isShow: true
+					},
+					{
+						id: 'tb-banner-edit',
+						name: '轮播图更新',
+						isShow: true
+					},
+					{
+						id: 'tb-banner-del',
+						name: '轮播图删除',
+						isShow: true
+					},
+				]
+			},
+			{
+				id: 'tb-agreement',
+				name: '隐私政策&协议',
+				url: 'sa-view/tb-agreement/tb-agreement-list.html',
+				childList: [{
+						id: 'tb-agreement-add',
+						name: '协议表添加',
+						isShow: true
+					},
+					{
+						id: 'tb-agreement-edit',
+						name: '协议表更新',
+						isShow: true
+					},
+					{
+						id: 'tb-agreement-del',
+						name: '协议表删除',
+						isShow: true
+					},
+				]
+			},
+		]
+	}, {
+		id: 'tb-base-data',
+		name: '基础数据管理',
+		parent: true,
+		icon: 'el-icon-copy-document',
+		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-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-edit',
+						name: '互助组更新',
+						isShow: false
+					},
+					{
+						id: 'tb-group-del',
+						name: '互助组删除',
+						isShow: false
+					},
+					{
+						id: 'tb-member-list',
+						name: '查寻组内成员',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'tb-people',
+				icon: 'el-icon-user',
+				name: '边民管理',
+				url: 'sa-view/tb-people/tb-people-list.html',
+				childList: [{
+						id: 'tb-people-add',
+						name: '边民添加',
+						isShow: false
+					},
+					{
+						id: 'tb-people-edit',
+						name: '边民更新',
+						isShow: false
+					},
+					{
+						id: 'tb-people-del',
+						name: '边民删除',
+						isShow: false
+					},
+				]
+			},
 
-		{
-			id: 'tb-enterprise-judge',
-			icon: 'el-icon-s-check',
-			name: '商户审核',
-			url: 'sa-view/tb-enterprise/tb-enterprise-judge.html',
-			childList: [{
+			{
 				id: 'tb-enterprise-judge',
+				icon: 'el-icon-s-check',
 				name: '商户审核',
-				isShow: false
-			}, ]
-		},
-		{
-			id: 'tb-enterprise',
-			icon: 'el-icon-film',
-			name: '商户列表',
-			url: 'sa-view/tb-enterprise/tb-enterprise-list.html',
-			childList: [{
-					id: 'tb-enterprise-add',
-					name: '商家添加',
-					isShow: false
-				},
-				{
-					id: 'tb-enterprise-edit',
-					name: '商家更新',
-					isShow: false
-				},
-				{
-					id: 'tb-enterprise-del',
-					name: '商家删除',
-					isShow: false
-				},
-			]
-		},
-		{
-			id: 'tb-shop',
-			icon: 'el-icon-receiving',
-			name: '商铺管理',
-			url: 'sa-view/tb-shop/tb-shop-list.html',
-			childList: [{
-					id: 'tb-shop-add',
-					name: '商铺添加',
-					isShow: false
-				},
-				{
-					id: 'tb-shop-edit',
-					name: '商铺更新',
-					isShow: false
-				},
-				{
-					id: 'tb-shop-del',
-					name: '商铺删除',
-					isShow: false
-				},
-			]
-		},
-		
-		{
-			id: 'tb-purchaser-judge',
-			icon: 'el-icon-s-check',
-			name: '收购商审核',
-			url: 'sa-view/tb-purchaser/tb-purchaser-judge.html',
-			childList: [{
+				url: 'sa-view/tb-enterprise/tb-enterprise-judge.html',
+				childList: [{
+					id: 'tb-enterprise-judge',
+					name: '商户审核',
+					isShow: false
+				}, ]
+			},
+			{
+				id: 'tb-enterprise',
+				icon: 'el-icon-film',
+				name: '商户列表',
+				url: 'sa-view/tb-enterprise/tb-enterprise-list.html',
+				childList: [{
+						id: 'tb-enterprise-add',
+						name: '商家添加',
+						isShow: false
+					},
+					{
+						id: 'tb-enterprise-edit',
+						name: '商家更新',
+						isShow: false
+					},
+					{
+						id: 'tb-enterprise-del',
+						name: '商家删除',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'tb-shop',
+				icon: 'el-icon-receiving',
+				name: '商铺管理',
+				url: 'sa-view/tb-shop/tb-shop-list.html',
+				childList: [{
+						id: 'tb-shop-add',
+						name: '商铺添加',
+						isShow: false
+					},
+					{
+						id: 'tb-shop-edit',
+						name: '商铺更新',
+						isShow: false
+					},
+					{
+						id: 'tb-shop-del',
+						name: '商铺删除',
+						isShow: false
+					},
+				]
+			},
+
+			{
 				id: 'tb-purchaser-judge',
+				icon: 'el-icon-s-check',
 				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-message',
-			name: '通知消息',
-			icon: 'el-icon-receiving',
-			url: 'sa-view/tb-message/tb-message-list.html',
-			childList: [{
-					id: 'tb-message-add',
-					name: '通知消息添加',
-					isShow: false
-				},
-				{
-					id: 'tb-message-edit',
-					name: '通知消息更新',
-					isShow: false
-				},
-				{
-					id: 'tb-message-del',
-					name: '通知消息删除',
-					isShow: false
-				},
-			]
-		},
-		{
-			id: 'app-user-login-log',
-			name: '移动端登录日志',
-			icon: 'el-icon-receiving',
-			url: 'sa-view/app-user-login-log/app-user-login-log-list.html',
-			childList: [{
-				id: 'app-user-login-log-del',
-				name: '删除',
-				isShow: false
-			}, ]
-		},
-	]
+				url: 'sa-view/tb-purchaser/tb-purchaser-judge.html',
+				childList: [{
+					id: 'tb-purchaser-judge',
+					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: 'app-setting',
-	name: '移动端管理',
-	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-role',
-			icon: 'el-icon-user-solid',
-			name: '角色管理',
-			url: 'sa-view/app-role/app-role-list.html',
-			childList: [{
-					id: 'app-role-add',
-					name: '添加',
-					isShow: false
-				},
-				{
-					id: 'app-role-edit',
-					name: '更新',
-					isShow: false
-				},
-				{
-					id: 'app-role-del',
+
+			{
+				id: 'tb-message',
+				name: '通知消息',
+				icon: 'el-icon-receiving',
+				url: 'sa-view/tb-message/tb-message-list.html',
+				childList: [{
+						id: 'tb-message-add',
+						name: '通知消息添加',
+						isShow: false
+					},
+					{
+						id: 'tb-message-edit',
+						name: '通知消息更新',
+						isShow: false
+					},
+					{
+						id: 'tb-message-del',
+						name: '通知消息删除',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'app-user-login-log',
+				name: '移动端登录日志',
+				icon: 'el-icon-receiving',
+				url: 'sa-view/app-user-login-log/app-user-login-log-list.html',
+				childList: [{
+					id: 'app-user-login-log-del',
 					name: '删除',
 					isShow: false
-				},
-			]
-		},
-	]
-}, {
-	id: 'trade-manager',
-	name: '贸易管理',
-	parent: true,
-	icon: 'el-icon-s-unfold',
-	childList: [
+				}, ]
+			},
+		]
 
-		{
-			id: 'tb-goods-units',
-			name: '计价单位',
-			url: 'sa-view/tb-goods-units/tb-goods-units-list.html',
-			childList: [{
-					id: 'tb-goods-units-add',
-					name: '计价单位添加',
-					isShow: false
-				},
-				{
-					id: 'tb-goods-units-edit',
-					name: '计价单位更新',
-					isShow: false
-				},
-				{
-					id: 'tb-goods-units-del',
-					name: '计价单位删除',
-					isShow: false
-				},
-			]
-		},
-		{
-			id: 'tb-goods-type',
-			name: '商品分类',
-			url: 'sa-view/tb-goods-type/tb-goods-type-list.html',
-			childList: [{
-					id: 'tb-goods-type-add',
-					name: '商品分类添加',
-					isShow: true
-				},
-				{
-					id: 'tb-goods-type-edit',
-					name: '商品分类更新',
-					isShow: true
-				},
-				{
-					id: 'tb-goods-type-del',
-					name: '商品分类删除',
-					isShow: true
-				},
-			]
-		},
-		{
-			id: 'tb-goods',
-			name: '监管商品',
-			url: 'sa-view/tb-goods/tb-goods-list.html',
-			childList: [{
-					id: 'tb-goods-add',
-					name: '商品添加',
-					isShow: false
-				},
-				{
-					id: 'tb-goods-edit',
-					name: '商品更新',
-					isShow: false
-				},
-				{
-					id: 'tb-goods-del',
-					name: '商品删除',
-					isShow: false
-				},
-			]
-		},
-		{
-			id: 'tb-goods-demand',
-			name: '收购需求',
-			url: 'sa-view/tb-goods-demand/tb-goods-demand-list.html',
-			childList: [{
-					id: 'tb-goods-demand-add',
-					name: '二级收购商需求发布表添加',
-					isShow: false
-				},
-				{
-					id: 'tb-goods-demand-edit',
-					name: '二级收购商需求发布表更新',
-					isShow: false
-				},
-				{
-					id: 'tb-goods-demand-del',
-					name: '二级收购商需求发布表删除',
-					isShow: false
-				},
-			]
-		},
-		{
-			id: 'order-list',
-			name: '订单管理',
-			parent: true,
-			icon: 'el-icon-s-grid',
-			childList: [{
-					id: 'tb-order',
-					name: '一级市场订单',
-					url: 'sa-view/tb-order/tb-order-list.html'
-				},
-				{
-					id: 'tb-two-market-orders',
-					name: '二级市场订单',
-					url: 'sa-view/tb-two-market-orders/tb-two-market-orders-list.html'
-				}
-			]
-		},
-		{
-			id: 'tb-order-after-sale-list',
-			name: '售后管理',
-			url: 'sa-view/tb-order-after-sale/tb-order-after-sale-list.html',
-		},
-	]
-}, {
-	id: 'transport-sys',
-	name: '货运管理',
-	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-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-edit',
-					name: '车辆更新',
-					isShow: true
-				},
-				{
-					id: 'tb-vehicle-del',
-					name: '车辆删除',
-					isShow: true
-				},
-			]
-		},
-		{
-			id: 'tb-orders',
-			name: '物流订单表',
-			icon: 'el-icon-folder-opened',
-			parent: true,
-			info: '物流订单表表数据的维护',
-			childList: [{
+	}, {
+		id: 'app-setting',
+		name: '移动端管理',
+		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-role',
+				icon: 'el-icon-user-solid',
+				name: '角色管理',
+				url: 'sa-view/app-role/app-role-list.html',
+				childList: [{
+						id: 'app-role-add',
+						name: '添加',
+						isShow: false
+					},
+					{
+						id: 'app-role-edit',
+						name: '更新',
+						isShow: false
+					},
+					{
+						id: 'app-role-del',
+						name: '删除',
+						isShow: false
+					},
+				]
+			},
+		]
+	}, {
+		id: 'trade-manager',
+		name: '贸易管理',
+		parent: true,
+		icon: 'el-icon-s-unfold',
+		childList: [
+
+			{
+				id: 'tb-goods-units',
+				name: '计价单位',
+				url: 'sa-view/tb-goods-units/tb-goods-units-list.html',
+				childList: [{
+						id: 'tb-goods-units-add',
+						name: '计价单位添加',
+						isShow: false
+					},
+					{
+						id: 'tb-goods-units-edit',
+						name: '计价单位更新',
+						isShow: false
+					},
+					{
+						id: 'tb-goods-units-del',
+						name: '计价单位删除',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'tb-goods-type',
+				name: '商品分类',
+				url: 'sa-view/tb-goods-type/tb-goods-type-list.html',
+				childList: [{
+						id: 'tb-goods-type-add',
+						name: '商品分类添加',
+						isShow: true
+					},
+					{
+						id: 'tb-goods-type-edit',
+						name: '商品分类更新',
+						isShow: true
+					},
+					{
+						id: 'tb-goods-type-del',
+						name: '商品分类删除',
+						isShow: true
+					},
+				]
+			},
+			{
+				id: 'tb-goods',
+				name: '监管商品',
+				url: 'sa-view/tb-goods/tb-goods-list.html',
+				childList: [{
+						id: 'tb-goods-add',
+						name: '商品添加',
+						isShow: false
+					},
+					{
+						id: 'tb-goods-edit',
+						name: '商品更新',
+						isShow: false
+					},
+					{
+						id: 'tb-goods-del',
+						name: '商品删除',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'tb-goods-demand',
+				name: '收购需求',
+				url: 'sa-view/tb-goods-demand/tb-goods-demand-list.html',
+				childList: [{
+						id: 'tb-goods-demand-add',
+						name: '二级收购商需求发布表添加',
+						isShow: false
+					},
+					{
+						id: 'tb-goods-demand-edit',
+						name: '二级收购商需求发布表更新',
+						isShow: false
+					},
+					{
+						id: 'tb-goods-demand-del',
+						name: '二级收购商需求发布表删除',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'order-list',
+				name: '订单管理',
+				parent: true,
+				icon: 'el-icon-s-grid',
+				childList: [{
+						id: 'tb-order',
+						name: '一级市场订单',
+						url: 'sa-view/tb-order/tb-order-list.html'
+					},
+					{
+						id: 'tb-two-market-orders',
+						name: '二级市场订单',
+						url: 'sa-view/tb-two-market-orders/tb-two-market-orders-list.html'
+					}
+				]
+			},
+			{
+				id: 'tb-order-after-sale-list',
+				name: '售后管理',
+				url: 'sa-view/tb-order-after-sale/tb-order-after-sale-list.html',
+			},
+		]
+	}, {
+		id: 'transport-sys',
+		name: '货运管理',
+		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-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-edit',
+						name: '车辆更新',
+						isShow: true
+					},
+					{
+						id: 'tb-vehicle-del',
+						name: '车辆删除',
+						isShow: true
+					},
+				]
+			},
+			{
 				id: 'tb-orders',
-				name: '物流订单表-列表',
-				url: 'sa-view/tb-orders/tb-orders-list.html'
+				name: '物流订单表',
+				icon: 'el-icon-folder-opened',
+				parent: true,
+				info: '物流订单表表数据的维护',
+				childList: [{
+					id: 'tb-orders',
+					name: '物流订单表-列表',
+					url: 'sa-view/tb-orders/tb-orders-list.html'
+
+				}, ]
+			},
+		]
+	}, {
+		id: 'tb-fee-manager',
+		name: '费项管理',
+		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-fee-item-list',
+				name: '费用管理',
+				icon: 'el-icon-folder-opened',
+				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-edit',
+						name: '费项更新',
+						isShow: false
+					},
+					{
+						id: 'tb-fee-item-del',
+						name: '费项删除',
+						isShow: false
+					},
+				]
+			},
+			{
+				id: 'tb-people-profit-list',
+				name: '边民收益设置',
+				icon: 'el-icon-folder-opened',
+				info: '费项管理表数据的维护',
+				url: 'sa-view/tb-people-profit/tb-people-profit-set.html',
+				childList: [{
+					id: 'tb-people-profit',
+					name: '收益设置',
+					isShow: false
+				}, ]
+			},
+			{
+				id: 'tb-fee-item-record-list',
+				name: '收费记录',
+				icon: 'el-icon-folder-opened',
+				url: 'sa-view/tb-fee-item-record/tb-fee-item-record-list.html'
+			},
+			{
+				id: 'tb-people-profit-record-list',
+				name: '边民收益记录',
+				icon: 'el-icon-folder-opened',
+				url: 'sa-view/tb-people-profit-record/tb-people-profit-record-list.html',
+				childList: [
+				]
+			}
+		]
+	}
 
-			}, ]
-		},
-	]
-}, );
+);

+ 54 - 2
sa-frame/menu-list.js

@@ -15,6 +15,58 @@
 // }
 
 // 定义菜单列表 
-var menuList =	[
-	
+var menuList = [{
+			id: 'tb-fee-item-record',
+			name: '收费记录',
+			icon: 'el-icon-folder-opened',
+			parent: true,
+			info: '费项订单表数据的维护',
+			childList: [
+				childList: [{
+						id: 'tb-fee-item-record-add',
+						name: '费项订单添加',
+						isShow: false
+					},
+					{
+						id: 'tb-fee-item-record-edit',
+						name: '费项订单更新',
+						isShow: false
+					},
+					{
+						id: 'tb-fee-item-record-del',
+						name: '费项订单删除',
+						isShow: false
+					},
+				]
+			},
+		]
+	},
+	{
+		id: 'tb-people-profit-record',
+		name: '边民收益记录',
+		icon: 'el-icon-folder-opened',
+		parent: true,
+		info: '边民收益记录表数据的维护',
+		childList: [{
+			id: 'tb-people-profit-record-list',
+			name: '边民收益记录-列表',
+			url: 'sa-view/tb-people-profit-record/tb-people-profit-record-list.html',
+			childList: [{
+					id: 'tb-people-profit-record-add',
+					name: '边民收益记录添加',
+					isShow: false
+				},
+				{
+					id: 'tb-people-profit-record-edit',
+					name: '边民收益记录更新',
+					isShow: false
+				},
+				{
+					id: 'tb-people-profit-record-del',
+					name: '边民收益记录删除',
+					isShow: false
+				},
+			]
+		}, ]
+	},
 ]

+ 236 - 0
sa-view/tb-company/tb-company-add.html

@@ -0,0 +1,236 @@
+<!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>
+		<script src="../../static/kj/upload-util.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 size="mini" v-if="m">
+						<el-row>
+							<el-col span=12>
+								<div class="c-item">
+									<label class="c-label"><span style="color: red;">*</span>互市区:</label>
+									<el-select  v-model="m.tradeAreaName" placeholder="请选择" filterable size="mini">
+										<el-option v-for="(item,index) in tradeAreaList" :key="index" :label="item.name" :value="item"> </el-option>
+									</el-select>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>名称:</label>
+									<el-input size="mini" v-model="m.name"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>法人:</label>
+									<el-input size="mini" v-model="m.legalPerson"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>身份证号:</label>
+									<el-input size="mini" v-model="m.idCard"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>手机号码:</label>
+									<el-input size="mini" v-model="m.contact"></el-input>
+								</div>
+		
+							</el-col>
+							<el-col span=12>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>银行:</label>
+									<el-select v-model="m.bankNo" placeholder="请选择" filterable size="mini">
+										<el-option label="请选择" :value="0" disabled></el-option>
+										<el-option v-for="(item,index) in bankList" :key="index" :label="item.bankName"
+											:value="item.bankCode"> </el-option>
+									</el-select>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>银行账号:</label>
+									<el-input size="mini" v-model="m.bankAccount"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>税号:</label>
+									<el-input size="mini" v-model="m.dutyParagraph"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>地区:</label>
+									<el-cascader size="mini" placeholder="请选择" v-model="m.address_arry"
+										:options="options" :props={value:'id',label:'district'}></el-cascader>
+								</div>
+								<div class="c-item br">
+									<label class="c-label" style="vertical-align: top;"><label
+											style="color: red">*</label>营业执照:</label>
+									<div class="c-item-mline image-box">
+										<div class="image-box-2" v-for="item in m.businessLicense_arr">
+											<img :src="item" @click="sa.showImage(item, '500px', '400px')" />
+											<p>
+												<i class="el-icon-close" style="position: relative; top: 2px;"></i>
+												<el-link @click="sa.arrayDelete(m.businessLicense_arr, item)"
+													style="color: #999;">删除 </el-link>
+											</p>
+										</div>
+										<!-- 上传图集 -->
+										<div class="image-box-2 up_img"
+											@click="sa.uploadImageList(src => m.businessLicense_arr.push(src))">
+											<img src="../../static/img/up-icon.png">
+										</div>
+									</div>
+								</div>
+							</el-col>
+						</el-row>
+						<!-- date-create字段: m.createTime - 创建时间 -->
+						<div class="c-item br s-ok">
+							<label class="c-label"></label>
+							<el-button size="mini" type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
+						</div>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<el-button size="mini" type="primary" @click="ok()">确定</el-button>
+				<el-button size="mini" @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,		// 实体对象 
+					bankList: [],
+					options: [],
+					tradeAreaList:[]
+				},
+				methods: {
+					getTradeArea() {
+						sa.ajax('/level-one-server/TbTradeArea/getList', {
+							pageSize: 100,
+							pageNo: 1
+						}, function(resp) {
+							let list=resp.data;
+							if(list.length>0&&this.id<=0){
+								this.m.tradeAreaId=list[0].id;
+							}
+							this.tradeAreaList = list;
+						}.bind(this));
+					},
+					getAddress() {
+						sa.ajax('/level-two-server/TbDistrict/getTreeData', function(resp) {
+							this.options = resp.data;
+						}.bind(this));
+					},
+					getBankList() {
+						sa.ajax('/level-two-server/TbBank/getAll', function(resp) {
+							this.bankList = resp.data;
+						}.bind(this));
+					},
+					// 创建一个 默认Model 
+					createModel: function() {
+						return {
+							id: '',		//  
+							name: '',		// 名称 
+							legalPerson: '',		// 法人 
+							idCard: '',		// 身份证号 
+							contact: '',		// 手机号码 
+							businessLicense: '',		// 营业执照 
+							businessLicense_arr: [], // 营业执照 - 转数组
+							bankNo: '',		// 银行编号(CMB= 招商银行) 
+							bankName: '',		// 银行名称 
+							bankAccount: '',		// 银行账号 
+							dutyParagraph: '',		// 税号 
+							addressIds: '',		// 地址全路径如1,22,333 
+							detail: '',		// 详细地址 
+							tradeAreaId:''
+						}
+					},
+					// 提交数据 
+					ok: function(){
+						// 表单校验 
+						var m = this.m; // 获取 m对象
+						let bankNo = m.bankNo;
+						sa.checkNull(m.tradeAreaId, '请选择 [互市区]');
+						sa.checkNull(m.name, '请输入 [名称]');
+						sa.checkNull(m.legalPerson, '请输入 [法人]');
+						sa.checkNull(m.idCard, '请输入 [身份证号]');
+						sa.checkNull(m.contact, '请输入 [手机号码]');
+						sa.checkEmptyArray(m.address_arry, '请选择 [地址]');
+						sa.checkEmptyArray(m.businessLicense_arr, '请上传 [营业执照]');
+						sa.checkNull(bankNo, '请选择 [银行]');
+						sa.checkNull(m.bankAccount, '请输入 [银行账号]');
+						let bankList = this.bankList;
+						let bank = bankList.filter(bank => bank.bankCode === bankNo)[0];
+						this.m.bankName = bank.bankName;
+						// 开始增加或修改
+						this.m.addressIds = this.m.address_arry.join(',');
+						// 验证
+						this.m.businessLicense = this.m.businessLicense_arr.join(','); // 图片数组转字符串
+						this.m.tradeAreaName=this.tradeAreaList.filter(obj=>obj.id==m.tradeAreaId).pop().name;
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/level-two-server/TbCompany/add', m, function(res){
+								sa.alert('增加成功', this.clean); 
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/level-two-server/TbCompany/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(){
+					this.getAddress();
+					this.getBankList();
+					this.getTradeArea();
+					// 初始化数据 
+					if(this.id <= 0) {	
+						this.m = this.createModel();
+					} else {	
+						sa.ajax('/level-two-server/TbCompany/getById?id=' + this.id, function(res) {
+							res.data.businessLicense_arr = sa.isNull(res.data.businessLicense) ? [] : res
+								.data.businessLicense.split(','); // 营业执照 字符串转数组
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+							this.m.address_arry = this.m.addressIds.split(',');
+						}.bind(this))
+					}
+					
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 84 - 0
sa-view/tb-company/tb-company-info.html

@@ -0,0 +1,84 @@
+<!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;
+			}
+
+			.c-item .image-box-2 {
+				height: 90px;
+			}
+		</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">
+						<el-row>
+							<el-col span="12">
+								<sa-info name="所在互市区" br>{{m.tradeAreaName}}</sa-info>
+								<sa-info name="名称" br>{{m.name}}</sa-info>
+								<sa-info name="法人" br>{{m.legalPerson}}</sa-info>
+								<sa-info name="身份证号" br>{{m.idCard}}</sa-info>
+								<sa-info name="手机号码" br>{{m.contact}}</sa-info>
+								<sa-info name="银行名称" br>{{m.bankName}}</sa-info>
+								<sa-info name="银行账号" br>{{m.bankAccount}}</sa-info>
+							</el-col>
+							<el-col span="12">
+								<sa-info name="税号" br>{{m.dutyParagraph}}</sa-info>
+								<sa-info name="地址" br>{{m.address}}</sa-info>
+								<sa-info name="创建时间" br>{{m.createTime}}</sa-info>
+								<sa-info name="创建人名称" br>{{m.createName}}</sa-info>
+								<sa-info name="更新时间" br>{{m.updateTime}}</sa-info>
+								<sa-info name="更新人名称" br>{{m.updateName}}</sa-info>
+								<sa-info type="img-list" name="营业执照" :value="m.businessLicense" br></sa-info>
+							</el-col>
+						</el-row>
+					</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-two-server/TbCompany/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if (res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+		</script>
+	</body>
+</html>

+ 169 - 0
sa-view/tb-company/tb-company-list.html

@@ -0,0 +1,169 @@
+<!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.name"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button v-if="sa.isAuth('tb-company-add')" size="mini" type="primary" @click="add()">新增</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="tradeAreaName" ></sa-td>
+					<sa-td name="名称" prop="name" ></sa-td>
+					<sa-td name="法人" prop="legalPerson" ></sa-td>
+					<sa-td name="手机号码" prop="contact" ></sa-td>
+					<sa-td name="营业执照" prop="businessLicense" type="img-list"></sa-td>
+					<sa-td name="地址" prop="address" ></sa-td>
+					<sa-td name="创建时间" prop="createTime" width="180"></sa-td>
+					<sa-td name="更新时间" prop="updateTime" width="180"></sa-td>
+					<el-table-column label="操作" fixed="right"  width="200px">
+						<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('tb-company-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-company-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>
+			</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: { // 查询参数  
+						id: '',		//  
+						name: '',		// 名称 
+						legalPerson: '',		// 法人 
+						idCard: '',		// 身份证号 
+						contact: '',		// 手机号码 
+						bankNo: '',		// 银行编号(CMB= 招商银行) 
+						bankName: '',		// 银行名称 
+						bankAccount: '',		// 银行账号 
+						dutyParagraph: '',		// 税号 
+						addressIds: '',		// 地址全路径如1,22,333 
+						address: '',		// 地址 
+						detail: '',		// 详细地址 
+						createTime: '',		// 创建时间 
+						createBy: '',		// 创建人编号 
+						createName: '',		// 创建人名称 
+						updateTime: '',		// 更新时间 
+						updateBy: '',		// 更新人编号 
+						updateName: '',		// 更新人名称 
+						deleteStatus: '',		// 删除状态(0=禁用,1=启用) 
+						isLock: '',		// 是否锁住 
+						tradeAreaId: '',		// 互市区ID 
+						tradeAreaName: '',		// 互市区名称 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-two-server/TbCompany/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-company-info.html?id=' + data.id, '1050px', '90%');
+					},
+					// 查看 - 根据选中的
+					getBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if(selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.get(selection[0]);
+					},
+					// 修改
+					update: function(data) {
+						sa.showIframe('修改数据', 'tb-company-add.html?id=' + data.id, '1000px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-company-add.html?id=-1', '1000px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-two-server/TbCompany/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-two-server/TbCompany/deleteByIds', {ids: ids.join(',')}, function(res) {
+								sa.arrayDelete(this.dataList, selection);
+								sa.ok('删除成功');
+								sa.f5TableHeight();		// 刷新表格高度 
+							}.bind(this))
+						}.bind(this));
+					},
+					// 改 - 删除状态(0=禁用,1=启用)
+					updateDeleteStatus: function(data) {
+						// 声明变量记录是否成功 
+						var isOk = false;	
+						var oldValue = data.deleteStatus;
+						var ajax = sa.ajax('/level-two-server/TbCompany/updateDeleteStatus', {id: data.id, value: data.deleteStatus}, function(res) {
+							isOk = true;
+							sa.msg('修改成功');
+						}.bind(this));
+						// 如果未能修改成功, 则回滚 
+						$.when(ajax).done(function() {
+							if(isOk == false) {
+								data.status = oldValue; 
+							}
+						})
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 146 - 0
sa-view/tb-fee-item-record/tb-fee-item-record-add.html

@@ -0,0 +1,146 @@
+<!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="text" name="主键" v-model="m.id" br></sa-item>
+						<sa-item type="text" name="订单号" v-model="m.orderNo" br></sa-item>
+						<sa-item type="text" name="费项ID" v-model="m.itemId" br></sa-item>
+						<sa-item type="enum" name="收费类型类型" v-model="m.feeType" :jv="{1: '按交易额收取', 2: '按次收取'}" jtype="3" br></sa-item>
+						<sa-item type="text" name="类型对应的数值" v-model="m.feeNum" br></sa-item>
+						<sa-item type="text" name="收费项目" v-model="m.itemName" br></sa-item>
+						<sa-item type="text" name="收费金额" v-model="m.itemPrice" br></sa-item>
+						<sa-item type="text" name="收费企业" v-model="m.companyName" br></sa-item>
+						<sa-item type="text" name="企业ID" v-model="m.companyId" br></sa-item>
+						<sa-item type="text" name="二级市场订单" v-model="m.levelTwoOrderId" br></sa-item>
+						<sa-item type="text" name="二级订单单号" v-model="m.levelTwoOrderNo" br></sa-item>
+						<sa-item type="text" name="创建时间" v-model="m.createTime" br></sa-item>
+						<sa-item type="text" name="支付/划拨时间" v-model="m.payTime" br></sa-item>
+						<sa-item type="enum" name="支付/划拨状态" v-model="m.payStatus" :jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}" jtype="3" br></sa-item>
+						<sa-item type="text" name="支付备注" v-model="m.payRemark" 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: '',		// 主键 
+							orderNo: '',		// 订单号 
+							itemId: '',		// 费项ID 
+							feeType: '',		// 收费类型类型(1=按交易额收取,2=按次收取) 
+							feeNum: '',		// 类型对应的数值 
+							itemName: '',		// 收费项目 
+							itemPrice: '',		// 收费金额 
+							companyName: '',		// 收费企业 
+							companyId: '',		// 企业ID 
+							levelTwoOrderId: '',		// 二级市场订单 
+							levelTwoOrderNo: '',		// 二级订单单号 
+							createTime: '',		// 创建时间 
+							payTime: '',		// 支付/划拨时间 
+							payStatus: '',		// 支付/划拨状态(0=未划拨,1=划拨成功,2=划拨失败) 
+							payRemark: '',		// 支付备注 
+						}
+					},
+					// 提交数据 
+					ok: function(){
+						// 表单校验 
+						let m = this.m;
+						sa.checkNull(m.id, '请输入 [主键]');
+						sa.checkNull(m.orderNo, '请输入 [订单号]');
+						sa.checkNull(m.itemId, '请输入 [费项ID]');
+						sa.checkNull(m.feeType, '请输入 [收费类型类型]');
+						sa.checkNull(m.feeNum, '请输入 [类型对应的数值]');
+						sa.checkNull(m.itemName, '请输入 [收费项目]');
+						sa.checkNull(m.itemPrice, '请输入 [收费金额]');
+						sa.checkNull(m.companyName, '请输入 [收费企业]');
+						sa.checkNull(m.companyId, '请输入 [企业ID]');
+						sa.checkNull(m.levelTwoOrderId, '请输入 [二级市场订单]');
+						sa.checkNull(m.levelTwoOrderNo, '请输入 [二级订单单号]');
+						sa.checkNull(m.createTime, '请输入 [创建时间]');
+						sa.checkNull(m.payTime, '请输入 [支付/划拨时间]');
+						sa.checkNull(m.payStatus, '请输入 [支付/划拨状态]');
+						sa.checkNull(m.payRemark, '请输入 [支付备注]');
+				
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/TbFeeItemRecord/add', m, function(res){
+								sa.alert('增加成功', this.clean); 
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/TbFeeItemRecord/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('/TbFeeItemRecord/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 74 - 0
sa-view/tb-fee-item-record/tb-fee-item-record-info.html

@@ -0,0 +1,74 @@
+<!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;}
+		</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">
+						<sa-info name="主键" br>{{m.id}}</sa-info>
+						<sa-info name="订单号" br>{{m.orderNo}}</sa-info>
+						<sa-info name="费项ID" br>{{m.itemId}}</sa-info>
+						<sa-info type="enum" name="收费类型类型" :value="m.feeType" :jv="{1: '按交易额收取', 2: '按次收取'}" br></sa-info>
+						<sa-info name="类型对应的数值" br>{{m.feeNum}}</sa-info>
+						<sa-info name="收费项目" br>{{m.itemName}}</sa-info>
+						<sa-info name="收费金额" br>{{m.itemPrice}}</sa-info>
+						<sa-info name="收费企业" br>{{m.companyName}}</sa-info>
+						<sa-info name="企业ID" br>{{m.companyId}}</sa-info>
+						<sa-info name="二级市场订单" br>{{m.levelTwoOrderId}}</sa-info>
+						<sa-info name="二级订单单号" br>{{m.levelTwoOrderNo}}</sa-info>
+						<sa-info name="创建时间" br>{{m.createTime}}</sa-info>
+						<sa-info name="支付/划拨时间" br>{{m.payTime}}</sa-info>
+						<sa-info type="enum" name="支付/划拨状态" :value="m.payStatus" :jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}" br></sa-info>
+						<sa-info name="支付备注" br>{{m.payRemark}}</sa-info>
+					</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('/TbFeeItemRecord/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 153 - 0
sa-view/tb-fee-item-record/tb-fee-item-record-list.html

@@ -0,0 +1,153 @@
+<!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.itemName"></sa-item>
+					<sa-item type="text" name="收费企业" v-model="p.companyName"></sa-item>
+					<sa-item type="text" name="订单号" v-model="p.levelTwoOrderNo"></sa-item>
+					<sa-item type="enum" name="划拨状态" v-model="p.payStatus" 
+						:jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}" jtype="4" def="不限"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="success" @click="getBySelect()">查看</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="orderNo" ></sa-td>
+					<sa-td name="收费类型类型" prop="feeType" type="enum" :jv="{1: '按交易额收取', 2: '按次收取'}"></sa-td>
+					<sa-td name="类型对应的数值" prop="feeNum" ></sa-td>
+					<sa-td name="收费项目" prop="itemName" ></sa-td>
+					<sa-td name="收费金额" prop="itemPrice" ></sa-td>
+					<sa-td name="收费企业" prop="companyName" ></sa-td>
+					<sa-td name="二级订单单号" prop="levelTwoOrderNo" ></sa-td>
+					<sa-td name="创建时间" prop="createTime" ></sa-td>
+					<sa-td name="划拨时间" prop="payTime" ></sa-td>
+					<sa-td name="划拨状态" prop="payStatus" type="enum" :jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}"></sa-td>
+					<sa-td name="支付备注" prop="payRemark" ></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('tb-fee-item-record-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-fee-item-record-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>
+			</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: { // 查询参数  
+						id: '',		// 主键 
+						orderNo: '',		// 订单号 
+						itemId: '',		// 费项ID 
+						feeType: '',		// 收费类型类型(1=按交易额收取,2=按次收取) 
+						feeNum: '',		// 类型对应的数值 
+						itemName: '',		// 收费项目 
+						itemPrice: '',		// 收费金额 
+						companyName: '',		// 收费企业 
+						companyId: '',		// 企业ID 
+						levelTwoOrderId: '',		// 二级市场订单 
+						levelTwoOrderNo: '',		// 二级订单单号 
+						createTime: '',		// 创建时间 
+						payTime: '',		// 支付/划拨时间 
+						payStatus: '',		// 支付/划拨状态(0=未划拨,1=划拨成功,2=划拨失败) 
+						payRemark: '',		// 支付备注 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-two-server/TbFeeItemRecord/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-fee-item-record-info.html?id=' + data.id, '1050px', '90%');
+					},
+					// 查看 - 根据选中的
+					getBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if(selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.get(selection[0]);
+					},
+					// 修改
+					update: function(data) {
+						sa.showIframe('修改数据', 'tb-fee-item-record-add.html?id=' + data.id, '1000px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-fee-item-record-add.html?id=-1', '1000px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-two-server/TbFeeItemRecord/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-two-server/TbFeeItemRecord/deleteByIds', {ids: ids.join(',')}, function(res) {
+								sa.arrayDelete(this.dataList, selection);
+								sa.ok('删除成功');
+								sa.f5TableHeight();		// 刷新表格高度 
+							}.bind(this))
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 156 - 0
sa-view/tb-fee-item/tb-fee-item-add.html

@@ -0,0 +1,156 @@
+<!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="text" name="费项名称" v-model="m.name" br></sa-item>
+						<div class="c-item br">
+							<label class="c-label"><label style="color: red">*</label>收费企业:</label>
+							<el-select v-model="m.companyId" placeholder="请选择" filterable size="mini">
+								<el-option v-for="(item,index) in companyList" :key="index" :label="item.name"
+									:value="item.id"> </el-option>
+							</el-select>
+						</div>
+						<sa-item type="enum" name="类型" v-model="m.feeType" :jv="{1: '按交易额收取', 2: '按次收取'}" jtype="3"
+							br></sa-item>
+						<sa-item type="num" v-if="m.feeType==1" name="百分比(%)" v-model="m.percent" br></sa-item>
+						<sa-item type="num" v-if="m.feeType==2" name="金额(元)" v-model="m.feeMoney" br></sa-item>
+						<sa-item type="enum" name="状态" v-model="m.status" :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, // 实体对象 
+					companyList: []
+				},
+				methods: {
+					getCompanyList: function() {
+						sa.ajax('/level-two-server/TbCompany/getList', {
+							pageNo: 1,
+							pageSize: 100
+						}, function(res) {
+							this.companyList = res.data; // 数据
+						}.bind(this));
+					},
+					// 创建一个 默认Model 
+					createModel: function() {
+						return {
+							id: '', // 主键 
+							companyId: '', // 企业ID 
+							companyName: '', // 收费企业 
+							name: '', // 名称 
+							feeType: '2', // 类型(1=按交易额收取,2=按次收取) 
+							percent: '', // 百分比fee_type=1时生效 
+							feeMoney: '', // 收费金额 fee_type=2时生效 
+							status: '1', // 状态(0=禁用,1=启用) 
+						}
+					},
+					// 提交数据 
+					ok: function() {
+						// 表单校验 
+						let m = this.m;
+						sa.checkNull(m.name, '请输入 [名称]');
+						sa.checkNull(m.companyId, '请选择 [收费企业]');
+						if (m.feeType == 1 && !m.percent) {
+							sa.error('请输入百分比')
+							return;
+						}
+						if (m.feeType == 2 && !m.feeMoney) {
+							sa.error('请输入金额')
+							return;
+						}
+						if (m.feeType == 1) {
+							m.feeMoney=0;
+						}
+						if (m.feeType == 2) {
+							m.percent=0;
+						}
+						m.companyName=this.companyList.filter(obj=>obj.id==m.companyId).pop().name;
+						// 开始增加或修改
+						this.m.createTime = undefined; // 不提交属性:创建时间
+						this.m.updateTime = undefined; // 不提交属性:更新时间
+						if (this.id <= 0) { // 添加
+							sa.ajax('/level-two-server/TbFeeItem/add', m, function(res) {
+								sa.alert('增加成功', this.clean);
+							}.bind(this));
+						} else { // 修改
+							sa.ajax('/level-two-server/TbFeeItem/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() {
+					this.getCompanyList();
+					// 初始化数据 
+					if (this.id <= 0) {
+						this.m = this.createModel();
+					} else {
+						sa.ajax('/level-two-server/TbFeeItem/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if (res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+		</script>
+	</body>
+</html>

+ 75 - 0
sa-view/tb-fee-item/tb-fee-item-info.html

@@ -0,0 +1,75 @@
+<!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;
+			}
+		</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">
+						<el-row>
+							<el-col span="12">
+								<sa-info name="收费企业" br>{{m.companyName}}</sa-info>
+								<sa-info name="名称" br>{{m.name}}</sa-info>
+								<sa-info type="enum" name="状态" :value="m.status" :jv="{0: '禁用', 1: '启用'}" br></sa-info>
+								<sa-info type="datetime" name="创建时间" :value="m.createTime" br></sa-info>
+							</el-col>
+							<el-col span="12">
+								<sa-info type="enum" name="类型" :value="m.feeType" :jv="{1: '按交易额百分比收取', 2: '按次收取'}"
+									br></sa-info>
+								<sa-info name="百分比(%)" br v-if="m.feeType==1">{{m.percent}}%</sa-info>
+								<sa-info name="收费金额(元)" br v-if="m.feeType==2">{{m.feeMoney}}</sa-info>
+								<sa-info type="datetime" name="更新时间" :value="m.updateTime" br></sa-info>
+							</el-col>
+						</el-row>
+					</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-two-server/TbFeeItem/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if (res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+		</script>
+	</body>
+</html>

+ 138 - 0
sa-view/tb-fee-item/tb-fee-item-list.html

@@ -0,0 +1,138 @@
+<!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.name"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button v-if="sa.isAuth('tb-fee-item-add')" size="mini" type="primary" @click="add()">新增</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="companyName" ></sa-td>
+					<sa-td name="名称" prop="name" ></sa-td>
+					<sa-td name="类型" prop="feeType" type="enum" :jv="{1: '按交易额收取', 2: '按次收取'}"></sa-td>
+					<sa-td name="收费%(按交易额)" prop="percent" ></sa-td>
+					<sa-td name="收费金额(按次收)" prop="feeMoney" ></sa-td>
+					<sa-td name="状态" prop="status"  type="switch" :jv="{0: '禁用[red]', 1: '启用[green]'}" @change="s => updateStatus(s.row)"></sa-td>
+					<sa-td name="创建时间" prop="createTime" type="datetime" width="160"></sa-td>
+					<sa-td name="更新时间" prop="updateTime" type="datetime" 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 v-if="sa.isAuth('tb-fee-item-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-fee-item-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>
+			</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: { // 查询参数  
+						id: '',		// 主键 
+						companyName: '',		// 收费企业 
+						name: '',		// 名称 
+						feeType: '',		// 类型(1=按交易额收取,2=按次收取) 
+						percent: '',		// 百分比fee_type=1时生效 
+						feeMoney: '',		// 收费金额 fee_type=2时生效 
+						status: '',		// 状态(0=禁用,1=启用) 
+						updateById: '',		// 更新人 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-two-server/TbFeeItem/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-fee-item-info.html?id=' + data.id, '600px', '500px');
+					},
+					// 查看 - 根据选中的
+					getBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if(selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.get(selection[0]);
+					},
+					// 修改
+					update: function(data) {
+						sa.showIframe('修改数据', 'tb-fee-item-add.html?id=' + data.id, '600px', '500px');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-fee-item-add.html?id=-1', '600px', '500px');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-two-server/TbFeeItem/delete?id=' + data.id, function(res) {
+								sa.arrayDelete(this.dataList, data);
+								sa.ok('删除成功');
+								sa.f5TableHeight();		// 刷新表格高度 
+							}.bind(this))
+						}.bind(this));
+					},
+					// 改 - 状态(0=禁用,1=启用)
+					updateStatus: function(data) {
+						// 声明变量记录是否成功
+						var isOk = false;
+						var oldValue = data.status;
+						var ajax = sa.ajax('/level-two-server/TbFeeItem/updateStatus', {id: data.id, value: data.status}, function(res) {
+							isOk = true;
+							sa.msg('修改成功');
+						}.bind(this));
+						// 如果未能修改成功, 则回滚
+						$.when(ajax).done(function() {
+							if(isOk == false) {
+								data.status = oldValue;
+							}
+						})
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 137 - 0
sa-view/tb-people-profit-record/tb-people-profit-record-add.html

@@ -0,0 +1,137 @@
+<!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="text" 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.peopleName" br></sa-item>
+						<sa-item type="text" name="二级市场订单ID" v-model="m.levelTwoOrderId" br></sa-item>
+						<sa-item type="text" name="二级市场订单号" v-model="m.levelTwoOrderNo" br></sa-item>
+						<sa-item type="text" name="收益金额" v-model="m.price" br></sa-item>
+						<sa-item type="text" name="收益类型" v-model="m.profitType" br></sa-item>
+						<sa-item type="text" name="收益数值" v-model="m.profitNum" br></sa-item>
+						<sa-item type="text" name="创建时间" v-model="m.createTime" br></sa-item>
+						<sa-item type="text" name="支付/划拨时间" v-model="m.payTime" br></sa-item>
+						<sa-item type="enum" name="支付/划拨状态" v-model="m.payStatus" :jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}" jtype="3" br></sa-item>
+						<sa-item type="text" name="支付备注" v-model="m.payRemark" 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 
+							peopleName: '',		// 边民姓名 
+							levelTwoOrderId: '',		// 二级市场订单ID 
+							levelTwoOrderNo: '',		// 二级市场订单号 
+							price: '',		// 收益金额 
+							profitType: '',		// 收益类型(0=均分,1=按笔数算,2=交易比例) 
+							profitNum: '',		// 收益数值 
+							createTime: '',		// 创建时间 
+							payTime: '',		// 支付/划拨时间 
+							payStatus: '',		// 支付/划拨状态(0=未划拨,1=划拨成功,2=划拨失败) 
+							payRemark: '',		// 支付备注 
+						}
+					},
+					// 提交数据 
+					ok: function(){
+						// 表单校验 
+						let m = this.m;
+						sa.checkNull(m.id, '请输入 [主键]');
+						sa.checkNull(m.peopleId, '请输入 [边民ID]');
+						sa.checkNull(m.peopleName, '请输入 [边民姓名]');
+						sa.checkNull(m.levelTwoOrderId, '请输入 [二级市场订单ID]');
+						sa.checkNull(m.levelTwoOrderNo, '请输入 [二级市场订单号]');
+						sa.checkNull(m.price, '请输入 [收益金额]');
+						sa.checkNull(m.profitType, '请输入 [收益类型]');
+						sa.checkNull(m.profitNum, '请输入 [收益数值]');
+						sa.checkNull(m.createTime, '请输入 [创建时间]');
+						sa.checkNull(m.payTime, '请输入 [支付/划拨时间]');
+						sa.checkNull(m.payStatus, '请输入 [支付/划拨状态]');
+						sa.checkNull(m.payRemark, '请输入 [支付备注]');
+				
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/TbPeopleProfitRecord/add', m, function(res){
+								sa.alert('增加成功', this.clean); 
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/TbPeopleProfitRecord/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('/TbPeopleProfitRecord/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 71 - 0
sa-view/tb-people-profit-record/tb-people-profit-record-info.html

@@ -0,0 +1,71 @@
+<!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;}
+		</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">
+						<sa-info name="主键" br>{{m.id}}</sa-info>
+						<sa-info name="边民ID" br>{{m.peopleId}}</sa-info>
+						<sa-info name="边民姓名" br>{{m.peopleName}}</sa-info>
+						<sa-info name="二级市场订单ID" br>{{m.levelTwoOrderId}}</sa-info>
+						<sa-info name="二级市场订单号" br>{{m.levelTwoOrderNo}}</sa-info>
+						<sa-info name="收益金额" br>{{m.price}}</sa-info>
+						<sa-info name="收益类型" br>{{m.profitType}}</sa-info>
+						<sa-info name="收益数值" br>{{m.profitNum}}</sa-info>
+						<sa-info name="创建时间" br>{{m.createTime}}</sa-info>
+						<sa-info name="支付/划拨时间" br>{{m.payTime}}</sa-info>
+						<sa-info type="enum" name="支付/划拨状态" :value="m.payStatus" :jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}" br></sa-info>
+						<sa-info name="支付备注" br>{{m.payRemark}}</sa-info>
+					</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('/TbPeopleProfitRecord/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+			
+		</script>
+	</body>
+</html>

+ 147 - 0
sa-view/tb-people-profit-record/tb-people-profit-record-list.html

@@ -0,0 +1,147 @@
+<!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"></sa-item>
+					<sa-item type="text" name="订单号" v-model="p.levelTwoOrderNo"></sa-item>
+					<sa-item type="enum" name="划拨状态" v-model="p.payStatus" 
+						:jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}" jtype="4" def="不限"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="success" @click="getBySelect()">查看</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="levelTwoOrderNo" ></sa-td>
+					<sa-td name="收益金额" prop="price" ></sa-td>
+					<sa-td name="收益类型" prop="profitType" ></sa-td>
+					<sa-td name="收益数值" prop="profitNum" ></sa-td>
+					<sa-td name="创建时间" prop="createTime" ></sa-td>
+					<sa-td name="划拨时间" prop="payTime" ></sa-td>
+					<sa-td name="划拨状态" prop="payStatus" type="enum" :jv="{0: '未划拨', 1: '划拨成功', 2: '划拨失败'}"></sa-td>
+					<sa-td name="支付备注" prop="payRemark" ></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('tb-people-profit-record-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-people-profit-record-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>
+			</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: { // 查询参数  
+						id: '',		// 主键 
+						peopleId: '',		// 边民ID 
+						peopleName: '',		// 边民姓名 
+						levelTwoOrderId: '',		// 二级市场订单ID 
+						levelTwoOrderNo: '',		// 二级市场订单号 
+						price: '',		// 收益金额 
+						profitType: '',		// 收益类型(0=均分,1=按笔数算,2=交易比例) 
+						profitNum: '',		// 收益数值 
+						createTime: '',		// 创建时间 
+						payTime: '',		// 支付/划拨时间 
+						payStatus: '',		// 支付/划拨状态(0=未划拨,1=划拨成功,2=划拨失败) 
+						payRemark: '',		// 支付备注 
+						pageNo: 1,		// 当前页 
+						pageSize: 10,	// 页大小 
+						sortType: 0		// 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-two-server/TbPeopleProfitRecord/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-people-profit-record-info.html?id=' + data.id, '1050px', '90%');
+					},
+					// 查看 - 根据选中的
+					getBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if(selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.get(selection[0]);
+					},
+					// 修改
+					update: function(data) {
+						sa.showIframe('修改数据', 'tb-people-profit-record-add.html?id=' + data.id, '1000px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-people-profit-record-add.html?id=-1', '1000px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-two-server/TbPeopleProfitRecord/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-two-server/TbPeopleProfitRecord/deleteByIds', {ids: ids.join(',')}, function(res) {
+								sa.arrayDelete(this.dataList, selection);
+								sa.ok('删除成功');
+								sa.f5TableHeight();		// 刷新表格高度 
+							}.bind(this))
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 186 - 0
sa-view/tb-people-profit/tb-people-profit-list.html

@@ -0,0 +1,186 @@
+<!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="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="https://unpkg.com/vue@2.6.10/dist/vue.min.js"></script>
+		<script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
+		<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.js"></script>
+		<script src="../../static/js/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>
+					<div class="c-item">
+						<label class="c-label">主键:</label>
+						<el-input size="mini" v-model="p.id" type="number"></el-input>
+					</div>
+					<div class="c-item">
+						<label class="c-label">类型:</label>
+						<el-input size="mini" v-model="p.type"></el-input>
+					</div>
+					<div class="c-item">
+						<label class="c-label">类型名称:</label>
+						<el-input size="mini" v-model="p.typeName"></el-input>
+					</div>
+					<div class="c-item">
+						<label class="c-label">状态:</label>
+						<el-radio-group v-model="p.status" size="mini" class="s-radio-text" >
+							<el-radio label="">不限</el-radio>
+							<el-radio :label="0">启用</el-radio>
+							<el-radio :label="1">禁用</el-radio>
+						</el-radio-group>
+					</div>
+					<div class="c-item">
+						<label class="c-label">数值:</label>
+						<el-input size="mini" v-model="p.num" type="number"></el-input>
+					</div>
+					<div class="c-item" style="min-width: 0px;">
+						<el-button size="mini" type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					</div>
+					<br />
+					<div class="c-item s-radio-text">
+						<label class="c-label">综合排序:</label>
+						<el-radio-group v-model="p.sortType">
+							<el-radio :label="0">默认</el-radio>
+							<el-radio :label="1">主键</el-radio>
+							<el-radio :label="2">类型</el-radio>
+							<el-radio :label="3">类型名称</el-radio>
+							<el-radio :label="4">状态</el-radio>
+							<el-radio :label="5">数值</el-radio>
+						</el-radio-group>
+					</div>
+				</el-form>
+				<!-- ------------- 快捷按钮 ------------- -->
+				<div class="fast-btn">
+					<el-button size="mini" type="primary" icon="el-icon-plus" @click="add()">新增</el-button>
+					<el-button size="mini" type="success" icon="el-icon-view" @click="getBySelect()">查看</el-button>
+					<el-button size="mini" type="danger" icon="el-icon-delete" @click="deleteByIds()">删除</el-button>
+					<el-button size="mini" type="warning" icon="el-icon-download" @click="sa.exportExcel()">导出</el-button>
+					<el-button size="mini" type="info"  icon="el-icon-refresh"  @click="sa.f5()">重置</el-button>
+				</div>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList" size="small">
+					<el-table-column align="center"  type="selection" width="45px"></el-table-column>
+					<el-table-column align="center" label="主键" prop="id" class-name="tc-num"></el-table-column>
+					<el-table-column align="center" label="类型" prop="type" ></el-table-column>
+					<el-table-column align="center" label="类型名称" prop="typeName" ></el-table-column>
+					<el-table-column align="center" label="状态">
+						<template slot-scope="s">
+							<b v-if="s.row.status == 0">启用</b>
+							<b v-if="s.row.status == 1">禁用</b>
+						</template>
+					</el-table-column>
+					<el-table-column align="center" label="数值" prop="num" class-name="tc-num"></el-table-column>
+					<el-table-column align="center" 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" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- ------------- 分页 ------------- -->
+				<div class="page-box">
+					<el-pagination background
+						layout="total, prev, pager, next, sizes, jumper"
+						:current-page.sync="p.pageNo"
+						:page-size.sync="p.pageSize"
+						:total="dataCount"
+						:page-sizes="[1, 10, 20, 30, 40, 50, 100, 1000]"
+						@current-change="f5()"
+						@size-change="f5()">
+					</el-pagination>
+				</div>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				el: '.vue-box',
+				data: {
+					p: { // 查询参数
+						id: '',		// 主键
+						type: '',		// 类型(0=均分,1=按笔数算,2=交易比例)
+						typeName: '',		// 类型名称
+						status: '',		// 状态(0=启用,1=禁用)
+						num: '',		// 数值
+						pageNo: 1,		// 当前页
+						pageSize: 10,	// 页大小
+						sortType: 0		// 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/levelone-server/TbPeopleProfit/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-people-profit-info.html?id=' + data.id, '950px', '90%');
+					},
+					// 查看 - 根据选中的
+					getBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if(selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.get(selection[0]);
+					},
+					// 修改
+					update: function(data) {
+						sa.showIframe('修改数据', 'tb-people-profit-add.html?id=' + data.id, '900px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-people-profit-add.html?id=-1', '900px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/levelone-server/TbPeopleProfit/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('/levelone-server/TbPeopleProfit/deleteByIds', {ids: ids.join(',')}, function(res) {
+								sa.arrayDelete(this.dataList, selection);
+								sa.ok('删除成功');
+								sa.f5TableHeight();		// 刷新表格高度
+							}.bind(this))
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 155 - 0
sa-view/tb-people-profit/tb-people-profit-set.html

@@ -0,0 +1,155 @@
+<!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: null}" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+					<div class="c-title">边民收益设置</div>
+					<el-form size="mini" v-if="m">
+						<div class="c-item br">
+							<label class="c-label"></label>
+							<el-radio-group v-model="m.type" size="mini">
+								<div style="height: 40px"></div>
+								<el-radio :label=1>每笔交易收益(元)</el-radio>
+								<div v-if="m.type == 1" style="float: right">
+									<el-input size="mini" type='number' v-model="n.num1"></el-input>
+								</div>
+								<br>
+								<div style="height: 40px"></div>
+								<el-radio :label=2>交易额比例计算收益(%)</el-radio>
+								<div v-if="m.type == 2" style="float: right">
+									<el-input size="mini" type='number' v-model="n.num2"></el-input>
+								</div>
+
+							</el-radio-group>
+						</div>
+
+						<div class="c-item br s-ok">
+							<label class="c-label"></label>
+							<el-button size="mini" type="primary" icon="" @click="save()">保存设置</el-button>
+						</div>
+					</el-form>
+				</div>
+			</div>
+
+		</div>
+		<script>
+			var app = new Vue({
+				el: '.vue-box',
+
+				data: {
+					m: {
+						id: '', // 主键
+						type: 0, // 类型(0=均分,1=按笔数算,2=交易比例)
+						typeName: '', // 类型名称
+						status: '', // 状态(0=启用,1=禁用)
+						num: '', // 数值
+					}, // 实体对象
+					n: {
+						num1: '',
+						num2: '',
+					}
+				},
+				methods: {
+					f5: function() {
+						sa.ajax('/level-two-server/TbPeopleProfit/getOne', function(res) {
+							if (res.data) {
+								this.m = res.data; // 数据
+								if (this.m.type == 1) {
+									this.n.num1 = this.m.num;
+								}
+								if (this.m.type == 2) {
+									this.n.num2 = this.m.num * 100;
+								}
+							}
+
+						}.bind(this));
+					},
+					// 创建一个 默认Model
+					createModel: function() {
+						return {
+							id: '', // 主键
+							type: '', // 类型(0=均分,1=按笔数算,2=交易比例)
+							typeName: '', // 类型名称
+							status: '', // 状态(0=启用,1=禁用)
+							num: '', // 数值
+						}
+					},
+					save() {
+						if (this.m.type == 0) {
+							this.m.typeName = '均分';
+							this.m.status = 0;
+							this.m.num = null;
+						}
+						if (this.m.type == 1) {
+							this.m.typeName = '按笔数算';
+							this.m.status = 0;
+							this.m.num = this.n.num1;
+						}
+						if (this.m.type == 2) {
+							this.m.typeName = '交易比例';
+							this.m.status = 0;
+							this.m.num = this.n.num2 / 100;
+						}
+						if (this.m.id <= 0) { // 添加
+							sa.ajax('/level-two-server/TbPeopleProfit/add', this.m, function(res) {
+								sa.alert('保存成功', this.f5);
+							}.bind(this));
+						} else { // 修改
+							sa.ajax('/level-two-server/TbPeopleProfit/update', this.m, function(res) {
+								sa.alert('保存成功', this.f5);
+							}.bind(this));
+						}
+					},
+					// 表单验证
+					submitCheck: function() {
+						try {
+							var m = this.m; // 获取 m对象
+
+							// sa.checkNull(m.id, '请输入 [主键]');
+							sa.checkNull(m.type, '请输入 [类型]');
+							sa.checkNull(m.typeName, '请输入 [类型名称]');
+							sa.checkNull(m.status, '请输入 [状态]');
+							// sa.checkNull(m.num, '请输入 [数值]');
+							return 'ok'; // 全部通过验证,返回ok 表示正确
+						} catch (e) {
+							sa.error(e);
+						}
+					},
+
+				},
+				mounted: function() {
+					// 初始化数据
+					this.f5();
+
+				}
+			})
+		</script>
+	</body>
+</html>