3 次代码提交 a082fcdfd1 ... 807482ccc0

作者 SHA1 备注 提交日期
  loovi 807482ccc0 Merge branch 'dev' of http://git.aseanbusiness.cn/qzyReal/market-admin-ui into dev 1 年之前
  loovi 673a9dc98c 7.28 1 年之前
  loovi aa42ba89f5 添加查看组内成员页面,实现图片上传和预览 1 年之前

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

@@ -262,6 +262,7 @@ window.menuList.unshift({
 				{ 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 },
 			]
 		},
 	]

+ 10 - 10
sa-view/tb-banner/tb-banner-add.html

@@ -27,16 +27,16 @@
                     <div class="c-title" v-if="id == 0">数据添加</div>
 					<div class="c-title" v-else>数据修改</div>
 					<el-form v-if="m">
-						<sa-item type="num" name="主键" v-model="m.id" br></sa-item>
+					<!-- 	<sa-item type="num" name="主键" v-model="m.id" br></sa-item> -->
 						<sa-item type="text" name="标题" v-model="m.title" br></sa-item>
 						<sa-item type="img" name="轮播图片" v-model="m.image" br></sa-item>
 						<sa-item type="text" name="跳转链接" v-model="m.url" br></sa-item>
 						<sa-item type="enum" name="状态" v-model="m.status" :jv="{0: '禁用', 1: '启用'}" jtype="3" br></sa-item>
-						<sa-item type="text" name="创建者id" v-model="m.createBy" br></sa-item>
-						<sa-item type="text" name="创建者名称" v-model="m.createName" br></sa-item>
+					<!-- 	<sa-item type="text" name="创建者id" v-model="m.createBy" br></sa-item>
+						<sa-item type="text" name="创建者名称" v-model="m.createName" br></sa-item> -->
 						<!-- date-create字段: m.createTime - 创建时间 -->
-						<sa-item type="text" name="更新者id" v-model="m.updateBy" br></sa-item>
-						<sa-item type="text" name="更新者名称" v-model="m.updateName" br></sa-item>
+	<!-- 					<sa-item type="text" name="更新者id" v-model="m.updateBy" br></sa-item>
+						<sa-item type="text" name="更新者名称" v-model="m.updateName" br></sa-item> -->
 						<!-- date-update字段: m.updateTime - 更新时间 -->
 						<sa-item name="" class="s-ok" br>
 							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
@@ -83,16 +83,16 @@
 					ok: function(){
 						// 表单校验 
 						let m = this.m;
-						sa.checkNull(m.id, '请输入 [主键]');
+						// sa.checkNull(m.id, '请输入 [主键]');
 						sa.checkNull(m.title, '请输入 [标题]');
 						sa.checkNull(m.image, '请输入 [轮播图片]');
 						sa.checkNull(m.url, '请输入 [跳转链接]');
 						sa.checkNull(m.status, '请输入 [状态]');
-						sa.checkNull(m.createBy, '请输入 [创建者id]');
-						sa.checkNull(m.createName, '请输入 [创建者名称]');
+						// sa.checkNull(m.createBy, '请输入 [创建者id]');
+						// sa.checkNull(m.createName, '请输入 [创建者名称]');
 						// sa.checkNull(m.createTime, '请输入 [创建时间]');
-						sa.checkNull(m.updateBy, '请输入 [更新者id]');
-						sa.checkNull(m.updateName, '请输入 [更新者名称]');
+						// sa.checkNull(m.updateBy, '请输入 [更新者id]');
+						// sa.checkNull(m.updateName, '请输入 [更新者名称]');
 						// sa.checkNull(m.updateTime, '请输入 [更新时间]');
 						// sa.checkNull(m.deleteStatus, '请输入 [删除状态]');
 				

+ 3 - 3
sa-view/tb-banner/tb-banner-list.html

@@ -20,15 +20,15 @@
 				<!-- ------------- 检索参数 ------------- -->
 				<div class="c-title">检索参数</div>
 				<el-form ref="form" :model='p' @submit.native.prevent>
-					<sa-item type="num" name="主键" v-model="p.id"></sa-item>
+				<!-- 	<sa-item type="num" name="主键" v-model="p.id"></sa-item> -->
 					<sa-item type="text" name="标题" v-model="p.title"></sa-item>
 					<!-- 未识别类型:跳转链接: p.url 请检查配置 -->
-					<sa-item type="enum" name="状态" v-model="p.status" 
+					<!-- <sa-item type="enum" name="状态" v-model="p.status" 
 						:jv="{0: '禁用', 1: '启用'}" jtype="2" def="不限"></sa-item>
 					<sa-item type="text" name="创建者id" v-model="p.createBy"></sa-item>
 					<sa-item type="text" name="创建者名称" v-model="p.createName"></sa-item>
 					<sa-item type="text" name="更新者id" v-model="p.updateBy"></sa-item>
-					<sa-item type="text" name="更新者名称" v-model="p.updateName"></sa-item>
+					<sa-item type="text" name="更新者名称" v-model="p.updateName"></sa-item> -->
 					<!-- 未识别类型:删除状态: p.deleteStatus 请检查配置 -->
 					<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>

+ 7 - 3
sa-view/tb-group/tb-group-list.html

@@ -52,7 +52,7 @@
 						<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="getPeople()">边民</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>
 						</template>
 					</el-table-column>
@@ -166,8 +166,12 @@
 							}
 						})
 					},
