ソースを参照

新增进口申报单

linbl 1 年間 前
コミット
5be71e5be0

+ 46 - 3
sa-frame/menu-list-sp.js

@@ -1,10 +1,10 @@
-// 此处定义所有有关 sa-plus 的路由菜单 
-// 如需添加自定义菜单,请不要更改此文件,请在 menu-list.js 里添加 (没有这个文件就新建) 
+// 此处定义所有有关 sa-plus 的路由菜单
+// 如需添加自定义菜单,请不要更改此文件,请在 menu-list.js 里添加 (没有这个文件就新建)
 window.menuList = window.menuList || [];
 window.menuList.unshift({
 		id: 'bas',
 		name: '身份相关',
-		isShow: false, // 隐藏显示 
+		isShow: false, // 隐藏显示
 		info: '身份相关权限,不显示在菜单上',
 		childList: [{
 				id: '1',
@@ -425,6 +425,29 @@ window.menuList.unshift({
 					},
 				]
 			},
+			{
+				id: 'app-user',
+				icon: 'el-icon-user-solid',
+				name: 'app账号管理',
+				url: 'sa-view/app-user/app-user-list.html',
+				childList: [
+					{
+						id: 'app-user-add',
+						name: '添加',
+						isShow: false
+					},
+					{
+						id: 'app-user-edit',
+						name: '更新',
+						isShow: false
+					},
+					{
+						id: 'app-user-del',
+						name: '删除',
+						isShow: false
+					},
+				]
+			},
 		]
 	}, {
 		id: 'trade-manager',
@@ -545,6 +568,26 @@ window.menuList.unshift({
 						]
 					},
 					{
+						id: 'tb-import-order',
+						name: '进口申报单',
+						url: 'sa-view/tb-import-order/tb-import-order-list.html',
+						childList: [
+							{id:'tb-import-order-add',name:'订单添加',isShow:false},
+							{id:'tb-import-order-edit',name:'订单更新',isShow:false},
+							{id:'tb-import-order-del',name:'订单删除',isShow:false},
+						]
+					},
+					{
+						id: 'tb-import-goods',
+						name: '进口申报单商品管理',
+						url: 'sa-view/tb-import-goods/tb-import-goods-list.html',
+						childList: [
+							{id:'tb-import-goods-add',name:'订单添加',isShow:false},
+							{id:'tb-import-goods-edit',name:'订单更新',isShow:false},
+							{id:'tb-import-goods-del',name:'订单删除',isShow:false},
+						]
+					},
+					{
 						id: 'tb-orders',
 						name: '二级市场订单',
 						url: 'sa-view/tb-orders/tb-orders-list.html',

+ 22 - 44
sa-view/app-user/app-user-add.html

@@ -28,13 +28,8 @@
 					<el-form v-if="m">
 						<sa-item type="text" name="手机号码" v-model="m.phone" br></sa-item>
 						<sa-item type="text" name="姓名" v-model="m.name" br></sa-item>
-						<sa-item type="enum" name="类型" v-model="m.userType" :jv="{1: '边民', 2: '组长', 3: '商户', 4: '收购商', 5: '司机'}" jtype="3" br></sa-item>
-						<!-- <sa-item type="text" name="外联id,user_type=1=>边民ID;user_type=3=>商户ID" v-model="m.fkId" br></sa-item> -->
+						<sa-item type="enum" name="类型" v-model="m.userType" :jv="{1: '普通边民', 2: '边民组长', 3: '收购商', 4: '司机', 5: '外籍商户', 6: '合作社'}" jtype="3" br></sa-item>
 						<sa-item type="enum" name="状态" v-model="m.status" :jv="{0: '禁用', 1: '启用'}" jtype="3" br></sa-item>
-						<sa-item type="enum" name="是否认证" v-model="m.auth" :jv="{0: '未认证', 1: '已认证'}" jtype="3" br></sa-item>
-						<sa-item type="text" name="人证时间" v-model="m.authTime" br></sa-item>
-						<sa-item type="text" name="登录次数" v-model="m.loginCount" br></sa-item>
-						<sa-item type="text" name="上次登录时间" v-model="m.lastLoginTime" br></sa-item>
 						<sa-item name="" class="s-ok" br>
 							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
 						</sa-item>
@@ -48,59 +43,42 @@
 			</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,		// 实体对象 
+					id: sa.p('id', 0),		// 获取超链接中的id参数(0=添加,非0=修改)
+					m: null,		// 实体对象
 				},
 				methods: {
-					// 创建一个 默认Model 
+					// 创建一个 默认Model
 					createModel: function() {
 						return {
-							phone: '',		// 手机号码 
-							name: '',		// 姓名 
-							userType: '',		// 类型(1=边民,2=组长,3=商户,4=收购商,5=司机) 
-							fkId: '',		// 外联id,user_type=1=>边民ID;user_type=3=>商户ID 
-							status: '',		// 状态(0=禁用,1=启用) 
-							auth: '',		// 是否认证(0=未认证,1=已认证) 
-							authTime: '',		// 人证时间 
-							loginCount: '',		// 登录次数 
-							lastLoginTime: '',		// 上次登录时间 
+							phone: '',		// 手机号码
+							name: '',		// 姓名
+							userType: '',	// 类型{1=普通边民,2=边民组长,3=收购商,4=司机,5=外籍商户,6=合作社}
+							status: '',		// 状态(0=禁用,1=启用)
 						}
 					},
-					// 提交数据 
+					// 提交数据
 					ok: function(){
-						// 表单校验 
+						// 表单校验
 						let m = this.m;
-						// sa.checkNull(m.id, '请输入 [主键]');
 						sa.checkNull(m.phone, '请输入 [手机号码]');
 						sa.checkNull(m.name, '请输入 [姓名]');
 						sa.checkNull(m.userType, '请输入 [类型]');
-						sa.checkNull(m.fkId, '请输入 [外联id,user_type=1=>边民ID;user_type=3=>商户ID]');
 						sa.checkNull(m.status, '请输入 [状态]');
-						sa.checkNull(m.auth, '请输入 [是否认证]');
-						sa.checkNull(m.authTime, '请输入 [人证时间]');
-						sa.checkNull(m.loginCount, '请输入 [登录次数]');
-						sa.checkNull(m.lastLoginTime, '请输入 [上次登录时间]');
-						// sa.checkNull(m.createTime, '请输入 [创建时间]');
-						sa.checkNull(m.updateById, '请输入 [更新者id]');
-						sa.checkNull(m.updateByName, '请输入 [更新者名称]');
-						// sa.checkNull(m.updateTime, '请输入 [更新时间]');
-				
+
 						// 开始增加或修改
-						this.m.createTime = undefined;		// 不提交属性:创建时间
-						this.m.updateTime = undefined;		// 不提交属性:更新时间
 						if(this.id <= 0) {	// 添加
-							sa.ajax('/AppUser/add', m, function(res){
-								sa.alert('增加成功', this.clean); 
+							sa.ajax('/sp-admin/AppUser/add', m, function(res){
+								sa.alert('增加成功', this.clean);
 							}.bind(this));
 						} else {	// 修改
-							sa.ajax('/AppUser/update', m, function(res){
+							sa.ajax('/sp-admin/AppUser/update', m, function(res){
 								sa.alert('修改成功', this.clean);
 							}.bind(this));
 						}
@@ -111,16 +89,16 @@
 							this.m = this.createModel();
 						} else {
 							parent.app.f5();		// 刷新父页面列表
-							sa.closeCurrIframe();	// 关闭本页 
+							sa.closeCurrIframe();	// 关闭本页
 						}
 					}
 				},
 				mounted: function(){
-					// 初始化数据 
-					if(this.id <= 0) {	
+					// 初始化数据
+					if(this.id <= 0) {
 						this.m = this.createModel();
-					} else {	
-						sa.ajax('/AppUser/getById?id=' + this.id, function(res) {
+					} else {
+						sa.ajax('/sp-admin/AppUser/getById?id=' + this.id, function(res) {
 							this.m = res.data;
 							if(res.data == null) {
 								sa.alert('未能查找到 id=' + this.id + " 详细数据");
@@ -129,7 +107,7 @@
 					}
 				}
 			})
-			
+
 		</script>
 	</body>
-</html>
+</html>

+ 5 - 5
sa-view/app-user/app-user-info.html

@@ -33,7 +33,7 @@
 						</el-row>
 						<el-row :gutter="50">
 							<el-col :span="12">
-								<sa-info type="enum" name="类型" :value="m.userType" :jv="{1: '边民', 2: '组长', 3: '商户', 4: '收购商', 5: '司机'}" br></sa-info>
+								<sa-info type="enum" name="类型" :value="m.userType" :jv="{1: '普通边民', 2: '边民组长', 3: '收购商', 4: '司机', 5: '外籍商户', 6: '合作社'}" br></sa-info>
 							</el-col>
 							<el-col :span="12">
 								<sa-info type="enum" name="状态" :value="m.status" :jv="{0: '禁用', 1: '启用'}" br></sa-info>
@@ -55,7 +55,7 @@
 								<sa-info name="上次登录时间" br>{{m.lastLoginTime}}</sa-info>
 							</el-col>
 						</el-row>
-						
+
 						<!-- <sa-info name="外联id,user_type=1=>边民ID;user_type=3=>商户ID" br>{{m.fkId}}</sa-info> -->
 					</el-form>
 				</div>
@@ -73,13 +73,13 @@
 				},
 				el: '.vue-box',
 				data: {
-					id: sa.p('id', 0),	// 获取数据ID 
+					id: sa.p('id', 0),	// 获取数据ID
 					m: null
 				},
 				methods: {
 				},
 				mounted: function() {
-					sa.ajax('/AppUser/getById?id=' + this.id, function(res) {
+					sa.ajax('/sp-admin/AppUser/getById?id=' + this.id, function(res) {
 						this.m = res.data;
 						if(res.data == null) {
 							sa.alert('未能查找到 id=' + this.id + " 详细数据");
@@ -87,7 +87,7 @@
 					}.bind(this))
 				}
 			})
-			
+
 		</script>
 	</body>
 </html>

+ 22 - 32
sa-view/app-user/app-user-list.html

@@ -20,25 +20,22 @@
 				<!-- ------------- 检索参数 ------------- -->
 				<!-- <div class="c-title">检索参数</div> -->
 				<el-form ref="form" :model='p' @submit.native.prevent>
-					<sa-item type="text" name="手机号码" v-model="p.phone"></sa-item>
+					<sa-item type="text" name="手机号码" v-model="p.phone" width="100px"></sa-item>
 					<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 type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>
-				</el-form>
-				<div class="fast-btn">
 					<el-button v-if="sa.isAuth('app-user-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 name="手机号码" prop="phone" ></sa-td>
 					<sa-td name="姓名" prop="name" ></sa-td>
-					<sa-td name="类型" prop="userType" type="enum" :jv="{1: '边民', 2: '组长', 3: '商户', 4: '收购商', 5: '司机'}"></sa-td>
+					<sa-td name="类型" prop="userType" type="enum" :jv="{1: '普通边民', 2: '边民组长', 3: '收购商', 4: '司机', 5: '外籍商户', 6: '合作社'}"></sa-td>
 					<!-- <sa-td name="外联id,user_type=1=>边民ID;user_type=3=>商户ID" prop="fkId" ></sa-td> -->
 					<sa-td name="状态" prop="status" type="enum" :jv="{0: '禁用', 1: '启用'}"></sa-td>
 					<sa-td name="是否认证" prop="auth" type="enum" :jv="{0: '未认证', 1: '已认证'}"></sa-td>
-					<sa-td name="证时间" prop="authTime" ></sa-td>
+					<sa-td name="证时间" prop="authTime" ></sa-td>
 					<sa-td name="登录次数" prop="loginCount" ></sa-td>
 					<sa-td name="上次登录时间" prop="lastLoginTime" ></sa-td>
 					<el-table-column label="操作" fixed="right"  width="240px">
@@ -56,35 +53,28 @@
 		<script>
 			var app = new Vue({
 				components: {
-					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),  
-					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),		
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
 				},
 				el: '.vue-box',
 				data: {
-					p: { // 查询参数  
-						phone: '',		// 手机号码 
-						name: '',		// 姓名 
-						userType: '',		// 类型(1=边民,2=组长,3=商户,4=收购商,5=司机) 
-						fkId: '',		// 外联id,user_type=1=>边民ID;user_type=3=>商户ID 
-						status: '',		// 状态(0=禁用,1=启用) 
-						auth: '',		// 是否认证(0=未认证,1=已认证) 
-						authTime: '',		// 人证时间 
-						loginCount: '',		// 登录次数 
-						lastLoginTime: '',		// 上次登录时间 
-						pageNo: 1,		// 当前页 
-						pageSize: 10,	// 页大小 
-						sortType: 0		// 排序方式 
+					p: { // 查询参数
+						phone: '',		// 手机号码
+						name: '',		// 姓名
+						pageNo: 1,		// 当前页
+						pageSize: 10,	// 页大小
+						sortType: 0		// 排序方式
 					},
 					dataCount: 0,
-					dataList: [], // 数据集合 
+					dataList: [], // 数据集合
 				},
 				methods: {
 					// 刷新
 					f5: function() {
-						sa.ajax('/AppUser/getList', sa.removeNull(this.p), function(res) {
+						sa.ajax('/sp-admin/AppUser/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
-							this.dataCount = res.dataCount; // 数据总数 
-							sa.f5TableHeight();		// 刷新表格高度 
+							this.dataCount = res.dataCount; // 数据总数
+							sa.f5TableHeight();		// 刷新表格高度
 						}.bind(this));
 					},
 					// 查看
@@ -110,27 +100,27 @@
 					// 删除
 					del: function(data) {
 						sa.confirm('是否删除,此操作不可撤销', function() {
-							sa.ajax('/AppUser/delete?id=' + data.id, function(res) {
+							sa.ajax('/sp-admin/AppUser/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
+								sa.f5TableHeight();		// 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
 					// 批量删除
 					deleteByIds: function() {
-						// 获取选中元素的id列表 
+						// 获取选中元素的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('/AppUser/deleteByIds', {ids: ids.join(',')}, function(res) {
+							sa.ajax('/sp-admin/AppUser/deleteByIds', {ids: ids.join(',')}, function(res) {
 								sa.arrayDelete(this.dataList, selection);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
+								sa.f5TableHeight();		// 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},

+ 170 - 0
sa-view/tb-import-goods/tb-import-goods-add.html

@@ -0,0 +1,170 @@
+<!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.platSeqNo" br></sa-item>
+						<sa-item type="text" name="商品序号" v-model="m.gNo" br></sa-item>
+						<sa-item type="text" name="商品编码" v-model="m.codeTs" br></sa-item>
+						<sa-item type="text" name="商品名称" v-model="m.gName" br></sa-item>
+						<sa-item type="text" name="规格型号" v-model="m.gModel" br></sa-item>
+						<sa-item type="text" name="申报数量" v-model="m.gQty" br></sa-item>
+						<sa-item type="text" name="第一数量" v-model="m.qty1" br></sa-item>
+						<sa-item type="text" name="商品第二数量" v-model="m.qty2" br></sa-item>
+						<sa-item type="text" name="商品毛重" v-model="m.grossWt" br></sa-item>
+						<sa-item type="text" name="商品净重" v-model="m.netWt" br></sa-item>
+						<sa-item type="text" name="商品产销国" v-model="m.originCountry" br></sa-item>
+						<sa-item type="text" name="申报计量单位:参见计量单位参数表" v-model="m.gUnit" br></sa-item>
+						<sa-item type="text" name="商品第一计量单位" v-model="m.unit1" br></sa-item>
+						<sa-item type="text" name="商品第二计量单位" v-model="m.unit2" br></sa-item>
+						<sa-item type="text" name="商品申报单价" v-model="m.declPrice" br></sa-item>
+						<sa-item type="text" name="申报总价" v-model="m.declTotal" br></sa-item>
+						<sa-item type="text" name="储存条件:1常温2冷藏3冷冻" v-model="m.storageEnvm" br></sa-item>
+						<sa-item type="text" name="商品用途" v-model="m.useTo" br></sa-item>
+						<sa-item type="text" name="商铺编码" v-model="m.shopNo" br></sa-item>
+						<sa-item type="text" name="商铺名称" v-model="m.shopName" br></sa-item>
+						<sa-item type="text" name="检疫检疫代码" v-model="m.ciqCode" br></sa-item>
+						<sa-item type="text" name="检疫检疫名称" v-model="m.ciqName" br></sa-item>
+						<sa-item type="text" name="包装类型" v-model="m.wrapType" 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 {
+							platSeqNo: '',		// 业务编号
+							gNo: '',		// 商品序号
+							codeTs: '',		// 商品编码
+							gName: '',		// 商品名称
+							gModel: '',		// 规格型号
+							gQty: '',		// 申报数量
+							qty1: '',		// 第一数量
+							qty2: '',		// 商品第二数量
+							grossWt: '',		// 商品毛重
+							netWt: '',		// 商品净重
+							originCountry: '',		// 商品产销国
+							gUnit: '',		// 申报计量单位:参见计量单位参数表
+							unit1: '',		// 商品第一计量单位
+							unit2: '',		// 商品第二计量单位
+							declPrice: '',		// 商品申报单价
+							declTotal: '',		// 申报总价
+							storageEnvm: '',		// 储存条件:1常温 2冷藏 3冷冻
+							useTo: '',		// 商品用途
+							shopNo: '',		// 商铺编码
+							shopName: '',		// 商铺名称
+							ciqCode: '',		// 检疫检疫代码
+							ciqName: '',		// 检疫检疫名称
+							wrapType: '',		// 包装类型
+						}
+					},
+					// 提交数据
+					ok: function(){
+						// 表单校验
+						let m = this.m;
+						sa.checkNull(m.platSeqNo, '请输入 [业务编号]');
+						sa.checkNull(m.gNo, '请输入 [商品序号]');
+						sa.checkNull(m.codeTs, '请输入 [商品编码]');
+						sa.checkNull(m.gName, '请输入 [商品名称]');
+						sa.checkNull(m.gModel, '请输入 [规格型号]');
+						sa.checkNull(m.gQty, '请输入 [申报数量]');
+						sa.checkNull(m.qty1, '请输入 [第一数量]');
+						sa.checkNull(m.qty2, '请输入 [商品第二数量]');
+						sa.checkNull(m.grossWt, '请输入 [商品毛重]');
+						sa.checkNull(m.netWt, '请输入 [商品净重]');
+						sa.checkNull(m.originCountry, '请输入 [商品产销国]');
+						sa.checkNull(m.gUnit, '请输入 [申报计量单位:参见计量单位参数表]');
+						sa.checkNull(m.unit1, '请输入 [商品第一计量单位]');
+						sa.checkNull(m.unit2, '请输入 [商品第二计量单位]');
+						sa.checkNull(m.declPrice, '请输入 [商品申报单价]');
+						sa.checkNull(m.declTotal, '请输入 [申报总价]');
+						sa.checkNull(m.storageEnvm, '请输入 [储存条件:1常温2冷藏3冷冻]');
+						sa.checkNull(m.useTo, '请输入 [商品用途]');
+						sa.checkNull(m.shopNo, '请输入 [商铺编码]');
+						sa.checkNull(m.shopName, '请输入 [商铺名称]');
+						sa.checkNull(m.ciqCode, '请输入 [检疫检疫代码]');
+						sa.checkNull(m.ciqName, '请输入 [检疫检疫名称]');
+						sa.checkNull(m.wrapType, '请输入 [包装类型]');
+
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/level-one-server/TbImportGoods/add', m, function(res){
+								sa.alert('增加成功', this.clean);
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/level-one-server/TbImportGoods/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('/TbImportGoods/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+
+		</script>
+	</body>
+</html>

+ 82 - 0
sa-view/tb-import-goods/tb-import-goods-info.html

@@ -0,0 +1,82 @@
+<!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.platSeqNo}}</sa-info>
+						<sa-info name="商品序号" br>{{m.gNo}}</sa-info>
+						<sa-info name="商品编码" br>{{m.codeTs}}</sa-info>
+						<sa-info name="商品名称" br>{{m.gName}}</sa-info>
+						<sa-info name="规格型号" br>{{m.gModel}}</sa-info>
+						<sa-info name="申报数量" br>{{m.gQty}}</sa-info>
+						<sa-info name="第一数量" br>{{m.qty1}}</sa-info>
+						<sa-info name="商品第二数量" br>{{m.qty2}}</sa-info>
+						<sa-info name="商品毛重" br>{{m.grossWt}}</sa-info>
+						<sa-info name="商品净重" br>{{m.netWt}}</sa-info>
+						<sa-info name="商品产销国" br>{{m.originCountry}}</sa-info>
+						<sa-info name="申报计量单位:参见计量单位参数表" br>{{m.gUnit}}</sa-info>
+						<sa-info name="商品第一计量单位" br>{{m.unit1}}</sa-info>
+						<sa-info name="商品第二计量单位" br>{{m.unit2}}</sa-info>
+						<sa-info name="商品申报单价" br>{{m.declPrice}}</sa-info>
+						<sa-info name="申报总价" br>{{m.declTotal}}</sa-info>
+						<sa-info name="储存条件:1常温2冷藏3冷冻" br>{{m.storageEnvm}}</sa-info>
+						<sa-info name="商品用途" br>{{m.useTo}}</sa-info>
+						<sa-info name="商铺编码" br>{{m.shopNo}}</sa-info>
+						<sa-info name="商铺名称" br>{{m.shopName}}</sa-info>
+						<sa-info name="检疫检疫代码" br>{{m.ciqCode}}</sa-info>
+						<sa-info name="检疫检疫名称" br>{{m.ciqName}}</sa-info>
+						<sa-info name="包装类型" br>{{m.wrapType}}</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('/level-one-server/TbImportGoods/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+
+		</script>
+	</body>
+</html>

+ 146 - 0
sa-view/tb-import-goods/tb-import-goods-list.html

@@ -0,0 +1,146 @@
+<!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.platSeqNo" width="100px"></sa-item>
+					<sa-item type="text" name="商品名称" v-model="p.gName" width="100px"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList" >
+					<sa-td type="selection"></sa-td>
+					<sa-td name="业务编号" prop="platSeqNo" ></sa-td>
+					<sa-td name="商品序号" prop="gNo" ></sa-td>
+					<sa-td name="商品编码" prop="codeTs" ></sa-td>
+					<sa-td name="商品名称" prop="gName" ></sa-td>
+					<sa-td name="规格型号" prop="gModel" ></sa-td>
+					<sa-td name="申报数量" prop="gQty" ></sa-td>
+					<sa-td name="第一数量" prop="qty1" ></sa-td>
+					<sa-td name="商品第二数量" prop="qty2" ></sa-td>
+					<sa-td name="商品毛重" prop="grossWt" ></sa-td>
+					<sa-td name="商品净重" prop="netWt" ></sa-td>
+					<sa-td name="商品产销国" prop="originCountry" ></sa-td>
+					<sa-td name="申报计量单位:参见计量单位参数表" prop="gUnit" ></sa-td>
+					<sa-td name="商品第一计量单位" prop="unit1" ></sa-td>
+					<sa-td name="商品第二计量单位" prop="unit2" ></sa-td>
+					<sa-td name="商品申报单价" prop="declPrice" ></sa-td>
+					<sa-td name="申报总价" prop="declTotal" ></sa-td>
+					<sa-td name="储存条件:1常温2冷藏3冷冻" prop="storageEnvm" ></sa-td>
+					<sa-td name="商品用途" prop="useTo" ></sa-td>
+					<sa-td name="商铺编码" prop="shopNo" ></sa-td>
+					<sa-td name="商铺名称" prop="shopName" ></sa-td>
+					<sa-td name="检疫检疫代码" prop="ciqCode" ></sa-td>
+					<sa-td name="检疫检疫名称" prop="ciqName" ></sa-td>
+					<sa-td name="包装类型" prop="wrapType" ></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>
+						</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: { // 查询参数
+						platSeqNo: '',		// 业务编号
+						gName: '',		// 商品名称
+						pageNo: 1,		// 当前页
+						pageSize: 10,	// 页大小
+						sortType: 0		// 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbImportGoods/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-import-goods-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-import-goods-add.html?id=' + data.id, '1000px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-import-goods-add.html?id=-1', '1000px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-one-server/TbImportGoods/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/TbImportGoods/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>

+ 254 - 0
sa-view/tb-import-order/tb-import-order-add.html

@@ -0,0 +1,254 @@
+<!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.platSeqNo" br></sa-item>
+						<sa-item type="text" name="预录入编号" v-model="m.preNo" br></sa-item>
+						<sa-item type="text" name="关联进出境申报单编号" v-model="m.itrdclDeclareId" br></sa-item>
+						<sa-item type="text" name="进出口申报单编号变更、撤销类型时必填" v-model="m.declareId" br></sa-item>
+						<sa-item type="text" name="1-边民,2-商铺业主或其代理人,3-合作社代表,4-互助组代表" v-model="m.declareType" br></sa-item>
+						<sa-item type="text" name="申报人姓名" v-model="m.declareName" br></sa-item>
+						<sa-item type="text" name="申报人身份证号" v-model="m.ciphertextIdno" br></sa-item>
+						<sa-item type="text" name="申报人类别为2时商铺编码必填" v-model="m.shopNo" br></sa-item>
+						<sa-item type="text" name="申报人类别为2时商铺名称必填" v-model="m.shopName" br></sa-item>
+						<sa-item type="text" name="申报人类别为3、4时互助组/合作社备案编号" v-model="m.orgPutrecNo" br></sa-item>
+						<sa-item type="text" name="申报人类别为3、4时互助组/合租社名称" v-model="m.orgName" br></sa-item>
+						<sa-item type="text" name="申报人类别为4时边民合作社社会统一信用代码" v-model="m.orgScc" br></sa-item>
+						<sa-item type="text" name="车牌号" v-model="m.veNo" br></sa-item>
+						<sa-item type="text" name="运输工具类型:1-三轮车;2-货车;3-电动车;4-拖拉机;5-其他;6-轻型货车;7-微型货车;" v-model="m.vehicleType" br></sa-item>
+						<sa-item type="text" name="业务模式:进出口标志为进口时,01区内交易、02落地加工、03原装提离。进出口标志为出口时,04:直接出口,05:出口销售" v-model="m.btrnbBizModecd" br></sa-item>
+						<sa-item type="text" name="商品流向:进出口标志为进口时,必填,01-二次销售;02-生活自用;03-落地加工" v-model="m.gFlow" br></sa-item>
+						<sa-item type="text" name="进出口标志:I进口E出口" v-model="m.iEFlag" br></sa-item>
+						<sa-item type="text" name="监管场所编号" v-model="m.fieldCode" br></sa-item>
+						<sa-item type="text" name="监管场所名称" v-model="m.fieldName" br></sa-item>
+						<sa-item type="text" name="申报口岸代码" v-model="m.customsCode" br></sa-item>
+						<sa-item type="text" name="是否拼车:1-是、0-否" v-model="m.carPool" br></sa-item>
+						<sa-item type="text" name="备注" v-model="m.note" br></sa-item>
+						<sa-item type="text" name="总金额" v-model="m.sumAmt" br></sa-item>
+						<sa-item type="text" name="总毛重" v-model="m.sumGrossWt" br></sa-item>
+						<sa-item type="text" name="总净重" v-model="m.sumNetWt" br></sa-item>
+						<sa-item type="text" name="运输方式" v-model="m.trafMode" br></sa-item>
+						<sa-item type="text" name="币制" v-model="m.currCode" br></sa-item>
+						<sa-item type="text" name="件数,正整数" v-model="m.packNo" br></sa-item>
+						<sa-item type="text" name="贸易国别" v-model="m.tradeCountry" br></sa-item>
+						<sa-item type="text" name="落地加工企业名称" v-model="m.mName" br></sa-item>
+						<sa-item type="text" name="落地加工企业社会统一信用代码" v-model="m.mScc" br></sa-item>
+						<sa-item type="text" name="是否均摊:0否1是" v-model="m.shareFlag" br></sa-item>
+						<sa-item type="text" name="申报单类型" v-model="m.dclType" br></sa-item>
+						<sa-item type="text" name="改单/撤销原因,撤销时必填" v-model="m.mdfblRvkRsn" br></sa-item>
+						<sa-item type="text" name="边民备案编号标记:值为true,则borderList信息border_putrec_no字段必填;值不为true,则边民身份证号等信息必填" v-model="m.borderFlag" br></sa-item>
+						<sa-item type="text" name="数据状态" v-model="m.delStatus" br></sa-item>
+						<sa-item type="text" name="申报状态" v-model="m.declStatus" br></sa-item>
+						<sa-item type="text" name="申报时间" v-model="m.declTime" br></sa-item>
+						<sa-item type="text" name="回执时间" v-model="m.rcptTime" br></sa-item>
+						<sa-item type="text" name="审核备注" v-model="m.auditRemark" br></sa-item>
+						<sa-item type="text" name="运输工具代理企业代码" v-model="m.agentCode" br></sa-item>
+						<sa-item type="text" name="运输工具批次号" v-model="m.manifestId" br></sa-item>
+						<sa-item type="text" name="商铺备案编号" v-model="m.shopPutrecNo" br></sa-item>
+						<sa-item type="text" name="边民id" v-model="m.borderId" br></sa-item>
+						<sa-item type="text" name="" v-model="m.msgId" br></sa-item>
+						<sa-item type="text" name="企业编码" v-model="m.entCode" br></sa-item>
+						<sa-item type="text" name="企业名称" v-model="m.entName" br></sa-item>
+						<sa-item type="text" name="委托边民体信息对象" v-model="m.borderPeopleList" br></sa-item>
+						<sa-item type="text" name="委托边民额度体对象" v-model="m.borderPeopleLimitList" br></sa-item>
+						<sa-item type="text" name="申报单商品体信息对象" v-model="m.goodsList" 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: '',		// 主键
+							platSeqNo: '',		// 地方平台的内部业务编号,每次申请都是新编号
+							preNo: '',		// 预录入编号
+							itrdclDeclareId: '',		// 关联进出境申报单编号
+							declareId: '',		// 进出口申报单编号变更、撤销类型时必填
+							declareType: '',		// 1-边民,2-商铺业主或其代理人,3-合作社代表,4-互助组代表
+							declareName: '',		// 申报人姓名
+							ciphertextIdno: '',		// 申报人身份证号
+							shopNo: '',		// 申报人类别为 2时商铺编码必填
+							shopName: '',		// 申报人类别为 2时商铺名称必填
+							orgPutrecNo: '',		// 申报人类别为3、4 时互助组/合作社备案编号
+							orgName: '',		// 申报人类别为3、4 时互助组/合租社名称
+							orgScc: '',		// 申报人类别为 4时边民合作社社会统一信用代码
+							veNo: '',		// 车牌号
+							vehicleType: '',		// 运输工具类型:1-三轮车;2-货车;3-电动车;4-拖拉机;5-其他 ; 6- 轻 型 货车 ; 7- 微 型 货车;
+							btrnbBizModecd: '',		// 业务模式:进出口标志为进口时,01 区内交易、02 落地加工、03 原装提离。进出口标志为出口时,04:直接出口,05:出口销售
+							gFlow: '',		// 商品流向:进出口标志为进口时,必填,01- 二次销售;02- 生活自用;03- 落地加工
+							iEFlag: '',		// 进出口标志:I进口 E出口
+							fieldCode: '',		// 监管场所编号
+							fieldName: '',		// 监管场所名称
+							customsCode: '',		// 申报口岸代码
+							carPool: '',		// 是否拼车:1- 是、0-否
+							note: '',		// 备注
+							sumAmt: '',		// 总金额
+							sumGrossWt: '',		// 总毛重
+							sumNetWt: '',		// 总净重
+							trafMode: '',		// 运输方式
+							currCode: '',		// 币制
+							packNo: '',		// 件数,正整数
+							tradeCountry: '',		// 贸易国别
+							mName: '',		// 落地加工企业名称
+							mScc: '',		// 落地加工企业社会统一信用代码
+							shareFlag: '',		// 是否均摊:0否 1是
+							dclType: '',		// 申报单类型
+							mdfblRvkRsn: '',		// 改单/撤销原因,撤销时必填
+							borderFlag: '',		// 边民备案编号标记:值为true,则borderList信息border_putrec_no字段必填;值不为true,则边民身份证号等信息必填
+							delStatus: '',		// 数据状态
+							declStatus: '',		// 申报状态
+							declTime: '',		// 申报时间
+							rcptTime: '',		// 回执时间
+							auditRemark: '',		// 审核备注
+							agentCode: '',		// 运输工具代理企业代码
+							manifestId: '',		// 运输工具批次号
+							shopPutrecNo: '',		// 商铺备案编号
+							borderId: '',		// 边民id
+							msgId: '',		//
+							entCode: '',		// 企业编码
+							entName: '',		// 企业名称
+							borderPeopleList: '',		// 委托边民体信息对象
+							borderPeopleLimitList: '',		// 委托边民额度体对象
+							goodsList: '',		// 申报单商品体信息对象
+						}
+					},
+					// 提交数据
+					ok: function(){
+						// 表单校验
+						let m = this.m;
+						sa.checkNull(m.id, '请输入 [主键]');
+						sa.checkNull(m.platSeqNo, '请输入 [地方平台的内部业务编号,每次申请都是新编号]');
+						sa.checkNull(m.preNo, '请输入 [预录入编号]');
+						sa.checkNull(m.itrdclDeclareId, '请输入 [关联进出境申报单编号]');
+						sa.checkNull(m.declareId, '请输入 [进出口申报单编号变更、撤销类型时必填]');
+						sa.checkNull(m.declareType, '请输入 [1-边民,2-商铺业主或其代理人,3-合作社代表,4-互助组代表]');
+						sa.checkNull(m.declareName, '请输入 [申报人姓名]');
+						sa.checkNull(m.ciphertextIdno, '请输入 [申报人身份证号]');
+						sa.checkNull(m.shopNo, '请输入 [申报人类别为2时商铺编码必填]');
+						sa.checkNull(m.shopName, '请输入 [申报人类别为2时商铺名称必填]');
+						sa.checkNull(m.orgPutrecNo, '请输入 [申报人类别为3、4时互助组/合作社备案编号]');
+						sa.checkNull(m.orgName, '请输入 [申报人类别为3、4时互助组/合租社名称]');
+						sa.checkNull(m.orgScc, '请输入 [申报人类别为4时边民合作社社会统一信用代码]');
+						sa.checkNull(m.veNo, '请输入 [车牌号]');
+						sa.checkNull(m.vehicleType, '请输入 [运输工具类型:1-三轮车;2-货车;3-电动车;4-拖拉机;5-其他;6-轻型货车;7-微型货车;]');
+						sa.checkNull(m.btrnbBizModecd, '请输入 [业务模式:进出口标志为进口时,01区内交易、02落地加工、03原装提离。进出口标志为出口时,04:直接出口,05:出口销售]');
+						sa.checkNull(m.gFlow, '请输入 [商品流向:进出口标志为进口时,必填,01-二次销售;02-生活自用;03-落地加工]');
+						sa.checkNull(m.iEFlag, '请输入 [进出口标志:I进口E出口]');
+						sa.checkNull(m.fieldCode, '请输入 [监管场所编号]');
+						sa.checkNull(m.fieldName, '请输入 [监管场所名称]');
+						sa.checkNull(m.customsCode, '请输入 [申报口岸代码]');
+						sa.checkNull(m.carPool, '请输入 [是否拼车:1-是、0-否]');
+						sa.checkNull(m.note, '请输入 [备注]');
+						sa.checkNull(m.sumAmt, '请输入 [总金额]');
+						sa.checkNull(m.sumGrossWt, '请输入 [总毛重]');
+						sa.checkNull(m.sumNetWt, '请输入 [总净重]');
+						sa.checkNull(m.trafMode, '请输入 [运输方式]');
+						sa.checkNull(m.currCode, '请输入 [币制]');
+						sa.checkNull(m.packNo, '请输入 [件数,正整数]');
+						sa.checkNull(m.tradeCountry, '请输入 [贸易国别]');
+						sa.checkNull(m.mName, '请输入 [落地加工企业名称]');
+						sa.checkNull(m.mScc, '请输入 [落地加工企业社会统一信用代码]');
+						sa.checkNull(m.shareFlag, '请输入 [是否均摊:0否1是]');
+						sa.checkNull(m.dclType, '请输入 [申报单类型]');
+						sa.checkNull(m.mdfblRvkRsn, '请输入 [改单/撤销原因,撤销时必填]');
+						sa.checkNull(m.borderFlag, '请输入 [边民备案编号标记:值为true,则borderList信息border_putrec_no字段必填;值不为true,则边民身份证号等信息必填]');
+						sa.checkNull(m.delStatus, '请输入 [数据状态]');
+						sa.checkNull(m.declStatus, '请输入 [申报状态]');
+						sa.checkNull(m.declTime, '请输入 [申报时间]');
+						sa.checkNull(m.rcptTime, '请输入 [回执时间]');
+						sa.checkNull(m.auditRemark, '请输入 [审核备注]');
+						sa.checkNull(m.agentCode, '请输入 [运输工具代理企业代码]');
+						sa.checkNull(m.manifestId, '请输入 [运输工具批次号]');
+						sa.checkNull(m.shopPutrecNo, '请输入 [商铺备案编号]');
+						sa.checkNull(m.borderId, '请输入 [边民id]');
+						sa.checkNull(m.msgId, '请输入 []');
+						sa.checkNull(m.entCode, '请输入 [企业编码]');
+						sa.checkNull(m.entName, '请输入 [企业名称]');
+						sa.checkNull(m.borderPeopleList, '请输入 [委托边民体信息对象]');
+						sa.checkNull(m.borderPeopleLimitList, '请输入 [委托边民额度体对象]');
+						sa.checkNull(m.goodsList, '请输入 [申报单商品体信息对象]');
+
+						// 开始增加或修改
+						if(this.id <= 0) {	// 添加
+							sa.ajax('/level-one-server/TbImportOrder/add', m, function(res){
+								sa.alert('增加成功', this.clean);
+							}.bind(this));
+						} else {	// 修改
+							sa.ajax('/level-one-server/TbImportOrder/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/TbImportOrder/getById?id=' + this.id, function(res) {
+							this.m = res.data;
+							if(res.data == null) {
+								sa.alert('未能查找到 id=' + this.id + " 详细数据");
+							}
+						}.bind(this))
+					}
+				}
+			})
+
+		</script>
+	</body>
+</html>

+ 108 - 0
sa-view/tb-import-order/tb-import-order-info.html

@@ -0,0 +1,108 @@
+<!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.platSeqNo}}</sa-info>
+						<sa-info name="预录入编号" br>{{m.preNo}}</sa-info>
+						<sa-info name="关联进境申报单编号" br>{{m.itrdclDeclareId}}</sa-info>
+						<sa-info name="进出口申报单编号变更、撤销类型时必填" br>{{m.declareId}}</sa-info>
+						<sa-info type="enum" name="申报人类别" :value="m.declareType" :jv="{1: '边民', 2: '商铺业主或其代理人', 3: '合作社代表', 4: '互助组代表'}" br></sa-info>
+						<sa-info name="申报人姓名" br>{{m.declareName}}</sa-info>
+						<sa-info name="申报人身份证号" br>{{m.ciphertextIdno}}</sa-info>
+						<sa-info name="申报人类别为2时商铺编码必填" br>{{m.shopNo}}</sa-info>
+						<sa-info name="申报人类别为2时商铺名称必填" br>{{m.shopName}}</sa-info>
+						<sa-info name="申报人类别为3、4时互助组/合作社备案编号" br>{{m.orgPutrecNo}}</sa-info>
+						<sa-info name="申报人类别为3、4时互助组/合租社名称" br>{{m.orgName}}</sa-info>
+						<sa-info name="申报人类别为4时合作社社会统一信用代码" br>{{m.orgScc}}</sa-info>
+						<sa-info name="车牌号" br>{{m.veNo}}</sa-info>
+
+						<sa-info type="enum" name="运输工具类型" :value="m.vehicleType" :jv="{1: '三轮车', 2: '货车', 3: '电动车', 4: '拖拉机', 5: '其他', 6: '轻型货车', 7: '微型货车'}" br></sa-info>
+						<sa-info type="enum" name="业务模式" :value="m.btrnbBizModecd" :jv="{1: '区内交易', 2: '落地加工', 3: '原装提离', 4: '直接出口', 5: '出口销售'}" br></sa-info>
+						<sa-info type="enum" name="商品流向" :value="m.gFlow" :jv="{1: '二次销售', 2: '生活自用', 3: '落地加工'}" br></sa-info>
+						<sa-info type="enum" name="进出口标志" :value="m.iEFlag" :jv="{'I': '进口', 'E': '出口'}" br></sa-info>
+
+						<sa-info name="监管场所编号" br>{{m.fieldCode}}</sa-info>
+						<sa-info name="监管场所名称" br>{{m.fieldName}}</sa-info>
+						<sa-info name="申报口岸代码" br>{{m.customsCode}}</sa-info>
+						<sa-info type="enum" name="是否拼车" :value="m.carPool" :jv="{'1': '是', '0': '否'}" br></sa-info>
+						<sa-info name="备注" br>{{m.note}}</sa-info>
+						<sa-info name="总金额" br>{{m.sumAmt}}</sa-info>
+						<sa-info name="总毛重" br>{{m.sumGrossWt}}</sa-info>
+						<sa-info name="总净重" br>{{m.sumNetWt}}</sa-info>
+						<sa-info name="运输方式" br>{{m.trafMode}}</sa-info>
+						<sa-info name="币制" br>{{m.currCode}}</sa-info>
+						<sa-info name="件数" br>{{m.packNo}}</sa-info>
+						<sa-info name="贸易国别" br>{{m.tradeCountry}}</sa-info>
+						<sa-info name="落地加工企业名称" br>{{m.mName}}</sa-info>
+						<sa-info name="落地加工企业社会统一信用代码" br>{{m.mScc}}</sa-info>
+						<sa-info type="enum" name="是否均摊" :value="m.shareFlag" :jv="{'1': '是', '0': '否'}" br></sa-info>
+						<sa-info name="申报单类型" br>{{m.dclType}}</sa-info>
+						<sa-info name="改单/撤销原因,撤销时必填" br>{{m.mdfblRvkRsn}}</sa-info>
+						<sa-info name="边民备案编号标记" br>{{m.borderFlag}}</sa-info>
+						<sa-info name="数据状态" br>{{m.delStatus}}</sa-info>
+						<sa-info name="申报状态" br>{{m.declStatus}}</sa-info>
+						<sa-info name="申报时间" br>{{m.declTime}}</sa-info>
+						<sa-info name="回执时间" br>{{m.rcptTime}}</sa-info>
+						<sa-info name="审核备注" br>{{m.auditRemark}}</sa-info>
+						<sa-info name="运输工具代理企业代码" br>{{m.agentCode}}</sa-info>
+						<sa-info name="运输工具批次号" br>{{m.manifestId}}</sa-info>
+						<sa-info name="商铺备案编号" br>{{m.shopPutrecNo}}</sa-info>
+						<sa-info name="边民id" br>{{m.borderId}}</sa-info>
+						<sa-info name="" br>{{m.msgId}}</sa-info>
+						<sa-info name="企业编码" br>{{m.entCode}}</sa-info>
+						<sa-info name="企业名称" br>{{m.entName}}</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('/level-one-server/TbImportOrder/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if(res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+
+		</script>
+	</body>
+</html>

+ 146 - 0
sa-view/tb-import-order/tb-import-order-list.html

@@ -0,0 +1,146 @@
+<!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.platSeqNo" width="100px"></sa-item>
+					<sa-item type="text" name="车牌号" v-model="p.veNo" width="100px"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList" >
+					<sa-td type="selection"></sa-td>
+					<sa-td name="业务编号" prop="platSeqNo" ></sa-td>
+					<sa-td name="预录入编号" prop="preNo" ></sa-td>
+					<sa-td name="申报人姓名" prop="declareName" ></sa-td>
+					<sa-td name="申报人身份证号" prop="ciphertextIdno" ></sa-td>
+					<sa-td name="车牌号" prop="veNo" ></sa-td>
+					<sa-td name="监管场所名称" prop="fieldName" ></sa-td>
+					<sa-td name="总金额" prop="sumAmt" ></sa-td>
+					<sa-td name="总毛重" prop="sumGrossWt" ></sa-td>
+					<sa-td name="总净重" prop="sumNetWt" ></sa-td>
+					<sa-td name="运输方式" prop="trafMode" ></sa-td>
+					<sa-td name="币制" prop="currCode" ></sa-td>
+					<sa-td name="件数" prop="packNo" ></sa-td>
+					<sa-td name="贸易国别" prop="tradeCountry" ></sa-td>
+					<sa-td name="申报单类型" prop="dclType" ></sa-td>
+					<sa-td name="数据状态" prop="delStatus" ></sa-td>
+					<sa-td name="申报状态" prop="declStatus" ></sa-td>
+					<sa-td name="申报时间" prop="declTime" ></sa-td>
+					<sa-td name="回执时间" prop="rcptTime" ></sa-td>
+					<sa-td name="审核备注" prop="auditRemark" ></sa-td>
+					<sa-td name="商铺备案编号" prop="shopPutrecNo" ></sa-td>
+					<sa-td name="边民id" prop="borderId" ></sa-td>
+					<sa-td name="企业编码" prop="entCode" ></sa-td>
+					<sa-td name="企业名称" prop="entName" ></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>
+						</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: { // 查询参数
+						platSeqNo: '',		// 业务编号
+						veNo: '',		// 车牌号
+						pageNo: 1,		// 当前页
+						pageSize: 10,	// 页大小
+						sortType: 0		// 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbImportOrder/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-import-order-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-import-order-add.html?id=' + data.id, '1000px', '90%');
+					},
+					// 新增
+					add: function(data) {
+						sa.showIframe('新增数据', 'tb-import-order-add.html?id=-1', '1000px', '90%');
+					},
+					// 删除
+					del: function(data) {
+						sa.confirm('是否删除,此操作不可撤销', function() {
+							sa.ajax('/level-one-server/TbImportOrder/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/TbImportOrder/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>