删除控价

This commit is contained in:
2025-03-27 15:16:09 +08:00
parent 3b5aa3cb42
commit 23ae94eee5
4 changed files with 105 additions and 85 deletions

View File

@ -4,6 +4,8 @@ namespace plugin\inspection\controller\api\auth;
use plugin\inspection\controller\api\Auth;
use plugin\ticket\model\ApprovalInstance as Model;
use plugin\ticket\model\ApprovalProcess;
//use plugin\ticket\model\TicketVerify as Model;
class TicketVerify extends Auth
@ -11,9 +13,9 @@ class TicketVerify extends Auth
public function list()
{
$query = Model::query()->where("type", '=', "YSSH")->with(['ticket'])
->whereIn("ticket_id", \plugin\ticket\model\TicketRepair::query()->where('staff_id', '=', $this->staff->id)->column('ticket_id'));
$query->order('create_at', 'desc');
$query = Model::query()->whereIn("process_id", ApprovalProcess::query()->where('type', '=', "YSSH")->column('id'))->with(['ticket'])
->whereIn("oid", \plugin\ticket\model\TicketRepair::query()->where('staff_id', '=', $this->staff->id)->column('ticket_id'));
$query->order('id', 'desc');
$status = $this->request->get('status/i', null);
if (is_numeric($status)) {
$query->where('status', '=', $status);
@ -22,6 +24,7 @@ class TicketVerify extends Auth
if ($keyword) {
$query->where('title', 'like', "%{$keyword}%");
}
$query->field("*, create_time as create_at, create_time as update_at");
$pageData = $query->paginate();
$this->success('获取工单列表', $pageData);
}
@ -29,7 +32,7 @@ class TicketVerify extends Auth
public function detail()
{
$id = $this->request->get('id', null);
$data = Model::query()->with(['ticket'])->where('staff_id', '=', $this->staff->id)->where(['id'=>$id])->find();
$data = Model::query()->with(['ticket'])->where(['id'=>$id])->find();
if (!$data) {
$this->error('工单不存在');
}

View File

@ -56,8 +56,8 @@
id: 'polyline_' + index,
styleId: 'style_red',
paths: [
new TMap.LatLng(points[index + 1].lat, points[index + 1].lng),
new TMap.LatLng(point.lat, point.lng),
new TMap.LatLng(points[index + 1].lat, points[index + 1].lng)
]
});
})

View File