-					getPeople: function(){
-						sa.showIframe('边民管理', '../tb-people/tb-people-list.html', '1050px', '90%');
+					
+					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() {

+ 194 - 0
sa-view/tb-group/tb-menber-list.html

@@ -0,0 +1,194 @@
+<!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="../../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" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 数据列表 ------------- -->
+				<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="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="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> -->
+					<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-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-people-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: {
+					id: sa.p('id', 0),		// 获取超链接中的id参数(0=添加,非0=修改)
+					p: { // 查询参数
+						name: '',		// 姓名
+						code: '',		// 边民号
+						sex: '',		// 性别(1=男,2=女)
+						age: '',		// 年龄
+						idCard: '',		// 身份证
+						phone: '',		// 手机号码
+						bankNo: '',		// 银行编号
+						bankCode: '',		// 银行卡号
+						bankName: '',		// 银行名称
+						groupId: '',		// 所属互助组(1=测试组)
+						groupName: '',		// 互助组名称
+						status: '',		// 是否可用(0=否,1=是)
+						role: '',		// 角色(1=普通边民,2=兼组长)
+						lng: '',		// 经度
+						lat: '',		// 纬度
+						lastLocation: '',		// 最后一次下单定位
+						address: '',		// 联系地址
+						addressIds: '',		// 地址ID
+						detailAddress: '',		// 详细地址
+						isLock: '',		// 是否锁定
+						leftPrice: '',		// 当天剩余额度
+						// judgeStatus: '',		//
+						// judgeContent: '',		//
+						// registerTime: '',		//
+						// judgeTime: '',		//
+						// personId: '',		//
+						// deleteStatus: '',		// 删除状态(0=禁用,1=启用)
+						pageNo: 1,		// 当前页
+						pageSize: 10,	// 页大小
+						sortType: 0		// 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						// 查询组内成员
+						sa.ajax('/level-one-server/TbGroup/getMemberListByGroupId?id=' + this.id, 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, '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/tb-people-add.html?id=' + data.id, '1000px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', '../tb-people/tb-people-add.html?id=-1', '1000px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-one-server/TbPeople/delete?id=' + data.id, function(res) {
+								sa.arrayDelete(this.dataList, data);
+								sa.ok('删除成功');
+								sa.f5TableHeight();		// 刷新表格高度
+							}.bind(this))
+						}.bind(this));
+					},
+					// 批量删除
+					deleteByIds: function() {
+						// 获取选中元素的id列表
+						let selection = this.$refs['data-table'].selection;
+						let ids = sa.getArrayField(selection, 'id');
+						if(selection.length == 0) {
+							return sa.msg('请至少选择一条数据')
+						}
+						// 提交删除
+						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
+							sa.ajax('/level-one-server/TbPeople/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-one-server/TbPeople/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>

+ 150 - 144
sa-view/tb-port-news/tb-port-news-add.html

@@ -1,144 +1,150 @@
-<!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>
-		<script src="../../static/kj/wangEditor.min.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 .el-input, .c-panel .el-form .el-textarea__inner{width: 800px;}
-			.c-item-mline{width: 800px;}
-			.editor-box{display: inline-block;}
-			.c-item .editor-box, .editor-box #editor{width: 800px;}
-		</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.title" br></sa-item>
-						<sa-item type="img" name="封面图片" v-model="m.cover" br></sa-item>
-						<sa-item type="text" name="链接地址" v-model="m.url" br></sa-item>
-						<sa-item type="richtext" name="内容"  v-model="m.content" br></sa-item>
-						<sa-item type="text" name="来源" v-model="m.source" br></sa-item>
-						<sa-item type="text" name="阅读量" v-model="m.readCount" br></sa-item>
-						<sa-item type="enum" name="发布状态" v-model="m.isRelease" :jv="{0: '未发布', 1: '发布'}" jtype="3" br></sa-item>
-						<sa-item type="text" name="发布时间" v-model="m.releaseTime" 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,		// 实体对象 
-				},
-				methods: {
-					// 创建一个 默认Model 
-					createModel: function() {
-						return {
-							title: '',		// 标题 
-							cover: '',		// 封面图片 
-							url: '',		// 链接地址 
-							content: '',		// 内容 
-							source: '',		// 来源 
-							readCount: '',		// 阅读量 
-							isRelease: '',		// 发布状态(0=未发布,1=发布) 
-							releaseTime: '',		// 发布时间 
-							status: '',		// 状态(0=禁用,1=启用) 
-						}
-					},
-					// 提交数据 
-					ok: function(){
-						// 表单校验 
-						let m = this.m;
-						sa.checkNull(m.id, '请输入 [主键]');
-						sa.checkNull(m.title, '请输入 [标题]');
-						sa.checkNull(m.cover, '请输入 [封面图片]');
-						sa.checkNull(m.url, '请输入 [链接地址]');
-						sa.checkNull(m.content, '请输入 [内容]');
-						sa.checkNull(m.source, '请输入 [来源]');
-						sa.checkNull(m.readCount, '请输入 [阅读量]');
-						sa.checkNull(m.isRelease, '请输入 [发布状态]');
-						sa.checkNull(m.releaseTime, '请输入 [发布时间]');
-						sa.checkNull(m.status, '请输入 [状态]');
-						sa.checkNull(m.createBy, '请输入 [创建者id]');
-						sa.checkNull(m.createName, '请输入 [创建者名称]');
-						// sa.checkNull(m.createTime, '请输入 [创建时间]');
-						sa.checkNull(m.updateBy, '请输入 [更新者id]');
-						sa.checkNull(m.updateName, '请输入 [更新者名称]');
-						// sa.checkNull(m.updateTime, '请输入 [更新时间]');
-				
-						// 开始增加或修改
-						this.m.createTime = undefined;		// 不提交属性:创建时间
-						this.m.updateTime = undefined;		// 不提交属性:更新时间
-						if(this.id <= 0) {	// 添加
-							sa.ajax('/level-one-server/TbPortNews/add', m, function(res){
-								sa.alert('增加成功', this.clean); 
-							}.bind(this));
-						} else {	// 修改
-							sa.ajax('/level-one-server/TbPortNews/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('/level-one-server/TbPortNews/getById?id=' + this.id, function(res) {
-							this.m = res.data;
-							if(res.data == null) {
-								sa.alert('未能查找到 id=' + this.id + " 详细数据");
-							}
-						}.bind(this))
-					}
-				}
-			})
-			
-		</script>
-	</body>
-</html>
+
+qzyReal /
+market-admin-ui
+tb-port-news-add.html 5.7 KB
+123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 	
+
+    <!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>
+    		<script src="../../static/kj/wangEditor.min.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 .el-input, .c-panel .el-form .el-textarea__inner{width: 800px;}
+    			.c-item-mline{width: 800px;}
+    			.editor-box{display: inline-block;}
+    			.c-item .editor-box, .editor-box #editor{width: 800px;}
+    		</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.title" br></sa-item>
+    						<sa-item type="img" name="封面图片" v-model="m.cover" br></sa-item>
+    						<sa-item type="text" name="链接地址" v-model="m.url" br></sa-item>
+    						<sa-item type="richtext" name="内容"  v-model="m.content" br></sa-item>
+    						<sa-item type="text" name="来源" v-model="m.source" br></sa-item>
+    						<sa-item type="text" name="阅读量" v-model="m.readCount" br></sa-item>
+    						<sa-item type="enum" name="发布状态" v-model="m.isRelease" :jv="{0: '未发布', 1: '发布'}" jtype="3" br></sa-item>
+    						<sa-item type="text" name="发布时间" v-model="m.releaseTime" 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,		// 实体对象 
+    				},
+    				methods: {
+    					// 创建一个 默认Model 
+    					createModel: function() {
+    						return {
+    							title: '',		// 标题 
+    							cover: '',		// 封面图片 
+    							url: '',		// 链接地址 
+    							content: '',		// 内容 
+    							source: '',		// 来源 
+    							readCount: '',		// 阅读量 
+    							isRelease: '',		// 发布状态(0=未发布,1=发布) 
+    							releaseTime: '',		// 发布时间 
+    							status: '',		// 状态(0=禁用,1=启用) 
+    						}
+    					},
+    					// 提交数据 
+    					ok: function(){
+    						// 表单校验 
+    						let m = this.m;
+    						sa.checkNull(m.id, '请输入 [主键]');
+    						sa.checkNull(m.title, '请输入 [标题]');
+    						sa.checkNull(m.cover, '请输入 [封面图片]');
+    						sa.checkNull(m.url, '请输入 [链接地址]');
+    						sa.checkNull(m.content, '请输入 [内容]');
+    						sa.checkNull(m.source, '请输入 [来源]');
+    						sa.checkNull(m.readCount, '请输入 [阅读量]');
+    						sa.checkNull(m.isRelease, '请输入 [发布状态]');
+    						sa.checkNull(m.releaseTime, '请输入 [发布时间]');
+    						sa.checkNull(m.status, '请输入 [状态]');
+    						sa.checkNull(m.createBy, '请输入 [创建者id]');
+    						sa.checkNull(m.createName, '请输入 [创建者名称]');
+    						// sa.checkNull(m.createTime, '请输入 [创建时间]');
+    						sa.checkNull(m.updateBy, '请输入 [更新者id]');
+    						sa.checkNull(m.updateName, '请输入 [更新者名称]');
+    						// sa.checkNull(m.updateTime, '请输入 [更新时间]');
+    				
+    						// 开始增加或修改
+    						this.m.createTime = undefined;		// 不提交属性:创建时间
+    						this.m.updateTime = undefined;		// 不提交属性:更新时间
+    						if(this.id <= 0) {	// 添加
+    							sa.ajax('/level-one-server/TbPortNews/add', m, function(res){
+    								sa.alert('增加成功', this.clean); 
+    							}.bind(this));
+    						} else {	// 修改
+    							sa.ajax('/level-one-server/TbPortNews/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('/level-one-server/TbPortNews/getById?id=' + this.id, function(res) {
+    							this.m = res.data;
+    							if(res.data == null) {
+    								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+    							}
+    						}.bind(this))
+    					}
+    				}
+    			})
+    			
+    		</script>
+    	</body>
+    </html>

