admin模块添加本地商户信息列表和添加页面

This commit is contained in:
wangxiaowei 2024-06-19 17:58:23 +08:00
parent 3f27e4eb31
commit 966c2ec148
4 changed files with 606 additions and 0 deletions

@ -0,0 +1,25 @@
<?php
namespace app\admin\controller\shop;
use app\common\basics\AdminBase;
use app\common\server\ConfigServer;
use app\common\enum\LocalLifeICBCEnum;
class LocalLife extends AdminBase
{
public function lists()
{
return view('', []);
}
public function add()
{
return view('', [
'crftType1List' => LocalLifeICBCEnum::crftType1List(), // 商户证件类型列表
'crftType2List' => LocalLifeICBCEnum::crftType2List(), //法人/负责任人证件类型
'accntType1List' => LocalLifeICBCEnum::accntType1List(), // 消费结算账户类型
'tx_map_key' => ConfigServer::get('map', 'tx_map_key')
]);
}
}

@ -0,0 +1,334 @@
{layout name="layout2" /}
<style>
.layui-form {padding: 20px 30px;background-color: #ffffff;}
.layui-form-item .layui-form-label { width: 95px; }
.layui-form-item .layui-input-inline { width: 240px; }
.layui-form-item .map-container{ width: 600px; height: 400px; margin-left: 100px; margin-top: 20px; }
</style>
<div class="layui-card layui-form">
<div class="layui-tab-item layui-show">
<div class="layui-form-item">
<label for="rgiNo" class="layui-form-label"><span style="color:red;">*</span>地区号:</label>
<div class="layui-input-inline">
<input type="text" name="rgiNo" id="rgiNo" lay-verType="tips" lay-verify="rgiNo"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="dominationBankNo" class="layui-form-label"><span style="color:red;">*</span>管辖网点号:</label>
<div class="layui-input-inline">
<input type="text" name="dominationBankNo" id="dominationBankNo" lay-verType="tips" lay-verify="dominationBankNo"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>营业执照:</label>
<div class="layui-input-block">
<div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
<div class="upload-image-elem"><a class="add-upload-image"> + 添加图片</a></div>
</div>
<div class="layui-form-mid layui-word-aux">建议尺寸:宽200像素*高200像素的jpg,jpeg,png图片</div>
</div>
</div>
<div class="layui-form-item">
<label for="crftType1" class="layui-form-label"><span style="color:red;">*</span>商户证件类型:</label>
<div class="layui-input-inline">
<select id="crftType1" name="crftType1" class="layui-select" lay-search>
{volist name='crftType1List' id='vo' key="k" }
<option value="{$k}">{$vo}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="crftNo1" class="layui-form-label"><span style="color:red;">*</span>证件号码:</label>
<div class="layui-input-inline">
<input type="text" name="crftNo1" id="crftNo1" lay-verType="tips" lay-verify="crftNo1"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="crftName2" class="layui-form-label"><span style="color:red;">*</span>法人/负责人名称:</label>
<div class="layui-input-inline">
<input type="text" name="crftName2" id="crftName2" lay-verType="tips" lay-verify="crftName2"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="crftType2" class="layui-form-label"><span style="color:red;">*</span>法人/负责人证件类型:</label>
<div class="layui-input-inline">
<select id="crftType2" name="crftType2" class="layui-select" lay-search>
{volist name='crftType2List' id='vo' key="k" }
<option value="{$k}">{$vo}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="crftNo2" class="layui-form-label"><span style="color:red;">*</span>法人/负责人证件号码:</label>
<div class="layui-input-inline">
<input type="text" name="crftNo2" id="crftNo2" lay-verType="tips" lay-verify="crftNo2"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="lidaddr" class="layui-form-label"><span style="color:red;">*</span>商户地址(营业执照地址):</label>
<div class="layui-input-inline">
<input type="text" name="lidaddr" id="lidaddr" lay-verType="tips" lay-verify="lidaddr"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="chnsName" class="layui-form-label"><span style="color:red;">*</span>特约商户中文名称:</label>
<div class="layui-input-inline">
<input type="text" name="chnsName" id="chnsName" lay-verType="tips" lay-verify="chnsName"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="englName" class="layui-form-label"><span style="color:red;">*</span>特约商户英文名称:</label>
<div class="layui-input-inline">
<input type="text" name="englName" id="englName" lay-verType="tips" lay-verify="englName"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="shortName" class="layui-form-label"><span style="color:red;">*</span>门店名称/商户简称:</label>
<div class="layui-input-inline">
<input type="text" name="shortName" id="shortName" lay-verType="tips" lay-verify="shortName"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="postCode" class="layui-form-label"><span style="color:red;">*</span>邮政编码(实际营业地址):</label>
<div class="layui-input-inline">
<input type="text" name="postCode" id="postCode" lay-verType="tips" lay-verify="postCode"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="merconat" class="layui-form-label"><span style="color:red;">*</span>商户联系人:</label>
<div class="layui-input-inline">
<input type="text" name="merconat" id="merconat" lay-verType="tips" lay-verify="merconat"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="mertel" class="layui-form-label"><span style="color:red;">*</span>联系电话:</label>
<div class="layui-input-inline">
<input type="text" name="mertel" id="mertel" lay-verType="tips" lay-verify="mertel"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>关联企业网银:</label>
<div class="layui-input-inline">
<input type="radio" name="ebankConFlag" value="1" title="是">
<input type="radio" name="ebankConFlag" value="2" title="否" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>开通商户之家:</label>
<div class="layui-input-inline">
<input type="radio" name="shopHomeConFlag" value="1" title="是">
<input type="radio" name="shopHomeConFlag" value="2" title="否" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>商户之家管理员:</label>
<div class="layui-input-inline">
<input type="radio" name="mcssAdminFlag" value="1" title="是">
<input type="radio" name="mcssAdminFlag" value="2" title="否" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>受理信用卡:</label>
<div class="layui-input-inline">
<input type="radio" name="creditSwitch" value="1" title="是">
<input type="radio" name="creditSwitch" value="2" title="否" checked>
</div>
</div>
<div class="layui-form-item">
<label for="accntType1" class="layui-form-label"><span style="color:red;">*</span>结算账户类型:</label>
<div class="layui-input-inline">
<select id="accntType1" name="accntType1" class="layui-select" lay-search>
{volist name='accntType1List' id='vo' key="k" }
<option value="{$k}">{$vo}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="accntNo1" class="layui-form-label"><span style="color:red;">*</span>消费结算卡号/账户:</label>
<div class="layui-input-inline">
<input type="text" name="accntNo1" id="accntNo1" lay-verType="tips" lay-verify="accntNo1"
switch-tab="0" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商家地址:</label>
<div class="layui-input-block">
<div class="layui-input-inline" style="width:120px;">
<select name="province_id" id="province" lay-filter="province"></select>
</div>
<div class="layui-input-inline" style="width:120px;">
<select name="city_id" id="city" lay-filter="city"></select>
</div>
<div class="layui-input-inline" style="width:120px;">
<select name="district_id" id="district"></select>
</div>
<div class="layui-input-inline">
<input type="text" name="address" id="address" autocomplete="off" class="layui-input">
</div>
<div class="layui-input-inline">
<button class="layui-btn layui-btn-normal" id="searchMap">搜索地图</button>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">地理位置:</label>
<div class="layui-input-block">
<div class="layui-inline" >
<div class="layui-input-inline" style="width:120px;margin-right:5px;">
<input type="text" name="longitude" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">经度</div>
</div>
<div class="layui-inline" style="margin-right:0;">
<div class="layui-input-inline" style="width:120px;margin-right:5px;">
<input type="text" name="latitude" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">纬度</div>
</div>
</div>
</div>
<div class="layui-form-item ">
<label class="layui-form-label"></label>
<div class="layui-input-block" style="margin-left:10px;">
<div class="map-container" id="map-container"></div>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
</div>
</div>
<script src="__PUBLIC__/static/common/js/area.js"></script>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key={$tx_map_key}"></script>
<script>
layui.config({
base: "/static/lib/"
}).extend({
likeArea: "likeArea/likeArea",
txMap: "likeMap/txMap"
}).use(["form", "laydate", "likeArea", "txMap"], function(){
var $ = layui.$;
var form = layui.form;
var likeArea = layui.likeArea;
var laydate = layui.laydate;
var txMap = layui.txMap;
laydate.render({type:"datetime", elem:"#expire_time", trigger:"click",min:0});
like.delUpload();
$(document).on("click", ".add-upload-image", function () {
like.imageUpload({
limit: 1,
field: "logo",
that: $(this)
});
});
form.verify({
name: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写商家名称";
}
},
cid: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请选择主营类目";
}
},
nickname: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写联系人";
}
},
mobile: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写联系手机号";
}
},
logo: function (value, item) {
if (!value) {
if ($(item).find(".upload-image-div").length <= 0) {
switchTab($(item).attr("switch-tab"))
return "请上传商家logo";
}
}
},
expire_time: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请选择到期时间";
}
},
trade_service_fee: function (value, item) {
if (!value && parseInt(value) !== 0) {
switchTab($(item).attr("switch-tab"));
return "请填写交易服务费";
}
},
account: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写商家账号";
}
},
password: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写商家登录密码";
}
},
pwd: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填确认商家登录密码";
}
}
});
function switchTab(number) {
$('.layui-tab-card .layui-tab-title li').removeClass('layui-this');
$('.layui-tab-content .layui-tab-item').removeClass('layui-show');
$('.layui-tab-card .layui-tab-title li').eq(number).addClass('layui-this');
$('.layui-tab-content .layui-tab-item').eq(number).addClass('layui-show');
}
likeArea.init(
"province", "city", "district", "province_id", "city_id", "district_id",
"", "", ""
);
likeArea.init(
"refund_province", "refund_city", "refund_district", "refund_province_id", "refund_city_id", "refund_district_id",
"", "", ""
);
txMap.init("", "");
})
</script>

