2025-05-30 02:10:24 +00:00
<!DOCTYPE html>
2025-05-30 09:32:14 +00:00
< html lang = "zh" xmlns:th = "http://www.thymeleaf.org" >
2025-05-30 02:10:24 +00:00
< head >
2025-05-30 09:32:14 +00:00
< th:block th:include = "include :: header('新增项目管理')" / >
< th:block th:include = "include :: datetimepicker-css" / >
2025-05-30 02:10:24 +00:00
< / head >
2025-05-30 09:32:14 +00:00
< style >
2025-06-03 09:38:14 +00:00
body {
font-family: "微软雅黑", Arial, sans-serif;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 20px;
}
th, td {
border: 1px solid #ccc;
padding: 8px;
}
.is-required {
color: red;
}
th {
background: #f5f5f5;
}
.section-title {
font-weight: bold;
font-size: 18px;
padding: 10px 0;
}
.checkbox-group label {
margin-right: 20px;
}
.add-btn {
background: #409eff;
color: #fff;
border: none;
padding: 5px 10px;
cursor: pointer;
}
.checkbox-box {
2025-05-30 09:32:14 +00:00
display: flex;
2025-06-03 09:38:14 +00:00
flex-direction: row;
2025-05-30 09:32:14 +00:00
gap: 10px;
}
2025-06-03 09:38:14 +00:00
.checkbox-box label {
2025-05-30 09:32:14 +00:00
display: flex;
2025-06-03 09:38:14 +00:00
flex-direction: row;
2025-05-30 09:32:14 +00:00
gap: 5px;
align-items: center;
}
2025-06-03 09:38:14 +00:00
.shortTd {
width: 100px;
}
.middleTd {
width: 150px;
}
2025-05-30 09:32:14 +00:00
< / style >
2025-05-30 02:10:24 +00:00
< body class = "white-bg" >
2025-05-30 09:32:14 +00:00
< div class = "wrapper wrapper-content animated fadeInRight ibox-content" >
< form id = "form-product-add" >
< div class = "section-title" > 项目信息< / div >
< table >
< tr >
2025-06-03 09:38:14 +00:00
< td class = "shortTd" > 项目编码< span class = "is-required" > *< / span > < / td >
< td colspan = "2" > < input type = "text" name = "project_code" class = "form-control" > < / td >
< td class = "middleTd" > 项目名称< span class = "is-required" > *< / span > < / td >
< td colspan = "2" > < input type = "text" name = "project_name" class = "form-control"
>< / td >
2025-05-30 09:32:14 +00:00
< / tr >
< tr >
2025-06-03 09:38:14 +00:00
< td class = "shortTd" > 客户名称< span class = "is-required" > *< / span > < / td >
< td > < input name = "customerName" class = "form-control" type = "text" required
onclick="selectCustomer()">
< input name = "customerCode" class = "form-control" type = "hidden" > < / td >
< td class = "shortTd" > 行业< span class = "is-required" > *< / span > < / td >
2025-05-30 09:32:14 +00:00
< td >
2025-06-03 09:38:14 +00:00
< select name = "orderType" class = "form-control" th:with = "type=${@dict.getType('industry_code')}"
onchange="changeOrderType()" required>
< option value = "" > 请选择合项目阶段< / option >
< option th:each = "dict : ${type}" th:text = "${dict.dictLabel}"
th:value="${dict.dictValue}">< / option >
< / select >
< / td >
< td class = "shortTd" > 属地 < span class = "is-required" > *< / span > < / td >
< td id = "element1" >
< select name = "province" class = "form-control" >
2025-05-30 09:32:14 +00:00
< / select >
< / td >
< / tr >
< tr >
2025-06-03 09:38:14 +00:00
< td > 项目阶段< span class = "is-required" > *< / span > < / td >
2025-05-30 09:32:14 +00:00
< td >
2025-06-03 09:38:14 +00:00
< select name = "orderType" class = "form-control"
th:with="type=${@dict.getType('project_stage')}"
onchange="changeOrderType()" required>
< option value = "" > 请选择合项目阶段< / option >
< option th:each = "dict : ${type}" th:text = "${dict.dictLabel}"
th:value="${dict.dictValue}">< / option >
2025-05-30 09:32:14 +00:00
< / select >
< / td >
2025-06-03 09:38:14 +00:00
< td > 项目把握度< span class = "is-required" > *< / span > < / td >
2025-05-30 09:32:14 +00:00
< td >
2025-06-03 09:38:14 +00:00
< select name = "project_confidence" class = "form-control" required >
2025-05-30 09:32:14 +00:00
< option > A< / option >
< option > B< / option >
2025-06-03 09:38:14 +00:00
< option > C< / option >
< option > D< / option >
2025-05-30 09:32:14 +00:00
< / select >
< / td >
2025-06-03 09:38:14 +00:00
< td > 汇智支撑人员< / td >
< td > < input name = "peopleName" class = "form-control" type = "text"
onclick="selectPeople()">
< input name = "peopleCode" class = "form-control" type = "hidden" > < / td >
2025-05-30 09:32:14 +00:00
< / tr >
< tr >
< td > 运作机构< / td >
< td >
2025-06-03 09:38:14 +00:00
< select name = "orderType" class = "form-control"
th:with="type=${@dict.getType('operate_institution')}"
onchange="changeOrderType()">
< option value = "" > 请选择运作机构< / option >
< option th:each = "dict : ${type}" th:text = "${dict.dictLabel}"
th:value="${dict.dictValue}">< / option >
2025-05-30 09:32:14 +00:00
< / select >
< / td >
2025-06-03 09:38:14 +00:00
< td > 代理商< span class = "is-required" > *< / span > < / td >
< td >
< input name = "orderPartnerName" class = "form-control" type = "text" required
onclick="selectPartner()">
< input name = "orderPartnerCode" class = "form-control" type = "hidden" >
< / td >
2025-05-30 09:32:14 +00:00
< td > 联系方式< / td >
2025-06-03 09:38:14 +00:00
< td > < input type = "text" name = "contact" class = "form-control" > < / td >
2025-05-30 09:32:14 +00:00
< / tr >
< tr >
2025-06-03 09:38:14 +00:00
< td > 预计金额( RMB) < span class = "is-required" > *< / span > < / td >
< td > < input type = "text" name = "budget" class = "form-control" required > < / td >
< td > 预计下单时间< / td >
< td > < input name = "orderDate" class = "form-control" placeholder = "yyyy-MM-dd" autocomplete = "false" > < / td >
2025-05-30 09:32:14 +00:00
< td > 预计发货时间< / td >
2025-06-03 09:38:14 +00:00
< td > < input name = "deliveryDate" class = "form-control" placeholder = "yyyy-MM-dd" autocomplete = "false" > < / td >
2025-05-30 09:32:14 +00:00
< / tr >
< tr >
< td > 竞争对手< / td >
2025-06-03 09:38:14 +00:00
< td colspan = "5" class = "checkbox-group" >
2025-05-30 09:32:14 +00:00
< div class = "checkbox-box" >
< label > < input type = "checkbox" name = "competitor" value = "华为" > 华为< / label >
< label > < input type = "checkbox" name = "competitor" value = "锐捷" > 锐捷< / label >
< label > < input type = "checkbox" name = "competitor" value = "深信服" > 深信服< / label >
< label > < input type = "checkbox" name = "competitor" value = "中兴" > 中兴< / label >
< label > < input type = "checkbox" name = "competitor" value = "曙云" > 曙云< / label >
2025-05-30 02:10:24 +00:00
< / div >
2025-06-03 09:38:14 +00:00
< div >
其它:< input type = "text" name = "competitor_other" class = "form-control" style = "width: 400px" >
< / div >
2025-05-30 09:32:14 +00:00
< / td >
< / tr >
< tr >
< td > 关键技术问题< / td >
2025-06-03 09:38:14 +00:00
< td colspan = "5" > < input type = "text" name = "key_tech_issue" style = "width:98%;"
class="form-control">< / td >
2025-05-30 09:32:14 +00:00
< / tr >
< tr >
2025-06-03 09:38:14 +00:00
< td > 项目简述< span class = "is-required" > *< / span > < / td >
< td colspan = "5" > < textarea name = "project_desc" style = "width:98%;" rows = "2"
class="form-control" required>< / textarea >
2025-05-30 09:32:14 +00:00
< / td >
< / tr >
< / table >
< div class = "section-title" > 配置信息< / div >
2025-06-03 09:38:14 +00:00
< table id = "ruanjian" >
2025-05-30 09:32:14 +00:00
< tr >
2025-06-03 09:38:14 +00:00
< th colspan = "5" > 添加软件
< button type = "button" class = "add-btn" onclick = "addRuanjian()" > +< / button >
2025-05-30 09:32:14 +00:00
< / th >
< / tr >
< tr >
< th > 序号< / th >
< th > 软件编码< / th >
< th > 软件型号< / th >
< th > 数量< / th >
< th > 备注< / th >
< / tr >
2025-06-03 09:38:14 +00:00
< tbody >
< / tbody >
< / table >
< table >
< th >
< th colspan = "5" onclick = "addYingjian()" > 添加硬件
< button type = "button" class = "add-btn" > +< / button >
< / th >
< / th >
< th >
< th > 序号< / th >
< th > 硬件编码< / th >
< th > 硬件型号< / th >
< th > 数量< / th >
< th > 备注< / th >
< / th >
< tbody >
< / tbody >
2025-05-30 09:32:14 +00:00
< tr >
< td colspan = "4" > 是否国产< / td >
< td >
< select name = "domestic" >
< option > 是< / option >
< option > 否< / option >
< / select >
< / td >
< / tr >
< / table >
< div class = "section-title" > 工作进度< / div >
< table >
< tr >
< th > 序号< / th >
< th > 更新内容< / th >
< th > 更新人员< / th >
< th > 更新时间< / th >
< th >
< button type = "button" class = "add-btn" > 添加+< / button >
< / th >
< / tr >
<!-- 可动态添加行 -->
< / table >
< button type = "submit" > 提交< / button >
< / form >
< / div >
< th:block th:include = "include :: footer" / >
< th:block th:include = "include :: datetimepicker-js" / >
2025-06-03 09:38:14 +00:00
< th:block th:include = "include :: jquery-cxselect-js" / >
2025-05-30 09:32:14 +00:00
< script th:inline = "javascript" >
var prefix = ctx + "sip/project"
$("#form-product-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-product-add').serialize());
2025-05-30 02:10:24 +00:00
}
2025-05-30 09:32:14 +00:00
}
2025-05-30 02:10:24 +00:00
2025-06-03 09:38:14 +00:00
$(function () {
2025-05-30 09:32:14 +00:00
parent.layer.style(parent.layer.index, {
2025-06-03 09:38:14 +00:00
height: '700px',
2025-05-30 09:32:14 +00:00
width: '1100px',
2025-06-03 09:38:14 +00:00
top: '0',
left: '240px'
});
var urlChina = '/cnarea/select';
$.cxSelect.defaults.url = urlChina;
$('#element1').cxSelect({
selects: ['province'],
nodata: 'none'
});
$("input[name='orderDate']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='deliveryDate']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
2025-05-30 02:10:24 +00:00
});
2025-06-03 09:38:14 +00:00
2025-05-30 09:32:14 +00:00
})
2025-06-03 09:38:14 +00:00
function selectCustomer() {
var url = prefix + "/selectCustomer";
var options = {
title: '选择客户',
width: "680",
url: url,
height: '600',
callBack: doSubmitCustomer
};
$.modal.openOptions(options);
}
function selectPartner() {
var url = prefix + "/selectPartner";
var options = {
title: '选择代理商',
width: "680",
height: '600',
url: url,
callBack: doSubmitPartner
};
$.modal.openOptions(options);
}
function selectPeople() {
var url = prefix + "/selectPeople";
var options = {
title: '选择代理商',
width: "680",
height: '600',
url: url,
callBack: doSubmitPeople
};
$.modal.openOptions(options);
}
function doSubmitCustomer(index, layero) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
if (rows.length == 0) {
$.modal.alertWarning("请选择一个用户");
return;
}
$('[name="customerCode"]').val(rows[0].customerCode);
$(' [name="customerName"]').val(rows[0].customerName);
$.modal.close(index);
}
function doSubmitPartner(index, layero) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
if (rows.length == 0) {
$.modal.alertWarning("请选择一个代理商");
return;
}
$('[name="orderPartnerCode"]').val(rows[0].partnerCode);
$('[name="orderPartnerName"]').val(rows[0].partnerName);
$.modal.close(index);
}
function doSubmitPeople(index, layero) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
if (rows.length == 0) {
$.modal.alertWarning("请选择一个代理商");
return;
}
$('[name="peopleCode"]').val(rows[0].userId);
$('[name="peopleName"]').val(rows[0].userName);
$.modal.close(index);
}
// 添加软件
function addRuanjian(){
let length= $('#ruanjian tbody').find('tr').length
let tr=$(`< tr > < td > ${length+1}< / td > < td > < input type = "text" required > < / td > < td > < input type = "text" required > < / td > < td > < input type = "text" required > < / td > < td > < input type = "text" required > < / td > < / tr > `)
$('#ruanjian tbody').append(tr)
}
2025-05-30 09:32:14 +00:00
< / script >
2025-05-30 02:10:24 +00:00
< / body >
< / html >