+ 183 - 176
sa-view/tb-port-news/tb-port-news-list.html

@@ -1,176 +1,183 @@
-<!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.title"></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-port-news-add')" size="mini" type="primary" @click="add()">新增</el-button>
-					<el-button size="mini" type="success" @click="getBySelect()">查看</el-button>
-				</div>
-				<!-- ------------- 数据列表 ------------- -->
-				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<sa-td type="selection"></sa-td>
-					<sa-td name="标题" prop="title" ></sa-td>
-					<sa-td name="封面图片" prop="cover" type="img"></sa-td>
-					<sa-td name="链接地址" prop="url" type="link"></sa-td>
-					<sa-td name="内容" prop="content" type="richtext"></sa-td>
-					<sa-td name="来源" prop="source" ></sa-td>
-					<sa-td name="阅读量" prop="readCount" ></sa-td>
-					<sa-td name="发布状态" prop="isRelease" type="switch" :jv="{0: '未发布', 1: '发布'}" @change="s => updateIsRelease(s.row)"></sa-td>
-					<sa-td name="发布时间" prop="releaseTime" ></sa-td>
-					<sa-td name="状态" prop="status" type="switch" :jv="{0: '禁用', 1: '启用'}" @change="s => updateStatus(s.row)"></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-port-news-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button v-if="sa.isAuth('tb-port-news-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: { // 查询参数  
-					
-						title: '',		// 标题 
-						url: '',		// 链接地址 
-						content: '',		// 内容 
-						source: '',		// 来源 
-						readCount: '',		// 阅读量 
-						isRelease: '',		// 发布状态(0=未发布,1=发布) 
-						releaseTime: '',		// 发布时间 
-						status: '',		// 状态(0=禁用,1=启用) 
-						pageNo: 1,		// 当前页 
-						pageSize: 10,	// 页大小 
-						sortType: 0		// 排序方式 
-					},
-					dataCount: 0,
-					dataList: [], // 数据集合 
-				},
-				methods: {
-					// 刷新
-					f5: function() {
-						sa.ajax('/level-one-server/TbPortNews/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-port-news-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-port-news-add.html?id=' + data.id, '1000px', '90%');
-					},
-					// 新增
-					add: function(data) {
-						sa.showIframe('新增数据', 'tb-port-news-add.html?id=-1', '1000px', '90%');
-					},
-					// 删除
-					del: function(data) {
-						sa.confirm('是否删除,此操作不可撤销', function() {
-							sa.ajax('/level-one-server/TbPortNews/delete?id=' + data.id, function(res) {
-								sa.arrayDelete(this.dataList, data);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
-							}.bind(this))
-						}.bind(this));
-					},
-					// 批量删除
-					deleteByIds: function() {
-						// 获取选中元素的id列表 
-						let selection = this.$refs['data-table'].selection;
-						let ids = sa.getArrayField(selection, 'id');
-						if(selection.length == 0) {
-							return sa.msg('请至少选择一条数据')
-						}
-						// 提交删除 
-						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/level-one-server/TbPortNews/deleteByIds', {ids: ids.join(',')}, function(res) {
-								sa.arrayDelete(this.dataList, selection);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
-							}.bind(this))
-						}.bind(this));
-					},
-					// 改 - 发布状态(0=未发布,1=发布)
-					updateIsRelease: function(data) {
-						// 声明变量记录是否成功 
-						var isOk = false;	
-						var oldValue = data.isRelease;
-						var ajax = sa.ajax('/level-one-server/TbPortNews/updateIsRelease', {id: data.id, value: data.isRelease}, function(res) {
-							isOk = true;
-							sa.msg('修改成功');
-						}.bind(this));
-						// 如果未能修改成功, 则回滚 
-						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
-							}
-						})
-					},
-					// 改 - 状态(0=禁用,1=启用)
-					updateStatus: function(data) {
-						// 声明变量记录是否成功 
-						var isOk = false;	
-						var oldValue = data.status;
-						var ajax = sa.ajax('/level-one-server/TbPortNews/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>
+
+qzyReal /
+market-admin-ui
+tb-port-news-list.html 6.9 KB
+123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 	
+
+    <!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.title"></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-port-news-add')" size="mini" type="primary" @click="add()">新增</el-button>
+    					<el-button size="mini" type="success" @click="getBySelect()">查看</el-button>
+    				</div>
+    				<!-- ------------- 数据列表 ------------- -->
+    				<el-table class="data-table" ref="data-table" :data="dataList" >
+    					<sa-td type="selection"></sa-td>
+    					<sa-td name="标题" prop="title" ></sa-td>
+    					<sa-td name="封面图片" prop="cover" type="img"></sa-td>
+    					<sa-td name="链接地址" prop="url" type="link"></sa-td>
+    					<sa-td name="内容" prop="content" type="richtext"></sa-td>
+    					<sa-td name="来源" prop="source" ></sa-td>
+    					<sa-td name="阅读量" prop="readCount" ></sa-td>
+    					<sa-td name="发布状态" prop="isRelease" type="switch" :jv="{0: '未发布', 1: '发布'}" @change="s => updateIsRelease(s.row)"></sa-td>
+    					<sa-td name="发布时间" prop="releaseTime" ></sa-td>
+    					<sa-td name="状态" prop="status" type="switch" :jv="{0: '禁用', 1: '启用'}" @change="s => updateStatus(s.row)"></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-port-news-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+    							<el-button v-if="sa.isAuth('tb-port-news-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: { // 查询参数  
+    					
+    						title: '',		// 标题 
+    						url: '',		// 链接地址 
+    						content: '',		// 内容 
+    						source: '',		// 来源 
+    						readCount: '',		// 阅读量 
+    						isRelease: '',		// 发布状态(0=未发布,1=发布) 
+    						releaseTime: '',		// 发布时间 
+    						status: '',		// 状态(0=禁用,1=启用) 
+    						pageNo: 1,		// 当前页 
+    						pageSize: 10,	// 页大小 
+    						sortType: 0		// 排序方式 
+    					},
+    					dataCount: 0,
+    					dataList: [], // 数据集合 
+    				},
+    				methods: {
+    					// 刷新
+    					f5: function() {
+    						sa.ajax('/level-one-server/TbPortNews/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-port-news-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-port-news-add.html?id=' + data.id, '1000px', '90%');
+    					},
+    					// 新增
+    					add: function(data) {
+    						sa.showIframe('新增数据', 'tb-port-news-add.html?id=-1', '1000px', '90%');
+    					},
+    					// 删除
+    					del: function(data) {
+    						sa.confirm('是否删除,此操作不可撤销', function() {
+    							sa.ajax('/level-one-server/TbPortNews/delete?id=' + data.id, function(res) {
+    								sa.arrayDelete(this.dataList, data);
+    								sa.ok('删除成功');
+    								sa.f5TableHeight();		// 刷新表格高度 
+    							}.bind(this))
+    						}.bind(this));
+    					},
+    					// 批量删除
+    					deleteByIds: function() {
+    						// 获取选中元素的id列表 
+    						let selection = this.$refs['data-table'].selection;
+    						let ids = sa.getArrayField(selection, 'id');
+    						if(selection.length == 0) {
+    							return sa.msg('请至少选择一条数据')
+    						}
+    						// 提交删除 
+    						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
+    							sa.ajax('/level-one-server/TbPortNews/deleteByIds', {ids: ids.join(',')}, function(res) {
+    								sa.arrayDelete(this.dataList, selection);
+    								sa.ok('删除成功');
+    								sa.f5TableHeight();		// 刷新表格高度 
+    							}.bind(this))
+    						}.bind(this));
+    					},
+    					// 改 - 发布状态(0=未发布,1=发布)
+    					updateIsRelease: function(data) {
+    						// 声明变量记录是否成功 
+    						var isOk = false;	
+    						var oldValue = data.isRelease;
+    						var ajax = sa.ajax('/level-one-server/TbPortNews/updateIsRelease', {id: data.id, value: data.isRelease}, function(res) {
+    							isOk = true;
+    							sa.msg('修改成功');
+    						}.bind(this));
+    						// 如果未能修改成功, 则回滚 
+    						$.when(ajax).done(function() {
+    							if(isOk == false) {
+    								data.status = oldValue; 
+    							}
+    						})
+    					},
+    					// 改 - 状态(0=禁用,1=启用)
+    					updateStatus: function(data) {
+    						// 声明变量记录是否成功 
+    						var isOk = false;	
+    						var oldValue = data.status;
+    						var ajax = sa.ajax('/level-one-server/TbPortNews/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>
+

+ 5 - 5
static/kj/upload-util.js

@@ -5,11 +5,11 @@
 
 // 相关配置 
 var upload_cfg = {
-    upload_image_url: sa.cfg.api_url + '/upload/image',	// 图片上传地址
-    upload_video_url: sa.cfg.api_url + '/upload/video',	// 视频上传地址
-    upload_audio_url: sa.cfg.api_url + '/upload/audio',	// 音频上传地址
-    upload_apk_url: sa.cfg.api_url + '/upload/apk',	// apk安装包上传地址
-    upload_file_url: sa.cfg.api_url + '/upload/file',	// file上传地址
+    upload_image_url: sa.cfg.api_url + '/sp-admin/upload/image',	// 图片上传地址
+    upload_video_url: sa.cfg.api_url + '/sp-admin/upload/video',	// 视频上传地址
+    upload_audio_url: sa.cfg.api_url + '/sp-admin/upload/audio',	// 音频上传地址
+    upload_apk_url: sa.cfg.api_url + '/sp-admin/upload/apk',	// apk安装包上传地址
+    upload_file_url: sa.cfg.api_url + '/sp-admin/upload/file',	// file上传地址
 }
 
 

文件差异内容过多而无法显示
+ 15 - 0
static/kj/wangEditor.min.js


文件差异内容过多而无法显示
+ 0 - 4718
static/kj/wangEditor.up.js


+ 1 - 1
static/sa.js

@@ -9,7 +9,7 @@ var sa = {
 (function(){
 	// 公司开发环境
 	var cfg_dev = {
-		api_url: 'http://192.168.88.34:8080',	// 所有ajax请求接口父地址
+		api_url: 'http://localhost:8080',	// 所有ajax请求接口父地址
 		web_url: 'http://www.baidu.com'		// 此项目前台地址 (此配置项非必须)
 	}
 	// 服务器测试环境

部分文件因为文件数量过多而无法显示