@ -0,0 +1,179 @@
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<!-- 操作提示 -->
<div class="layui-card-body">
<div class="layui-collapse" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*本地生活商家入驻信息列表。</p>
</div>
</div>
</div>
</div>
<!-- 搜索区域 -->
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label for="merconat" class="layui-form-label" style="width: 100px;">商户联系人:</label>
<div class="layui-input-inline">
<input type="text" id="merconat" name="merconat" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
<a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
</div>
</div>
</div>
<!-- 主体区域 -->
<div class="layui-card-body">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" lay-event="add">
新增本地生活商家
</button>
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="table-image">
{{# if(d.businessLicense){ }}
<img src="{{d.businessLicense}}" alt="营业执照" style="width: 200px;height: 200px;object-fit: contain;">
{{# } }}
</script>
<script type="text/html" id="table-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
</script>
</div>
</div>
</div>
<script>
layui.use(["table", "form"], function () {
var table = layui.table;
var form = layui.form;
like.tableLists("#like-table-lists", "{:url()}", [
{field: "id", width: 60, title: "ID"}
, {field: "storeInfo", width: 200, title: "营业执照", templet: "#table-business-license"}
, {field: "name", width: 120, align: "center", title: "法人/负责人名称"}
, {field: "image", width: 200, align: "center", title: "商户地址"}
, {field: "sort", width: 200, align: "center", title: "门店名称/商户简称"}
, {field: "sort", width: 120, align: "center", title: "商户联系人"}
, {field: "sort", width: 150, align: "center", title: "联系电话"}
, {title: "操作", width: 150, align: "center", fixed: "right", toolbar: "#table-operation"}
]);
var active = {
add: function () {
layer.open({
type: 2
, title: "新增本地生活商家"
, content: "{:url('shop.LocalLife/add')}"
, area: ['90%', '90%']
, btn: ["确定", "取消"]
, yes: function (index, layero) {
var iframeWindow = window["layui-layer-iframe" + index];
var submit = layero.find("iframe").contents().find("#addSubmit");
iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
like.ajax({
url: "{:url('shop.Category/add')}",
data: data.field,
type: "POST",
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg);
layer.close(index);
table.reload("like-table-lists", {
where: {},
page: {cur: 1}
});
}
}
});
});
submit.trigger("click");
}
});
},
edit: function (obj) {
layer.open({
type: 2
, title: "编辑主营类目"
, content: "{:url('shop.Category/edit')}?id=" + obj.data.id
, area: ["550px", "400px"]
, btn: ["确定", "取消"]
, yes: function (index, layero) {
var iframeWindow = window["layui-layer-iframe" + index];
var submit = layero.find("iframe").contents().find("#addSubmit");
iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
data.field['id'] = obj.data.id;
like.ajax({
url: "{:url('shop.Category/edit')}",
data: data.field,
type: "POST",
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg);
layer.close(index);
table.reload("like-table-lists", {
where: {},
page: {cur: 1}
});
}
}
});
});
submit.trigger("click");
}
});
},
del: function (obj) {
layer.confirm("确定删除主营类目:" + obj.data.name, function (index) {
like.ajax({
url: "{:url('shop.Category/del')}",
data: {id: obj.data.id},
type: "POST",
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg);
layer.close(index);
obj.del();
}
}
});
layer.close(index);
})
}
};
like.eventClick(active);
form.on("submit(search)", function (data) {
console.log(data.field);
table.reload("like-table-lists", {
where: data.field,
page: {
curr: 1
}
});
});
form.on("submit(clear-search)", function () {
$("#merconat").val("");
form.render("select");
table.reload("like-table-lists", {
where: {},
page: {
curr: 1
}
});
});
})
</script>

