mym 1 рік тому
батько
коміт
d8a7408e53

+ 1 - 1
login.html

@@ -179,7 +179,7 @@
 			// 你所有要改的代码全在这里   ↓↓↓↓↓
 
 			// 所有参考属性
-			var page_title = '你好,欢迎后台系统'; // 页面标题
+			var page_title = '你好,欢迎登录系统'; // 页面标题
 			var key = 'sa'; // 默认的账号
 			var password = '123456'; // 默认的password
 			var logo = 'sa-frame/admin-logo.png'; // logo地址,为空字符串则不显示

+ 29 - 30
sa-frame/com/sa-td.vue

@@ -1,60 +1,59 @@
 <template>
 	<!-- 自定义slot -->
-	<el-table-column v-if="$slots.default || $scopedSlots.default" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-if="$slots.default || $scopedSlots.default" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<slot :row="s.row" :index="s.index"></slot>
 		</template>
 	</el-table-column>
 	<!-- selection框 -->
-	<el-table-column v-else-if="type == 'selection'" type="selection" :width="width || '45px'" :min-width="minWidth"></el-table-column>
+	-<el-table-column align='center' v-else-if="type == 'selection'" type="selection" width="45px" :min-width="minWidth"></el-table-column>
 	<!-- 普通td -->
-	<el-table-column v-else-if="type == 'text'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'text'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<span v-if="s.row[prop]">{{s.row[prop]}}</span>
 			<span v-else>{{not}}</span>
 		</template>
 	</el-table-column>
-	<el-table-column v-else-if="type == 'index'" type="index" :label="name" :width="width || '60px'" :min-width="minWidth"></el-table-column>
+	-<el-table-column align='center' v-else-if="type == 'index'" type="index" :label="name" :width="width || '60px'" :min-width="minWidth"></el-table-column>
 	<!-- num 数字 -->
-	<el-table-column v-else-if="type == 'num'" :label="name" :width="width" :min-width="minWidth" class-name="tc-num">
+	-<el-table-column align='center' v-else-if="type == 'num'" :label="name" :width="width" :min-width="minWidth" class-name="tc-num">
 		<template slot-scope="s">
 			<span v-if="s.row[prop]">{{s.row[prop]}}</span>
 			<span v-else>{{not}}</span>
 		</template>
 	</el-table-column>
 	<!-- icon -->
-	<el-table-column v-else-if="type == 'icon'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'icon'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<i v-if="s.row[prop]" :class="s.row[prop]" style="font-size: 1.3em;"></i>
 			<span v-else>{{not}}</span>
 		</template>
 	</el-table-column>
 	<!-- img -->
-	<el-table-column v-else-if="type == 'img'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'img'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<img v-if="s.row[prop]" :src="s.row[prop]" class="td-img" @click="sa.showImage(s.row[prop], '400px', '400px')" />
 			<span v-else>{{not}}</span>
 		</template>
 	</el-table-column>
 	<!-- audio、video、file -->
-	<el-table-column v-else-if="type == 'audio' || type == 'video' || type == 'file'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'audio' || type == 'video' || type == 'file'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<el-link type="info" :href="s.row[prop]" target="_blank" v-if="!sa.isNull(s.row[prop])">预览</el-link>
 			<span v-else>{{not}}</span>
 		</template>
 	</el-table-column>
 	<!-- img-list -->
-	<el-table-column v-else-if="type == 'img-list'" :label="name" :width="width" :min-width="minWidth || '120px'" show-overflow-tooltip>
+	-<el-table-column align='center' v-else-if="type == 'img-list'" :label="name" :width="width" :min-width="minWidth || '120px'" show-overflow-tooltip>
 		<template slot-scope="s">
 			<div @click="sa.showImageList(value_to_arr(s.row[prop]))" style="cursor: pointer;" v-if="s.row[prop]">
 				<img :src="value_to_arr(s.row[prop])[0]" class="td-img" />
-				<span style="color: #999; padding-left: 0.5em;">点击预览</span>
 			</div>
 			<div v-else>{{not}}</div>
 		</template>
 	</el-table-column>
 	<!-- xxx-list -->
-	<el-table-column v-else-if="type == 'audio-list' || type == 'video-list' || type == 'file-list' || type == 'img-video-list'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'audio-list' || type == 'video-list' || type == 'file-list' || type == 'img-video-list'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<span v-if="s.row[prop]" style="color: #666;">共 {{value_to_arr(s.row[prop]).length}} 个</span>
 			<span v-else>{{not}}</span>
@@ -62,55 +61,55 @@
 	</el-table-column>
 	
 	<!-- textarea -->
-	<el-table-column v-else-if="type == 'textarea'" :label="name" :width="width" :min-width="minWidth" show-overflow-tooltip>
+	-<el-table-column align='center' v-else-if="type == 'textarea'" :label="name" :width="width" :min-width="minWidth" show-overflow-tooltip>
 		<template slot-scope="s">
 			<span v-if="s.row[prop]">{{sa.maxLength(s.row[prop], 100)}}</span>
 			<span v-else>{{not}}</span>
 		</template>
 	</el-table-column>
 	<!-- richtext 富文本 -->
-	<el-table-column v-else-if="type == 'richtext' || type == 'f'" :label="name" :width="width" :min-width="minWidth" show-overflow-tooltip>
+	-<el-table-column align='center' v-else-if="type == 'richtext' || type == 'f'" :label="name" :width="width" :min-width="minWidth" show-overflow-tooltip>
 		<template slot-scope="s">
 			<span>{{sa.maxLength(sa.text(s.row[prop]), 100)}}</span>
 		</template>
 	</el-table-column>
 	<!-- link -->
-	<el-table-column v-else-if="type == 'link'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'link'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<el-link type="primary" :href="s.row[prop]" target="_blank" v-if="!sa.isNull(s.row[prop])">{{s.row[prop]}}</el-link>
-			<div v-else></div>
+			<div v-else>-</div>
 		</template>
 	</el-table-column>
 	<!-- link-btn -->
-	<el-table-column v-else-if="type == 'link-btn'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'link-btn'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<el-link type="primary" @click="$emit('click', s)" v-if="!sa.isNull(s.row[prop])">{{s.row[prop]}}</el-link>
-			<div v-else></div>
+			<div v-else>-</div>
 		</template>
 	</el-table-column>
 	
 	<!-- 钱 money (单位 元) -->
-	<el-table-column v-else-if="type == 'money'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'money'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<b class="c-price" v-if="!sa.isNull(s.row[prop])">¥{{s.row[prop]}}</b>
-			<div v-else></div>
+			<div v-else>-</div>
 		</template>
 	</el-table-column>
 	<!-- 钱 price-f (单位 分) -->
-	<el-table-column v-else-if="type == 'money-f'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'money-f'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<b class="c-price" v-if="!sa.isNull(s.row[prop])">¥{{s.row[prop] / 100}}</b>
-			<div v-else></div>
+			<div v-else>-</div>
 		</template>
 	</el-table-column>
 	<!-- 显示枚举 j、num -->
-	<el-table-column v-else-if="type == 'enum' || type == 'j'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'enum' || type == 'j'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<b v-for="j in jvList" :key="j.key" :style="{color: j.color || '#606266'}" v-if="s.row[prop] == j.key">{{j.value}}</b>
 		</template>
 	</el-table-column>
 	<!-- switch 开关 -->
-	<el-table-column v-else-if="type == 'switch'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'switch'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<el-switch 
 				v-model="s.row[prop]" v-if='jvList.length >= 2' 
@@ -122,26 +121,26 @@
 		</template>
 	</el-table-column>
 	<!-- rate 评分 -->
-	<el-table-column v-else-if="type == 'rate'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'rate'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<el-rate :value="s.row[prop] <= 5 ? s.row[prop] : 5" show-text disabled v-if="!sa.isNull(s.row[prop])"></el-rate>
-			<div v-else></div>
+			<div v-else>-</div>
 		</template>
 	</el-table-column>
 	<!-- date 日期 -->
-	<el-table-column v-else-if="type == 'date'" :label="name" :width="width" :min-width="minWidth" class-name="tc-date">
+	-<el-table-column align='center' v-else-if="type == 'date'" :label="name" :width="width" :min-width="minWidth" class-name="tc-date">
 		<template slot-scope="s"><span>{{sa.forDate(s.row[prop]) || not}}</span></template>
 	</el-table-column>
 	<!-- datetime 日期时间 -->
