Commit 04dd13a8 authored by celaraze's avatar celaraze
Browse files

增加标签打印功能

parent 32af0630
Showing with 3166 additions and 3114 deletions
+3166 -3114
<?php
namespace App\Admin\Actions;
use Dcat\Admin\Actions\Action;
use Dcat\Admin\Widgets\Modal;
class Clear extends Action
{
protected $title = '清理缓存';
public function render()
{
$modal = Modal::make()
->id('clear') // 导航栏显示弹窗,必须固定ID,随机ID会在刷新后失败
->title($this->title())
->body(\App\Admin\Actions\Form\Clear::make())
->lg()
->button(
<<<HTML
<ul class="nav navbar-nav" style="margin-right: 2rem">
<li><i class="ficon feather icon-trash-2"></i>{$this->title}</li>
</ul>
HTML
);
return $modal->render();
}
}
<?php
namespace App\Admin\Actions\Form;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Form\AbstractTool;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
use PHPUnit\Runner\Exception;
class Clear extends AbstractTool
{
/**
* @return string
*/
protected $title = '点击继续';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
try {
Artisan::call('cache:clear');
return $this->response()
->success('清理成功')
->redirect('/');
} catch (Exception $e) {
return $this->response()
->success('清理失败')
->redirect('/');
}
}
/**
* @return string|array|void
*/
public function confirm()
{
return ['Confirm?', 'contents'];
}
/**
* @return string|void
*/
protected function href()
{
// return admin_url('auth/users');
}
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
/**
* @return array
*/
protected function parameters()
{
return [];
}
}
......@@ -3,44 +3,27 @@
namespace App\Admin\Actions\Grid;
use Dcat\Admin\Grid\BatchAction;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class DeviceShebeiPrint extends BatchAction
class DevicePrintListAction extends BatchAction
{
/**
*
*/
protected $title = '打印清单';
/**
* Handle the action request.
*
* @param Request $request
*
*
* @return \Dcat\Admin\Actions\Response|void
*/
public function handle(Request $request)
public function handle()
{
$keys = $this->getkey();
$url = admin_route("device.shebei.print", ["ids" => implode("-", $keys)]);
$url = admin_route("device.print.list", ["ids" => implode("-", $keys)]);
if (count($keys) > 0) {
return $this->response()->script("window.open('{$url}')");
}
}
/**
*
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
public function actionScript()
public function actionScript(): string
{
$warning = "请选择打印的设备!";
return <<<JS
......@@ -56,25 +39,7 @@ function (data, target, action) {
JS;
}
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
*
*/
protected function authorize($user): bool
{
return true;
}
/**
*
*/
protected function parameters()
{
return [];
}
protected function html()
protected function html(): string
{
return <<<HTML
<a {$this->formatHtmlAttributes()}><button class="btn btn-primary btn-mini">{$this->title()}</button></a>
......
......@@ -3,42 +3,26 @@
namespace App\Admin\Actions\Grid;
use Dcat\Admin\Grid\BatchAction;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class DeviceBiaoqianPrint extends BatchAction
class DevicePrintTagAction extends BatchAction
{
/**
*/
protected $title = '打印标签';
/**
* Handle the action request.
*
* @param Request $request
*
* @return \Dcat\Admin\Actions\Response|void
*/
public function handle(Request $request)
public function handle()
{
$keys = $this->getkey();
$url = admin_route("device.biaoqian.print", ["ids" => implode("-", $keys)]);
$url = admin_route("device.print.tag", ["ids" => implode("-", $keys)]);
if (count($keys) > 0) {
return $this->response()->script("window.open('{$url}')");
}
}
/**
*
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
public function actionScript()
public function actionScript(): string
{
$warning = "请选择打印的设备!";
return <<<JS
......@@ -54,25 +38,7 @@ function (data, target, action) {
JS;
}
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
*
*/
protected function authorize($user): bool
{
return true;
}
/**
*
*/
protected function parameters()
{
return [];
}
protected function html()
protected function html(): string
{
return <<<HTML
<a {$this->formatHtmlAttributes()}><button class="btn btn-primary btn-mini">{$this->title()}</button></a>
......
......@@ -158,10 +158,10 @@ class AuthController extends BaseAuthController
/** @var \Illuminate\Validation\Validator $validator */
$validator = Validator::make($credentials, [
$this->username() => 'required|string|exists:admin_users,username,zhzt,1',
$this->username() => 'required|string|exists:admin_users,username,status,1',
'password' => 'required|string',
], [
'exists' => '该账户已停用!,请联系管理员',
'exists' => '该账户已停用请联系管理员',
]);
if ($validator->fails()) {
......
......@@ -5,29 +5,41 @@ namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use App\Models\DeviceRecord;
use Dcat\Admin\Layout\Content;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Translation\Translator;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
class DeviceBiaoqianPrintController extends Controller
class DevicePrintController extends Controller
{
/**
* 页面.
*
* @param Content $content
*
* @return Content
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function DeviceBiaoqianprint(Request $request)
public function tag(Request $request): View|Factory|Application
{
$ids = $request->input("ids");
$ids = explode("-", $ids);
if (count($ids) > 0) {
$data = DeviceRecord::find($ids);
return view("device.print_tag", ["data" => $data]);
}
}
public function list(Request $request)
{
$ids = $request->input("ids");
$ids = explode("-", $ids);
if (count($ids) > 0) {
$data = DeviceRecord::find($ids);
return view("devicebiaoqianprint", ["data" => $data]);
return view("device.print_list", ["data" => $data]);
}
}
......
......@@ -4,8 +4,8 @@ namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\BatchAction\DeviceRecordBatchDeleteAction;
use App\Admin\Actions\Grid\BatchAction\DeviceRecordBatchForceDeleteAction;
use App\Admin\Actions\Grid\DeviceBiaoqianPrint;
use App\Admin\Actions\Grid\DeviceShebeiPrint;
use App\Admin\Actions\Grid\DevicePrintListAction;
use App\Admin\Actions\Grid\DevicePrintTagAction;
use App\Admin\Actions\Grid\RowAction\DeviceRecordCreateUpdateTrackAction;
use App\Admin\Actions\Grid\RowAction\DeviceRecordDeleteAction;
use App\Admin\Actions\Grid\RowAction\MaintenanceRecordCreateAction;
......@@ -299,11 +299,11 @@ class DeviceRecordController extends AdminController
*/
$grid->tools(function (Tools $tools) {
// @permissions
if (Admin::user()->can('device.biaoqian.print')) {
$tools->append(new DeviceBiaoqianPrint());
if (Admin::user()->can('device.print.tag')) {
$tools->append(new DevicePrintTagAction());
}
if (Admin::user()->can('device.shebei.print')) {
$tools->append(new DeviceShebeiPrint());
if (Admin::user()->can('device.print.list')) {
$tools->append(new DevicePrintListAction());
}
if (Admin::user()->can('device.record.import')) {
$tools->append(new DeviceRecordImportAction());
......@@ -345,6 +345,9 @@ class DeviceRecordController extends AdminController
'depreciation.name',
'expiration_left_days',
'admin_user.department.name',
'created_at',
'updated_at',
'asset_number_qrcode'
]);
/**
......
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use App\Models\DeviceRecord;
use App\Services\DeviceServicesPrint;
use Dcat\Admin\Layout\Content;
use Illuminate\Contracts\Translation\Translator;
use Illuminate\Http\Request;
class DeviceShebeiPrintController extends Controller
{
/**
* 页面.
*
* @param Content $content
*
* @return Content
*/
public function DeviceShebeiprint(Request $request)
{
$ids = $request->input("ids");
$ids = explode("-", $ids);
if (count($ids) > 0) {
$data = DeviceRecord::find($ids);
return view("deviceshebeiprint", ["data" => $data]);
}
}
public function title(): array|string|Translator|null
{
return admin_trans_label('title');
}
}
......@@ -75,7 +75,7 @@ class UserController extends BaseUserController
->creationRules(['required', "unique:$connection.$userTable"])
->updateRules(['required', "unique:$connection.$userTable,username,$id"]);
$form->text('name', trans('admin.name'))->required();
$form->radio('zhzt')->options([1 => '账号正常', 0 => '账户冻结'])->default(1);
$form->radio('status')->options(['账户冻结', '账号正常'])->default(1);
$form->select('gender')
->options(Data::genders())
->required();
......@@ -179,13 +179,11 @@ class UserController extends BaseUserController
return $name;
});
$grid->column('gender');
$grid->column('zhzt')->using([
1 => '账户正常',
0 => '账户冻结',
])->badge([
$grid->column('status')->using(['账户冻结', '账户正常'])->badge([
'default' => 'success', // 设置默认颜色,不设置则默认为 default
1 => 'success',
0 => 'danger',
1 => 'success'
]);
$grid->column('department.name');
$grid->column('title');
......@@ -320,7 +318,7 @@ class UserController extends BaseUserController
$show->field('avatar', __('admin.avatar'))->image();
$show->field('department.name');
$show->field('gender');
$show->field('zhzt')->using(["0" => "账号冻结", '1' => "账号正常"]);
$show->field('status')->using(['账号冻结', '账号正常']);
$show->field('title');
$show->field('mobile');
$show->field('email');
......
......@@ -23,7 +23,6 @@ class DeviceRecordBatchCreateUpdateTrackForm extends Form implements LazyRendera
*/
public function handle(array $input): JsonResponse
{
dd($this->payload['ids']);
// 获取设备id
$device_id = $this->payload['id'] ?? null;
......@@ -114,7 +113,6 @@ class DeviceRecordBatchCreateUpdateTrackForm extends Form implements LazyRendera
*/
public function form()
{
dd($this->getKey());
$users = User::pluck('name', 'id');
$this->radio('type')
->when('track', function (Form $form) use ($users) {
......
......@@ -52,6 +52,4 @@ Admin::navbar(function (Navbar $navbar) use ($notifications) {
});
Admin::navbar(function (Navbar $navbar) {
$navbar->right(\App\Admin\Actions\Clear::make()->render());
});
\ No newline at end of file
});
......@@ -5,10 +5,9 @@ use App\Admin\Controllers\CheckRecordController;
use App\Admin\Controllers\ConsumableCategoryController;
use App\Admin\Controllers\DepartmentController;
use App\Admin\Controllers\DepreciationRuleController;
use App\Admin\Controllers\DeviceBiaoqianPrintController;
use App\Admin\Controllers\DeviceCategoryController;
use App\Admin\Controllers\DevicePrintController;
use App\Admin\Controllers\DeviceRecordController;
use App\Admin\Controllers\DeviceShebeiPrintController;
use App\Admin\Controllers\DeviceStatisticsController;
use App\Admin\Controllers\NotificationController;
use App\Admin\Controllers\PartCategoryController;
......@@ -73,6 +72,10 @@ Route::group([
->name('selection.device.records');
$router->get('/selection/device/categories', [DeviceCategoryController::class, 'selectList'])
->name('selection.device.categories');
$router->get('/device/print/tag', [DevicePrintController::class, 'tag'])
->name('device.print.tag');
$router->get('/device/print/list', [DevicePrintController::class, 'list'])
->name('device.print.list');
/**
* 配件管理.
......@@ -198,12 +201,6 @@ Route::group([
$router->get('/export/check/{check_id}/report', [CheckRecordController::class, 'exportReport'])
->name('export.check.report');
$router->get('/device/shebei/print', [DeviceShebeiPrintController::class, 'deviceshebeiPrint'])
->name('device.shebei.print');
$router->get('/device/biaoqian/print', [DeviceBiaoqianPrintController::class, 'devicebiaoqianPrint'])
->name('device.biaoqian.print');
/**
* 通知.
......
......@@ -28,7 +28,6 @@ class LDAPService
}
$ous = Adldap::search()->ous()->get();
$ous = json_decode($ous, true);
dd($ous);
// 遍历所有的OU
foreach ($ous as $ou) {
// 单个OU的名字
......
......@@ -297,7 +297,7 @@ return [
// bg-primary, bg-info, bg-warning, bg-success, bg-danger, bg-dark
'navbar_color' => '',
'horizontal_menu' => true,
'horizontal_menu' => false,
],
/*
......
......@@ -27,7 +27,6 @@ class Version300 extends Migration
$table->integer('department_id')->default(0);
$table->char('gender')->default('无');
$table->string('title')->nullable();
$table->integer('zhzt')->nullable('1');//账号状态
$table->string('mobile')->nullable();
$table->string('email')->nullable();
$table->integer('ad_tag')->default(0);
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class Version340 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('admin_users', function (Blueprint $table) {
$table->integer('status')->nullable()->default(1);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('admin_users', function (Blueprint $table) {
$table->dropColumn('status');
});
}
}
This diff is collapsed.
......@@ -28,7 +28,7 @@ class AdminUsersTableSeeder extends Seeder
'avatar' => NULL,
'remember_token' => NULL,
'department_id' => '1',
'zhzt' => '1',
'status' => '1',
'gender' => '男',
'title' => NULL,
'mobile' => NULL,
......
......@@ -13,8 +13,6 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
$this->call(AdminMenuTableSeeder::class);
$this->call(AdminPermissionsTableSeeder::class);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment