chore: src/app 目录与华为云第一台服务器上的代码做第一次比较合并

This commit is contained in:
2025-11-22 15:00:41 +08:00
parent c1170aafa8
commit f03dbbfc60
53 changed files with 3726 additions and 1228 deletions

View File

@@ -22,7 +22,7 @@ return [
'name' => 'MINGPIAN_INFO',
'title' => '电子名片',
'parent' => 'BASICS_LINK',
'wap_url' => '',
'wap_url' => '/pages/contact/contact',
'web_url' => '',
'sort' => 0
]

View File

@@ -0,0 +1,146 @@
<style>
.upload-img-block .upload-img-box .upload-default{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);}
</style>
<div class="layui-form form-wrap">
<div class="layui-form-item">
<label class="layui-form-label short-label"><span class="required">*</span>文件名称:</label>
<div class="layui-input-inline">
<input type="text" name="files_title" lay-verify="required" maxlength="40" autocomplete="off" placeholder="请输入标题" class="layui-input len-long">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required">*</span>文件:</label>
<div class="layui-input-block">
<p class="file-upload">未上传</p>
<button type="button" class="layui-btn" id="cert_upload">
<i class="layui-icon">&#xe67c;</i>上传文件
</button>
<input type="hidden" name="files_url" class="layui-input len-long" value="{$info.files_url ?? ''}" lay-verify="files_url">
<input type="hidden" name="size" class="layui-input len-long" value="{$info.size ?? ''}">
</div>
<div class="word-aux">请选择pdf文件</div>
</div>
</div>
<div class="form-row" id="save">
<button class="layui-btn" lay-submit lay-filter="save">提交</button>
<button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
</div>
<!-- <div class="form-row" id="save1" style="display: none;">
<div style="color:red">(文件越大解码时间越长)上传解码中,请稍等...</div>
</div> -->
</div>
<script>
var form,repeat_flag,
IMAGE_MAX = 9, //最多可以上传多少张图片
imageCollection = [], //图片集合
selectedGoodsId = [],
goods_id = [],
goods_list =[];
layui.use(['form'], function() {
form = layui.form;
repeat_flag = false;
form.render();
// 单图上传
$("body").off("click", "#img").on("click", "#img", function () {
openAlbum(function (data) {
imageCollection = [];
imageCollection.push(data[0].pic_path);
imageCollection.splice(1, imageCollection.length);
var val = '<img src="' + ns.img(imageCollection[0]) + '" alt="">';
$("#img").html(val);
}, 1);
});
/**
* 表单提交(立即发布)
*/
form.on('submit(save)', function(data){
field = data.field;
field.status = 1;
formSubmit(field)
});
new Upload({
elem: '#cert_upload',
url: ns.url("personnel://shop/enterprise/uploadfile"),
accept: 'file',
callback:function (res) {
if (res.code >= 0) {
layer.msg('上传成功');
$("input[name='files_url']").val(res.data.path);
$("input[name='size']").val(res.data.size);
$("input[name='files_url']").siblings(".file-upload").text("已上传");
}
}
});
});
/**
* 提交
*/
function formSubmit(data){
// if (!imageCollection.length){
// layer.msg('请选择封面图!', {icon: 5, anim: 6});
// return;
// }
// $('#save').hide()
// $('#save1').show()
if(repeat_flag) return;
repeat_flag = true;
setTimeout(function (a) {
console.log(1236)
$.ajax({
type: 'POST',
dataType: 'JSON',
url: ns.url("personnel://shop/enterprise/add"),
data: data,
async: false,
success: function(res){
repeat_flag = false;
if (res.code == 0) {
layer.confirm('添加成功', {
title:'操作提示',
btn: ['返回列表', '继续添加'],
closeBtn: 0,
yes: function(index, layero){
if(data.status == 1){
location.hash = ns.hash("personnel://shop/enterprise/lists");
}else{
location.hash = ns.hash("personnel://shop/enterprise/drafts");
}
layer.close(index);
},
btn2: function(index, layero) {
listenerHash(); // 刷新页面
layer.close(index);
}
});
}else{
layer.msg(res.message);
}
$('#save').show()
$('#save1').hide()
}
})
}, 1000);
}
function back() {
location.hash = ns.hash("personnel://shop/enterprise/lists");
}
</script>

View File

