<fieldset style="border:solid 1px #aaa;padding:3px;">
<legend>计划信息</legend>
<div id="editForm1" style="padding:5px;">
<table>
<tr>
<td style="width:100px;white-space:nowrap;">任务名称:</td>
<td style="width:250px;"><input style="width:90%"
name="plan_name" class="mini-textbox" required="true"
emptyText="请输入任务名称" maxlength="50" />
</td>
<td style="width:100px;white-space:nowrap;">负责人:</td>
<td style="width:250px;"><input style="width:90%"
name="principal" class="mini-textbox" required="true"
emptyText="请输入负责人" maxlength="50" />
</td>
<td style="width:100px;white-space:nowrap;">参与人:</td>
<td style="width:250px;"><input style="width:90%"
name="coadjutant" class="mini-textbox" required="true"
emptyText="请输入参与人" maxlength="50" />
</td>
</tr>
<tr>
<td style="width:100px;white-space:nowrap;">工期:</td>
<td style="width:250px;"><input style="width:90%"
name="duration" readOnly="true" class="mini-textbox"
required="true" emptyText="请输入工期" />
</td>
<td style="width:100px;white-space:nowrap;" >工作量:</td>
<td style="width:250px;">
<input style="width:90%" name="workload" class="mini-spinner" maxValue="1000000" format="n2" emptyText="请输入工作量" />
</td>
<td style="width:100px;white-space:nowrap;">预计实施时间:</td>
<td style="width:250px;"><input style="width:90%"
name="predict_implement_time" onvaluechanged="CountDate"
ondrawdate="CompareDate" dateFormat="yyyy-MM-dd"
class="mini-datepicker" required="true" emptyText="请输入预计实施时间" />
</td>
</tr>
<tr>
<td style="width:100px;white-space:nowrap;">预计完成时间:</td>
<td style="width:250px;"><input style="width:90%"
name="estimated_time" dateFormat="yyyy-MM-dd"
onvaluechanged="CountDate" class="mini-datepicker" required="true"
ondrawdate="CompareDate1" emptyText="请输入预计完成时间" />
</td>
<td style="width:100px;white-space:nowrap;">里程碑:</td>
<td style="width:250px;"><input style="width:90%"
name="milestone" class="mini-combobox" required="true"
data="Genders" emptyText="是否是里程碑" />
</td>
<td style="width:100px;white-space:nowrap;">关键任务:</td>
<td style="width:250px;"><input style="width:90%"
name="keytask" class="mini-combobox" required="true"
data="Genders" emptyText="是否是关键任务" />
</td>
</tr>
</table>
</div>
</fieldset>
<script type="text/javascript">
var Genders = [ {
id : 1,
text : '是'
}, {
id : 0,
text : '否'
} ];
mini.parse();
var grid = mini.get("treegrid1");
grid.load();
grid.select(0);
var row = grid.getSelected();
var form = new mini.Form("form1");
var db = new mini.DataBinding();
db.bindForm("editForm1", grid);
function onGenderRenderer(e) {
for ( var i = 0, l = Genders.length; i < l; i++) {
var g = Genders;
if (g.id == e.value)
return g.text;
}
return "";
}
function onAddBefore(e) {
var tree = mini.get("treegrid1");
var node = tree.getSelectedNode();
var newNode = {};
tree.addNode(newNode, "before", node);
}
function onAddAfter(e) {
var tree = mini.get("treegrid1");
var node = tree.getSelectedNode();
var newNode = {};
tree.addNode(newNode, "after", node);
}
function upDateNode(options) {
var tree = mini.get("treegrid1");
var node = tree.getSelectedNode();
options = mini.clone(options);
tree.updateNode(node, options);
}
function onRemoveNode(e) {
var tree = mini.get("treegrid1");
var node = tree.getSelectedNode();
if (node) {
if (confirm("确定删除选中节点?")) {
tree.removeNode(node);
}
}
}
function saveData() {
var tree = mini.get("treegrid1");
var form = new mini.Form("form1");
var formData = form.getData();
var data = tree.getData();
var removed = tree.getChanges("removed");
var paramsObj = {
data : mini.encode(data),
formData : mini.encode(formData),
removed : mini.encode(removed)
};
var msgid = mini.loading("数据保存中,请稍后......", "保存数据");
$
.ajax({
url : "${pageContext.request.contextPath }/jihua.do?method=SaveTree",
data : paramsObj,
type : "post",
success : function(text) {
mini.hideMessageBox(msgid);
tree
.load("${pageContext.request.contextPath }/jihua.do?method=LoadTree");
},
error : function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
}
});
}
function SetData(data) {
if (data.action == "lookplan") {
//跨页面传递的数据对象,克隆后才可以安全使用
data = mini.clone(data);
$.ajax({
url : "/ywpt/contract.do?method=getcontractdata&id="
+ data.id,
cache : false,
success : function(text) {
var o = mini.decode(text);
form.setData(o);
form.setChanged(false);
//onDeptChanged();
//mini.getbyName("position").setValue(o.position);
}
});
}
}
function CountDate() {
var predict_implement_time = mini.getbyName(
"predict_implement_time").getValue();
var estimated_time = mini.getbyName("estimated_time").getValue();
var days = getDays(predict_implement_time, estimated_time);
mini.getbyName("duration").setValue(days);
}
function getDays(startDate, endDate) {
//得到时间戳相减 得到以毫秒为单位的差
var mmSec = (endDate.getTime() - startDate.getTime());
//单位转换为天并返回
return (mmSec / 3600000 / 24 + 1);
};
function CompareDate(e) {
var date = e.date;
var d = mini.getbyName("estimated_time").getValue();//预计完成时间
if (date.getTime() > d.getTime()) {
e.allowSelect = false;
}
}
function CompareDate1(e) {
var date = e.date;
var d = mini.getbyName("predict_implement_time").getValue();//预计实施时间
if (date.getTime() < d.getTime()) {
e.allowSelect = false;
}
}
function onDrawCell(e) {
var record = e.record, field = e.field, value = e.value;
if (e.field == "duration") {
var predict_implement_time = record.predict_implement_time;
var estimated_time = record.estimated_time;
var mmSec = estimated_time - predict_implement_time;
var days = mmSec / 3600000 / 24 + 1;
e.cellHtml = days + "天";
}
if (field == "workload") {
var workload=record.workload;
value=parseFloat(workload).toFixed(1);
e.cellHtml = value+"小时";
}