工单详情

This commit is contained in:
2024-12-03 22:06:07 +08:00
parent d13f82c391
commit 1fc0caafe5
7 changed files with 203 additions and 124 deletions

View File

@ -43,15 +43,21 @@ class Ticket extends Auth
'lat' => $lat,
'lng' => $lng,
'imgs' => $imgs,
'ticket_project_use' =>$ticket_project_use,
'ticket_work_use' => $ticket_work_use,
'ticket_price' => $ticket_price,
'status' => 1,
'state' => 0,
];
if (!empty($record)) {
$record->ticket()->create($data);
$ticket = $record->ticket()->save($data);
} else {
TicketTicket::create($data);
$ticket = TicketTicket::create($data);
}
$this->success("工单创建成功");
$ticket->verify()->save([
'staff_id' => $this->staff->id,
'content' => $content,
'imgs' => $imgs,
'work_days' => $ticket_work_use
]);
$ticket->save();
$this->success("工单创建成功", $ticket);
}
}

View File

@ -2,6 +2,7 @@
namespace plugin\ticket\controller;
use plugin\inspection\model\InspectionStaff;
use plugin\ticket\model\TicketDept;
use plugin\ticket\model\TicketReply;
use plugin\ticket\model\TicketTicket;
@ -134,6 +135,7 @@ class Ticket extends Controller
{
$this->title = "工单分配";
if ($this->request->isPost()) {
$this->_applyFormToken();
// 提交
$data = $this->_vali([
'id.require' => '请指定工单ID!',
@ -153,9 +155,10 @@ class Ticket extends Controller
$ticket->state = 2;
}
$ticket->save();
$this->success('工单分配成功!');
} else {
$this->dept_list = TicketDept::query()->scope('avail')->select();
$this->user_list = SystemUser::query()->select();
$this->user_list = InspectionStaff::query()->select();
$this->fetch();
}
}

View File

@ -9,34 +9,50 @@
<div class="layui-card">
<div class="layui-card-header">工单内容</div>
<div class="layui-card-body">
<div class="layui-row">
工单编号:{$vo.id|default=""}
</div>
<div class="layui-row">
工单标题:{$vo.title|default=""}
</div>
<div class="layui-row">
反馈人信息:{$vo.contact_name|default="未填写名称"}
联系方式:{$vo.contact_phone|default="未填写联系方式"}
联系地址:{$vo.contact_address|default="未填写地址"}
</div>
<div class="layui-row">
工单类型:{$vo.type_name|default=""}
</div>
<div class="layui-row">
工单地址:{$vo.ticket_address|default=""}
</div>
<div class="layui-row">
工单内容:{$vo.content|default=""}
</div>
<div class="layui-row">
工单图片:
<div>
{foreach $vo.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
</div>
<div class="layui-table">
<table class="layui-table">
<tbody class="layui-table-body">
<tr>
<td style="width: 120px">工单编号</td>
<td>{$vo.id|default=""}</td>
</tr>
<tr>
<td>工单标题</td>
<td>{$vo.title|default=""}</td>
</tr>
<tr>
<td>工单类型</td>
<td>{$vo.type_name|default=""}</td>
</tr>
<tr>
<td>工单地址</td>
<td>{$vo.ticket_region|default=""} {$vo.ticket_address|default=""}</td>
</tr>
<tr>
<td>工单内容</td>
<td>{$vo.content|default=""}</td>
</tr>
<tr>
<td>反馈人信息</td>
<td>{$vo.contact_name|default="未填写名称"} {$vo.contact_phone|default="未填写联系方式"}</td>
</tr>
<tr>
<td>工单图片</td>
<td>
<div>
{if count($vo.imgs_arr) > 0}
{foreach $vo.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
{else}
无图片
{/if}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@ -78,6 +94,7 @@
</tr>
</tbody>
</table>
{/foreach}
</div>
{else /}
<div class="layui-card-body">
@ -119,35 +136,3 @@
</div>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header">工单流转详情</div>
<div class="layui-card-body">
<table id="replyTable" class="layui-table">
<thead>
<tr>
<th lay-data='{field: "username", width: "120px"}'>工单处理人</th>
<th lay-data='{field: "type_name", width: "120px"}'>处理类型</th>
<th lay-data='{field: "create_at", width: "180px"}'>工单处理时间</th>
<th lay-data='{field: "content", minWidth: "200px"}'>处理内容</th>
</tr>
</thead>
<tbody>
{notempty name='vo.reply'}
{foreach $vo.reply as $reply}
<tr>
<td>{$reply.username|default=""}</td>
<td>{$reply.type_name|default=""}</td>
<td>{$reply.create_at|default=""}</td>
<td>{$reply.content|default=""}</td>
</tr>
{/foreach}
{else}
<tr>
<td colspan="999" class="text-center">暂无工单流转记录</td>
</tr>
{/notempty}
</tbody>
</table>
</div>
</div>

View File

@ -23,7 +23,7 @@
<a data-modal="{:url('detail')}?id={{ d.id }}" data-height="90%" data-width="60%" class="layui-btn layui-btn-xs layui-btn-normal" title="详情">详情</a>
<!--{/if}-->
<!--{if auth("move")}-->
<a data-modal="{:url('move')}?ticket_id={{ d.id }}" data-height="80%" data-width="80%" class="layui-btn layui-btn-xs" title="分配">分配</a>
<a data-modal="{:url('move')}?id={{ d.id }}" data-height="80%" data-width="80%" class="layui-btn layui-btn-xs" title="分配">分配</a>
<!--{/if}-->
<!--{if auth("edit")}-->
<a data-modal="{:url('edit')}?id={{ d.id }}" data-height="80%" data-width="80%" class="layui-btn layui-btn-xs layui-btn-danger" title="修改工单">修改</a>

View File

@ -0,0 +1,51 @@
<form class="layui-form layui-card" action="{:sysuri()}" data-auto="true" method="post" autocomplete="off" style="min-height: 300px">
<input class="layui-input layui-hide" type='hidden' value="{:input('get.id')}" name='id'>
<input class="layui-input layui-hide" type='hidden' value='{:systoken("move")}' name='_token_'>
<div class="layui-form-item">
<label class="layui-form-label">工单类型</label>
<div class="layui-input-block">
<select name="type" lay-filter="type">
<option value="">请选择工单类型</option>
<option value="1">内部工单</option>
<option value="2">外部工单</option>
</select>
</div>
</div>
<div class="layui-form-item type1 type2" style="display:none;">
<label class="layui-form-label">负责单位</label>
<div class="layui-input-block">
<select name="dept_id">
<option value="">请选择负责单位</option>
{foreach $dept_list as $item}
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item type1" style="display:none;">
<label class="layui-form-label">负责人员</label>
<div class="layui-input-block">
<select name="user_id">
<option value="">请选择维修负责人员</option>
{foreach $user_list as $item}
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item text-center">
<button class="layui-btn layui-btn-normal" type='submit'>保存数据</button>
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
</div>
</form>
<script>
layui.use('form', function () {
var form = layui.form
form.on('select(type)', function (data) {
$('.type1').hide()
$('.type2').hide()
$('.type' + data.value).show()
})
})
</script>

View File

@ -11,34 +11,50 @@
<div class="layui-card">
<div class="layui-card-header">工单内容</div>
<div class="layui-card-body">
<div class="layui-row">
工单编号:{$vo.id|default=""}
</div>
<div class="layui-row">
工单标题:{$vo.title|default=""}
</div>
<div class="layui-row">
反馈人信息:{$vo.contact_name|default="未填写名称"}
联系方式:{$vo.contact_phone|default="未填写联系方式"}
联系地址:{$vo.contact_address|default="未填写地址"}
</div>
<div class="layui-row">
工单类型:{$vo.type_name|default=""}
</div>
<div class="layui-row">
工单地址:{$vo.ticket_address|default=""}
</div>
<div class="layui-row">
工单内容:{$vo.content|default=""}
</div>
<div class="layui-row">
工单图片:
<div>
{foreach $vo.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
</div>
<div class="layui-table">
<table class="layui-table">
<tbody class="layui-table-body">
<tr>
<td style="width: 120px">工单编号</td>
<td>{$vo.id|default=""}</td>
</tr>
<tr>
<td>工单标题</td>
<td>{$vo.title|default=""}</td>
</tr>
<tr>
<td>工单类型</td>
<td>{$vo.type_name|default=""}</td>
</tr>
<tr>
<td>工单地址</td>
<td>{$vo.ticket_region|default=""} {$vo.ticket_address|default=""}</td>
</tr>
<tr>
<td>工单内容</td>
<td>{$vo.content|default=""}</td>
</tr>
<tr>
<td>反馈人信息</td>
<td>{$vo.contact_name|default="未填写名称"} {$vo.contact_phone|default="未填写联系方式"}</td>
</tr>
<tr>
<td>工单图片</td>
<td>
<div>
{if count($vo.imgs_arr) > 0}
{foreach $vo.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
{else}
无图片
{/if}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@ -80,6 +96,7 @@
</tr>
</tbody>
</table>
{/foreach}
</div>
{else /}
<div class="layui-card-body">

View File

@ -9,34 +9,50 @@
<div class="layui-card">
<div class="layui-card-header">工单内容</div>
<div class="layui-card-body">
<div class="layui-row">
工单编号:{$vo.id|default=""}
</div>
<div class="layui-row">
工单标题:{$vo.title|default=""}
</div>
<div class="layui-row">
反馈人信息:{$vo.contact_name|default="未填写名称"}
联系方式:{$vo.contact_phone|default="未填写联系方式"}
联系地址:{$vo.contact_address|default="未填写地址"}
</div>
<div class="layui-row">
工单类型:{$vo.type_name|default=""}
</div>
<div class="layui-row">
工单地址:{$vo.ticket_address|default=""}
</div>
<div class="layui-row">
工单内容:{$vo.content|default=""}
</div>
<div class="layui-row">
工单图片:
<div>
{foreach $vo.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
</div>
<div class="layui-table">
<table class="layui-table">
<tbody class="layui-table-body">
<tr>
<td style="width: 120px">工单编号</td>
<td>{$vo.id|default=""}</td>
</tr>
<tr>
<td>工单标题</td>
<td>{$vo.title|default=""}</td>
</tr>
<tr>
<td>工单类型</td>
<td>{$vo.type_name|default=""}</td>
</tr>
<tr>
<td>工单地址</td>
<td>{$vo.ticket_region|default=""} {$vo.ticket_address|default=""}</td>
</tr>
<tr>
<td>工单内容</td>
<td>{$vo.content|default=""}</td>
</tr>
<tr>
<td>反馈人信息</td>
<td>{$vo.contact_name|default="未填写名称"} {$vo.contact_phone|default="未填写联系方式"}</td>
</tr>
<tr>
<td>工单图片</td>
<td>
<div>
{if count($vo.imgs_arr) > 0}
{foreach $vo.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
{else}
无图片
{/if}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@ -78,6 +94,7 @@
</tr>
</tbody>
</table>
{/foreach}
</div>
{else /}
<div class="layui-card-body">