优化工单模块代码
This commit is contained in:
parent
77994b60e3
commit
646b58c851
@ -25,7 +25,7 @@ class Index extends BaseController
|
|||||||
|
|
||||||
$list = WorkOrderList::withoutField('')
|
$list = WorkOrderList::withoutField('')
|
||||||
->where('delete_time', null)
|
->where('delete_time', null)
|
||||||
->order('status asc')
|
->order(['status' => 'asc', 'id' => 'desc'])
|
||||||
->paginate($rows, false, ['query' => $param])
|
->paginate($rows, false, ['query' => $param])
|
||||||
->each(function ($item, $key) {
|
->each(function ($item, $key) {
|
||||||
$wo = WorkOrderList::where(['id' => $item->id])->find();
|
$wo = WorkOrderList::where(['id' => $item->id])->find();
|
||||||
@ -141,14 +141,26 @@ class Index extends BaseController
|
|||||||
{
|
{
|
||||||
$param = get_params();
|
$param = get_params();
|
||||||
$id = isset($param['id']) ? $param['id'] : 0;
|
$id = isset($param['id']) ? $param['id'] : 0;
|
||||||
$detail = (new WorkOrderList())->detail($id);
|
if (empty($id)) {
|
||||||
// print_r($id);
|
return to_assign(1, '参数错误,缺少ID');
|
||||||
if (empty($detail)) {
|
}
|
||||||
return to_assign(1, '2.信息不存在');
|
$view = WorkOrderList::where('id', $id)->find();
|
||||||
|
if ($view) {
|
||||||
|
$projectName = Db::name('Project')->where('id', $view['project_id'])->value('name_short');
|
||||||
|
$view['project_id'] = $projectName ?: '-';
|
||||||
|
if (!empty($view['contact'])) {
|
||||||
|
$view->contact = $view['contact'];
|
||||||
} else {
|
} else {
|
||||||
View::assign('detail', $detail);
|
$view->contact = Db::name('Admin')->where('id', $view['creater'])->value('mobile') ?: '-';
|
||||||
// print_r($detail);
|
}
|
||||||
|
$adminName = Db::name('Admin')->where('id', $view['creater'])->value('name');
|
||||||
|
$view->creater = $adminName ?: '-';
|
||||||
|
$solveName = Db::name('Admin')->where('id', $view['solve'])->value('name');
|
||||||
|
$view->solve = $solveName ?: '-';
|
||||||
|
View::assign('view', $view);
|
||||||
return view();
|
return view();
|
||||||
|
} else {
|
||||||
|
return to_assign(1, '信息不存在');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,8 +19,11 @@
|
|||||||
<td class="layui-td-gray-2">问题描述<font>*</font>
|
<td class="layui-td-gray-2">问题描述<font>*</font>
|
||||||
</td>
|
</td>
|
||||||
<td colspan="4">
|
<td colspan="4">
|
||||||
<textarea name="content" lay-verify="" lay-reqText="请输入" placeholder="请输入遇到的问题" class="layui-textarea"
|
<!-- <textarea name="content" id="content" lay-verify="" lay-reqText="请输入" placeholder="请输入遇到的问题" class="layui-textarea"
|
||||||
value=""></textarea>
|
value=""></textarea> -->
|
||||||
|
|
||||||
|
<textarea id="content" name="content" style="display:none;"></textarea>
|
||||||
|
<div id="docContent"></div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -39,19 +42,31 @@
|
|||||||
</button>
|
</button>
|
||||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
layui.use(["form", "layer"], function () {
|
layui.use(["form", "layer", "editormd", "tool", "laydate", "dropdown", "employeepicker"], function () {
|
||||||
var laydate = layui.laydate;
|
const form = layui.form,
|
||||||
var form = layui.form,
|
layer = layui.layer,
|
||||||
layer = layui.layer;
|
editor = layui.editormd,
|
||||||
|
tool = layui.tool,
|
||||||
|
laydate = layui.laydate,
|
||||||
|
dropdown = layui.dropdown,
|
||||||
|
employeepicker = layui.employeepicker;
|
||||||
|
|
||||||
laydate.render({
|
// 渲染编辑器
|
||||||
elem: '#start_time',
|
form.render();
|
||||||
});
|
var edit = editor.render('docContent', {
|
||||||
laydate.render({
|
markdown: $('#content').val(),
|
||||||
elem: '#end_time',
|
imageUploadURL: "/api/index/md_upload",
|
||||||
|
lineNumbers: false,
|
||||||
|
toolbarIcons: function () {
|
||||||
|
return [
|
||||||
|
"undo", "redo", "bold", "del", "italic", "quote", "h1", "h2", "h3", "h4", "h5",
|
||||||
|
"list-ul", "list-ol", "hr", "link", "reference-link", "image", "code", "code-block", "table", "watch", "fullscreen"
|
||||||
|
];
|
||||||
|
},
|
||||||
|
// height: window.innerHeight - 500,
|
||||||
});
|
});
|
||||||
|
|
||||||
// 获取项目名称
|
// 获取项目名称
|
||||||
@ -74,6 +89,12 @@
|
|||||||
|
|
||||||
// 监听提交事件
|
// 监听提交事件
|
||||||
form.on("submit(webform)", function (data) {
|
form.on("submit(webform)", function (data) {
|
||||||
|
// 把 docContent-html-code 赋值给 content
|
||||||
|
data.field.content = data.field['docContent-html-code'] || '';
|
||||||
|
|
||||||
|
// 删除不需要的字段
|
||||||
|
delete data.field['docContent-html-code'];
|
||||||
|
delete data.field['docContent-markdown-doc'];
|
||||||
// 发送请求并处理响应
|
// 发送请求并处理响应
|
||||||
fetch("/workorder/index/add", {
|
fetch("/workorder/index/add", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@ -97,4 +118,12 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
#docContent img{
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
.pt-1{
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,5 +1,5 @@
|
|||||||
<form class="layui-form page-content p-4" lay-filter="webform">
|
<form class="layui-form page-content p-4" lay-filter="webform">
|
||||||
<input type="hidden" name="id" id="id" value="<?php echo isset($detail['id']) ? $detail['id'] : ''; ?>">
|
<input type="hidden" name="id" id="id" value="<?php echo isset($detail['id']) ? $detail['id'] : ''; ?>" />
|
||||||
<h3 class="h3-title">处理工单</h3>
|
<h3 class="h3-title">处理工单</h3>
|
||||||
<table class="layui-table layui-table-form">
|
<table class="layui-table layui-table-form">
|
||||||
<tr>
|
<tr>
|
||||||
@ -7,64 +7,98 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<select name="solve" lay-verify="required" lay-reqText="请选择处理人" class="layui-select" lay-search=""
|
<select name="solve" lay-verify="required" lay-reqText="请选择处理人" class="layui-select" lay-search=""
|
||||||
lay-filter="solve"></select>
|
lay-filter="solve"<?php if(isset($detail['status']) && ($detail['status']==2 || $detail['status']==3)) echo 'disabled'; ?>>
|
||||||
|
<option value="">请选择处理人</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td class="layui-td-gray-2">工单状态<font>*</font>
|
<td class="layui-td-gray-2">工单状态<font>*</font>
|
||||||
</td>
|
</td>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
<select name="status" lay-verify="required" lay-reqText="请选择工单状态" class="layui-select">
|
<select name="status" lay-verify="required" lay-reqText="请选择工单状态" class="layui-select" id="status-select"
|
||||||
|
<?php if(isset($detail['status']) && $detail['status']==3) echo 'disabled'; ?>>
|
||||||
<option value="">请选择工单状态</option>
|
<option value="">请选择工单状态</option>
|
||||||
<option value="1">解决中</option>
|
<option value="1" <?php if(isset($detail['status']) && $detail['status']==1) echo 'selected' ; ?> <?php if(isset($detail['status']) && $detail['status']==2) echo 'disabled'; ?>>解决中</option>
|
||||||
<option value="2">已解决</option>
|
<option value="2" <?php if(isset($detail['status']) && $detail['status']==2) echo 'selected' ; ?> <?php if(isset($detail['status']) && $detail['status']==2) echo 'disabled'; ?>>已解决</option>
|
||||||
<option value="3">已关闭</option>
|
<option value="3" <?php if(isset($detail['status']) && $detail['status']==3) echo 'selected' ; ?>>已关闭</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<?php if (!isset($detail['status']) || $detail['status'] != 3): ?>
|
||||||
<div class="pt-1">
|
<div class="pt-1">
|
||||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">
|
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">
|
||||||
立即提交
|
立即提交
|
||||||
</button>
|
</button>
|
||||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <input type="hidden" name="id" id="id" th:value="${id}">
|
<?php endif; ?>
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">姓名</label>
|
<h3 class="h3-title">问题简述</h3>
|
||||||
<div class="layui-input-block">
|
<table class="layui-table layui-table-form">
|
||||||
<input type="text" name="name" value="" placeholder="姓名" id="name" lay-verify="required|name" class="layui-input pwd">
|
<tr>
|
||||||
|
<td class="layui-td-gray-2">项目问题</td>
|
||||||
|
<td>
|
||||||
|
<div id="workorder-content">
|
||||||
|
<?= $detail['content'] ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</td>
|
||||||
<div class="layui-form-item">
|
<td class="layui-td-gray-2">备注</td>
|
||||||
<label class="layui-form-label">性别</label>
|
<td>{$detail.remark}</td>
|
||||||
<div class="layui-input-block">
|
</tr>
|
||||||
<input type="radio" name="sex" value="0" title="女" checked="">
|
</table>
|
||||||
<input type="radio" name="sex" value="1" title="男" >
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">年龄</label>
|
|
||||||
<div class="layui-input-block">
|
|
||||||
<input type="text" name="age" value="" placeholder="年龄" id="age" class="layui-input pwd">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<div class="layui-input-block">
|
|
||||||
<button class="layui-btn" lay-submit="" lay-filter="*">保存</button>
|
|
||||||
<button type="button" class="layui-btn layui-btn-primary" onclick="layerclose();">关闭</button>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
//判断工单状态
|
||||||
|
// 判断工单状态,禁用表单项
|
||||||
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
|
var detail = <?php echo json_encode(isset($detail) ? $detail : (object)[]); ?>;
|
||||||
|
var status = parseInt(detail.status, 10);
|
||||||
|
|
||||||
|
// 获取所有表单元素
|
||||||
|
var formElem = document.querySelector("form.layui-form");
|
||||||
|
var allInputs = formElem ? formElem.querySelectorAll("input, select, textarea, button[lay-submit]") : [];
|
||||||
|
|
||||||
|
// 如果status为3或4,禁用所有表单项
|
||||||
|
if (status === 3 || status === 4) {
|
||||||
|
allInputs.forEach(function (el) {
|
||||||
|
// 只允许工单状态选择4
|
||||||
|
if (el.name === "status") {
|
||||||
|
// 只保留4选项
|
||||||
|
Array.from(el.options).forEach(function(opt) {
|
||||||
|
if (opt.value !== "4" && opt.value !== "") {
|
||||||
|
opt.disabled = true;
|
||||||
|
opt.style.display = "none";
|
||||||
|
} else if (opt.value === "4") {
|
||||||
|
opt.selected = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
el.disabled = false;
|
||||||
|
} else {
|
||||||
|
el.disabled = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果status为4,全部禁用(包括工单状态)
|
||||||
|
if (status === 4) {
|
||||||
|
allInputs.forEach(function (el) {
|
||||||
|
el.disabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// 获取URL参数id
|
// 获取URL参数id
|
||||||
function getQueryId() {
|
function getQueryId() {
|
||||||
var match = window.location.pathname.match(/\/edit\/id\/(\d+)/);
|
var match = window.location.pathname.match(/\/edit\/id\/(\d+)/);
|
||||||
return match ? match[1] : '';
|
return match ? match[1] : "";
|
||||||
}
|
}
|
||||||
var id = getQueryId();
|
var id = getQueryId();
|
||||||
// 赋值给input(如果不是php渲染,也可保留此段,防止页面未渲染id时赋值)
|
// 赋值给input(如果不是php渲染,也可保留此段,防止页面未渲染id时赋值)
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
var idInput = document.getElementById('id');
|
var idInput = document.getElementById("id");
|
||||||
if (idInput && !idInput.value) {
|
if (idInput && !idInput.value) {
|
||||||
idInput.value = id;
|
idInput.value = id;
|
||||||
}
|
}
|
||||||
@ -74,8 +108,14 @@
|
|||||||
var form = layui.form,
|
var form = layui.form,
|
||||||
layer = layui.layer;
|
layer = layui.layer;
|
||||||
|
|
||||||
|
layer.photos({
|
||||||
|
photos: '#workorder-content',
|
||||||
|
anim: 5
|
||||||
|
});
|
||||||
|
|
||||||
// 渲染处理人下拉框并设置默认值
|
// 渲染处理人下拉框并设置默认值
|
||||||
var detail = <?php echo json_encode(isset($detail) ? $detail : []); ?>;
|
// var detail = <?php echo json_encode(isset($detail) ? $detail : (object)[]); ?>;
|
||||||
|
var detail = <?php echo json_encode(isset($detail) ? $detail : (object)[]); ?>;
|
||||||
fetch("/api/index/getallstaff")
|
fetch("/api/index/getallstaff")
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
@ -90,13 +130,14 @@
|
|||||||
option.selected = true;
|
option.selected = true;
|
||||||
}
|
}
|
||||||
select.appendChild(option);
|
select.appendChild(option);
|
||||||
|
console.log('detail.solve:', detail.solve, 'solve.id:', solve.id, 'equal:', String(detail.solve) === String(solve.id));
|
||||||
});
|
});
|
||||||
form.render("select");
|
form.render("select");
|
||||||
|
|
||||||
// 渲染默认值(工单状态)
|
// 渲染默认值(工单状态)
|
||||||
if (detail && typeof detail.status !== "undefined") {
|
if (detail && typeof detail.status !== "undefined") {
|
||||||
form.val("webform", {
|
form.val("webform", {
|
||||||
"status": detail.status
|
status: detail.status,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -104,6 +145,7 @@
|
|||||||
console.error("Error:", error);
|
console.error("Error:", error);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 监听提交事件
|
// 监听提交事件
|
||||||
form.on("submit(webform)", function (data) {
|
form.on("submit(webform)", function (data) {
|
||||||
// 发送请求并处理响应
|
// 发送请求并处理响应
|
||||||
@ -130,3 +172,24 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.page-content img {
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layui-layer-shade {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pt-1 {
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layui-table {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -3,7 +3,7 @@
|
|||||||
{block name="breadcrumb"}
|
{block name="breadcrumb"}
|
||||||
<span class="layui-breadcrumb">
|
<span class="layui-breadcrumb">
|
||||||
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
||||||
<a><cite>年度工单</cite></a>
|
<a><cite>工单管理</cite></a>
|
||||||
</span>
|
</span>
|
||||||
{/block} {block name="body"}
|
{/block} {block name="body"}
|
||||||
<div class="table-content p-3">
|
<div class="table-content p-3">
|
||||||
@ -11,54 +11,9 @@
|
|||||||
<div class="layui-form-bar border-t border-x">
|
<div class="layui-form-bar border-t border-x">
|
||||||
<button class="layui-btn layui-btn-normal layui-btn-sm add-new">+ 新建工单</button>
|
<button class="layui-btn layui-btn-normal layui-btn-sm add-new">+ 新建工单</button>
|
||||||
<button class="layui-btn layui-btn-sm" id="refresh-btn">刷新</button>
|
<button class="layui-btn layui-btn-sm" id="refresh-btn">刷新</button>
|
||||||
<button class="layui-btn layui-btn-sm" id="batch_delete">批量删除</button>
|
<!-- <button class="layui-btn layui-btn-sm" id="batch_delete">批量删除</button> -->
|
||||||
<!-- <div class="layui-inline">
|
|
||||||
<input class="layui-input search-input" id="search-input" type="text" placeholder="请输入搜索内容">
|
|
||||||
</div>
|
|
||||||
<button class="layui-btn" id="search-btn">搜索</button> -->
|
|
||||||
</div>
|
</div>
|
||||||
<div class="cateselect layui-form-bar border-x">
|
<div class="cateselect layui-form-bar border-x">
|
||||||
<!-- <form class="layui-form" action="" id="filter-form">
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">工单年份</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<select name="year" lay-verify=""></select>
|
|
||||||
</div>
|
|
||||||
<label class="layui-form-label">重要程度</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<select name="important" lay-verify="">
|
|
||||||
<option value="">请选择</option>
|
|
||||||
<option value="1">★</option>
|
|
||||||
<option value="2">★★</option>
|
|
||||||
<option value="3">★★★</option>
|
|
||||||
<option value="4">★★★★</option>
|
|
||||||
<option value="5">★★★★★</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<label class="layui-form-label">项目类型</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<select name="cate" lay-verify=""></select>
|
|
||||||
</div>
|
|
||||||
<label class="layui-form-label">负责人</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input class="layui-input search-input" id="search-responsible" type="text" placeholder="请输入负责人">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<div style="width: 100%;height: 10px;"></div>
|
|
||||||
<label class="layui-form-label">项目名称</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input class="layui-input search-input" id="search-name" type="text" placeholder="请输入项目名称">
|
|
||||||
</div>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<button class="layui-btn" lay-submit lay-filter="filterSearch" id="search-btn">筛选</button>
|
|
||||||
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="filterSearch"
|
|
||||||
id="search-reload">清除</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</form> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table class="layui-hide" id="workorder" lay-filter="workorder"></table>
|
<table class="layui-hide" id="workorder" lay-filter="workorder"></table>
|
||||||
@ -146,7 +101,9 @@
|
|||||||
tool.open('/workorder/index/view/id/' + id, '工单详情');
|
tool.open('/workorder/index/view/id/' + id, '工单详情');
|
||||||
} else if (obj.event === 'edit') {
|
} else if (obj.event === 'edit') {
|
||||||
var id = data.id;
|
var id = data.id;
|
||||||
tool.open('/workorder/index/edit/id/' + id, '处理工单');
|
var status = data.status; // 获取当前行的status
|
||||||
|
// 处理工单时带上status参数
|
||||||
|
tool.open('/workorder/index/edit/id/' + id + '/status/' + status, '处理工单');
|
||||||
} else if (obj.event === 'delete') {
|
} else if (obj.event === 'delete') {
|
||||||
var id = data.id;
|
var id = data.id;
|
||||||
layui.layer.confirm('确定要删除该工单吗?', {icon: 3, title: '提示'}, function(index){
|
layui.layer.confirm('确定要删除该工单吗?', {icon: 3, title: '提示'}, function(index){
|
||||||
@ -278,6 +235,7 @@
|
|||||||
field: "remark",
|
field: "remark",
|
||||||
title: "备注",
|
title: "备注",
|
||||||
align: "center",
|
align: "center",
|
||||||
|
minWidth: 180,
|
||||||
rowspan: 2,
|
rowspan: 2,
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
if (d.remark) {
|
if (d.remark) {
|
||||||
@ -321,7 +279,7 @@
|
|||||||
<!-- <button class="layui-btn layui-btn-sm" lay-event="view">查看详情</button> -->
|
<!-- <button class="layui-btn layui-btn-sm" lay-event="view">查看详情</button> -->
|
||||||
<!-- <a class="layui-btn layui-btn-sm " data-href="/workorder/index/view/id/' + d.id + '" style="display: flex;justify-content: center;align-items: center;">查看详情</a> -->
|
<!-- <a class="layui-btn layui-btn-sm " data-href="/workorder/index/view/id/' + d.id + '" style="display: flex;justify-content: center;align-items: center;">查看详情</a> -->
|
||||||
<a class="layui-btn layui-btn-primary layui-border-blue layui-btn-sm" lay-event="edit">处理工单</a>
|
<a class="layui-btn layui-btn-primary layui-border-blue layui-btn-sm" lay-event="edit">处理工单</a>
|
||||||
<a class="layui-btn layui-btn-primary layui-border layui-btn-sm" lay-event="delete">删除</a>
|
<!-- <a class="layui-btn layui-btn-primary layui-border layui-btn-sm" lay-event="delete">删除</a> -->
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
156
app/workorder/view/index/view.html
Normal file
156
app/workorder/view/index/view.html
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<form class="layui-form page-content p-4">
|
||||||
|
<input type="hidden" name="id" id="id" value="<?php echo isset($view['id']) ? $view['id'] : ''; ?>">
|
||||||
|
<h3 class="h3-title">工单详情 - ID:{$view['id']}</h3>
|
||||||
|
<table class="layui-table layui-table-form">
|
||||||
|
<tr>
|
||||||
|
<td class="layui-td-gray-2">隶属项目</td>
|
||||||
|
<td>{$view['project_id']}</td>
|
||||||
|
<td class="layui-td-gray-2">工单状态</td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
$statusMap = [
|
||||||
|
0 => "未解决",
|
||||||
|
1 => "解决中",
|
||||||
|
2 => "已解决",
|
||||||
|
3 => "已关闭"
|
||||||
|
];
|
||||||
|
$statusClass = isset($view['status']) ? 'gdzt gd-' . intval($view['status']) : '';
|
||||||
|
$statusText = (isset($view['status']) && isset($statusMap[$view['status']])) ? $statusMap[$view['status']] : '-';
|
||||||
|
?>
|
||||||
|
<span class="<?php echo $statusClass; ?>"><?php echo $statusText; ?></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="layui-td-gray-2">提交人</td>
|
||||||
|
<td>{$view['creater']}</td>
|
||||||
|
<td class="layui-td-gray-2">联系方式</td>
|
||||||
|
<td>{$view['contact']}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="layui-td-gray-2">提交时间</td>
|
||||||
|
<td>{$view['sub_time']}</td>
|
||||||
|
<td class="layui-td-gray-2">分派处理人</td>
|
||||||
|
<td>
|
||||||
|
<?php echo isset($view['solve']) && $view['solve'] !== '' ? $view['solve'] : '暂无'; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="layui-td-gray-2">项目问题</td>
|
||||||
|
<td colspan="4">
|
||||||
|
<div id="workorder-content">
|
||||||
|
<?= $view['content'] ?>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="layui-td-gray-2">备注</td>
|
||||||
|
<td colspan="4">
|
||||||
|
{$view.remark}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// 获取URL参数id
|
||||||
|
function getQueryId() {
|
||||||
|
var match = window.location.pathname.match(/\/edit\/id\/(\d+)/);
|
||||||
|
return match ? match[1] : '';
|
||||||
|
}
|
||||||
|
var id = getQueryId();
|
||||||
|
// 赋值给input(如果不是php渲染,也可保留此段,防止页面未渲染id时赋值)
|
||||||
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
var idInput = document.getElementById('id');
|
||||||
|
if (idInput && !idInput.value) {
|
||||||
|
idInput.value = id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
layui.use(["form", "layer", "upload"], function () {
|
||||||
|
var form = layui.form,
|
||||||
|
layer = layui.layer,
|
||||||
|
upload = layui.upload;
|
||||||
|
|
||||||
|
layer.photos({
|
||||||
|
photos: '#workorder-content',
|
||||||
|
anim: 5
|
||||||
|
});
|
||||||
|
|
||||||
|
var selectedFile = null; // 用于存储选择的文件
|
||||||
|
|
||||||
|
form.render();
|
||||||
|
|
||||||
|
// 监听提交事件
|
||||||
|
form.on("submit(webform)", function (data) {
|
||||||
|
// 发送请求并处理响应
|
||||||
|
fetch("/download/index/edit?id=" + idValue, {
|
||||||
|
method: "POST",
|
||||||
|
body: JSON.stringify({
|
||||||
|
id: document.getElementById('id').value,
|
||||||
|
name: document.getElementById('name').value,
|
||||||
|
cid: document.querySelector('select[name="cid"]').value,
|
||||||
|
version: document.querySelector('input[name="version"]').value,
|
||||||
|
path: document.querySelector('input[name="path"]').value,
|
||||||
|
download_url: document.querySelector('input[name="download_url"]').value,
|
||||||
|
download_code: document.querySelector('input[name="download_code"]').value,
|
||||||
|
description: document.querySelector('textarea[name="description"]').value,
|
||||||
|
update_time: updateTime,
|
||||||
|
}),
|
||||||
|
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then((response) => response.json())
|
||||||
|
.then((result) => {
|
||||||
|
layer.msg(result.msg);
|
||||||
|
if (result.code === 2) {
|
||||||
|
setTimeout(function () {
|
||||||
|
// document.querySelector("form").reset();
|
||||||
|
// location.reload(); // 刷新页面
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.layui-table td{
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
.gdzt{
|
||||||
|
padding: 3px 5px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gd-0{
|
||||||
|
color:#555 ;
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gd-1{
|
||||||
|
color:#fff ;
|
||||||
|
background-color: #1e9fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gd-2{
|
||||||
|
color:#fff ;
|
||||||
|
background-color: #16b777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gd-3{
|
||||||
|
color:#fff ;
|
||||||
|
background-color: #a233c6 ;
|
||||||
|
}
|
||||||
|
.pt-1{
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
.page-content img{
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
.layui-layer-shade {
|
||||||
|
background-color: rgba(0,0,0,0.5) !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user