@ -0,0 +1,68 @@
<?php
/**
* 本地生活对接工商银行分类信息
*/
namespace app\common\enum;
class LocalLifeICBCEnum
{
/**
* @note 商户证件类型列表
*/
public static function crftType1List()
{
return array(
101 => '营业执照(企业法人)',
110 => '营业执照(个体工商户)',
0 => '个人身份证',
100 => '全国组织机构代码证书',
102 => '行政机关',
103 => '社会团体法人登记证书',
104 => '军队单位开户核准通知书',
105 => '武警部队单位开户核准通知书',
106 => '下属机构(具有主管单位批文号)',
107 => '其他(法人证件类型',
108 => '商业登记证',
109 => '公司注册证',
);
}
/**
* @note 法人/负责任人证件类型
*/
public static function crftType2List()
{
return array(
0 => '身份证',
1 => '护照',
2 => '军官证',
3 => '士兵证',
4 => '港澳台居民往来通行证',
5 => '临时身份证',
6 => '户口本',
7 => '其他(个人证件类型)',
9 => '警官证',
12 => '外国人居留证',
21 => '边民出入境通行证',
);
}
/**
* @note 消费结算账户类型
*/
public static function accntType1List()
{
return array(
0 => '往来账户',
1 => '个人信用卡',
2 => '他行结算户',
3 => '个人借记卡',
4 => '智富通卡',
5 => '活期户',
6 => '账户管家',
7 => '内部户',
9 => '安心托管账户',
);
}
}