Chemex部署教程(五)高级定制Chemex界面及功能
Chemex部署教程(五)高级定制Chemex界面及功能(系列篇)
修改设备二维码
说明:系统自带的二维码扫描后,显示的内容是【资产类别(设备):资产编号】,我们可以根据需要,修改二维码内容,比如我想修改为扫描二维码,即可查看当前资产信息,也就是单机该设备所在行的显示按钮,如:http://172.16.21.224/device/records/1 ,所跳转的页面,既然我们知道了跳转的路径,那么我们就很好实现了。
原网站效果图:
修改文件位置:\app\Admin\Controllers\DeviceRecordController.php
源文件代码:
$grid->column('asset_number_qrcode', '', $sort_columns)->qrcode(function () {
return 'device:' . $this->asset_number;
});
修改后文件代码:
$grid->column('asset_number_qrcode', '', $sort_columns)->qrcode(function () {
return "http://172.16.21.224/device/records/$this->id";
});
/**
* 其中,172.16.21.224是你自己的Chemex的网站地址,写IP地址或者域名,都可以。
*
*/
修改后网站效果图:(虽然还是二维码,但是可以很明显的看出来,和刚才的二维码不一样)
注意事项:这样,我们就实现了扫码直接打开设备的信息了,同理,配件、软件、耗材、服务都可以通过这种形式去修改。
录入时,屏蔽个别字段
说明:系统默认在录入时有若干内置字段,虽然可以新增字段来补充,但是却不能删除内置字段,增加了录入的工作量。所以我们可以在新增界面,来通过代码屏蔽掉我们不需要的字段,减少我们的工作量。 原网站效果图:
修改文件位置:\app\Admin\Controllers\DeviceRecordController.php
源文件代码:
return Form::make(new DeviceRecord(), function (Form $form) {
$form->row(function (\Dcat\Admin\Form\Row $row) use ($form) {
$row->width(6)->text('name')->required();
if ($form->isCreating() || empty($form->model()->asset_number)) {
$row->text('asset_number')->required();
} else {
$row->display('asset_number')->required();
}
$row->width(6)
->select('category_id')
->options(DeviceCategory::pluck('name', 'id'))
->required();
$row->width(6)
->select('vendor_id')
->options(VendorRecord::pluck('name', 'id'))
->required();
$row->width(6)
->text('mac');
$row->width(6)
->text('ip');
$row->width(6)
->currency('price');
$row->width(6)
->select('depreciation_rule_id')
->options(DepreciationRule::pluck('name', 'id'))
->help(admin_trans_label('Depreciation Rule Help'));
$row->width(6)
->date('purchased');
$row->width(6)
->date('expired')
->attribute('autocomplete', 'off');
$row->width(6)
->text('description');
$row->width()
->image('photo')
->autoUpload()
->uniqueName()
->help(admin_trans_label('Photo Help'));
修改后文件代码:
上边的代码中, $row->width(6)
->text('mac'); 是录入mac的文本框, $row->width(6)
->text('ip'); 是录入ip的文本框,我们可以根据实际情况,进行修改,把不需要的字段屏蔽掉即可。屏蔽的方式就是把代码注释掉,在段落前加入/**,在段落后加入*/即可。
/**我这里屏蔽了MAC、IP、价格三个
$row->width(6)
->text('mac');
$row->width(6)
->text('ip');
$row->width(6)
->currency('price');
*/
修改后网站效果图:和上图对比,已经没有了IP和mac输入框了。
注意事项:建议修改前备份源文件,同时不要删除源代码,只是给源代码注释掉,这样便于恢复。
修改设备打印标签页面
说明:默认打印标签显示的【固定资产标签】、【名称】、【编号】、【人员】、【二维码】,我们可以根据自己的需要修改标签内容,比如修改标签头、二维码显示资产编号,这样便于我们盘点。 原网站效果图:
- 【修改标签标题】
- 修改文件位置:
resources/views/device/print_tag.blade.php - 源文件代码图:

- 修改内容代码图:

- 【修改标签字体和颜色】

- 将【font-weight: bold;】改为【font-weight: 600;】
- 将所有的【bgcolor="#23b14d"】改为【bgcolor="#fff"】,一共3处。
- 将所有的【class="STYLE4"】改为【class="STYLE4" style="color: #000;"】,一共3处,注意"STYLE4" style之间有空格。


修改资产编号为系统自动生成
在新增设备的时候,手动录入资产编号,会有乱、短的情况出现,所以我想让他根据我自定义的前缀+当前ID+1作为资产编号,于是,就有了下面的内容。 原网站效果图:
修改文件位置:
/app/Admin/Controllers/DeviceRecordController.php
源文件代码:
protected function form(): Form
{
return Form::make(new DeviceRecord(), function (Form $form) {
$form->row(function (\Dcat\Admin\Form\Row $row) use ($form) {
$row->width(6)->text('name')->required();
if ($form->isCreating() || empty($form->model()->asset_number)) {
$row->text('asset_number')->required();
} else {
$row->display('asset_number')->required();
}
源文件代码图示:
修改文件代码:
protected function form(): Form
{
return Form::make(new DeviceRecord(), function (Form $form) {
$form->row(function (\Dcat\Admin\Form\Row $row) use ($form) {
$row->width(6)->text('name')->required();
if ($form->isCreating() || empty($form->model()->asset_number)) {
$next_maxid=\App\Models\DeviceRecord::count('id'); #【数据库记录条数用count,数据库最大ID用max】
$next_maxid=$next_maxid+1; #【下一条记录ID+1】
$next_maxid_str=(string)$next_maxid; #【转成字符串】
$next_asset_number="默认前缀".str_pad($next_maxid_str, 7, "0", STR_PAD_LEFT); #【和固定格式拼接】
#str_pad 从字符串左边,填充指定字符串“0”,为指定长度“7”
$row->text('asset_number') #【新增资产时,资产编号文本框】
->value($next_asset_number) #【默认值改成拼接好的】
->readonly() #【资产编号文本框只读】
->help("资产编号已自动生成,请核对后提交") #【加个提示信息】
->required();
/**
$row->text('asset_number')->required();
*/
} else {
$row->display('asset_number')->required();
}
修改文件代码图示:
修改后网站效果图:
注意:修改前建议备份源文件,便于恢复,按照这种思路,可以去修改其他你想要显示的字段~
Chemex部署教程(一)简单介绍Chemex
Chemex部署教程(五)高级定制Chemex界面及功能