345 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			345 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <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">项目类型<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">负责人<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">关联客户</td>
 | ||
|             <td>
 | ||
|                 <select name="business_id" id="business_id" lay-verify="" lay-search="" lay-reqText="请选择客户">
 | ||
|                     <option value="">请选择客户</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-search="" 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-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">项目简介<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> |