-	<el-table-column v-else-if="type == 'datetime'" :label="name" :width="width" :min-width="minWidth" class-name="tc-date">
+	-<el-table-column align='center' v-else-if="type == 'datetime'" :label="name" :width="width" :min-width="minWidth" class-name="tc-date">
 		<template slot-scope="s"><span>{{sa.forDate(s.row[prop], 2) || not}}</span></template>
 	</el-table-column>
 	<!-- time 时间 -->
-	<el-table-column v-else-if="type == 'time'" :label="name" :width="width" :min-width="minWidth" class-name="tc-date">
+	-<el-table-column align='center' v-else-if="type == 'time'" :label="name" :width="width" :min-width="minWidth" class-name="tc-date">
 		<template slot-scope="s"><span>{{s.row[prop] || not}}</span></template>
 	</el-table-column>
 	<!-- 用户头像 -->
-	<el-table-column v-else-if="type == 'user-avatar'" :label="name" :width="width" :min-width="minWidth">
+	-<el-table-column align='center' v-else-if="type == 'user-avatar'" :label="name" :width="width" :min-width="minWidth">
 		<template slot-scope="s">
 			<img :src="s.row[prop.split(',')[1]]" class="td-img"
 				style="vertical-align: middle; margin-right: 5px;"
@@ -171,7 +170,7 @@
 			// type=menu时,值列表    -- 形如:{1: '正常[green]', 2: '禁用[red]'}  
 			jv: {default: ''},
 			// 空值时显示的文字