@@ -0,0 +1,137 @@
<style>
.upload-img-block .upload-img-box .upload-default{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);}
</style>
<div class="layui-form form-wrap">
<div class="layui-form-item">
<label class="layui-form-label short-label"><span class="required">*</span>文件标题:</label>
<div class="layui-input-inline">
<input type="text" name="files_title" value="{$info.files_title}" lay-verify="required" maxlength="40" autocomplete="off" placeholder="请输入标题" class="layui-input len-long">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required">*</span>文件:</label>
<div class="layui-input-block">
{notempty name="$info.files_url"}
<p class="file-upload">已上传</p>
{else/}
<p class="file-upload">未上传</p>
{/notempty}
<button type="button" class="layui-btn" id="cert_upload">
<i class="layui-icon">&#xe67c;</i>上传文件
</button>
<input type="hidden" name="files_url" class="layui-input len-long" value="{$info.files_url ?? ''}" lay-verify="files_url">
<input type="hidden" name="size" class="layui-input len-long" value="{$info.size ?? ''}">
</div>
<div class="word-aux">请选择pdf文件</div>
</div>
</div>
<input type="hidden" name="files_id" value="{$info.files_id}" />
<div class="form-row" id="save">
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
<button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
</div>
<!-- <div class="form-row" id="save1" style="display: none;">
<div style="color:red">(文件越大解码时间越长)上传解码中,请稍等...</div>
</div> -->
</div>
<script>
var form,upload, repeat_flag = false;
layui.use(['form'], function() {
form = layui.form;
form.render();
/**
* 表单提交(立即发布)
*/
form.on('submit(save)', function(data){
field = data.field;
field.status = 1;
formSubmit(field)
});
new Upload({
elem: '#cert_upload',
url: ns.url("/personnel://shop/enterprise/uploadfile"),
accept: 'file',
callback:function (res) {
if (res.code >= 0) {
layer.msg('上传成功');
$("input[name='files_url']").val(res.data.path);
$("input[name='size']").val(res.data.size);
$("input[name='files_url']").siblings(".file-upload").text("已上传");
}
}
});
});
/**
* 提交
*/
function formSubmit(field)
{
// if (!imageCollection.length){
// layer.msg('请选择封面图!', {icon: 5, anim: 6});
// return;
// }
// $('#save').hide()
// $('#save1').show()
if(repeat_flag) return;
repeat_flag = true;
setTimeout(function (a) {
$.ajax({
type: 'POST',
dataType: 'JSON',
url: ns.url("personnel://shop/enterprise/edit"),
data: field,
async: false,
success: function(res){
repeat_flag = false;
if (res.code == 0) {
layer.confirm('编辑成功', {
title:'操作提示',
btn: ['返回列表', '继续编辑'],
yes: function(index, layero){
if(field.status == 1){
location.hash = ns.hash("personnel://shop/enterprise/lists");
}else{
location.hash = ns.hash("personnel://shop/enterprise/drafts");
}
layer.close(index);
},
btn2: function(index, layero) {
layer.close(index);
}
});
}else{
layer.msg(res.message);
}
}
})
}, 1000);
}
function back() {
location.hash = ns.hash("personnel://shop/enterprise/lists");
}
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,155 @@
<!-- 搜索框 -->
<div class="single-filter-box top">
<button class="layui-btn" onclick="add()">添加文件</button>
<div class="layui-form">
<div class="layui-input-inline">
<input type="text" name="search_text" placeholder="请输入标题" autocomplete="off" class="layui-input">
<button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit>
<i class="layui-icon">&#xe615;</i>
</button>
</div>
</div>
</div>
<input id="url" value="" type="hidden"></input>
<!-- 列表 -->
<table id="files_list" lay-filter="files_list"></table>
<!-- 操作 -->
<script type="text/html" id="operation">
<div class="table-btn">
<!-- <a class="layui-btn" lay-event="copy">复制链接</a> -->
<a class="layui-btn" lay-event="edit">编辑</a>
<a class="layui-btn" lay-event="delete">删除</a>
</div>
</script>
<!-- 用户信息 -->
<script type="text/html" id="info">
<div class='table-title'>
<div class='title-pic headimg'>
<img layer-src src="{{ns.img('addon/personnel/shop/view/enterprise/fileicon.png')}}" onerror="this.src = '{:img('addon/personnel/shop/view/enterprise/fileicon.png')}' ">
</div>
<div class='title-content'>
<p class="layui-elip" style="font-weight: 600;color:#000">{{d.files_title}}</p>
</div>
</div>
</script>
<script>
var form,laytpl,table, repeat_flag = false;//防重复标识;
layui.use(['form','laytpl'], function() {
form = layui.form;
laytpl = layui.laytpl;
form.render();
table = new Table({
elem: '#files_list',
url: ns.url("personnel://shop/enterprise/lists"),
cols: [
[ {
field: 'files_title',
title: '文件名称',
width: '30%',
unresize: 'false',
templet: '#info'
},
// {
// field: 'category_name',
// title: '文件分类',
// width: '20%',
// unresize: 'false'
// },
/*{
field: 'create_time',
title: '创建时间',
width: '20%',
unresize: 'false',
templet: function (data) {
return ns.time_to_date(data.createtime);
}
}, */{
title: '操作',
toolbar: '#operation',
unresize: 'false',
align : 'right'
}]
],
});
/**
* 搜索功能
*/
form.on('submit(search)', function(data) {
table.reload({
page: {
curr: 1
},
where: data.field
});
});
table.on("sort",function (obj) {
table.reload({
page: {
curr: 1
},
where: {
order:obj.field,
sort:obj.type
}
});
});
/**
* 监听工具栏操作
*/
table.tool(function(obj) {
var data = obj.data;
switch (obj.event) {
case 'copy': // 推广
// promote(data);
$('#url').val(data.url)
console.log(data.files_url)
ns.copy('url')
break;
case 'edit': //编辑
location.hash = ns.hash("personnel://shop/enterprise/edit?files_id=" + data.files_id);
break;
case 'delete': //删除
deletefiles(data.files_id);
break;
}
});
});
/**
* 删除
*/
function deletefiles(files_id) {
if (repeat_flag) return false;
repeat_flag = true;
layer.confirm('确定要删除该文件吗?', function (index) {
layer.close(index);
$.ajax({
url: ns.url("personnel://shop/enterprise/delete"),
data: {files_id},
dataType: 'JSON',
type: 'POST',
success: function (res) {
layer.msg(res.message);
repeat_flag = false;
if (res.code == 0) {
table.reload();
}
}
});
},
function () {
repeat_flag = false;
layer.close();
});
}
function add() {
location.hash = ns.hash("personnel://shop/enterprise/add");
}
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

