516 lines
23 KiB
Cheetah
516 lines
23 KiB
Cheetah
{{template "header"}}
|
|
|
|
<div class="edit-box">
|
|
<form class="layui-form">
|
|
{{.CsrfTokenField}}
|
|
<input type="hidden" id="ID" name="ID" value="{{.Item.ID}}" />
|
|
|
|
<div class="layui-tab-content" style="padding-top: 0;">
|
|
<div class="layui-tab-item layui-show">
|
|
<!-- <div class="layui-card">
|
|
<div class="layui-card-header">客户信息</div>
|
|
<div class="layui-card-body">
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">选择客户</div>
|
|
<div class="layui-input-inline" id="CustomerID" style="width: 240px;"></div>
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
<div class="layui-card">
|
|
<div class="layui-card-header layui-card-header-slipt">客户信息</div>
|
|
<div class="layui-card-body">
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">选择客户</div>
|
|
<div class="layui-input-inline">
|
|
<button type="button" id="selectCustomer"
|
|
class="layui-btn layui-btn-primary layui-border">
|
|
<i class="layui-icon layui-icon-search"></i>
|
|
选择数据
|
|
</button>
|
|
</div>
|
|
<div class="layui-form-label">客户编号</div>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="CustomerID" name="CustomerID" value="{{.Item.CustomerID}}"
|
|
lay-verify="required" readonly autocomplete="off" placeholder="请输入客户编号"
|
|
class="layui-input" />
|
|
</div>
|
|
<div class="layui-form-label">客户名称</div>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="CustomerName" name="CustomerName" value="{{.Item.CustomerName}}"
|
|
readonly autocomplete="off" placeholder="请输入客户名称" class="layui-input" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-card">
|
|
<div class="layui-card-header">项目信息</div>
|
|
<div class="layui-card-body">
|
|
{{if .Item.ID}}
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">编号</div>
|
|
<div class="layui-form-label" style="width:400px;text-align:left;">
|
|
{{.Item.ID}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">名称</label>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="Name" name="Name" value="{{.Item.Name}}" lay-verify="required"
|
|
autocomplete="off" placeholder="请输入名称" class="layui-input" style="width:700px;" />
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">状态</label>
|
|
<div class="layui-input-inline" style="width:600px;">
|
|
{{range .Statuses}}
|
|
{{if.Selected}}
|
|
<input type="radio" name="Status" value="{{.Value}}" title="{{.Name}}" checked>
|
|
{{else}}
|
|
<input type="radio" name="Status" value="{{.Value}}" title="{{.Name}}">
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">开始时间</label>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="StartAt" name="StartAt" value="{{.Item.StartAt}}"
|
|
lay-verify="required" autocomplete="off" placeholder="请输入名称" class="layui-input" />
|
|
</div>
|
|
<label class="layui-form-label">结束时间</label>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="EndAt" name="EndAt" value="{{.Item.EndAt}}" lay-verify="required"
|
|
autocomplete="off" placeholder="请输入名称" class="layui-input" />
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">总金额</label>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="TotalMoney" name="TotalMoney" value="{{.Item.TotalMoney}}"
|
|
lay-verify="required" autocomplete="off" placeholder="请输入总金额" class="layui-input" />
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">简介</label>
|
|
<div class="layui-input-inline">
|
|
<textarea id="Description" name="Description" class="layui-textarea"
|
|
style="width: 600px; height: 60px;">{{.Item.Description}}</textarea>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">物料</label>
|
|
<div class="layui-input-inline" style="width: auto;">
|
|
{{template "upload_mutil" .Item.ProjectFiles}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-card">
|
|
<div class="layui-card-header">项目团队</div>
|
|
<div class="layui-card-body">
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">项目经理</div>
|
|
<div class="layui-input-inline" id="ManagerID" style="width: 400px;"></div>
|
|
<div class="layui-form-label">项目成员</div>
|
|
<div class="layui-input-inline" id="Members" style="width: 400px;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-card">
|
|
<div class="layui-card-header">申请信息</div>
|
|
<div class="layui-card-body">
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">申请人</div>
|
|
<div class="layui-input-inline" id="ApplyUserID" style="width: 400px;"></div>
|
|
<label class="layui-form-label">申请时间</label>
|
|
<div class="layui-input-inline">
|
|
<input type="text" id="ApplyAt" name="ApplyAt" value="{{.Item.ApplyAt}}"
|
|
lay-verify="required" autocomplete="off" class="layui-input" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-card">
|
|
<div class="layui-card-header">其他</div>
|
|
<div class="layui-card-body">
|
|
{{if .Item.ID}}
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">创建</div>
|
|
<div class="layui-form-label" style="width:400px;text-align:left;">
|
|
{{.Item.CreatedName}}
|
|
({{dateFormat .Item.CreatedAt}})
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-label">更新</div>
|
|
<div class="layui-form-label" style="width:400px;text-align:left;">
|
|
{{.Item.UpdatedName}}
|
|
({{dateFormat .Item.UpdatedAt}})
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-form-item layui-fixbar btn-fixbar-box">
|
|
<div class="layui-input-block">
|
|
{{ submitBtn .AuthorizeMenus "save"}}
|
|
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-on="close">
|
|
<i class="layui-icon layui-icon-close"></i>关闭
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
|
|
{{define "css"}}
|
|
<style>
|
|
.layui-body {
|
|
padding: 15px;
|
|
left: 0;
|
|
}
|
|
|
|
.loader::after {
|
|
content: '';
|
|
}
|
|
</style>
|
|
{{end}}
|
|
|
|
{{define "js"}}
|
|
<script>
|
|
layui.use(['table', 'form', 'jquery', 'iconPicker', 'laydate', 'dtree', 'xmSelect', "util"], function () {
|
|
let $ = layui.jquery;
|
|
let table = layui.table;
|
|
let form = layui.form;
|
|
let iconPicker = layui.iconPicker;
|
|
let dtree = layui.dtree;
|
|
let xmSelect = layui.xmSelect;
|
|
let util = layui.util;
|
|
let laydate = layui.laydate;
|
|
|
|
/**开始时间 */
|
|
laydate.render({
|
|
elem: '#StartAt',
|
|
type: 'date',
|
|
value: '{{today}}',
|
|
});
|
|
|
|
/**截止时间 */
|
|
laydate.render({
|
|
elem: '#EndAt',
|
|
type: 'date',
|
|
value: '{{threeMonth}}',
|
|
});
|
|
|
|
laydate.render({
|
|
elem: '#ApplyAt',
|
|
type: 'date',
|
|
value: '{{today}}',
|
|
});
|
|
|
|
// 表单提交
|
|
form.on('submit(save)', function (data) {
|
|
$.ajax({
|
|
url: '/project/save',
|
|
type: 'post',
|
|
dataType: 'json',
|
|
data: data.field,
|
|
success: function (result) {
|
|
if (result.success) {
|
|
layer.msg(result.msg, { icon: 1, time: 1000 }, function () {
|
|
parent.layer.close(parent.layer.getFrameIndex(window.name)); // 关闭当前页
|
|
parent.layui.table.reload("tablelist", {
|
|
page: { curr: 1 },
|
|
});
|
|
});
|
|
} else {
|
|
parent.layer.msg(result.msg, { icon: 2 })
|
|
}
|
|
}
|
|
});
|
|
|
|
return false;
|
|
});
|
|
|
|
// 事件绑定
|
|
util.on("lay-on", {
|
|
"close": function () {
|
|
window.parent.layer.close(parent.layer.getFrameIndex(window.name));
|
|
}
|
|
});
|
|
|
|
//getCustomer();
|
|
getUser();
|
|
|
|
// function getCustomer() {
|
|
// $.ajax({
|
|
// url: '/customer/xmselect',
|
|
// type: 'post',
|
|
// dataType: 'json',
|
|
// headers: { 'X-CSRF-Token': $('#csrf_token').val() },
|
|
// success: function (res) {
|
|
// xmSelect.render({
|
|
// el: '#CustomerID',
|
|
// // 工具栏
|
|
// radio: true,
|
|
// toolbar: {
|
|
// show: true
|
|
// },
|
|
// tips: '请选择客户',
|
|
// filterable: true,
|
|
// data: res,
|
|
// name: 'CustomerID',
|
|
// initValue: ['{{.Item.CustomerID}}'],
|
|
// on: function (data) { },
|
|
// });
|
|
// },
|
|
// error: function (err) {
|
|
// // 处理请求错误
|
|
// console.log('请求出错:', err);
|
|
// }
|
|
// });
|
|
// }
|
|
|
|
function getUser() {
|
|
let array = '{{.Item.Members}}';
|
|
$.ajax({
|
|
url: '/system/user/data?type=xmselect',
|
|
type: 'post',
|
|
dataType: 'json',
|
|
headers: { 'X-CSRF-Token': $('#csrf_token').val() },
|
|
success: function (res) {
|
|
xmSelect.render({
|
|
el: '#ApplyUserID',
|
|
// 工具栏
|
|
radio: true,
|
|
toolbar: {
|
|
show: true
|
|
},
|
|
tips: '请选择申请人',
|
|
filterable: true,
|
|
data: res,
|
|
name: 'ApplyUserID',
|
|
initValue: ['{{.Item.ApplyUserID}}'],
|
|
on: function (data) { },
|
|
});
|
|
|
|
xmSelect.render({
|
|
el: '#ManagerID',
|
|
// 工具栏
|
|
radio: true,
|
|
toolbar: {
|
|
show: true
|
|
},
|
|
tips: '请选择项目经理',
|
|
filterable: true,
|
|
data: res,
|
|
name: 'ManagerID',
|
|
initValue: ['{{.Item.ManagerID}}'],
|
|
on: function (data) { },
|
|
});
|
|
|
|
|
|
xmSelect.render({
|
|
el: '#Members',
|
|
// 工具栏
|
|
toolbar: {
|
|
show: true
|
|
},
|
|
tips: '请选择项目成员',
|
|
filterable: true,
|
|
data: res,
|
|
name: 'Members',
|
|
initValue: array.split(','),
|
|
on: function (data) { },
|
|
});
|
|
},
|
|
error: function (err) {
|
|
// 处理请求错误
|
|
console.log('请求出错:', err);
|
|
}
|
|
});
|
|
}
|
|
|
|
let customerLayer;
|
|
$('#selectCustomer').on('click', function () {
|
|
customerLayer = layer.open({
|
|
type: 1, // page 层类型
|
|
area: ['70%', '90%'],
|
|
title: '选择数据',
|
|
scrollbar: false,
|
|
shade: 0.2, // 遮罩透明度
|
|
shadeClose: false, // 点击遮罩区域,关闭弹层
|
|
maxmin: false, // 允许全屏最小化
|
|
anim: 0, // 0-6 的动画形式,-1 不开启
|
|
content: '<table id="customer_list" lay-filter="customer_list"></table>',
|
|
success: function (layero, index, that) {
|
|
// layero 弹层的最外层元素的 jQuery 对象
|
|
// index 弹层的索引值
|
|
// that 弹层内部原型链中的 this --- 2.8+
|
|
loadCustomerList();
|
|
}
|
|
});
|
|
});
|
|
|
|
function loadCustomerList() {
|
|
table.render({
|
|
elem: '#customer_list',
|
|
url: "/customer/list",
|
|
method: "POST",
|
|
headers: { 'X-CSRF-Token': $('#csrf_token').val() },
|
|
//height: 'full',
|
|
height: function () {
|
|
return $(window).height() - 135;
|
|
},
|
|
page: true,
|
|
cols: [[
|
|
{ field: 'name', title: '名称', align: 'left', fixed: 'left', width: 200 },
|
|
{ field: 'sid', title: '编号', align: 'left', width: 180 },
|
|
{ field: 'category_name', title: '类别', align: 'left', width: 100 },
|
|
{ field: 'source_name', title: '来源', align: 'left', width: 100 },
|
|
{
|
|
field: 'status', title: '状态', align: 'center', width: 90, templet: function (row) {
|
|
switch (row.status) {
|
|
case 0: return '<span style="color:green;">正常</span>';
|
|
case -1: return '<span style="color:red;">删除</span>';
|
|
default: return '其它';
|
|
}
|
|
return '';
|
|
}
|
|
},
|
|
{ field: 'contact_name', title: '联系人姓名', align: 'left', width: 120 },
|
|
{ field: 'contact_phone', title: '联系人手机', align: 'left', width: 120 },
|
|
{ field: 'address', title: '地址', align: 'left', width: 200 },
|
|
{ field: 'sort', title: '排序', align: 'center', width: 80 },
|
|
]],
|
|
skin: 'line',
|
|
defaultToolbar: []
|
|
});
|
|
}
|
|
|
|
// 行单击事件( 双击事件为: rowDouble )
|
|
table.on('row(customer_list)', function (obj) {
|
|
var data = obj.data; // 获取当前行数据
|
|
$('#CustomerID').val(data.sid);
|
|
$('#CustomerName').val(data.name);
|
|
layer.close(customerLayer);
|
|
});
|
|
|
|
// let sysUserLayer;
|
|
// let projectUserList = "project_user_list"
|
|
// $('#selectProjectUser').on('click', function () {
|
|
// sysUserLayer = layer.open({
|
|
// type: 1, // page 层类型
|
|
// area: ['70%', '90%'],
|
|
// title: '选择数据',
|
|
// scrollbar: false,
|
|
// shade: 0.2, // 遮罩透明度
|
|
// shadeClose: false, // 点击遮罩区域,关闭弹层
|
|
// maxmin: false, // 允许全屏最小化
|
|
// anim: 0, // 0-6 的动画形式,-1 不开启
|
|
// content: '<table id="' + projectUserList + '" lay-filter="' + projectUserList + '"></table>',
|
|
// success: function (layero, index, that) {
|
|
// // layero 弹层的最外层元素的 jQuery 对象
|
|
// // index 弹层的索引值
|
|
// // that 弹层内部原型链中的 this --- 2.8+
|
|
// loadUserList(projectUserList);
|
|
// }
|
|
// });
|
|
// });
|
|
// table.on('row(' + projectUserList + ')', function (obj) {
|
|
// var data = obj.data; // 获取当前行数据
|
|
// console.log(data);
|
|
// $('#ManagerID').val(data.id);
|
|
// $('#ManagerName').val(data.username);
|
|
// layer.close(sysUserLayer);
|
|
// });
|
|
|
|
// let applyUserList = "apply_user_list"
|
|
// $('#selectApplyUser').on('click', function () {
|
|
// sysUserLayer = layer.open({
|
|
// type: 1, // page 层类型
|
|
// area: ['70%', '90%'],
|
|
// title: '选择数据',
|
|
// scrollbar: false,
|
|
// shade: 0.2, // 遮罩透明度
|
|
// shadeClose: false, // 点击遮罩区域,关闭弹层
|
|
// maxmin: false, // 允许全屏最小化
|
|
// anim: 0, // 0-6 的动画形式,-1 不开启
|
|
// content: '<table id="' + applyUserList + '" lay-filter="' + applyUserList + '"></table>',
|
|
// success: function (layero, index, that) {
|
|
// // layero 弹层的最外层元素的 jQuery 对象
|
|
// // index 弹层的索引值
|
|
// // that 弹层内部原型链中的 this --- 2.8+
|
|
// loadUserList(applyUserList);
|
|
// }
|
|
// });
|
|
// });
|
|
// table.on('row(' + applyUserList + ')', function (obj) {
|
|
// var data = obj.data; // 获取当前行数据
|
|
// $('#ApplyUserID').val(data.id);
|
|
// $('#ApplyUserName').val(data.username);
|
|
// layer.close(sysUserLayer);
|
|
// });
|
|
|
|
// function loadUserList(elem) {
|
|
// table.render({
|
|
// elem: '#' + elem,
|
|
// url: "/system/user/list",
|
|
// method: "POST",
|
|
// headers: { 'X-CSRF-Token': $('#csrf_token').val() },
|
|
// height: 'full',
|
|
// page: true,
|
|
// cols: [[
|
|
// { field: 'email', title: '邮箱', align: 'left', width: 180 },
|
|
// { field: 'username', title: '用户名', align: 'left', width: 100 },
|
|
// {
|
|
// field: 'avatar', title: '头像', align: 'center', width: 90, templet: function (d) {
|
|
// if (d.avatar === 0 || d.avatar === undefined || d.avatar === '') { return ''; }
|
|
// if (d.avatar === '/statics/admin/images/avatar.jpg') {
|
|
// return '<img src="/statics/admin/images/avatar.jpg" width=30 height=30 />';
|
|
// }
|
|
// return '<img src="' + d.avatar + '" width=30 height=30 />';
|
|
// }
|
|
// },
|
|
// { field: 'department_name', title: '部门', align: 'left', width: 100 },
|
|
// { field: 'role_name', title: '角色', align: 'left', width: 100 },
|
|
// {
|
|
// field: 'gender', title: '性别', align: 'center', width: 50, templet: function (d) {
|
|
// if (d.gender == 0) {
|
|
// return '未知';
|
|
// } else if (d.gender == 1) {
|
|
// return '男';
|
|
// } else if (d.gender == 2) {
|
|
// return '女';
|
|
// }
|
|
// }
|
|
// },
|
|
// {
|
|
// field: 'status', title: '状态', align: 'center', width: 90, templet: function (row) {
|
|
// switch (row.status) {
|
|
// case 0: return '正常';
|
|
// case -1: return '删除';
|
|
// default: return '其它';
|
|
// }
|
|
// return '';
|
|
// }
|
|
// },
|
|
// ]],
|
|
// skin: 'line',
|
|
// defaultToolbar: []
|
|
// });
|
|
// }
|
|
|
|
});
|
|
</script>
|
|
{{end}}
|
|
|
|
{{template "footer" .}} |