first commit

This commit is contained in:
2025-06-25 10:53:11 +08:00
commit 9f374011ae
1240 changed files with 181139 additions and 0 deletions
+307
View File
@@ -0,0 +1,307 @@
<style>
.layui-form-item.layui-form-pane{margin-bottom:8px;}
.layui-form-pane .layui-form-label {width:60px; padding:8px;}
.layui-form-pane .layui-form-label.label-index,.layui-form-pane .layui-form-label.label-first {width:80px;}
.layui-form-item .layui-input-inline {margin-right:4px;}
.layui-form-item .layui-inline {margin-right:0; margin-bottom:0;}
</style>
<form class="layui-form page-content p-4">
<h3 class="h3-title">新建项目</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">项目名称<font>*</font></td>
<td>
<input type="text" name="name" lay-verify="required" lay-reqText="请输入项目名称" placeholder="请输入项目名称" class="layui-input" value="">
</td>
<td class="layui-td-gray">项目简称<font>*</font></td>
<td>
<input type="text" name="name_short" lay-verify="required" lay-reqText="请输入项目简称" placeholder="请输入项目简称" class="layui-input" value="">
</td>
<td class="layui-td-gray-2">计划完成周期</td>
<td id="date">
<div class="layui-input-inline" style="width:100px;">
<input type="text" id="start_time" name="start_time" readonly lay-reqText="请选择开始时间" placeholder="请选择" class="layui-input" value="">
</div>
-
<div class="layui-input-inline" style="width:100px;">
<input type="text" id="end_time" name="end_time" readonly lay-reqText="请选择结束时间" placeholder="请选择" class="layui-input" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray">负责人<font>*</font></td>
<td>
<input type="text" name="director_name" placeholder="请选择项目负责人" readonly class="layui-input picker-one" value="{$user_info.name}">
<input type="hidden" name="director_uid" lay-verify="required" readonly lay-reqText="请选择项目负责人" value="{$user_info.id}">
</td>
<td class="layui-td-gray">项目成员<span style="color: red">*</span></td>
<td>
<input type="text" id="team_admin_names" name="team_admin_names" placeholder="请选择项目成员" readonly class="layui-input picker-more" value="{$user_info.name}">
<input type="hidden" id="team_admin_ids" name="team_admin_ids" class="layui-input" value="{$user_info.id}">
</td>
<td class="layui-td-gray">项目类型<font>*</font></td>
<td>
<!-- <select name="product_id" lay-verify="required" lay-reqText="请选择关联产品">-->
<select name="project_type" lay-verify="" lay-reqText="是否是内部项目">
<option value="">请选择项目类型</option>
<option value="1">申报项目</option>
<option value="2">维护保障项目</option>
<option value="3">开发项目【外部】</option>
<option value="4">开发项目【内部】</option>
</select>
</td>
</tr>
<tr>
<td class="layui-td-gray">关联产品</td>
<td>
<!-- <select name="product_id" lay-verify="required" lay-reqText="请选择关联产品">-->
<select name="product_id" lay-verify="" lay-reqText="请选择关联产品">
<option value="">请选择关联产品</option>
{volist name=":get_product()" id="v"}
<option value="{$v.id}">{$v.name}</option>
{/volist}
</select>
</td>
<td class="layui-td-gray">关联客户</td>
<td>
<select name="business_id" id="business_id" lay-verify="" lay-reqText="请选择客户">
<option value="">请选择客户</option>
</select>
</td>
</tr>
<tr>
<td class="layui-td-gray">项目简介<span style="color: red">*</span></td>
<td colspan="5">
<textarea name="content" class="layui-textarea" lay-verify="required" lay-reqText="请完善项目简介"></textarea>
</td>
</tr>
<tr>
<td colspan="6" class="layui-td-gray" style="text-align:left; font-weight:600">项目阶段<font>*</font></td>
</tr>
<tr>
<td colspan="6">
<div id="flowList">
{volist name = "$section" id="vo" key="k"}
{eq name="key" value="0"}
<div class="layui-form-item layui-form-pane">
<div class="layui-inline">
<label class="layui-form-label label-first">第{$key+1}阶段</label>
<div class="layui-input-inline" style="width:150px;">
<select name="flowName[]" lay-filter="flowName" lay-reqText="请选择阶段名称">
<option value="">请选择</option>
{volist name = "section" id="voo" key="kk"}
<option value="{$voo}" {eq name="$kk" value ="$k"} selected{/eq}>{$voo}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">负责人</label>
<div class="layui-input-inline" style="width:120px;">
<input type="text" name="chargeNames[]" autocomplete="off" readonly placeholder="选择阶段负责人" class="layui-input picker-one" lay-reqText="请选择阶段负责人" value="{$user_info.name}">
<input type="hidden" name="chargeIds[]" value="{$user_info.id}">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">成员</label>
<div class="layui-input-inline" style="width:168px;">
<input type="text" name="membeNames[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段成员,可多选" class="layui-input picker-more" lay-reqText="请选择阶段成员">
<input type="hidden" name="membeIds[]" value="{$user_info.id}">
</div>
</div>
</div>
{else/}
<div class="layui-form-item layui-form-pane">
<div class="layui-inline">
<label class="layui-form-label label-index">第{$key+1}阶段</label>
<div class="layui-input-inline" style="width:150px;">
<select name="flowName[]" lay-filter="flowName" lay-reqText="请选择阶段名称">
<option value="">请选择</option>
{volist name = "section" id="voo" key="kk"}
<option value="{$voo}" {eq name="$kk" value ="$k"} selected{/eq}>{$voo}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">负责人</label>
<div class="layui-input-inline" style="width:120px;">
<input type="text" name="chargeNames[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段负责人" class="layui-input picker-one" lay-reqText="请选择阶段负责人">
<input type="hidden" name="chargeIds[]" value="{$user_info.id}">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">成员</label>
<div class="layui-input-inline" style="width:168px;">
<input type="text" name="membeNames[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段成员,可多选" class="layui-input picker-more" lay-reqText="请选择阶段成员">
<input type="hidden" name="membeIds[]" value="{$user_info.id}">
</div>
</div>
<span class="layui-btn layui-btn-danger layui-btn-sm">删除</span>
</div>
{/eq}
{/volist}
</div>
<span class="layui-btn layui-btn-xs layui-btn-normal add-flow" data-type="0">+ 添加固定阶段</span><span class="layui-btn layui-btn-xs add-flow" data-type="1">+ 添加自定义阶段</span>
<div style="padding:10px; margin-top:10px; font-size:12px; background-color:#fffcf0">
<p><strong>温馨提示</strong></p>
<p>1、项目开始流转前,请确保已完善好各项目信息。</p>
<p>2、项目开始流转后,只有项目管理员,创建人和负责人可修改项目信息。</p>
<p>3、项目管理员,创建人和负责人可以修改项目阶段的信息,但是修改完成后已流转的项目阶段需要重新走一遍流程。</p>
</div>
</td>
</tr>
</table>
<div style="padding: 10px 0">
<input type="hidden" name="id" value="0" />
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
<script>
function openInit() {
var form = layui.form,
layer = layui.layer,
tool = layui.tool,
laydate = layui.laydate,
employeepicker = layui.employeepicker;
form.render();
function fetchCustomers() {
tool.get('/business/index/getlistsmore', {}, function(response) {
if (response.code == 1) {
var customers = response.data;
var customerSelect = document.getElementById('business_id');
customers.forEach(function(customer) {
var option = document.createElement('option');
option.value = customer.id;
option.text = customer.name;
customerSelect.appendChild(option);
});
form.render('select');
} else {
layer.msg('获取客户数据失败');
}
});
}
fetchCustomers();
form.render();
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
});
//日期
lay('.select-time-range').each(function () {
laydate.render({
elem: this,
range: '到',
trigger: 'click'
});
});
$('.add-flow').on('click',function(){
let len = $('#flowList').find('.layui-form-item').length;
let index = len+1;
let type = $(this).data('type');;
let tem=['<div class="layui-form-item layui-form-pane">\
<div class="layui-inline">\
<label class="layui-form-label label-index">第'+index+'阶段</label>\
<div class="layui-input-inline" style="width:150px;">\
<select name="flowName[]" lay-filter="flowName" lay-verify="required" lay-reqText="请选择阶段名称">\
<option value="">请选择</option>\
<option value="调研阶段">调研阶段</option>\
<option value="报价阶段">报价阶段</option>\
<option value="招投标阶段">招投标阶段</option>\
<option value="签约阶段">签约阶段</option>\
<option value="研发阶段">研发阶段</option>\
<option value="测试阶段">测试阶段</option>\
<option value="交付阶段">交付阶段</option>\
<option value="项目完结">项目完结</option>\
</select>\
</div>\
</div>\
<div class="layui-inline">\
<label class="layui-form-label">负责人</label>\
<div class="layui-input-inline" style="width:120px;">\
<input type="text" name="chargeName[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段负责人" class="layui-input picker-one" lay-verify="required" lay-reqText="请选择阶段负责人">\
<input type="hidden" name="chargeIds[]" value="{$user_info.id}">\
</div>\
</div>\
<div class="layui-inline">\
<label class="layui-form-label">成员</label>\
<div class="layui-input-inline" style="width:168px;">\
<input type="text" name="membeNames[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段成员,可多选" class="layui-input picker-more" lay-verify="required" lay-reqText="请选择阶段成员">\
<input type="hidden" name="membeIds[]" value="{$user_info.id}">\
</div>\
</div>\
<span class="layui-btn layui-btn-danger layui-btn-sm">删除</span>\
</div>',
'<div class="layui-form-item layui-form-pane">\
<div class="layui-inline">\
<label class="layui-form-label label-index">第'+index+'阶段</label>\
<div class="layui-input-inline" style="width:120px;">\
<input type="text" name="flowName[]" autocomplete="off" placeholder="输入阶段名称" class="layui-input" lay-verify="required" lay-reqText="请输入阶段名称">\
</div>\
</div>\
<div class="layui-inline">\
<label class="layui-form-label">负责人</label>\
<div class="layui-input-inline" style="width:120px;">\
<input type="text" name="chargeNames[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段负责人" class="layui-input picker-one" lay-verify="required" lay-reqText="请选择阶段负责人">\
<input type="hidden" name="chargeIds[]" value="{$user_info.id}">\
</div>\
</div>\
<div class="layui-inline">\
<label class="layui-form-label">成员</label>\
<div class="layui-input-inline" style="width:168px;">\
<input type="text" name="membeNames[]" value="{$user_info.name}" autocomplete="off" readonly placeholder="选择阶段成员,可多选" class="layui-input picker-more" lay-verify="required" lay-reqText="请选择阶段成员">\
<input type="hidden" name="membeIds[]" value="{$user_info.id}">\
</div>\
</div>\
<span class="layui-btn layui-btn-danger layui-btn-sm">删除</span>\
</div>'
];
$('#flowList').append(tem[type]);
form.render();
//日期
lay('.select-time-range').each(function () {
laydate.render({
elem: this,
range: '到',
trigger: 'click'
});
});
});
$('#flowList').on('click','.layui-btn-danger',function(){
$(this).parents('.layui-form-item').remove();
var items = $('.label-index').length;
if(items>0){
$('.label-index').each(function(index,item){
$(this).html('第'+(index+2)+'阶段');
})
}
});
//监听提交
form.on('submit(webform)', function (data) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.close(1000);
}
}
tool.post("/project/index/add",data.field,callback);
return false;
});
}
</script>