fixed 代码库对接类目

This commit is contained in:
lwh 2023-06-30 09:02:11 +08:00
parent b072ce49d2
commit 4079ff8f38
2 changed files with 320 additions and 32 deletions

View File

@ -24,18 +24,17 @@ class CodeModule extends BaseController
{
$params = $request->param();
$con = [];
$con = Tool::getOptionalQuery(['customer_guid', 'LIKE'], ['code_module_catetory_guid', '='], ['code_module_name', 'LIKE'], ['code_module_audit', '='],);
$con = Tool::getOptionalQuery(['a.code_module_category_guid', '='], ['code_module_name', 'LIKE'], ['code_module_audit', '='],);
$query = ModelCodeModule::where($con)
->alias('a')
->leftjoin('customer b', 'a.customer_guid = b.customer_guid')
->leftjoin('code_module_category c', 'a.code_module_category_guid = c.code_module_category_guid')
->field([
'a.code_module_id',
'a.code_module_guid',
'a.customer_guid',
'b.customer_name',
'a.code_module_catetory_guid',
'c.code_module_category_name',
'a.code_module_category_guid',
'a.code_module_name',
'a.code_module_html',
'a.code_module_style',
@ -54,19 +53,18 @@ class CodeModule extends BaseController
public function addCodeModule(Request $request): array
{
Db::startTrans();
Tool::adminLockTableWrite('code_module');
Tool::adminLockTableWrite(['code_module', 'dictionary', 'code_module_category']);
try {
$params = $request->param();
$this->validate($params, [
'code_module_catetory_guid|类目' => 'require',
'code_module_category_guid|类目' => 'require',
'code_module_name|代码块名称' => 'require',
'code_module_html|html内容' => 'require',
'code_module_sort|排序' => 'require',
'code_module_audit|审核状态' => 'require'
]);
$model = ModelCodeModule::create($params, [
'customer_guid',
'code_module_catetory_guid',
'code_module_category_guid',
'code_module_name',
'code_module_html',
'code_module_style',
@ -93,11 +91,11 @@ class CodeModule extends BaseController
public function editCodeModule(Request $request): array
{
Db::startTrans();
Tool::adminLockTableWrite('code_module');
Tool::adminLockTableWrite(['code_module', 'dictionary', 'code_module_category']);
try {
$params = $request->param();
$this->validate($params, [
'code_module_catetory_guid|类目' => 'require',
'code_module_category_guid|类目' => 'require',
'code_module_name|代码块名称' => 'require',
'code_module_html|html内容' => 'require',
'code_module_sort|排序' => 'require',
@ -106,8 +104,7 @@ class CodeModule extends BaseController
$model = ModelCodeModule::where('code_module_guid', $params['code_module_guid'])->find();
if (!$model) throwErrorMsg("该代码块不存在", 1);
$model->allowField([
'customer_guid',
'code_module_catetory_guid',
'code_module_category_guid',
'code_module_name',
'code_module_html',
'code_module_style',
@ -132,7 +129,7 @@ class CodeModule extends BaseController
public function deleteCodeModule(Request $request): array
{
Db::startTrans();
Tool::adminLockTableWrite('code_module');
Tool::adminLockTableWrite(['code_module', 'dictionary', 'code_module_category']);
try {
$params = $request->param();
$this->validate($params, [
@ -190,7 +187,287 @@ class CodeModule extends BaseController
$params = $request->param();
$data = [
array_values(ModelCodeModule::EXCELFIELD),
['默认值1', '默认值2', '默认值3', '默认值4', '默认值5', '默认值6', '默认值7', '默认值8',]
[
'卡片',
'超级卡片',
'<div class="wrapper">
<div class="card radius shadowDepth1">
<div class="card__image border-tlr-radius">
<img src="http://lorempixel.com/400/200/sports/" alt="image" class="border-tlr-radius">
</div>
<div class="card__content card__padding">
<div class="card__share">
<div class="card__social">
<a class="share-icon facebook" href="#"><span class="fa fa-facebook"></span></a>
<a class="share-icon twitter" href="#"><span class="fa fa-twitter"></span></a>
<a class="share-icon googleplus" href="#"><span class="fa fa-google-plus"></span></a>
</div>
<a id="share" class="share-toggle share-icon" href="#"></a>
</div>
<div class="card__meta">
<a href="#">Web Design</a>
<time>17th March</time>
</div>
<article class="card__article">
<h2><a href="#">Material Design Card - For Blog Post Article</a></h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ducimus harum...</p>
</article>
</div>
<div class="card__action">
<div class="card__author">
<img src="http://lorempixel.com/40/40/sports/" alt="user">
<div class="card__author-content">
By <a href="#">John Doe</a>
</div>
</div>
</div>
</div>
<p class="text-center">Created By <a href="https://twitter.com/mithicher">Mithicher Baro</a></p>
</div>',
`@import 'https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css';
@import 'https://fonts.googleapis.com/css?family=Roboto:700,400';
/*
* Basic Reset
*/
*,
*:after,
*:before {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/**
* Basics Styles
*/
html {
font-size: 62.5%;
}
body {
background-color: #eee;
font-family: Roboto;
font-weight: 400;
font-size: 1.6em;
line-height: 1.6;
color: #666;
}
a {
text-decoration: none;
color: #3498db;
}
a:hover {
color: #2980b9;
}
h2 {
line-height: 1.2;
margin-bottom: 1.6rem;
}
.wrapper {
max-width: 400px;
margin: 50px auto;
padding-left: 1em;
padding-right: 1em;
}
/**
* Helpers
*/
.border-tlr-radius {
border-top-left-radius: 2px;
border-top-right-radius: 2px;
}
.text-center { text-align: center; }
.radius { border-radius: 2px; }
.padding-tb { padding-top: 1.6rem; padding-bottom: 1.6rem;}
.shadowDepth0 { box-shadow: 0 1px 3px rgba(0,0,0, 0.12); }
.shadowDepth1 {
box-shadow:
0 1px 3px rgba(0,0,0, 0.12),
0 1px 2px rgba(0,0,0, 0.24);
}
/**
* Card Styles
*/
.card {
background-color: #fff;
margin-bottom: 1.6rem;
}
.card__padding {
padding: 1.6rem;
}
.card__image {
min-height: 100px;
background-color: #eee;
}
.card__image img {
width: 100%;
max-width: 100%;
display: block;
}
.card__content {
position: relative;
}
/* card meta */
.card__meta time {
font-size: 1.5rem;
color: #bbb;
margin-left: 0.8rem;
}
/* card article */
.card__article a {
text-decoration: none;
color: #444;
transition: all 0.5s ease;
}
.card__article a:hover {
color: #2980b9;
}
/* card action */
.card__action {
overflow: hidden;
padding-right: 1.6rem;
padding-left: 1.6rem;
padding-bottom: 1.6rem;
}
.card__author {}
.card__author img,
.card__author-content {
display: inline-block;
vertical-align: middle;
}
.card__author img{
border-radius: 50%;
margin-right: 0.6em;
}
.card__share {
float: right;
position: relative;
margin-top: -42px;
}
.card__social {
position: absolute;
top: 0;
right: 0;
visibility: hidden;
width: 160px;
transform: translateZ(0);
transform: translateX(0px);
transition: transform 0.35s ease;
}
.card__social--active {
visibility: visible;
/*z-index: 3;*/
transform: translateZ(0);
transform: translateX(-48px);
transition: transform 0.35s ease;
}
.share-toggle {
z-index: 2;
}
.share-toggle:before {
content: "\f1e0";
font-family: 'FontAwesome';
color: #3498db;
}
.share-toggle.share-expanded:before {
content: "\f00d";
}
.share-icon {
display: inline-block;
width: 48px;
height: 48px;
line-height: 48px;
text-align: center;
border-radius: 50%;
background-color: #fff;
transition: all 0.3s ease;
outline: 0;
box-shadow:
0 2px 4px rgba(0,0,0, 0.12),
0 2px 4px rgba(0,0,0, 0.24);
}
.share-icon:hover,
.share-icon:focus {
box-shadow:
0 3px 6px rgba(0,0,0, 0.12),
0 3px 6px rgba(0,0,0, 0.24);
-webkit-transform: scale(1.2);
-moz-transform: scale(1.2);
-ms-transform: scale(1.2);
-o-transform: scale(1.2);
transform: scale(1.2);
}
.facebook {
background-color: #3b5998;
}
.twitter {
background-color: #00abe3;
}
.googleplus {
background-color: #d3492c;
}
.facebook,
.twitter,
.googleplus {
color: #fff;
}
.facebook:hover,
.twitter:hover,
.googleplus:hover {
color: #eee;
}
`,
`$(document).ready(function($) {
$('.card__share > a').on('click', function(e){
e.preventDefault() // prevent default action - hash doesn't appear in url
$(this).parent().find( 'div' ).toggleClass( 'card__social--active' );
$(this).toggleClass('share-expanded');
});
});
`,
'1',
]
];
$excel = (new Excel())->exporTsheet($data);
$excel->save('代码块导入模板.xlsx');
@ -201,6 +478,7 @@ class CodeModule extends BaseController
*/
public function importExcel(Request $request): array
{
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('code_module');
$msg = ModelCodeModule::importExcel($file);

View File

@ -9,6 +9,8 @@ use app\common\arw\adjfut\src\Excel;
use app\Request;
use app\common\exception\Tool;
use think\facade\Db;
use app\common\model\Dictionary\Dictionary as ModelDictionary;
use app\common\model\Code\CodeModuleCategory as ModelCodeModuleCategory;
class CodeModule extends BaseModel
{
@ -23,8 +25,7 @@ class CodeModule extends BaseModel
protected $schema = [
'code_module_id' => 'int',
'code_module_guid' => 'string',
'customer_guid' => 'string',
'code_module_catetory_guid' => 'string',
'code_module_category_guid' => 'string',
'code_module_name' => 'string',
'code_module_html' => '',
'code_module_style' => '',
@ -53,14 +54,12 @@ class CodeModule extends BaseModel
// excel导入/下载模板表头
public const EXCELFIELD = [
'customer_guid' => '所属客户',
'code_module_catetory_guid' => '类目',
'code_module_category_guid' => '类目',
'code_module_name' => '代码块名称',
'code_module_html' => 'html内容',
'code_module_style' => 'style内容',
'code_module_script' => 'script内容',
'code_module_sort' => '排序',
'code_module_audit' => '审核状态',
];
/**
@ -99,7 +98,6 @@ class CodeModule extends BaseModel
public static function exportExcel(array $select): void
{
$data = [[
'所属客户',
'类目',
'代码块名称',
'html内容',
@ -109,9 +107,13 @@ class CodeModule extends BaseModel
'审核状态'
]];
foreach ($select as $key => $val) {
// 根据字典值获取审核状态名称
$audit_status = ModelDictionary::getDictionaryData('audit_status');
$val['code_module_audit'] = ModelDictionary::getDataDictionaryName($audit_status, $val['code_module_audit']);
$data[] = [
$val['customer_guid'],
$val['code_module_catetory_guid'],
$val['code_module_category_name'],
$val['code_module_name'],
$val['code_module_html'],
$val['code_module_style'],
@ -135,6 +137,7 @@ class CodeModule extends BaseModel
$msg = [];
Db::startTrans();
Tool::adminLockTableWrite(['code_module', 'dictionary', 'code_module_category']);
try {
$excel = new Excel($file);
$data = $excel->parseExcel(
@ -146,15 +149,17 @@ class CodeModule extends BaseModel
foreach ($data as $line => $value) {
try {
$model = self::importExcelInit($value);
$msg[] = "{$line} <span style='color:#27af49'>新增成功!</span><br>";
$msg[] = "{$line} <span style='color:#27af49'>代码库:【{$value['code_module_name']}新增成功!</span><br>";
} catch (\Throwable $th) {
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
}
}
Db::commit();
Tool::unlockTable();
return implode(', ', $msg);
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
}
}
@ -167,19 +172,25 @@ class CodeModule extends BaseModel
*/
public static function importExcelInit(array $value): void
{
$customer_guid = $value['customer_guid'];
$code_module_catetory_guid = $value['code_module_catetory_guid'];
$code_module_category_guid = $value['code_module_category_guid'];
$code_module_name = $value['code_module_name'];
$code_module_html = $value['code_module_html'];
$code_module_style = $value['code_module_style'];
$code_module_script = $value['code_module_script'];
$code_module_sort = $value['code_module_sort'];
$code_module_audit = $value['code_module_audit'];
// $code_module_audit = $value['code_module_audit'];
$code_module_catetory = ModelCodeModuleCategory::where('code_module_category_name', $code_module_category_guid)->find();
if (!$code_module_catetory) throwErrorMsg($code_module_category_guid . "不存在,请重新确认!");
$code_module_category_guid = $code_module_catetory->code_module_category_guid;
// $audit_status = ModelDictionary::getDictionaryData('audit_status');
// $code_module_audit = ModelDictionary::getDataDictionaryValue($audit_status, $code_module_category_guid);
$code_module_audit = 2;
self::create(
[
'customer_guid' => $customer_guid,
'code_module_catetory_guid' => $code_module_catetory_guid,
'code_module_category_guid' => $code_module_category_guid,
'code_module_name' => $code_module_name,
'code_module_html' => $code_module_html,
'code_module_style' => $code_module_style,
@ -188,8 +199,7 @@ class CodeModule extends BaseModel
'code_module_audit' => $code_module_audit,
],
[
'customer_guid',
'code_module_catetory_guid',
'code_module_category_guid',
'code_module_name',
'code_module_html',
'code_module_style',