维修端工单处理

This commit is contained in:
2025-03-20 14:18:50 +08:00
parent 6acf1cf237
commit 56df8a2cbc
6 changed files with 113 additions and 7 deletions

View File

@ -10,7 +10,12 @@ class TicketView extends Auth
public function list()
{
$query = Model::query()->scope(['notFinish'])->with(['ticket'])->where(['staff_id'=>$this->staff->id]);
$query = Model::query()->with(['ticket'])->where(['staff_id'=>$this->staff->id]);
$query->order('create_at', 'desc');
$status = $this->request->get('status', null);
if ($status) {
$query->where('status', '=', $status);
}
$keyword = $this->request->get('keyword', null);
if ($keyword) {
$query->where('title', 'like', "%{$keyword}%");
@ -19,4 +24,42 @@ class TicketView extends Auth
$this->success('获取工单列表', $pageData);
}
public function detail()
{
$id = $this->request->get('id', null);
$data = Model::query()->with(['ticket'])->where('staff_id', '=', $this->staff->id)->where(['id'=>$id])->find();
if (!$data) {
$this->error('工单不存在');
}
$this->success('获取工单详情', $data);
}
public function submit()
{
$data = $this->_vali([
'ticket_id.require' => '工单ID不能为空',
'content.require' => '工单内容不能为空',
'is_error.in:0,1' => '请选择是否有异常',
'imgs.default' => '',
'work_days.default' => '',
]);
$ticket = Model::query()->with(['ticket'])->where('staff_id', '=', $this->staff->id)->where(['id'=>$data['ticket_id']])->find();
if (!$ticket) {
$this->error('工单不存在');
}
unset($data['ticket_id']);
if ($ticket->status === 1) {
$this->error('工单已提交');
}
if ($ticket->status === 2) {
$this->error('工单已关闭');
}
try {
$data['status'] = 1;
$ticket->save($data);
} catch (\Exception $exception) {
$this->error('工单提交失败');
}
$this->success('工单提交成功');
}
}

View File

@ -10,13 +10,10 @@
<span class="layui-badge layui-bg-blue">待审核</span>
{/if}
{if isset($current_step)}
{if $instance.current_step == $index}(当前步骤){/if}
{if $current_step == $index}(当前步骤){/if}
{/if}
</h3>
<div class="layui-timeline-content">
<p>
{$step.title}
</p>
{if $step.status == 1}
{$step.approver.nickname}{$step.approve_time|date='Y-m-d H:i:s'}审核通过
<div>

View File

@ -0,0 +1,15 @@
<div class="layui-timeline-item">
<i class="layui-icon layui-timeline-axis"></i>
<div class="layui-timeline-content layui-text">
<h3 class="layui-timeline-title">{$index+1}
{if isset($current_step)}
{if $current_step == $index}(当前步骤){/if}
{/if}
</h3>
<div class="layui-timeline-content">
<p>
{$step.title}
</p>
</div>
</div>
</div>

View File

@ -10,7 +10,7 @@
</div>
</div>
{foreach $process.steps as $index=>$step}
{include file="common/step" /}
{include file="common/step_p" /}
{/foreach}
</div>
</div>

View File

@ -10,7 +10,7 @@
</div>
</div>
{foreach $process.steps as $index=>$step}
{include file="common/step" /}
{include file="common/step_p" /}
{/foreach}
</div>
</div>

View File

@ -0,0 +1,51 @@
<div class="layui-collapse">
<div class="layui-colla-item">
<div class="layui-colla-title">审核流程</div>
<div class="layui-colla-content">
<div class="layui-timeline">
<div class="layui-timeline-item">
<i class="layui-icon layui-timeline-axis"></i>
<div class="layui-timeline-content layui-text">
<h3 class="layui-timeline-title">提交审核</h3>
</div>
</div>
{foreach $process.steps as $index=>$step}
{include file="common/step_p" /}
{/foreach}
</div>
</div>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header">创建审核单</div>
<div class="layui-card-body">
<form class="layui-form" data-table-id="formDemo" action="{:url()}" data-auto="true" method="post">
<input type="hidden" name="ticket_id" value="{$vo.id}">
<div class="layui-form-item">
<label class="layui-form-label">审核说明</label>
<div class="layui-input-block">
<textarea name="content" placeholder="请输入审核说明" class="layui-textarea"></textarea>
</div>
</div>
{if $current_step.approver_type == 3}
<div class="layui-form-item">
<label class="layui-form-label">请指定下一步审核人</label>
<div class="layui-input-block">
<select name="approver_id" lay-verify="required" lay-search>
<option value="">请选择审核人</option>
{foreach $users as $user}
<option value="{$user.id}">{$user.username}</option>
{/foreach}
</select>
</div>
</div>
{/if}
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" type='submit'>立即提交</button>
<button class="layui-btn layui-btn-primary" type="reset">重置</button>
</div>
</div>
</form>
</div>
</div>