-			not: {default: ''}
+			not: {default: '-'}
 		},
 		data() {
 			return {

BIN
sa-frame/logo.png


+ 81 - 69
sa-frame/menu-list-sp.js

@@ -230,7 +230,7 @@ window.menuList.unshift({
 		{
 			id: 'tb-people',
 			icon: 'el-icon-user',
-			name: '边民-列表',
+			name: '边民管理',
 			url: 'sa-view/tb-people/tb-people-list.html',
 			childList: [{
 					id: 'tb-people-add',
@@ -249,10 +249,23 @@ window.menuList.unshift({
 				},
 			]
 		},
+		
+		{
+			id: 'tb-enterprise-judge',
+			icon: 'el-icon-s-check',
+			name: '商户审核',
+			url: 'sa-view/tb-enterprise/tb-enterprise-judge.html',
+			childList: [{
+					id: 'tb-enterprise-judge',
+					name: '商户审核',
+					isShow: false
+				},
+			]
+		},
 		{
 			id: 'tb-enterprise',
 			icon: 'el-icon-film',
-			name: '外籍商户管理',
+			name: '商户列表',
 			url: 'sa-view/tb-enterprise/tb-enterprise-list.html',
 			childList: [{
 					id: 'tb-enterprise-add',
@@ -293,8 +306,6 @@ window.menuList.unshift({
 				},
 			]
 		},
-
-
 	]
 
 }, {
@@ -347,70 +358,8 @@ window.menuList.unshift({
 			]
 		},
 	]
-}, {
-	id: 'transport-sys',
-	name: '货运管理',
-	parent: true,
-	icon: 'el-icon-s-grid',
-	childList: [{
-			id: 'tb-driver',
-			icon: 'el-icon-s-custom',
-			name: '司机管理',
-			url: 'sa-view/tb-driver/tb-driver-list.html',
-			childList: [{
-					id: 'tb-driver-add',
-					name: '司机添加',
-					isShow: true
-				},
-				{
-					id: 'tb-driver-edit',
-					name: '司机更新',
-					isShow: true
-				},
-				{
-					id: 'tb-driver-del',
-					name: '司机删除',
-					isShow: true
-				},
-			]
-		},
-		{
-			id: 'tb-vehicle',
-			icon: 'el-icon-s-check',
-			name: '车辆管理',
-			url: 'sa-view/tb-vehicle/tb-vehicle-list.html',
-			childList: [{
-					id: 'tb-vehicle-add',
-					name: '车辆添加',
-					isShow: true
-				},
-				{
-					id: 'tb-vehicle-edit',
-					name: '车辆更新',
-					isShow: true
-				},
-				{
-					id: 'tb-vehicle-del',
-					name: '车辆删除',
-					isShow: true
-				},
-			]
-		},
-		{
-			id: 'tb-orders',
-			name: '物流订单表',
-			icon: 'el-icon-folder-opened',
-			parent: true,
-			info: '物流订单表表数据的维护',
-			childList: [{
-				id: 'tb-orders',
-				name: '物流订单表-列表',
-				url: 'sa-view/tb-orders/tb-orders-list.html'
-
-			}, ]
-		},
-	]
-}, {
+}, 
+ {
 	id: 'trade-manager',
 	name: '贸易管理',
 	parent: true,
@@ -524,4 +473,67 @@ window.menuList.unshift({
 			url: 'sa-view/tb-order-after-sale/tb-order-after-sale-list.html',
 		},
 	]
-}, );
+}, {
+	id: 'transport-sys',
+	name: '货运管理',
+	parent: true,
+	icon: 'el-icon-s-grid',
+	childList: [{
+			id: 'tb-driver',
+			icon: 'el-icon-s-custom',
+			name: '司机管理',
+			url: 'sa-view/tb-driver/tb-driver-list.html',
+			childList: [{
+					id: 'tb-driver-add',
+					name: '司机添加',
+					isShow: true
+				},
+				{
+					id: 'tb-driver-edit',
+					name: '司机更新',
+					isShow: true
+				},
+				{
+					id: 'tb-driver-del',
+					name: '司机删除',
+					isShow: true
+				},
+			]
+		},
+		{
+			id: 'tb-vehicle',
+			icon: 'el-icon-s-check',
+			name: '车辆管理',
+			url: 'sa-view/tb-vehicle/tb-vehicle-list.html',
+			childList: [{
+					id: 'tb-vehicle-add',
+					name: '车辆添加',
+					isShow: true
+				},
+				{
+					id: 'tb-vehicle-edit',
+					name: '车辆更新',
+					isShow: true
+				},
+				{
+					id: 'tb-vehicle-del',
+					name: '车辆删除',
+					isShow: true
+				},
+			]
+		},
+		{
+			id: 'tb-orders',
+			name: '物流订单表',
+			icon: 'el-icon-folder-opened',
+			parent: true,
+			info: '物流订单表表数据的维护',
+			childList: [{
+				id: 'tb-orders',
+				name: '物流订单表-列表',
+				url: 'sa-view/tb-orders/tb-orders-list.html'
+
+			}, ]
+		},
+	]
+},);

+ 2 - 2
sa-frame/sa-code.js

@@ -22,8 +22,8 @@ sa.ajax('/sp-admin/AccAdmin/fristOpenAdmin', function(res) {
 	
 	// 配置 
 	sa_admin.title = "互市管理后台";
-	sa_admin.logo = 'sa-frame/admin-logo.png';    // 设置logo图标地址 
-	sa_admin.icon = "sa-frame/admin-logo.png";    // 设置logo图标地址 
+	sa_admin.logo = 'sa-frame/logo.png';    // 设置logo图标地址 
+	sa_admin.icon = "sa-frame/logo.png";    // 设置logo图标地址 
 	
 	
 	// 当前用户信息 

+ 179 - 135
sa-view/tb-enterprise/tb-enterprise-add.html

@@ -3,9 +3,9 @@
 	<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>
@@ -15,10 +15,15 @@
 		<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>
@@ -26,174 +31,213 @@
 			<!-- ------- 内容部分 ------- -->
 			<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">
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="text" name="名称" v-model="m.name" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="国别" v-model="m.nationality" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="enum" name="商户分类" v-model="m.type" :jv="{自营商铺: '自营商铺', 劳务商铺: '劳务商铺'}" jtype="3" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="法人" v-model="m.legalPerson" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="text" name="身份证号" v-model="m.idCard" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="手机号码" v-model="m.contact" br></sa-item>
-							</el-col>
-						</el-row>
+					<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.legalPerson"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>身份证号:</label>
+									<el-input size="mini" v-model="m.idCard"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>手机号码:</label>
+									<el-input size="mini" v-model="m.contact"></el-input>
+								</div>
 
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="text" name="税号" v-model="m.dutyParagraph" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="所在铺位ID" v-model="m.shopId" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="enum" name="所在铺位名称" v-model="m.shopName" :jv="{1: '100-2'}" jtype="4" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="enum" name="银行编号" v-model="m.bankNo" :jv="{CMB: '招商银行'}" jtype="4" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="text" name="银行名称" v-model="m.bankName" br></sa-item>
 							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="银行账号" v-model="m.bankAccount" br></sa-item>
+							<el-col span=12>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>银行:</label>
+									<el-select v-model="m.bankNo" placeholder="请选择" filterable size="mini">
+										<el-option label="请选择" :value="0" disabled></el-option>
+										<el-option v-for="(item,index) in bankList" :key="index" :label="item.bankName"
+											:value="item.bankCode"> </el-option>
+									</el-select>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>银行账号:</label>
+									<el-input size="mini" v-model="m.bankAccount"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>税号:</label>
+									<el-input size="mini" v-model="m.dutyParagraph"></el-input>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>地区:</label>
+									<el-cascader size="mini" placeholder="请选择" v-model="m.address_arry"
+										:options="options" :props={value:'id',label:'district'}></el-cascader>
+								</div>
+								<div class="c-item br">
+									<label class="c-label"><label style="color: red">*</label>详细地址:</label>
+									<el-input size="mini" v-model="m.detail"></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.businessLicense_arr">
+											<img :src="item" @click="sa.showImage(item, '500px', '400px')" />
+											<p>
+												<i class="el-icon-close" style="position: relative; top: 2px;"></i>
+												<el-link @click="sa.arrayDelete(m.businessLicense_arr, item)"
+													style="color: #999;">删除 </el-link>
+											</p>
+										</div>
+										<!-- 上传图集 -->
+										<div class="image-box-2 up_img"
+											@click="sa.uploadImageList(src => m.businessLicense_arr.push(src))">
+											<img src="../../static/img/up-icon.png">
+										</div>
+									</div>
+								</div>
 							</el-col>
 						</el-row>
-						
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="img-list" name="营业执照" v-model="m.businessLicense" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<sa-item name="" class="s-ok" br>
-							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
-						</sa-item>
+						<!-- date-create字段: m.createTime - 创建时间 -->
+						<div class="c-item br s-ok">
+							<label class="c-label"></label>
+							<el-button size="mini" type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
+						</div>
 					</el-form>
 				</div>
 			</div>
 			<!-- ------- 底部按钮 ------- -->
 			<div class="s-foot">
-				<el-button type="primary" @click="ok()">确定</el-button>
-				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+				<el-button size="mini" type="primary" @click="ok()">确定</el-button>
+				<el-button size="mini" @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,		// 实体对象
+					id: sa.p('id', 0), // 获取超链接中的id参数(0=添加,非0=修改)
+					m: null, // 实体对象
+					bankList: [],
+					options: [],
+					shopList: []
 				},
 				methods: {
+					getAddress() {
+						sa.ajax('/sp-admin/TbDistrict/getTreeData', function(resp) {
+							this.options = resp.data;
+						}.bind(this));
+					},
+					getBankList() {
+						sa.ajax('/sp-admin/TbBank/getAll', function(resp) {
+							this.bankList = resp.data;
+						}.bind(this));
+					},
 					// 创建一个 默认Model
 					createModel: function() {
 						return {
-							name: '',		// 名称
-							nationality: '',		// 国别
-							type: '',		// 商户分类(自营商铺=自营商铺,劳务商铺=劳务商铺)
-							legalPerson: '',		// 法人
-							idCard: '',		// 身份证号
-							contact: '',		// 手机号码
-							businessLicense: '',		// 营业执照
-							shopId: '',		// 所在铺位ID
-							shopName: '',		// 所在铺位名称(1=100-2)
-							bankNo: '',		// 银行编号(CMB= 招商银行)
-							bankName: '',		//
-							bankAccount: '',		// 银行账号
-							dutyParagraph: '',		// 税号
-							addressIds: '',		//
-							address: '',		//
-							agreement: '',		//
-							// judgeStatus: '',		//
-							judgeContent: '',		//
-							judgeTime: '',		//
-							registerTime: '',		//
-							personId: '',		//
-							deleteStatus: '',		// 删除状态(0=禁用,1=启用)
+							id: '', //
+							name: '', // 名称
+							legalPerson: '', // 法人
+							idCard: '', // 身份证号
+							contact: '', // 手机号码
+							businessLicense: '', // 营业执照
+							businessLicense_arr: [], // 营业执照 - 转数组
+							agreement: '',
+							shopId: '', // 所在铺位ID
+							shopName: '', // 所在铺位名称(1=100-2)
+							bankNo: '', // 银行编号(CMB= 招商银行)
+							bankAccount: '', // 银行账号
+							dutyParagraph: '', // 银行账号
+							status: '', // 是否可用(0=可用,1=不可用)
+							// createTime: '',		// 创建时间
+						}
+					},
+					// 表单验证
+					submitCheck: function() {
+						try {
+							var m = this.m; // 获取 m对象
+							let bankNo = m.bankNo;
+							let shopId = m.shopId;
+							sa.checkNull(m.name, '请输入 [商户名称]');
+							sa.checkNull(m.legalPerson, '请输入 [法人]');
+							sa.checkNull(m.idCard, '请输入 [身份证号]');
+							sa.checkPhone(m.contact, '请输入 [正确手机号码]');
+							sa.checkNull(m.businessLicense, '请上传 [营业执照]');
+							sa.checkEmptyArray(m.address_arry, '请选择 [地址]');
+							sa.checkNull(bankNo, '请选择 [银行]');
+							sa.checkNull(m.bankAccount, '请输入 [银行账号]');
+							sa.checkNull(m.detail,'请输入详细地址');
+							let bankList = this.bankList;
+							let bank = bankList.filter(bank => bank.bankCode === bankNo)[0];
+							this.m.bankName = bank.bankName;
+							return 'ok'; // 全部通过验证,返回ok 表示正确
+						} catch (e) {
+							sa.error(e.msg);
 						}
 					},
 					// 提交数据
-					ok: function(){
-						// 表单校验
-						let m = this.m;
-						sa.checkNull(m.name, '请输入 [名称]');
-						sa.checkNull(m.nationality, '请输入 [国别]');
-						sa.checkNull(m.type, '请输入 [商户分类]');
-						sa.checkNull(m.legalPerson, '请输入 [法人]');
-						sa.checkNull(m.idCard, '请输入 [身份证号]');
-						sa.checkNull(m.contact, '请输入 [手机号码]');
-						// sa.checkNull(m.businessLicense, '请上传 [营业执照]');
-						sa.checkNull(m.shopId, '请输入 [所在铺位ID]');
-						sa.checkNull(m.shopName, '请输入 [所在铺位名称]');
-						sa.checkNull(m.bankNo, '请输入 [银行编号]');
-						sa.checkNull(m.bankName, '请输入 [银行名称]');
-						sa.checkNull(m.bankAccount, '请输入 [银行账号]');
-						sa.checkNull(m.dutyParagraph, '请输入 [税号]');
-
+					ok: function() {
+						// 验证
+						this.m.businessLicense = this.m.businessLicense_arr.join(','); // 图片数组转字符串
+						if (this.submitCheck() != 'ok') {
+							return;
+						}
 						// 开始增加或修改
-						if(this.id <= 0) {	// 添加
-							sa.ajax('/level-one-server/TbEnterprise/add', m, function(res){
+						this.m.addressIds = this.m.address_arry.join(',');
+						if (this.id <= 0) { // 添加
+							this.m.status = "1";
+							sa.ajax('/level-one-server/TbEnterprise/add', this.m, function(res) {
 								sa.alert('增加成功', this.clean);
 							}.bind(this));
-						} else {	// 修改
-							sa.ajax('/level-one-server/TbEnterprise/update', m, function(res){
+						} else { // 修改
+							sa.ajax('/level-one-server/TbEnterprise/update', this.m, function(res) {
 								sa.alert('修改成功', this.clean);
 							}.bind(this));
 						}
 					},
+					uploadAgreement() {
+						let url = sa.cfg.api_url + '/upload-server/upload/document';
+						sa.uploadFn(url, src => {
+							this.m.agreement = src;
+							sa.ok2('上传成功');
+						});
+					},
 					// 添加/修改 完成后的动作
 					clean: function() {
-						if(this.id == 0) {
+						if (this.id == 0) {
+							this.m = this.createModel();
+						} else {
+							parent.app.f5(); // 刷新父页面列表
+							sa.closeCurrIframe(); // 关闭本页
+						}
+					},
+					initFn() {
+						// 初始化数据
+						if (this.id <= 0) {
 							this.m = this.createModel();
 						} else {
-							parent.app.f5();		// 刷新父页面列表
-							sa.closeCurrIframe();	// 关闭本页
+							sa.ajax('/level-one-server/TbEnterprise/getById?id=' + this.id, function(res) {
+								res.data.businessLicense_arr = sa.isNull(res.data.businessLicense) ? [] : res
+									.data.businessLicense.split(','); // 营业执照 字符串转数组
+								this.m = res.data;
+								if (res.data == null) {
+									sa.alert('未能查找到 id=' + this.id + " 详细数据");
+								}
+								this.m.address_arry = this.m.addressIds.split(',');
+							}.bind(this))
 						}
 					}
 				},
-				mounted: function(){
-					// 初始化数据
-					if(this.id <= 0) {
-						this.m = this.createModel();
-					} else {
-						sa.ajax('/level-one-server/TbEnterprise/getById?id=' + this.id, function(res) {
-							this.m = res.data;
-							if(res.data == null) {
-								sa.alert('未能查找到 id=' + this.id + " 详细数据");
-							}
-						}.bind(this))
-					}
+				mounted() {
+					this.getAddress();
+					this.initFn();
+					this.getBankList();
 				}
 			})
-
 		</script>
 	</body>
-</html>
+</html>

+ 119 - 0
sa-view/tb-enterprise/tb-enterprise-do-judge.html

@@ -0,0 +1,119 @@
+<!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="../../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 .c-label {
+				width: 8em;
+			}
+
+			.c-item .image-box-2 {
+				height: 90px;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+					<el-form v-if="m">
+						<el-row>
+							<el-col span="12">
+								<sa-info name="商户名称" br>{{m.name}}</sa-info>
+								<sa-info name="法人" br>{{m.legalPerson}}</sa-info>
+								<sa-info name="身份证号" br>{{m.idCard}}</sa-info>
+								<sa-info name="手机号码" br>{{m.contact}}</sa-info>
+								<sa-info v-if="m.judgeBy" name="审核时间" br>{{m.judgeTime}}</sa-info>
+								<sa-info v-if="m.judgeBy" name="审核结果" br>审核驳回</sa-info>
+							</el-col>
+							<el-col span="12">
+								<sa-info name="地址" br>{{m.address}}</sa-info>
+								<sa-info name="银行名称" br>{{m.bankName}}</sa-info>
+								<sa-info name="银行账号" br>{{m.bankAccount}}</sa-info>
+								<sa-info name="税号" br>{{m.dutyParagraph}}</sa-info>
+								<sa-info v-if="m.judgeBy" name="审核意见" br>{{m.judgeContent}}</sa-info>
+								<sa-info v-if="m.judgeBy" name="审核人" br>{{m.judgeBy}}</sa-info>
+							</el-col>
+							<sa-info type="img-list" name="营业执照" :value="m.businessLicense" br></sa-info>
+						</el-row>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot" v-if="sa.isAuth('tb-enterprise-judge')">
+				<el-button type="warning" @click="judgeBack">审核驳回</el-button>
+				<el-button type="success" @click="judgePass">审核通过</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: {
+					judgeBack() {
+						let id = this.m.id;
+						layer.prompt({
+							title: '输入审核意见'
+						}, function(content, index) {
+							layer.close(index);
+							sa.ajax('/level-one-server/TbEnterprise/audit', {
+								id: id,
+								judgeContent: content,
+								judgeStatus: 2
+							}, function(res) {
+								layer.msg('审核已驳回');
+								setTimeout(() => {
+									parent.app.f5(); // 刷新父页面列表
+									sa.closeCurrIframe(); // 关闭本页
+								}, 800)
+							})
+						});
+					},
+					judgePass() {
+						sa.ajax('/level-one-server/TbEnterprise/audit', {
+							id: this.m.id,
+							judgeContent: '审核通过',
+							judgeStatus: 1
+						}, function(res) {
+							layer.msg('审核通过');
+							setTimeout(() => {
+								parent.app.f5(); // 刷新父页面列表
+								sa.closeCurrIframe(); // 关闭本页
+							}, 800)
+						})
+					},
+				},
+				mounted: function() {
+					sa.ajax('/level-one-server/TbEnterprise/getById?id=' + this.id, function(res) {
+						this.m = res.data;
+						if (res.data == null) {
+							sa.alert('未能查找到 id=' + this.id + " 详细数据");
+						}
+					}.bind(this))
+				}
+			})
+		</script>
+	</body>
+</html>

+ 29 - 22
sa-view/tb-enterprise/tb-enterprise-info.html

@@ -3,7 +3,8 @@
 	<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">
@@ -16,8 +17,13 @@
 		<script src="../../static/kj/upload-util.js"></script>
 
 		<style type="text/css">
-			.c-panel .c-label{width: 8em;}
-			.c-item .image-box-2{height: 90px;}
+			.c-panel .c-label {
+				width: 8em;
+			}
+
+			.c-item .image-box-2 {
+				height: 90px;
+			}
 		</style>
 	</head>
 	<body>
@@ -26,19 +32,22 @@
 			<div class="s-body">
 				<div class="c-panel">
 					<el-form v-if="m">
-						<sa-info name="名称" br>{{m.name}}</sa-info>
-						<sa-info name="国别" br>{{m.nationality}}</sa-info>
-						<sa-info type="enum" name="商户分类" :value="m.type" :jv="{自营商铺: '自营商铺', 劳务商铺: '劳务商铺'}" br></sa-info>
-						<sa-info name="法人" br>{{m.legalPerson}}</sa-info>
-						<sa-info name="身份证号" br>{{m.idCard}}</sa-info>
-						<sa-info name="手机号码" br>{{m.contact}}</sa-info>
-						<sa-info type="img-list" name="营业执照" :value="m.businessLicense" br></sa-info>
-						<sa-info name="所在铺位ID" br>{{m.shopId}}</sa-info>
-						<sa-info type="enum" name="所在铺位名称" :value="m.shopName" :jv="{1: '100-2'}" br></sa-info>
-						<sa-info type="enum" name="银行编号" :value="m.bankNo" :jv="{CMB: '招商银行'}" br></sa-info>
-						<sa-info name="银行名称" br>{{m.bankName}}</sa-info>
-						<sa-info name="银行账号" br>{{m.bankAccount}}</sa-info>
-						<sa-info name="税号" br>{{m.dutyParagraph}}</sa-info>
+						<el-row>
+							<el-col span="12">
+								<sa-info name="商户名称" br>{{m.name}}</sa-info>
+								<sa-info name="法人" br>{{m.legalPerson}}</sa-info>
+								<sa-info name="身份证号" br>{{m.idCard}}</sa-info>
+								<sa-info name="手机号码" br>{{m.contact}}</sa-info>
+								<sa-info name="地区" br>{{m.address}}</sa-info>
+							</el-col>
+							<el-col span="12">
+								<sa-info name="银行名称" br>{{m.bankName}}</sa-info>
+								<sa-info name="银行账号" br>{{m.bankAccount}}</sa-info>
+								<sa-info name="税号" br>{{m.dutyParagraph}}</sa-info>
+								<sa-info name="详细地址" br>{{m.detail}}</sa-info>
+								<sa-info type="img-list" name="营业执照" :value="m.businessLicense" br></sa-info>
+							</el-col>
+						</el-row>
 					</el-form>
 				</div>
 			</div>
@@ -55,21 +64,19 @@
 				},
 				el: '.vue-box',
 				data: {
-					id: sa.p('id', 0),	// 获取数据ID
+					id: sa.p('id', 0), // 获取数据ID
 					m: null
 				},
-				methods: {
-				},
+				methods: {},
 				mounted: function() {
 					sa.ajax('/level-one-server/TbEnterprise/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>

+ 137 - 0
sa-view/tb-enterprise/tb-enterprise-judge.html

@@ -0,0 +1,137 @@
+<!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>
+
+	</head>
+	<body>
+		<div class="vue-box" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 检索参数 ------------- -->
+				<!-- <div class="c-title">检索参数</div> -->
+				<el-form ref="form" :model='p' @submit.native.prevent>
+					<sa-item type="text" name="名称" v-model="p.name" :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-button v-if="sa.isAuth('tb-enterprise-judge')" class="c-btn" type="success"
+						icon="el-icon-s-check" @click="judgeBySelect">批量审核</el-button>
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					<sa-td type="selection" name="序号"></sa-td>
+					<sa-td name="名称" prop="name"></sa-td>
+					<sa-td name="税号" prop="dutyParagraph"></sa-td>
+					<sa-td name="法人" prop="legalPerson"></sa-td>
+					<sa-td name="手机号码" width="100px" prop="contact"></sa-td>
+					<sa-td name="营业执照" prop="businessLicense" type="img-list"></sa-td>
+					<sa-td name="审核状态" prop="judgeStatus" type="enum" :jv="{0: '未审核', 2: '审核驳回[red]'}"></sa-td>
+					<sa-td name="审核时间" width="160px" prop="judgeTime"></sa-td>
+					<el-table-column label="操作" fixed="right" width="100px">
+						<template slot-scope="s">
+							<el-button v-if="sa.isAuth('tb-enterprise-judge')" class="c-btn" type="success"
+								icon="el-icon-s-check" @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>
+			<el-dialog title="批量审核" :visible.sync="modal.visible" width="400px">
+				<el-form>
+					<sa-item type="text" name="审核意见" v-model="modal.form.judgeContent" br></sa-item>
+					<sa-item type="enum" name="审核结果" v-model="modal.form.judgeStatus" :jv="{1: '通过', 2: '驳回'}" jtype="3" br></sa-item>
+				</el-form>
+				<span slot="footer" class="dialog-footer">
+					<el-button @click="modal.visible = false">取 消</el-button>
+					<el-button type="primary" @click="doJudge">确 定</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: {
+					modal: {
+						visible: false,
+						form: {
+							ids: '',
+							judgeStatus: 1,
+							judgeContent: '',
+						}
+					},
+					p: { // 查询参数
+						id: '', //
+						name: '', // 名称
+						nationality: '', // 国别
+						judgeList: 1,
+						pageNo: 1, // 当前页
+						pageSize: 20, // 页大小
+						sortType: 0 // 排序方式
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					doJudge() {
+						let form=this.modal.form;
+						if(!form.judgeContent){
+							return sa.msg('请输入审核意见');
+						}
+						sa.ajax('/level-one-server/TbEnterprise/auditBatch', form, function(res) {
+							sa.alert('审核成功');
+							this.modal.visible=false;
+							this.f5()
+						}.bind(this));
+					},
+					// 刷新
+					f5: function() {
+						sa.ajax('/level-one-server/TbEnterprise/getList', sa.removeNull(this.p), function(res) {
+							this.dataList = res.data; // 数据
+							this.dataCount = res.dataCount; // 数据总数
+							sa.f5TableHeight(); // 刷新表格高度
+						}.bind(this));
+					},
+					judgeBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if (selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.modal.form.ids = selection.map(obj => obj.id).join(',');
+						this.modal.visible = true;
+					},
+					// 查看
+					get: function(data) {
+						sa.showIframe('数据详情', 'tb-enterprise-do-judge.html?id=' + data.id, '850px', '80%');
+					},
+					// 修改
+					update: function(data) {
+						sa.showIframe('修改数据', 'tb-enterprise-add.html?id=' + data.id, '1000px', '90%');
+					},
+
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 42 - 67
sa-view/tb-enterprise/tb-enterprise-list.html

@@ -3,7 +3,8 @@
 	<head>
 		<title>商家-列表</title>
 		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
 		<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
@@ -22,42 +23,39 @@
 				<!-- ------------- 检索参数 ------------- -->
 				<!-- <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="enum" name="商户分类" v-model="p.type"
-						:jv="{自营商铺: '自营商铺', 劳务商铺: '劳务商铺'}" jtype="3" def="不限"></sa-item>
+					<sa-item type="text" name="名称" v-model="p.name" :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-button v-if="sa.isAuth('tb-enterprise-add')" size="mini" type="primary"
+						@click="add()">新增</el-button>
+
 				</el-form>
-				<div class="fast-btn">
-					<el-button v-if="sa.isAuth('tb-enterprise-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="name" ></sa-td>
-					<sa-td name="国别" prop="nationality" ></sa-td>
-					<sa-td name="商户分类" prop="type" type="enum" :jv="{自营商铺: '自营商铺', 劳务商铺: '劳务商铺'}"></sa-td>
-					<sa-td name="法人" prop="legalPerson" ></sa-td>
-					<sa-td name="身份证号" prop="idCard" ></sa-td>
-					<sa-td name="手机号码" width="100px" prop="contact" ></sa-td>
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					<sa-td type="index" name="序号"></sa-td>
+					<sa-td name="名称" prop="name"></sa-td>
+					<sa-td name="税号" prop="dutyParagraph"></sa-td>
+					<sa-td name="法人" prop="legalPerson"></sa-td>
+					<sa-td name="手机号码" width="100px" prop="contact"></sa-td>
 					<sa-td name="营业执照" prop="businessLicense" type="img-list"></sa-td>
-					<sa-td name="所在铺位ID" prop="shopId" ></sa-td>
-					<sa-td name="所在铺位名称" width="120px" prop="shopName" type="enum" :jv="{1: '100-2'}"></sa-td>
-					<sa-td name="银行编号" width="120px" prop="bankNo" type="enum" :jv="{CMB: '招商银行'}"></sa-td>
-					<sa-td name="银行名称" prop="bankName" ></sa-td>
-					<sa-td name="银行账号" prop="bankAccount" ></sa-td>
-					<sa-td name="税号" prop="dutyParagraph" ></sa-td>
-					<el-table-column label="操作" fixed="right"  width="240px">
+					<sa-td name="银行名称" prop="bankName"></sa-td>
+					<sa-td name="银行账号" prop="bankAccount"></sa-td>
+					<sa-td name="审核时间" width="160px" prop="judgeTime"></sa-td>
+					<sa-td name="审核人" width="130px" prop="judgeBy"></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-enterprise-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button v-if="sa.isAuth('tb-enterprise-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 v-if="sa.isAuth('tb-enterprise-edit')" class="c-btn" type="primary"
+								icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-enterprise-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>
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount"
+					@change="f5()"></sa-item>
 			</div>
 		</div>
 		<script>
@@ -69,22 +67,13 @@
 				el: '.vue-box',
 				data: {
 					p: { // 查询参数
-						id: '',		//
-						name: '',		// 名称
-						nationality: '',		// 国别
-						type: '',		// 商户分类(自营商铺=自营商铺,劳务商铺=劳务商铺)
-						legalPerson: '',		// 法人
-						idCard: '',		// 身份证号
-						contact: '',		// 手机号码
-						shopId: '',		// 所在铺位ID
-						shopName: '',		// 所在铺位名称(1=100-2)
-						bankNo: '',		// 银行编号(CMB= 招商银行)
-						bankName: '',		// 银行名称
-						bankAccount: '',		// 银行账号
-						dutyParagraph: '',		// 税号
-						pageNo: 1,		// 当前页
-						pageSize: 10,	// 页大小
-						sortType: 0		// 排序方式
+						id: '', //
+						name: '', // 名称
+						legalPerson: '', // 法人
+						judgeStatus: 1,
+						pageNo: 1, // 当前页
+						pageSize: 20, // 页大小
+						sortType: 0 // 排序方式
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合
@@ -95,17 +84,17 @@
 						sa.ajax('/level-one-server/TbEnterprise/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数
-							sa.f5TableHeight();		// 刷新表格高度
+							sa.f5TableHeight(); // 刷新表格高度
 						}.bind(this));
 					},
 					// 查看
 					get: function(data) {
-						sa.showIframe('数据详情', 'tb-enterprise-info.html?id=' + data.id, '1050px', '90%');
+						sa.showIframe('数据详情', 'tb-enterprise-info.html?id=' + data.id, '950px', '70%');
 					},
 					// 查看 - 根据选中的
 					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]);
@@ -124,24 +113,7 @@
 							sa.ajax('/level-one-server/TbEnterprise/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/TbEnterprise/deleteByIds', {ids: ids.join(',')}, function(res) {
-								sa.arrayDelete(this.dataList, selection);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
+								sa.f5TableHeight(); // 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
@@ -150,13 +122,16 @@
 						// 声明变量记录是否成功
 						var isOk = false;
 						var oldValue = data.deleteStatus;
-						var ajax = sa.ajax('/level-one-server/TbEnterprise/updateDeleteStatus', {id: data.id, value: data.deleteStatus}, function(res) {
+						var ajax = sa.ajax('/level-one-server/TbEnterprise/updateDeleteStatus', {
+							id: data.id,
+							value: data.deleteStatus
+						}, function(res) {
 							isOk = true;
 							sa.msg('修改成功');
 						}.bind(this));
 						// 如果未能修改成功, 则回滚
 						$.when(ajax).done(function() {
-							if(isOk == false) {
+							if (isOk == false) {
 								data.status = oldValue;
 							}
 						})
@@ -169,4 +144,4 @@
 			})
 		</script>
 	</body>
-</html>
+</html>

+ 0 - 6
sa-view/tb-group/tb-group-list.html

@@ -40,14 +40,8 @@
 				<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="组长ID" prop="leaderId" ></sa-td>
 					<sa-td name="组长名" prop="leaderName" ></sa-td>
 					<sa-td name="组长电话" prop="leaderPhone" ></sa-td>
-					<sa-td name="边民证编号" prop="code" ></sa-td>
-					<sa-td name="地址" prop="address" ></sa-td>
-					<sa-td name="详细地址" prop="detailAddress" ></sa-td>
-					<sa-td name="当天该组剩余额度" prop="leftPrice" ></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="280px">
 						<template slot-scope="s">
 							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>

+ 130 - 99
sa-view/tb-shop/tb-shop-add.html

@@ -1,11 +1,12 @@
 <!DOCTYPE html>
 <html>
 	<head>
-		<title>铺位-添加/修改</title>
+		<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,15 @@
 		<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,133 +30,159 @@
 			<!-- ------- 内容部分 ------- -->
 			<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">
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="text" name="名称" v-model="m.name" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="编号" v-model="m.no" br></sa-item>
-							</el-col>
-						</el-row>
-
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="enum" name="区域" v-model="m.area" :jv="{A区: 'A区', B区: 'B区', C区: 'C区'}" jtype="3" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="enum" name="是否可用" v-model="m.status" :jv="{0: '否', 1: '是'}" jtype="3" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-item type="text" name="备注" v-model="m.remark" br></sa-item>
-							</el-col>
-							<el-col :span="12">
-								<sa-item type="text" name="商家名称" v-model="m.enterpriseName" br></sa-item>
-							</el-col>
-						</el-row>
-						
-						<sa-item name="" class="s-ok" br>
-							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
-						</sa-item>
+					<el-form size="mini" v-if="m">
+						<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.no"></el-input>
+						</div>
+						<div class="c-item br">
+							<label class="c-label">所属互市区:</label>
+							<el-select v-model="m.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 br">
+							<label class="c-label">入住商户:</label>
+							<el-select v-model="m.enterpriseId" filterable size="mini" placeholder="请选择">
+							    <el-option
+							      v-for="item in enterpriseList"
+							      :key="item.id"
+							      :label="item.name"
+							      :value="item.id">
+							    </el-option>
+							  </el-select>
+						</div>
+						<div class="c-item br">
+							<label class="c-label" style="vertical-align: top;">备注:</label>
+							<div style="display: inline-block;">
+								<el-input size="mini" v-model="m.remark" type="textarea"
+									:autosize="{ minRows: 3, maxRows: 5}"></el-input>
+							</div>
+						</div>
+						<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 type="primary" @click="ok()">确定</el-button>
-				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+				<el-button size="mini" type="primary" @click="ok()">确定</el-button>
+				<el-button size="mini" @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,		// 实体对象
+					id: sa.p('id', 0), // 获取超链接中的id参数(0=添加,非0=修改)
+					m: null, // 实体对象
+					options: [],
+					tradeAreaList: [],
+					enterpriseList:[]
 				},
 				methods: {
+					getEnterpriseList(){
+						sa.ajax('/level-one-server/TbEnterprise/getAll', function(resp) {
+							this.enterpriseList = resp.data;
+						}.bind(this));
+					},
+					getTradeArea() {
+						sa.ajax('/level-one-server/TbTradeArea/getList', {
+							pageSize: 100,
+							pageNo: 1
+						}, function(resp) {
+							let list = resp.data;
+							if (list.length == 1) {
+								this.m.tradeAreaId = list[0].id;
+							}
+							this.tradeAreaList = list;
+						}.bind(this));
+					},
 					// 创建一个 默认Model
 					createModel: function() {
 						return {
-							enterpriseId: '',		//
-							tradeAreaId: '',		//
-							tradeAreaName: '',		//
-							address: '',		//
-							addressIds: '',		//
-							name: '',		// 名称
-							no: '',		// 编号
-							area: '',		// 区域(A区=A区,B区=B区,C区=C区)
-							status: '',		// 是否可用(0=否,1=是)
-							remark: '',		//
-							enterpriseName: '',		//
-							// deleteStatus: '',		// 删除状态
+							id: '', // 主键
+							name: '', // 名称
+							no: '', // 编号
+							tradeAreaId: '', // 编号
+							address: '', // 编号
+							address_arry: [], // 编号
+							enterpriseId: '', //
+							status: '1', // 是否可用(0=否,1=是)
+							remark: '', //
+						}
+					},
+					// 表单验证
+					submitCheck: function() {
+						try {
+							var m = this.m; // 获取 m对象
+							let tradeAreaId=m.tradeAreaId;
+							sa.checkNull(m.name, '请输入 [名称]');
+							sa.checkNull(m.no, '请输入 [编号]');
+							sa.checkNull(m.tradeAreaId, '请选择 [所在互市区]');
+							let tradeAreaList=this.tradeAreaList;
+							m.tradeAreaName=tradeAreaList.filter(obj=>obj.id=tradeAreaId).pop().name;
+							return 'ok'; // 全部通过验证,返回ok 表示正确
+						} catch (e) {
+							sa.error(e);
 						}
 					},
 					// 提交数据
-					ok: function(){
-						// 表单校验
-						let m = this.m;
-						// sa.checkNull(m.id, '请输入 [主键]');
-						// sa.checkNull(m.enterpriseId, '请输入 []');;
-						// sa.checkNull(m.tradeAreaId, '请输入 []');
-						// sa.checkNull(m.tradeAreaName, '请输入 []');
-						// sa.checkNull(m.address, '请输入 []');
-						// sa.checkNull(m.addressIds, '请输入 []');
-						sa.checkNull(m.name, '请输入 [名称]');
-						sa.checkNull(m.no, '请输入 [编号]');
-						sa.checkNull(m.area, '请输入 [区域]');
-						sa.checkNull(m.status, '请输入 [是否可用]');
-						sa.checkNull(m.remark, '请输入 [备注]');
-						sa.checkNull(m.enterpriseName, '请输入 [商家名称]');
-						// sa.checkNull(m.deleteStatus, '请输入 [删除状态]');
-
+					ok: function() {
+						// 验证
+						if (this.submitCheck() != 'ok') {
+							return;
+						}
 						// 开始增加或修改
-						this.m.createTime = undefined;		// 不提交属性:创建时间
-						this.m.updateTime = undefined;		// 不提交属性:更新时间
-						if(this.id <= 0) {	// 添加
-							sa.ajax('/level-one-server/TbShop/add', m, function(res){
+						if (this.id <= 0) { // 添加
+							sa.ajax('/level-one-server/TbShop/add', this.m, function(res) {
 								sa.alert('增加成功', this.clean);
 							}.bind(this));
-						} else {	// 修改
-							sa.ajax('/level-one-server/TbShop/update', m, function(res){
+						} else { // 修改
+							sa.ajax('/level-one-server/TbShop/update', this.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(); // 关闭本页
+						}
+					},
+					initFn() {
+						// 初始化数据
+						if (this.id <= 0) {
+							this.m = this.createModel();
+						} else {
+							sa.ajax('/level-one-server/TbShop/getById?id=' + this.id, function(res) {
+								this.m = res.data;
+								if (res.data == null) {
+									sa.alert('未能查找到 id=' + this.id + " 详细数据");
+								}
+							}.bind(this))
 						}
 					}
 				},
-				mounted: function(){
-					// 初始化数据
-					if(this.id <= 0) {
-						this.m = this.createModel();
-					} else {
-						sa.ajax('/level-one-server/TbShop/getById?id=' + this.id, function(res) {
-							this.m = res.data;
-							if(res.data == null) {
-								sa.alert('未能查找到 id=' + this.id + " 详细数据");
-							}
-						}.bind(this))
-					}
+				mounted: function() {
+					this.initFn();
+					this.getEnterpriseList();
+					this.getTradeArea();
 				}
 			})
-
 		</script>
 	</body>
 </html>

+ 33 - 34
sa-view/tb-shop/tb-shop-info.html

@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <html>
 	<head>
-		<title>铺位-详情</title>
+		<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/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,8 +13,6 @@
 		<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 .c-label{width: 8em;}
 		</style>
@@ -24,48 +22,49 @@
 			<!-- ------- 内容部分 ------- -->
 			<div class="s-body">
 				<div class="c-panel">
-					<el-form v-if="m">
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-info name="名称" br>{{m.name}}</sa-info>
-							</el-col>
-							<el-col :span="12">
-								<sa-info name="编号" br>{{m.no}}</sa-info>
-							</el-col>
-						</el-row>
-
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-info type="enum" name="区域" :value="m.area" :jv="{A区: 'A区', B区: 'B区', C区: 'C区'}" 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.no}}</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">区域:</label>
+										<span>{{m.address}}</span>
+								</div>
 							</el-col>
-							<el-col :span="12">
-								<sa-info type="enum" name="是否可用" :value="m.status" :jv="{0: '否', 1: '是'}" br></sa-info>
+							<el-col span="12">
+								
+								<div class="c-item br">
+									<label class="c-label">互市区:</label>
+										<span>{{m.tradeAreaName}}</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">入住商户:</label>
+										<span>{{m.enterpriseName}}</span>
+								</div>
+								<div class="c-item br">
+									<label class="c-label">备注:</label>
+									<span>{{m.remark}}</span>
+								</div>
 							</el-col>
 						</el-row>
-
-						<el-row :gutter="50">
-							<el-col :span="12">
-								<sa-info name="备注" br>{{m.remark}}</sa-info>
-							</el-col>
-							<el-col :span="12">
-								<sa-info name="商家名称" br>{{m.enterpriseName}}</sa-info>
-							</el-col>
-						</el-row>
-					
 					</el-form>
 				</div>
 			</div>
 			<!-- ------- 底部按钮 ------- -->
 			<div class="s-foot">
-				<el-button type="success" @click="sa.closeCurrIframe()">确定</el-button>
-				<el-button @click="sa.closeCurrIframe()">取消</el-button>
+				<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

+ 92 - 59
sa-view/tb-shop/tb-shop-list.html

@@ -1,11 +1,12 @@
 <!DOCTYPE html>
 <html>
 	<head>
-		<title>铺位-列表</title>
+		<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,105 +14,131 @@
 		<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.no"></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 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="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>
+					<br />
 				</el-form>
+				<!-- ------------- 快捷按钮 ------------- -->
 				<div class="fast-btn">
-					<el-button v-if="sa.isAuth('tb-shop-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="name" ></sa-td>
-					<sa-td name="编号" prop="no" ></sa-td>
-					<sa-td name="区域" prop="area" type="enum" :jv="{A区: 'A区', B区: 'B区', C区: 'C区'}"></sa-td>
-					<sa-td name="是否可用" prop="status" type="switch" :jv="{0: '否', 1: '是'}" @change="s => updateStatus(s.row)"></sa-td>
-					<sa-td name="备注" prop="remark" ></sa-td>
-					<sa-td name="商家名称" prop="enterpriseName" ></sa-td>
-					<el-table-column label="操作" fixed="right"  width="240px">
+				<el-table class="data-table" ref="data-table" :data="dataList" size="small">
+					<el-table-column align="center" label="序号" type="index" width="45px"></el-table-column>
+					<el-table-column align="center" label="名称" prop="name"></el-table-column>
+					<el-table-column align="center" label="编号" prop="no"></el-table-column>
+					<el-table-column align="center" prop="tradeAreaName" label="所属互市区"> </el-table-column>
+					<el-table-column align="center" prop="enterpriseName" label="入驻商家"> </el-table-column>
+				<!-- 	<el-table-column align="center" label="是否可用">
 						<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-shop-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button v-if="sa.isAuth('tb-shop-del')" class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
+							<el-switch v-model="s.row.status" :active-value="1" :inactive-value="0"
+								@change="updateStatus(s.row)" inactive-color="#ff4949" style="vertical-align: top;">
+							</el-switch>
+							<span style="color: #999;" v-if="s.row.status == 0">否</span>
+							<span style="color: #999;" v-if="s.row.status == 1">是</span>
+						</template>
+					</el-table-column> -->
+					<el-table-column align="center" label="操作" fixed="right" width="240px">
+						<template slot-scope="s">
+							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看
+							</el-button>
+							<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改
+							</el-button>
+							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除
+							</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
 				<!-- ------------- 分页 ------------- -->
-				<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>
 		</div>
 		<script>
 			var app = new Vue({
-				components: {
-					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
-					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
-				},
 				el: '.vue-box',
 				data: {
 					p: { // 查询参数
-						// id: '',		// 主键
-						// enterpriseId: '',		//
-						// createBy: '',		// 创建者id
-						// createName: '',		// 创建者名称
-						// updateName: '',		// 更新者名称
-						// updateBy: '',		// 更新者id
-						// tradeAreaId: '',		//
-						// tradeAreaName: '',		//
-						// address: '',		//
-						// addressIds: '',		//
-						name: '',		// 名称
-						no: '',		// 编号
-						area: '',		// 区域(A区=A区,B区=B区,C区=C区)
-						status: '',		// 是否可用(0=否,1=是)
-						remark: '',		//备注
-						enterpriseName: '',		//商家名称
-						pageNo: 1,		// 当前页
-						pageSize: 10,	// 页大小
-						sortType: 0		// 排序方式
+						id: '', // 主键
+						name: '', // 名称
+						no: '', // 编号
+						tradeAreaId:'',
+						area: '', // 区域(A区=A区,B区=B区,C区=C区)
+						status: '', // 是否可用(0=否,1=是)
+						remark: '', //
+						pageNo: 1, // 当前页
+						pageSize: 10, // 页大小
+						sortType: 0 // 排序方式
 					},
 					dataCount: 0,
+					tradeAreaList:[],
 					dataList: [], // 数据集合
 				},
 				methods: {
+					getTradeArea() {
+						sa.ajax('/level-one-server/TbTradeArea/getList', {
+							pageSize: 100,
+							pageNo: 1
+						}, function(resp) {
+							this.tradeAreaList = resp.data;
+						}.bind(this));
+					},
 					// 刷新
 					f5: function() {
 						sa.ajax('/level-one-server/TbShop/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数
-							sa.f5TableHeight();		// 刷新表格高度
+							sa.f5TableHeight(); // 刷新表格高度
 						}.bind(this));
 					},
 					// 查看
 					get: function(data) {
-						sa.showIframe('数据详情', 'tb-shop-info.html?id=' + data.id, '1050px', '90%');
+						sa.showIframe('数据详情', 'tb-shop-info.html?id=' + data.id, '750px', '70%');
 					},
 					// 查看 - 根据选中的
 					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-shop-add.html?id=' + data.id, '1000px', '90%');
+						sa.showIframe('修改数据', 'tb-shop-add.html?id=' + data.id, '700px', '70%');
 					},
 					// 新增
 					add: function(data) {
-						sa.showIframe('新增数据', 'tb-shop-add.html?id=-1', '1000px', '90%');
+						sa.showIframe('新增数据', 'tb-shop-add.html?id=-1', '700px', '70%');
 					},
 					// 删除
 					del: function(data) {
@@ -119,7 +146,7 @@
 							sa.ajax('/level-one-server/TbShop/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
+								sa.f5TableHeight(); // 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
@@ -128,15 +155,17 @@
 						// 获取选中元素的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/TbShop/deleteByIds', {ids: ids.join(',')}, function(res) {
+							sa.ajax('/level-one-server/TbShop/deleteByIds', {
+								ids: ids.join(',')
+							}, function(res) {
 								sa.arrayDelete(this.dataList, selection);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
+								sa.f5TableHeight(); // 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
@@ -145,13 +174,16 @@
 						// 声明变量记录是否成功
 						var isOk = false;
 						var oldValue = data.status;
-						var ajax = sa.ajax('/level-one-server/TbShop/updateStatus', {id: data.id, value: data.status}, function(res) {
+						var ajax = sa.ajax('/level-one-server/TbShop/updateStatus', {
+							id: data.id,
+							value: data.status
+						}, function(res) {
 							isOk = true;
 							sa.msg('修改成功');
 						}.bind(this));
 						// 如果未能修改成功, 则回滚
 						$.when(ajax).done(function() {
-							if(isOk == false) {
+							if (isOk == false) {
 								data.status = oldValue;
 							}
 						})
@@ -159,6 +191,7 @@
 				},
 				created: function() {
 					this.f5();
+					this.getTradeArea();
 					sa.onInputEnter();
 				}
 			})

+ 12 - 12
sa-view/tb-trade-area/tb-trade-area-add.html

@@ -6,12 +6,13 @@
 		<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="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/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 {
@@ -69,7 +70,7 @@
 				},
 				methods: {
 					getAddress() {
-						sa.ajax('/levelone-server/TbDistrict/getTreeData', function(resp) {
+						sa.ajax('/sp-admin/TbDistrict/getTreeData', function(resp) {
 							this.options = resp.data;
 						}.bind(this));
 					},
@@ -77,7 +78,6 @@
 					createModel: function() {
 						return {
 							id: '', // 主键
-							platformId: '', //
 							name: '', // 名称
 							detailAddress: '', // 名称
 							address_arry: [], // 名称
@@ -92,11 +92,11 @@
 						try {
 							var m = this.m; // 获取 m对象
 							sa.checkNull(m.name, '请输入 [名称]');
-							sa.checkEmpty(m.address_arry, '请选择 [地址]');
+							sa.checkEmptyArray(m.address_arry, '请选择 [地址]');
 							sa.checkNull(m.detailAddress, '请输入 [详细地址]');
 							return 'ok'; // 全部通过验证,返回ok 表示正确
 						} catch (e) {
-							sa.error(e);
+							sa.error(e.msg);
 						}
 					},
 					// 提交数据
@@ -108,11 +108,11 @@
 						this.m.addressIds = this.m.address_arry.join(',');
 						// 开始增加或修改
 						if (this.id <= 0) { // 添加
-							sa.ajax('/levelone-server/TbTradeArea/add', this.m, function(res) {
+							sa.ajax('/level-one-server/TbTradeArea/add', this.m, function(res) {
 								sa.alert('增加成功', this.clean);
 							}.bind(this));
 						} else { // 修改
-							sa.ajax('/levelone-server/TbTradeArea/update', this.m, function(res) {
+							sa.ajax('/level-one-server/TbTradeArea/update', this.m, function(res) {
 								sa.alert('修改成功', this.clean);
 							}.bind(this));
 						}
@@ -132,7 +132,7 @@
 					if (this.id <= 0) {
 						this.m = this.createModel();
 					} else {
-						sa.ajax('/levelone-server/TbTradeArea/getById?id=' + this.id, function(res) {
+						sa.ajax('/level-one-server/TbTradeArea/getById?id=' + this.id, function(res) {
 							this.m = res.data;
 							if (res.data == null) {
 								sa.alert('未能查找到 id=' + this.id + " 详细数据");

+ 8 - 13
sa-view/tb-trade-area/tb-trade-area-info.html

@@ -6,12 +6,13 @@
 		<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="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/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 {
@@ -42,12 +43,6 @@
 							<label class="c-label">创建时间:</label>
 							<span>{{m.createTime}}</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-form>
 				</div>
 			</div>
@@ -66,7 +61,7 @@
 				},
 				methods: {},
 				mounted: function() {
-					sa.ajax('/levelone-server/TbTradeArea/getById?id=' + this.id, function(res) {
+					sa.ajax('/level-one-server/TbTradeArea/getById?id=' + this.id, function(res) {
 						this.m = res.data;
 						if (res.data == null) {
 							sa.alert('未能查找到 id=' + this.id + " 详细数据");
@@ -76,4 +71,4 @@
 			})
 		</script>
 	</body>
-</html>
+</html>

+ 13 - 58
sa-view/tb-trade-area/tb-trade-area-list.html

@@ -5,12 +5,13 @@
 		<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/kj/element-ui/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/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>
@@ -26,28 +27,15 @@
 					</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 v-if="sa.isAuth('tb-trade-area-add')" size="mini" type="primary" icon="el-icon-plus" @click="add()">新增</el-button>
+						<el-button size="mini" type="info"  icon="el-icon-refresh"  @click="sa.f5()">重置</el-button>
 					</div>
 					<br />
 				</el-form>
-				<!-- ------------- 快捷按钮 ------------- -->
-				<div class="fast-btn">
-					<el-button size="mini" type="primary" icon="el-icon-plus" @click="add()">新增</el-button>
-					<el-button size="mini" type="success" icon="el-icon-view" @click="getBySelect()">查看</el-button>
-					<el-button size="mini" type="danger" icon="el-icon-delete" @click="deleteByIds()">删除</el-button>
-					<!-- <el-button size="mini" type="warning" icon="el-icon-download" @click="sa.exportExcel()">导出</el-button> -->
-					<el-button size="mini" type="info"  icon="el-icon-refresh"  @click="sa.f5()">重置</el-button>
-				</div>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList" size="small">
-					<el-table-column align="center"  type="selection" width="45px"></el-table-column>
+					<el-table-column align="center"  type="index" label="序号" width="45px"></el-table-column>
 					<el-table-column align="center" label="名称" prop="name" ></el-table-column>
-					<el-table-column align="center" label="状态">
-						<template slot-scope="s">
-							<el-switch v-model="s.row.status" :active-value="1" :inactive-value="0" @change="updateStatus(s.row)" inactive-color="#ff4949" style="vertical-align: top;"></el-switch>
-							<span style="color: #999;" v-if="s.row.status == 0">禁用</span>
-							<span style="color: #999;" v-if="s.row.status == 1">启用</span>
-						</template>
-					</el-table-column>
 					<el-table-column align="center" label="地址" prop="address" ></el-table-column>
 					<el-table-column align="center" label="创建时间" class-name="tc-date" >
 						<template slot-scope="s">{{sa.forDate(s.row.createTime, 2)}}</template>
@@ -55,8 +43,8 @@
 					<el-table-column align="center" label="操作" fixed="right"  width="240px">
 						<template slot-scope="s">
 							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
-							<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
+							<el-button v-if="sa.isAuth('tb-trade-area-edit')" class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
+							<el-button v-if="sa.isAuth('tb-trade-area-del')" class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
@@ -95,7 +83,7 @@
 				methods: {
 					// 刷新
 					f5: function() {
-						sa.ajax('/levelone-server/TbTradeArea/getList', sa.removeNull(this.p), function(res) {
+						sa.ajax('/level-one-server/TbTradeArea/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数
 							sa.f5TableHeight();		// 刷新表格高度
@@ -124,46 +112,13 @@
 					// 删除
 					del: function(data) {
 						sa.confirm('是否删除,此操作不可撤销', function() {
-							sa.ajax('/levelone-server/TbTradeArea/delete?id=' + data.id, function(res) {
+							sa.ajax('/level-one-server/TbTradeArea/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
 								sa.ok('删除成功');
 								sa.f5TableHeight();		// 刷新表格高度
 							}.bind(this))
 						}.bind(this));
 					},
-					// 批量删除
-					deleteByIds: function() {
-						// 获取选中元素的id列表
-						let selection = this.$refs['data-table'].selection;
-						let ids = sa.getArrayField(selection, 'id');
-						if(selection.length == 0) {
-							return sa.msg('请至少选择一条数据')
-						}
-						// 提交删除
-						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/levelone-server/TbTradeArea/deleteByIds', {ids: ids.join(',')}, function(res) {
-								sa.arrayDelete(this.dataList, selection);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度
-							}.bind(this))
-						}.bind(this));
-					},
-					// 改 - 状态(0=禁用,1=启用)
-					updateStatus: function(data) {
-						// 声明变量记录是否成功
-						var isOk = false;
-						var oldValue = data.status;
-						var ajax = sa.ajax('/levelone-server/TbTradeArea/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();

Різницю між файлами не показано, бо вона завелика
+ 480 - 293
static/sa.js


Деякі файли не було показано, через те що забагато файлів було змінено