@ -254,7 +254,6 @@ class TicketInter extends Controller
$adminInfo = $this->request->session('user');
$instance_data = $this->_vali([
'staff_id.require'=>'请指定维修人员!',
'kj_user_id.default'=>'0',
]);
$staff = InspectionStaff::query()->where('id', '=', $instance_data['staff_id'])->findOrEmpty();
if ($staff->isEmpty()) {
@ -278,7 +277,6 @@ class TicketInter extends Controller
'type' => 'TICKET_REPAIR',
'oid' => $view->id,
]);
$ticket->kj_user_id = $instance_data['kj_user_id'];
$this->success('创建成功!', $view);
} else {
$this->vo = $ticket;
@ -289,33 +287,6 @@ class TicketInter extends Controller
}
public function repair_ticket_modify()
{
$data = $this->_vali([
'ticket_id.require'=>'请指定工单ID!',
]);
$repair = TicketRepair::query()->where('id', '=', $data['ticket_id'])->findOrEmpty();
if ($repair->isEmpty()) {
$this->error('未找到工单信息');
}
if ($repair->ticket === null) {
$this->error('未找到主工单信息');
}
if ($repair->status === 1) {
$this->error('该工单已维修完成,无法操作!');
}
$adminInfo = $this->request->session('user');
if ($repair->ticket->kj_user_id != $adminInfo['id']) {
$this->error('您不是该工单的控价人员,无法操作!');
}
if ($this->request->isPost()) {
} else {
$this->vo = $repair;
$this->fetch();
}
}
public function verify_process_create()
{
$data = $this->_vali([

View File

@ -1,7 +1,8 @@
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title">
<li class="layui-this">基本信息</li>
<li>工单全流程信息</li>
<li>核实情况</li>
<li>维修情况</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
@ -50,62 +51,107 @@
</div>
</td>
</tr>
{if $vo.lat && $vo.lng}
<tr>
<td>位置</td>
<td>
<div id="map" style="height: 320px;"></div>
</td>
</tr>
{/if}
</tbody>
</table>
</div>
{if $vo.lat && $vo.lng}
<script src="https://map.qq.com/api/gljs?v=1.exp&key=T6XBZ-L33CB-TMFUL-JQ4D6-MKBTK-KNBED"></script>
<script>
function initMap() {
//定义地图中心点坐标
var center = new TMap.LatLng("{$vo.lat}", "{$vo.lng}")
//定义map变量,调用 TMap.Map() 构造函数创建地图
var map = new TMap.Map(document.getElementById('map'), {
center: center,//设置地图中心点坐标
zoom: 17.2, //设置地图缩放级别
pitch: 30, //设置俯仰角
});
var marker = new TMap.MultiMarker({
map: map,
styles: {
// 点标记样式
marker: new TMap.MarkerStyle({
width: 20, // 样式宽
height: 30, // 样式高
anchor: { x: 10, y: 30 }, // 描点位置
}),
},
geometries: [
// 点标记数据数组
{
// 标记位置(纬度,经度,高度)
position: center,
id: 'marker',
},
],
});
}
var mapInit = setInterval(function () {
if (window.TMap) {
clearInterval(mapInit)
initMap()
}
}, 500)
</script>
{/if}
</div>
</div>
</div>
<div class="layui-tab-item">
{include file="common/ticket_flow" /}
<div class="layui-card">
<div class="layui-card-header">现场核实情况</div>
{if $vo.verify}
<div class="layui-card-body">
{foreach $vo.verify as $verify}
<table class="layui-table">
<tbody class="layui-table-body">
<tr>
<td style="width: 120px">提交时间</td>
<td>{$verify.create_at|default=""}</td>
</tr>
<tr>
<td>核实人</td>
<td>{$verify.staff.name|default=""}【联系方式:{$verify.staff.phone|default=""}</td>
</tr>
<tr>
<td>核实结果</td>
<td>{$verify.content|default=""}</td>
</tr>
<tr>
<td>图片</td>
<td>
<div>
{foreach $verify.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
</div>
</td>
</tr>
<tr>
<td>预估工作量</td>
<td>{$verify.work_days|default=""}</td>
</tr>
</tbody>
</table>
{/foreach}
</div>
{else /}
<div class="layui-card-body">
<div class="layui-row">
暂无核实记录
</div>
</div>
{/if}
</div>
</div>
<div class="layui-tab-item">
<div class="layui-card">
<div class="layui-card-header">工单维修情况</div>
{if $vo.repair}
<div class="layui-card-body">
{foreach $vo.repair as $repair}
<table class="layui-table">
<tbody class="layui-table-body">
<tr>
<td style="width: 120px">提交时间</td>
<td>{$repair.create_at|default=""}</td>
</tr>
<tr>
<td>维修人</td>
<td>{$repair.staff.name|default=""}【联系方式:{$repair.staff.phone|default=""}</td>
</tr>
<tr>
<td>维修结果</td>
<td>{$repair.content|default=""}</td>
</tr>
<tr>
<td>图片</td>
<td>
<div>
{foreach $repair.imgs_arr as $img}
<img data-tips-image src="{$img}" alt="image" style="height: 100px;">
<span>&nbsp;</span>
{/foreach}
</div>
</td>
</tr>
<tr>
<td>预估工作量</td>
<td>{$verify.work_days|default=""}</td>
</tr>
</tbody>
</table>
{/foreach}
</div>
{else /}
<div class="layui-card-body">
<div class="layui-row">
暂无维修记录
</div>
</div>
{/if}
</div>
</div>
</div>
</div>
</div>