Browse Source

增加互市区绑定

qzyReal 1 year ago
parent
commit
000cf15cd4

+ 1 - 1
login.html

@@ -187,7 +187,7 @@
 			var pKey = '';
 
 			function getCaptcha() {
-				sa.ajax('/sp-admin/AccAdmin/captcha', {}, function(res) {
+				sa.ajaxNoLoading('/sp-admin/AccAdmin/captcha', {}, function(res) {
 					let data = res.data;
 					$('#captcha').attr('src', data.image);
 					codeKey = data.key;

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

@@ -194,7 +194,7 @@
 			layout="total, prev, pager, next, sizes, jumper" 
 			:current-page.sync="curr" 
 			:page-size.sync="size" 
-			:total="total" 
+			:total="parseInt(total)" 
 			:page-sizes="sizes || [1, 10, 20, 30, 40, 50, 100]" 
 			@current-change="changePage()" 
 			@size-change="changePage()">

+ 67 - 60
sa-view/tb-group/tb-group-add.html

@@ -3,9 +3,10 @@
 	<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" />
+		<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/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>
@@ -13,11 +14,16 @@
 		<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;}
+			.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>
@@ -25,20 +31,26 @@
 			<!-- ------- 内容部分 ------- -->
 			<div class="s-body">
 				<div class="c-panel">
-                    <div class="c-title" v-if="id == 0">数据添加</div>
+					<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.addressIds" br></sa-item>
-						<sa-item type="text" name="" v-model="m.address" br></sa-item>
-						<sa-item type="text" name="" v-model="m.detailAddress" br></sa-item> -->
 						<sa-item type="text" name="名称" v-model="m.name" br></sa-item>
-						<sa-item type="text" name="组长ID" v-model="m.leaderId" br></sa-item>
-						<sa-item type="text" name="组长名" v-model="m.leaderName" br></sa-item>
-						<sa-item type="text" name="组长电话" v-model="m.leaderPhone" br></sa-item>
-						<sa-item type="text" name="" v-model="m.code" br></sa-item>
-						<sa-item type="text" name="当天该组剩余额度" v-model="m.leftPrice" br></sa-item>
-						<!-- <sa-item type="enum" name="删除状态" v-model="m.deleteStatus" :jv="{0: '禁用', 1: '启用'}" jtype="3" br></sa-item> -->
+						<sa-item type="text" name="编号" v-model="m.code" br></sa-item>
+						<div class="c-item">
+							<label class="c-label"><span style="color: red;">*</span>互市区:</label>
+							<el-select @change="getPeopleByTradeAreaId" v-model="m.tradeAreaId" placeholder="请选择" filterable size="mini">
+								<el-option v-for="(item,index) in tradeAreaList" :key="index" :label="item.name"
+									:value="item.id"> </el-option>
+							</el-select>
+						</div>
+						<div class="c-item">
+							<label class="c-label">组长:</label>
+							<el-select v-model="m.leaderId" placeholder="请选择" filterable size="mini"
+								:disabled="!m.tradeAreaId">
+								<el-option v-for="(item,index) in personList" :key="index" :label="item.name"
+									:value="item.id"> </el-option>
+							</el-select>
+						</div>
 						<sa-item name="" class="s-ok" br>
 							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
 						</sa-item>
@@ -51,91 +63,86 @@
 				<el-button @click="sa.closeCurrIframe()">取消</el-button>
 			</div>
 		</div>
-        <script>
-
+		<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,		// 实体对象
+					tradeAreaList: [],
+					personList: [],
+					id: sa.p('id', 0), // 获取超链接中的id参数(0=添加,非0=修改)
+					m: null, // 实体对象
 				},
 				methods: {
+					getTradeArea() {
+						sa.ajax('/level-one-server/TbTradeArea/getList', {
+							pageSize: 100,
+							pageNo: 1
+						}, function(resp) {
+							this.tradeAreaList = resp.data;
+						}.bind(this));
+					},
+					getPeopleByTradeAreaId(value){
+						sa.ajax('/level-one-server/TbPeople/getPeopleForGroup', {tradeAreaId:value}, function(resp) {
+							this.personList = resp.data;
+						}.bind(this));
+					},
 					// 创建一个 默认Model
 					createModel: function() {
 						return {
-							// addressIds: '',		//
-							// address: '',		//
-							// detailAddress: '',		//
-							name: '',		// 名称
-							leaderId: '',		// 组长ID
-							leaderName: '',		// 组长名
-							leaderPhone: '',		// 组长电话
-							code: '',		//
-							leftPrice: '',		// 当天该组剩余额度
-							// deleteStatus: '',		// 删除状态(0=禁用,1=启用)
+							name: '', // 名称
+							leaderId: '', // 组长ID
+							leaderName: '', // 组长名
+							leaderPhone: '', // 组长电话
+							tradeAreaId:'',
+							code: '', //
 						}
 					},
 					// 提交数据
-					ok: function(){
+					ok: function() {
 						// 表单校验
 						let m = this.m;
-						sa.checkNull(m.id, '请输入 []');
-						sa.checkNull(m.addressIds, '请输入 []');
-						sa.checkNull(m.address, '请输入 []');
-						sa.checkNull(m.detailAddress, '请输入 []');
 						sa.checkNull(m.name, '请输入 [名称]');
-						sa.checkNull(m.leaderId, '请输入 [组长ID]');
-						sa.checkNull(m.leaderName, '请输入 [组长名]');
-						sa.checkNull(m.leaderPhone, '请输入 [组长电话]');
-						sa.checkNull(m.code, '请输入 []');
-						sa.checkNull(m.leftPrice, '请输入 [当天该组剩余额度]');
-						sa.checkNull(m.createTime, '请输入 [创建时间]');
-						sa.checkNull(m.createBy, '请输入 [创建人编号]');
-						sa.checkNull(m.createName, '请输入 [创建人名称]');
-						sa.checkNull(m.updateTime, '请输入 [更新时间]');
-						sa.checkNull(m.updateBy, '请输入 [更新人编号]');
-						sa.checkNull(m.updateName, '请输入 [更新人名称]');
-						sa.checkNull(m.deleteStatus, '请输入 [删除状态]');
-
+						sa.checkNull(m.code, '请输入 [编号]');
+						sa.checkNull(m.tradeAreaId, '请选择 [互市区]');
 						// 开始增加或修改
-						if(this.id <= 0) {	// 添加
-							sa.ajax('/level-one-server/TbGroup/add', m, function(res){
+						if (this.id <= 0) { // 添加
+							sa.ajax('/level-one-server/TbGroup/add', m, function(res) {
 								sa.alert('增加成功', this.clean);
 							}.bind(this));
-						} else {	// 修改
-							sa.ajax('/level-one-server/TbGroup/update', m, function(res){
+						} else { // 修改
+							sa.ajax('/level-one-server/TbGroup/update', m, function(res) {
 								sa.alert('修改成功', this.clean);
 							}.bind(this));
 						}
 					},
 					// 添加/修改 完成后的动作
 					clean: function() {
-						if(this.id == 0) {
+						if (this.id == 0) {
 							this.m = this.createModel();
 						} else {
-							parent.app.f5();		// 刷新父页面列表
-							sa.closeCurrIframe();	// 关闭本页
+							parent.app.f5(); // 刷新父页面列表
+							sa.closeCurrIframe(); // 关闭本页
 						}
 					}
 				},
-				mounted: function(){
+				mounted: function() {
+					this.getTradeArea();
 					// 初始化数据
-					if(this.id <= 0) {
+					if (this.id <= 0) {
 						this.m = this.createModel();
 					} else {
 						sa.ajax('/level-one-server/TbGroup/getById?id=' + this.id, function(res) {
 							this.m = res.data;
-							if(res.data == null) {
+							if (res.data == null) {
 								sa.alert('未能查找到 id=' + this.id + " 详细数据");
 							}
 						}.bind(this))
 					}
 				}
 			})
-
 		</script>
 	</body>
-</html>
+</html>

+ 67 - 33
sa-view/tb-group/tb-group-info.html

@@ -3,20 +3,20 @@
 	<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" />
+		<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="../../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="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>
-		<script src="../../static/kj/upload-util.js"></script>
-
 		<style type="text/css">
-			.c-panel .c-label{width: 8em;}
+			.c-panel .c-label {
+				width: 8em;
+			}
 		</style>
 	</head>
 	<body>
@@ -24,48 +24,82 @@
 			<!-- ------- 内容部分 ------- -->
 			<div class="s-body">
 				<div class="c-panel">
-					<el-form v-if="m">
-						<!-- <sa-info name="" br>{{m.addressIds}}</sa-info>
-						<sa-info name="" br>{{m.address}}</sa-info>
-						<sa-info name="" br>{{m.detailAddress}}</sa-info> -->
-						<sa-info name="名称" br>{{m.name}}</sa-info>
-						<sa-info name="组长ID" br>{{m.leaderId}}</sa-info>
-						<sa-info name="组长名" br>{{m.leaderName}}</sa-info>
-						<sa-info name="组长电话" br>{{m.leaderPhone}}</sa-info>
-						<sa-info name="" br>{{m.code}}</sa-info>
-						<sa-info name="当天该组剩余额度" br>{{m.leftPrice}}</sa-info>
-						<!-- <sa-info type="enum" name="删除状态" :value="m.deleteStatus" :jv="{0: '禁用', 1: '启用'}" br></sa-info> -->
+					<el-form size="mini" v-if="m">
+						<el-row>
+							<el-col span=12>
+								<div class="c-item br">
+									<label class="c-label">名称:</label>
+									<span>{{m.name}}</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">编号:</label>
+									<span>{{m.code}}</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">地区:</label>
+									<span>{{m.address}}</span>
+								</div>
+
+								<div class="c-item br">
+									<label class="c-label">状态:</label>
+									<b v-if="m.status == 0">禁用</b>
+									<b v-if="m.status == 1">启用</b>
+								</div>
+							</el-col>
+							<el-col span=12>
+								<div class="c-item br">
+									<label class="c-label">组长:</label>
+									<span v-if="m.leaderName">{{m.leaderName}}</span>
+									<span v-else style="color: #066CF3;cursor: pointer;"
+										@click="addLeaderFn(m.id)">添加</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">组长电话:</label>
+									<span>{{m.leaderPhone}}</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">限购额度:</label>
+									<span>{{m.leftPrice}}元</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">创建时间:</label>
+									<span class="tc-date">{{sa.forDate(m.createTime, 2)}}</span>
+								</div>
+							</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>
+				<el-button size="mini" type="success" @click="sa.closeCurrIframe()">确定</el-button>
+				<el-button size="mini" @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
+					id: sa.p('id', 0), // 获取数据ID
 					m: null
 				},
 				methods: {
+					f5() {
+						sa.ajax('/levelone-server/TbGroup/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if (res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					},
+					addLeaderFn(groupId) {
+						sa.showIframe('添加组长', 'tb-group-leader.html?groupId=' + groupId, '950px', '90%');
+					},
 				},
 				mounted: function() {
-					sa.ajax('/level-one-server/TbGroup/getById?id=' + this.id, function(res) {
-						this.m = res.data;
-						if(res.data == null) {
-							sa.alert('未能查找到 id=' + this.id + " 详细数据");
-						}
-					}.bind(this))
+					this.f5();
 				}
 			})
-
 		</script>
 	</body>
 </html>

+ 191 - 0
sa-view/tb-group/tb-group-leader.html

@@ -0,0 +1,191 @@
+<!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="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>
+		<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">
+					<el-form size="mini" v-if="m">
+						<el-row>
+							<el-col span=12>
+								<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.idCard"></el-input>
+								</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.idCardImg_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.idCardImg_arr, item)"
+													style="color: #999;">
+													删除 </el-link>
+											</p>
+										</div>
+										<!-- 上传图集 -->
+										<div class="image-box-2 up_img"
+											@click="sa.uploadImageList(src => m.idCardImg_arr.push(src))">
+											<img src="../../static/img/up-icon.png">
+										</div>
+									</div>
+								</div>
+							</el-col>
+							<el-col span=12>
+
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>手机号码:</label>
+									<el-input size="mini" v-model="m.phone"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>银行:</label>
+									<el-select v-model="m.bankCode" 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.bankNo"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">联系地址:</label>
+									<el-input size="mini" v-model="m.address"></el-input>
+								</div>
+							</el-col>
+						</el-row>
+						<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({
+				el: '.vue-box',
+				data: {
+					id: sa.p('leaderId', 0), // 获取超链接中的id参数(0=添加,非0=修改)
+					m: {
+						id: '', // 主键
+						name: '', // 姓名
+						code: '', // 边民号
+						sex: '', // 性别(1=男,2=女)
+						age: '', // 年龄
+						idCard: '', // 身份证
+						idCardImg: '', // 身份证复印件
+						idCardImg_arr: [], // 身份证复印件 - 转数组
+						phone: '', // 手机号码
+						bankNo: '', // 银行编号
+						bankCode: '', // 银行卡号
+						groupId: sa.p('groupId', ''), // 所属互助组(1=测试组)
+						groupName: '', // 互助组名称
+						status: '', // 是否可用(0=否,1=是)
+						role: '', // 角色(1=普通边民,2=兼组长)
+						address: '', // 联系地址
+						lock: '', // 是否锁定
+					}, // 实体对象
+					bankList: []
+				},
+				methods: {
+					getBankList() {
+						sa.ajax('/levelone-server/TbBank/getAll', function(resp) {
+							this.bankList = resp.data;
+						}.bind(this));
+					},
+					// 表单验证
+					submitCheck: function() {
+						try {
+							var m = this.m; // 获取 m对象
+							sa.checkNull(m.name, '请输入 [姓名]');
+							sa.checkNull(m.idCard, '请输入 [身份证]');
+							sa.checkNull(m.idCardImg, '请上传 [身份证复印件]');
+							sa.checkNull(m.phone, '请输入 [手机号码]');
+							sa.checkNull(m.bankCode, '请选择 [银行卡号]');
+							return 'ok'; // 全部通过验证,返回ok 表示正确
+						} catch (e) {
+							sa.error(e);
+						}
+					},
+					// 提交数据
+					ok: function() {
+						// 验证
+						this.m.idCardImg = this.m.idCardImg_arr.join(','); // 图片数组转字符串
+						if (this.submitCheck() != 'ok') {
+							return;
+						}
+						// 开始增加或修改
+						if (this.id <= 0) { // 添加
+							sa.ajax('/levelone-server/TbGroupLeader/add', sa.removeNull(this.m), function(res) {
+								sa.alert('增加成功', this.clean);
+							}.bind(this));
+						} else { // 修改
+							sa.ajax('/levelone-server/TbGroupLeader/update', sa.removeNull(this.m), function(res) {
+								sa.alert('修改成功', this.clean);
+							}.bind(this));
+						}
+					},
+					// 添加/修改 完成后的动作
+					clean: function() {
+						parent.app.f5(); // 刷新父页面列表
+						sa.closeCurrIframe(); // 关闭本页
+					},
+					initFn() {
+						// 初始化数据
+						if (this.id > 0) {
+							sa.ajax('/levelone-server/TbGroupLeader/getById?id=' + this.id, function(res) {
+								res.data.idCardImg_arr = sa.isNull(res.data.idCardImg) ? [] : res.data.idCardImg.split(',');		// 身份证复印件 字符串转数组
+								this.m = res.data;
+								if (res.data == null) {
+									sa.alert('未能查找到 id=' + this.id + " 详细数据");
+								}
+							}.bind(this))
+						}
+					}
+				},
+				mounted() {
+					this.initFn();
+					this.getBankList();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 171 - 86
sa-view/tb-group/tb-group-list.html

@@ -3,9 +3,10 @@
 	<head>
 		<title>互助组-列表</title>
 		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<meta name="viewport"
+		content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
-		<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/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>
@@ -13,109 +14,213 @@
 		<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>
-
 	</head>
 	<body>
 		<div class="vue-box" style="display: none;" :style="'display: block;'">
 			<div class="c-panel">
 				<!-- ------------- 检索参数 ------------- -->
-				<!-- <div class="c-title">检索参数</div> -->
+				<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>
-					<sa-item type="text" name="组长名" v-model="p.leaderName"></sa-item>
-					<sa-item type="text" name="组长电话" v-model="p.leaderPhone"></sa-item>
-					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
-					<el-button type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
+					<div class="c-item">
+						<label class="c-label">互市区:</label>
+						<el-select @change="f5()" v-model="p.tradeAreaId" placeholder="请选择" filterable size="mini">
+							<el-option label="请选择" :value="0" disabled></el-option>
+							<el-option v-for="(item,index) in tradeAreaList" :key="index" :label="item.name"
+								:value="item.id"> </el-option>
+						</el-select>
+					</div>
+					<div class="c-item">
+						<label class="c-label">名称:</label>
+						<el-input size="mini" v-model="p.name"></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>
+						<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="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
+					</div>
 				</el-form>
-				<div class="fast-btn">
-					<el-button size="mini" type="primary" icon="el-icon-tickets" @click="getBySelect()">批量导入</el-button>
-					<el-button size="mini" type="success" icon="el-icon-document-copy" @click="getBySelect()">导入模板</el-button>
-					<el-button v-if="sa.isAuth('tb-group-add')" size="mini" icon="el-icon-plus" type="primary" @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="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button> -->
-				</div>
+			
 				<!-- ------------- 数据列表 ------------- -->
-				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<sa-td type="selection"></sa-td>
-					<sa-td name="名称" prop="name" ></sa-td>
-					<sa-td name="组长名" prop="leaderName" ></sa-td>
-					<sa-td name="组长电话" prop="leaderPhone" ></sa-td>
-					<el-table-column label="操作" fixed="right"  width="280px">
+				<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="name"></el-table-column>
+					<el-table-column align="center" label="编号" prop="code"></el-table-column>
+					<el-table-column align="center" label="所属互市区" prop="tradeAreaName" width="180"></el-table-column>
+					<el-table-column align="center" label="组长" prop="leaderName">
+						<template slot-scope='s'>
+							<b v-if="s.row.leaderName" style="color: #066CF3;cursor: pointer;" @click="editLeaderFn(s.row.id,s.row.leaderId)">{{s.row.leaderName}}</b>
+							<b v-else style="color: #066CF3;cursor: pointer;" @click="addLeaderFn(s.row.id)">添加</b>
+						</template>
+					</el-table-column>
+					<el-table-column align="center" label="组长电话" prop="leaderPhone">
+						<template slot-scope='s'>
+							<b v-if="s.row.leaderPhone">{{s.row.leaderPhone}}</b>
+							<b v-else>-</b>
+						</template>
+					</el-table-column>
+					<el-table-column align="center" label="创建时间" class-name="tc-date">
+						<template slot-scope="s">{{sa.forDate(s.row.createTime, 2)}}</template>
+					</el-table-column>
+					<el-table-column align="center" label="操作" fixed="right" width="270px">
 						<template slot-scope="s">
-							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
-							<el-button v-if="sa.isAuth('tb-group-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button class="c-btn" type="success" icon="el-icon-female" @click="getMember(s.row)">边民</el-button>
-							<el-button v-if="sa.isAuth('tb-group-del')" class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
+							<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="primary" icon="el-icon-view" @click="peopleFn(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>
 				<!-- ------------- 分页 ------------- -->
-				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
+				<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>
+			<el-dialog title="导入互助组" :visible.sync="upload" width="500px">
+				<div class="c-item br">
+					<label class="c-label"><label style="color: red">*</label>所在地区:</label>
+					<el-cascader size="mini" @change="addressChange" placeholder="请选择" v-model="address_arry"
+								 :options="options" :props={value:'id',label:'district'}></el-cascader>
+					<span style="color: red; margin-left: 20px;" v-if="showError">请选择</span>
+				</div>
+				<div style="text-align: center;margin-top: 20px;">
+					<el-upload class="upload-demo" :auto-upload="false" drag ref="uploadExcel" :limit="1"
+							   :headers=headers :data="extraData" :limit="1" accept=".xls,.xlsx" :on-success="onSuccess"
+							   :action="importExcelUrl" :multiple="false">
+						<i class="el-icon-upload"></i>
+						<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+						<div class="el-upload__tip" slot="tip">只能上传excel文件</div>
+					</el-upload>
+				</div>
+
+				<span slot="footer" class="dialog-footer">
+					<el-button @click="upload = false">取 消</el-button>
+					<el-button type="primary" @click="sureUpload">确 定</el-button>
+				</span>
+			</el-dialog>
 		</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: {
+					upload: false,
+					address_arry: [],
+					showError: false,
+					importExcelUrl: sa.cfg.api_url + '/levelone-server/TbGroup/import',
+					headers: {
+						satoken: localStorage.tokenValue
+					},
 					p: { // 查询参数
-						id: '',		//
-						addressIds: '',		//
-						address: '',		//
-						detailAddress: '',		//
-						name: '',		// 名称
-						leaderId: '',		// 组长ID
-						leaderName: '',		// 组长名
-						leaderPhone: '',		// 组长电话
-						code: '',		//
-						leftPrice: '',		// 当天该组剩余额度
-						createTime: '',		// 创建时间
-						createBy: '',		// 创建人编号
-						createName: '',		// 创建人名称
-						updateTime: '',		// 更新时间
-						updateBy: '',		// 更新人编号
-						updateName: '',		// 更新人名称
-						deleteStatus: '',		// 删除状态(0=禁用,1=启用)
-						pageNo: 1,		// 当前页
-						pageSize: 10,	// 页大小
-						sortType: 0		// 排序方式
+						id: '', //
+						name: '', // 名称
+						leaderId: '', // 组长ID
+						leaderName: '', // 组长名
+						leaderPhone: '', // 组长电话
+						code: '', //
+						status: '', // 状态(0=禁用,1=启用)
+						pageNo: 1, // 当前页
+						pageSize: 10, // 页大小
+						sortType: 0 // 排序方式
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合
+					options: [],
+					tradeAreaList:[],
+					extraData: {
+						addressIds: ''
+					}
 				},
 				methods: {
+					getTradeArea() {
+						sa.ajax('/level-one-server/TbTradeArea/getList', {
+							pageSize: 100,
+							pageNo: 1
+						}, function(resp) {
+							this.tradeAreaList = resp.data;
+						}.bind(this));
+					},
+					addressChange(value) {
+						console.log(value);
+					},
+					sureUpload() {
+						this.showError = this.address_arry.length == 0;
+						if (this.showError) {
+							return;
+						}
+						this.$refs.uploadExcel.submit();
+					},
+					getImportExcel() {
+						window.location.href = '../../static/excel/group.xlsx'
+					},
+					showUpload() {
+						this.upload = true;
+						this.showError = false;
+						this.address_arry = [];
+						this.extraData.addressIds = '';
+						this.getAddress();
+
+					},
+					getAddress() {
+						sa.ajax('/level-one-server/TbDistrict/getTreeData', function(resp) {
+							this.options = resp.data;
+						}.bind(this));
+					},
+					onSuccess(res, file, fileList) {
+						fileList = [];
+						if (res.code === 500) {
+							sa.alert(res.msg);
+						} else {
+							sa.alert('导入成功');
+							this.f5();
+						}
+						this.$refs.uploadExcel.clearFiles();
+						this.upload = false;
+					},
+					peopleFn(group){
+						sa.showIframe("【"+group.name+'】边民管理', 'tb-group-people.html?groupId='+group.id, '1080px', '100%');
+					},
+					addLeaderFn(groupId){
+						sa.showIframe('添加组长', 'tb-group-leader.html?groupId='+groupId, '950px', '90%');
+					},
+					editLeaderFn(groupId,leaderId){
+						sa.showIframe('编辑组长', 'tb-group-leader.html?groupId='+groupId+'&leaderId='+leaderId, '950px', '90%');
+					},
 					// 刷新
 					f5: function() {
 						sa.ajax('/level-one-server/TbGroup/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
-							this.dataCount = res.dataCount; // 数据总数
-							sa.f5TableHeight();		// 刷新表格高度
+							this.dataCount = parseInt(res.dataCount); // 数据总数
+							sa.f5TableHeight(); // 刷新表格高度
 						}.bind(this));
 					},
 					// 查看
 					get: function(data) {
-						sa.showIframe('数据详情', 'tb-group-info.html?id=' + data.id, '1050px', '90%');
+						sa.showIframe('数据详情', 'tb-group-info.html?id=' + data.id, '950px', '90%');
 					},
 					// 查看 - 根据选中的
 					getBySelect: function(data) {
 						var selection = this.$refs['data-table'].selection;
-						if(selection.length == 0) {
+						if (selection.length == 0) {
 							return sa.msg('请选择一条数据')
 						}
 						this.get(selection[0]);
 					},
 					// 修改
 					update: function(data) {
-						sa.showIframe('修改数据', 'tb-group-add.html?id=' + data.id, '1000px', '90%');
+						sa.showIframe('修改数据', 'tb-group-add.html?id=' + data.id, '900px', '90%');
 					},
 					// 新增
 					add: function(data) {
-						sa.showIframe('新增数据', 'tb-group-add.html?id=-1', '1000px', '90%');
+						sa.showIframe('新增数据', 'tb-group-add.html?id=-1', '550px', '90%');
 					},
 					// 删除
 					del: function(data) {
@@ -123,7 +228,7 @@
 							sa.ajax('/level-one-server/TbGroup/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
+								sa.f5TableHeight(); // 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
@@ -132,45 +237,25 @@
 						// 获取选中元素的id列表
 						let selection = this.$refs['data-table'].selection;
 						let ids = sa.getArrayField(selection, 'id');
-						if(selection.length == 0) {
+						if (selection.length == 0) {
 							return sa.msg('请至少选择一条数据')
 						}
 						// 提交删除
 						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/level-one-server/TbGroup/deleteByIds', {ids: ids.join(',')}, function(res) {
+							sa.ajax('/level-one-server/TbGroup/deleteByIds', {
+								ids: ids.join(',')
+							}, function(res) {
 								sa.arrayDelete(this.dataList, selection);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
+								sa.f5TableHeight(); // 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
-					// 改 - 删除状态(0=禁用,1=启用)
-					updateDeleteStatus: function(data) {
-						// 声明变量记录是否成功
-						var isOk = false;
-						var oldValue = data.deleteStatus;
-						var ajax = sa.ajax('/level-one-server/TbGroup/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;
-							}
-						})
-					},
-					
-					add: function(data) {
-						sa.showIframe('新增数据', 'tb-group-add.html?id=-1', '1000px', '90%');
-					},
-					getMember: function(data){
-						sa.showIframe(' '+data.name+' 组员列表', 'tb-menber-list.html?id='+data.id, '1200px', '90%');
-					}
 				},
 				created: function() {
 					this.f5();
 					sa.onInputEnter();
+					this.getTradeArea();
 				}
 			})
 		</script>

+ 117 - 0
sa-view/tb-group/tb-group-people-add.html

@@ -0,0 +1,117 @@
+<!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.name"></el-input>
+					</div>
+					<div class="c-item">
+						<label class="c-label">手机号码:</label>
+						<el-input size="mini" v-model="p.phone"></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>
+							<el-button size="mini" type="primary" icon="el-icon-circle-check" @click="sureFn()">确定</el-button>
+					</div>
+				</el-form>
+				<!-- ------------- 快捷按钮 ------------- -->
+			
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" :row-key="(row)=>{ return row.id}" @selection-change="selectionChange"
+					ref="data-table" :data="dataList" size="small">
+					<el-table-column align="center" :reserve-selection="true" type="selection" width="45px">
+					</el-table-column>
+					<el-table-column align="center" label="姓名" prop="name"></el-table-column>
+					<el-table-column align="center" label="边民号" prop="code"></el-table-column>
+					<el-table-column align="center" label="性别">
+						<template slot-scope="s">
+							<b v-if="s.row.sex == 1"></b>
+							<b v-if="s.row.sex == 2"></b>
+						</template>
+					</el-table-column>
+					<el-table-column align="center" label="身份证" prop="idCard"></el-table-column>
+					<el-table-column align="center" label="手机号码" prop="phone"></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: {
+					groupId: sa.p('groupId', ''),
+					p: { // 查询参数
+						name: '', // 姓名
+						phone: '', // 手机号码
+						pageNo: 1, // 当前页
+						pageSize: 20, // 页大小
+						sortType: 0 // 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+					select: [],
+				},
+				methods: {
+					selectionChange(selection) {
+						this.select = selection;
+					},
+					sureFn() {
+						console.log(this.groupId);
+						let selectList = this.select;
+						if (selectList.length == 0) {
+							sa.alert('请选择边民');
+							return;
+						}
+						let idArray = selectList.map(selection => selection.id);
+						let obj = {
+							groupId: this.groupId,
+							ids: idArray.join(',')
+						};
+						sa.ajax('/levelone-server/TbPeople/joinGroup', obj, function(resp) {
+							parent.app.f5(); // 刷新父页面列表
+							sa.closeCurrIframe(); // 关闭本页
+						}.bind(this));
+					},
+					// 刷新
+					f5: function() {
+						sa.ajax('/levelone-server/TbPeople/getLeftPeople',{groupId:this.groupId}, function(res) {
+							this.dataList = res.data; // 数据
+							this.dataCount = res.dataCount; // 数据总数
+							sa.f5TableHeight(); // 刷新表格高度
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 156 - 0
sa-view/tb-group/tb-group-people.html

@@ -0,0 +1,156 @@
+<!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">
+				<!-- ------------- 检索参数 ------------- -->
+				<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.name"></el-input>
+					</div>
+					<div class="c-item">
+						<label class="c-label">手机号码:</label>
+						<el-input size="mini" v-model="p.phone"></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>
+						<el-button size="mini" type="primary" icon="el-icon-plus" @click="add()">添加</el-button>
+						<el-button size="mini" type="danger" icon="el-icon-delete" @click="deleteByIds()">移出</el-button>
+						<el-button size="mini" type="info"  icon="el-icon-refresh"  @click="sa.f5()">重置</el-button>
+					</div>
+				</el-form>
+				<!-- ------------- 快捷按钮 ------------- -->
+				<div class="fast-btn">
+				
+				</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="name" ></el-table-column>
+					<el-table-column align="center" label="边民号" prop="code" ></el-table-column>
+					<el-table-column align="center" label="性别">
+						<template slot-scope="s">
+							<b v-if="s.row.sex == 1"></b>
+							<b v-if="s.row.sex == 2"></b>
+						</template>
+					</el-table-column>
+					<el-table-column align="center" label="手机号码" prop="phone" ></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="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: '',		// 主键
+						name: '',		// 姓名
+						code: '',		// 边民号
+						idCard: '',		// 身份证
+						phone: '',		// 手机号码
+						groupId: sa.p('groupId',-1),		// 所属互助组(1=测试组)
+						pageNo: 1,		// 当前页
+						pageSize: 10,	// 页大小
+						sortType: 0		// 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbPeople/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/tb-people-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]);
+					},
+					// 新增
+					add: function() {
+						sa.showIframe('添加边民', 'tb-group-people-add.html?groupId='+this.p.groupId, '900px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否移除此边民?', function() {
+							let obj={
+								groupId:this.p.groupId,
+								ids:data.id
+							}
+							sa.ajax('/level-one-server/TbPeople/leaveGroup',obj, function(res) {
+								sa.arrayDelete(this.dataList, data);
+								sa.ok('已移除');
+								sa.f5TableHeight();		// 刷新表格高度
+							}.bind(this))
+						}.bind(this));
+					},
+					// 批量删除
+					deleteByIds: function() {
+						// 获取选中元素的id列表
+						let selection = this.$refs['data-table'].selection;
+						let ids = sa.getArrayField(selection, 'id');
+						if(selection.length == 0) {
+							return sa.msg('请至少选择一条数据')
+						}
+						// 提交删除
+						sa.confirm('是否要移除已选择的边民?', function() {
+							sa.ajax('/level-one-server/TbPeople/leaveGroup', {groupId:this.p.groupId,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>

+ 6 - 31
sa-view/tb-people/tb-people-list.html

@@ -22,48 +22,23 @@
 				<!-- ------------- 检索参数 ------------- -->
 				<!-- <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>
-					<sa-item type="text" name="边民号" v-model="p.code"></sa-item>
-					<sa-item type="enum" name="所属互助组" v-model="p.groupId"
-						:jv="{1: '测试组'}" jtype="2" def="不限"></sa-item>
+					<sa-item type="text" name="姓名" v-model="p.name" :need="false"></sa-item>
+					<sa-item type="text" name="边民号" v-model="p.code" :need="false"></sa-item>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
 					<el-button type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
-				</el-form>
-				<div class="fast-btn">
 					<el-button v-if="sa.isAuth('tb-people-add')" size="mini" type="primary" @click="add()">新增</el-button>
 					<el-button size="mini" type="success" @click="getBySelect()">查看</el-button>
-				</div>
+				</el-form>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<sa-td type="selection"></sa-td>
+					<sa-td type="index" name="序号"></sa-td>
 					<sa-td name="姓名" prop="name" ></sa-td>
 					<sa-td name="边民号" prop="code" ></sa-td>
-					<sa-td name="性别" prop="sex" type="enum" :jv="{1: '男', 2: '女'}"></sa-td>
-					<sa-td name="年龄" prop="age" type="num"></sa-td>
-					<sa-td name="身份证" prop="idCard" ></sa-td>
-					<sa-td name="身份证复印件" prop="idCardImg" type="img-list"></sa-td>
 					<sa-td name="手机号码" prop="phone" ></sa-td>
-					<sa-td name="银行编号" prop="bankNo" ></sa-td>
-					<sa-td name="银行卡号" prop="bankCode" ></sa-td>
-					<sa-td name="银行名称" prop="bankName" ></sa-td>
-					<sa-td name="所属互助组" prop="groupId" type="enum" :jv="{1: '测试组'}"></sa-td>
 					<sa-td name="互助组名称" prop="groupName" ></sa-td>
-					<sa-td name="是否可用" prop="status" type="enum" :jv="{0: '否', 1: '是'}"></sa-td>
-					<sa-td name="角色" prop="role" type="num"></sa-td>
-					<sa-td name="经度" prop="lng" ></sa-td>
-					<sa-td name="纬度" prop="lat" ></sa-td>
-					<sa-td name="最后一次下单定位" prop="lastLocation" ></sa-td>
+					<sa-td name="角色" prop="role" type="num" :jv="{'1': '普通边民', '2': '兼组长'}"></sa-td>
 					<sa-td name="联系地址" prop="address" ></sa-td>
-					<sa-td name="地址ID" prop="addressIds" ></sa-td>
-					<sa-td name="详细地址" prop="detailAddress" ></sa-td>
-					<sa-td name="是否锁定" prop="isLock" ></sa-td>
-					<sa-td name="当天剩余额度" prop="leftPrice" ></sa-td>
-					<sa-td name="" prop="judgeStatus" ></sa-td>
-					<!-- <sa-td name="" prop="judgeContent" ></sa-td>
-					<sa-td name="" prop="registerTime" ></sa-td>
-					<sa-td name="" prop="judgeTime" ></sa-td>
-					<sa-td name="" prop="personId" ></sa-td> -->
-					<!-- <sa-td name="删除状态" prop="deleteStatus" type="switch" :jv="{0: '禁用', 1: '启用'}" @change="s => updateDeleteStatus(s.row)"></sa-td> -->
+					<sa-td name="是否锁定" prop="isLock" type="enum" :jv="{0: '否', 1: '是'}"></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>

+ 1 - 1
sa-view/tb-shop/tb-shop-list.html

@@ -116,7 +116,7 @@
 					f5: function() {
 						sa.ajax('/level-one-server/TbShop/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
-							this.dataCount = res.dataCount; // 数据总数
+							this.dataCount = parseInt(res.dataCount); // 数据总数
 							sa.f5TableHeight(); // 刷新表格高度
 						}.bind(this));
 					},