View File

@@ -0,0 +1,168 @@
<!-- 搜索框 -->
<div class="single-filter-box top">
<button class="layui-btn" onclick="add()">添加文件</button>
<div class="layui-form">
<div class="layui-input-inline">
<input type="text" name="search_text" placeholder="请输入标题" autocomplete="off" class="layui-input">
<button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit>
<i class="layui-icon">&#xe615;</i>
</button>
</div>
</div>
</div>
<input id="url" value="" type="hidden"></input>
<!-- 列表 -->
<table id="files_list" lay-filter="files_list"></table>
<!-- 操作 -->
<script type="text/html" id="operation">
<div class="table-btn">
<!-- <a class="layui-btn" lay-event="copy">复制链接</a> -->
<a class="layui-btn" lay-event="edit">编辑</a>
<a class="layui-btn" lay-event="delete">删除</a>
</div>
</script>
<!-- 用户信息 -->
<script type="text/html" id="info">
<div class='table-title'>
<div class='title-pic headimg'>
<img layer-src src="{{ns.img('/addon/personnel/view/enterprise/fileicon.png')}}" onerror="this.src = '{:img('app/shop/view/files/fileicon.png')}' ">
</div>
<div class='title-content'>
<p class="layui-elip" style="font-weight: 600;color:#000">{{d.files_title}}</p>
<!-- <p class="layui-elip" style="line-height: 1.2;color:#888;font-size: 12px;">发布时间{{ns.time_to_date(d.createtime)}}</p> -->
<!-- <p class="layui-elip" style="color:#888;font-size: 12px;">样本大小{{d.size}}</p> -->
<!-- <div>
<span title="{{ d.mobile }}">{{ d.mobile }}</span>
{{# if (d.status == 0 || d.member_level_type == 1){ }}
{{# if (d.status == 0){ }}
<span class="blacklist">黑名单</span>
{{# } }}
{{# if (d.member_level_type == 1){ }}
<span class="vip_style">SVIP</span>
{{# } }}
{{# } }}
</div> -->
</div>
</div>
</script>
<script>
var form,laytpl,table, repeat_flag = false;//防重复标识;
layui.use(['form','laytpl'], function() {
form = layui.form;
laytpl = layui.laytpl;
form.render();
table = new Table({
elem: '#files_list',
url: ns.url("personnel://shop/enterprise/lists"),
cols: [
[ {
field: 'files_title',
title: '文件名称',
width: '30%',
unresize: 'false',
templet: '#info'
},
// {
// field: 'category_name',
// title: '文件分类',
// width: '20%',
// unresize: 'false'
// },
/*{
field: 'create_time',
title: '创建时间',
width: '20%',
unresize: 'false',
templet: function (data) {
return ns.time_to_date(data.createtime);
}
}, */{
title: '操作',
toolbar: '#operation',
unresize: 'false',
align : 'right'
}]
],
});
/**
* 搜索功能
*/
form.on('submit(search)', function(data) {
table.reload({
page: {
curr: 1
},
where: data.field
});
});
table.on("sort",function (obj) {
table.reload({
page: {
curr: 1
},
where: {
order:obj.field,
sort:obj.type
}
});
});
/**
* 监听工具栏操作
*/
table.tool(function(obj) {
var data = obj.data;
switch (obj.event) {
case 'copy': // 推广
// promote(data);
$('#url').val(data.url)
console.log(data.files_url)
ns.copy('url')
break;
case 'edit': //编辑
location.hash = ns.hash("personnel://shop/enterprise/edit?files_id=" + data.files_id);
break;
case 'delete': //删除
deletefiles(data.files_id);
break;
}
});
});
/**
* 删除
*/
function deletefiles(files_id) {
if (repeat_flag) return false;
repeat_flag = true;
layer.confirm('确定要删除该文件吗?', function (index) {
layer.close(index);
$.ajax({
url: ns.url("personnel://shop/enterprise/delete"),
data: {files_id},
dataType: 'JSON',
type: 'POST',
success: function (res) {
layer.msg(res.message);
repeat_flag = false;
if (res.code == 0) {
table.reload();
}
}
});
},
function () {
repeat_flag = false;
layer.close();
});
}
function add() {
location.hash = ns.hash("personnel://shop/enterprise/add");
}
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB