前端日期加减天数,获取最近的周一日期

在这里插入图片描述

加减日期的方法

function addDate(date,days){

		var d=new Date(date);

		d.setDate(d.getDate()+days);

		var m=d.getMonth()+1;

		return d.getFullYear()+'-'+m+'-'+d.getDate();

	}

全部代码

<% layout('/layouts/default.html', {title: '周用胶订单管理', libs: ['validate','dataGrid']}){ %>
<div class="main-content" xmlns="http://www.w3.org/1999/html">
	<div class="box box-main">
		<div class="box-header with-border">
			<div class="box-title">
				<i class="fa icon-note"></i> ${text(ygPrWeekorder.isNewRecord ? '新增周用胶订单' : '编辑周用胶订单')}
			</div>
			<div class="box-tools pull-right">
				<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
			</div>
		</div>
		<#form:form id="inputForm" model="${ygPrWeekorder}" action="${ctx}/ygprweekorder/ygPrWeekorder/save" method="post" autocomplete="off" class="form-horizontal">
			<div class="box-body">
				<div class="form-unit">${text('基本信息')}</div>
				<#form:hidden path="id"/>
				<div class="row">
					<div class="col-xs-6 hidden">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required hide">*</span> ${text('是否审核')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:select path="fischeck" dictType="sys_yes_no" defaultValue ="0"  blankOption="true" class="form-control" />
							</div>
						</div>
					</div>
					<div class="col-xs-6 hidden">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required hide">*</span> ${text('是否同步')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:select path="fissync" dictType="sys_yes_no" defaultValue ="0"  blankOption="true" class="form-control" />
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required hide">*</span> ${text('单据编号')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:hidden path="fisshowcustomer" maxlength="5" />
								<#form:input path="forderno" maxlength="255" class="form-control" placeholder="保存时自动生成" readOnly="true"/>
							</div>
						</div>
					</div>
					<div class="col-xs-4" id="custinfo">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('客户')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<div class="input-group">
									<#form:hidden path="fcustomerid" class="required" />
									<#form:hidden path="fcustomernumber" class="required" />
									<#form:input path="fcustomer" class="form-control required" type="text" readonly="true" style="background-color:#fff" onclick="customerSelect()"/>
									<span class="input-group-btn"><a href="javascript:customerSelect()" class ="btn btn-default" ><i class="fa fa-search"></i></a></span>
								</div>
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required hide">*</span> ${text('金蝶单号')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:input path="fkingdeeno" maxlength="255" class="form-control" placeholder="同步金蝶后生成" readOnly="true"/>
							</div>
						</div>
					</div>
				</div>

				<div class="row">
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('类型')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:select path="ftype" dictType="week_order_type" defaultValue ="XSDD03_SYS"  blankOption="true" class="form-control required" />
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('订单状态')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:select path="forderstatus" dictType="week_order_status" onchange = "changeYearMonthWeek()"  defaultValue ="0"  blankOption="true" class="form-control required" />
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('订单日期')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:input path="fdate" readonly="true" maxlength="20" class="form-control laydate required disabled"
									dataFormat="date" data-type="date" data-format="yyyy-MM-dd"/>
							</div>
						</div>
					</div>

					<div class="col-xs-4">
						<div class="form-group hidden">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('加工段数')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:select path="peoductnum" dictType="productnum_type"  blankOption="true" class="form-control" />
							</div>
						</div>
					</div>

				</div>
				<div class="row">
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('年度')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:input path="yeardu" maxlength="5" readOnly="true" class="form-control digits required"/>
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('月度')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:input path="monthdu" maxlength="5" readOnly="true" class="form-control digits required"/>
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('周度')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:input path="weekdu" maxlength="5" readOnly="true"  class="form-control digits required"/>
							</div>
						</div>
					</div>
					<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required hide">*</span> ${text('备注')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:textarea path="remarks" rows="1" maxlength="255" class="form-control"/>
							</div>
						</div>
					</div>
					<!--<div class="col-xs-4">
						<div class="form-group">
							<label class="control-label col-sm-4" title="">
								<span class="required">*</span> ${text('单据日期')}<i class="fa icon-question hide"></i></label>
							<div class="col-sm-8">
								<#form:input path="fdate" maxlength="255" readOnly="true"  class="form-control required"/>
							</div>
						</div>
					</div>-->
				</div>
				<h4 class="form-unit">${text('订单明细')}
					&nbsp;<a href="#" id="packageSellectBtn" class="btn btn-primary btn-sm mt10 mb10" onclick="materialSelect()"><i class="fa fa-folder-open"></i> ${text('选择物料')}</a></h4>
				<div class="ml10 mr10 table-form">
					<table id="ygPrWeekorderentryDataGrid"></table>
					<% if (hasPermi('ygprweekorder:ygPrWeekorder:edit')){ %>
						<a href="#" id="ygPrWeekorderentryDataGridAddRowBtn" class="btn btn-primary btn-sm mt10 mb10 hide"><i class="fa fa-plus"></i> ${text('增行')}</a>
					<% } %>
				</div>
				<p style="color: red">如有急需订单,请修改交货日期,并在备注中注明。</p>
			</div>
			<div class="box-footer">
				<div class="row">
					<div class="col-sm-offset-2 col-sm-10">
						<% if (hasPermi('ygprweekorder:ygPrWeekorder:edit')){ %>
							<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
						<% } %>
						<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
					</div>
				</div>
			</div>
		</#form:form>
	</div>
</div>
<% } %>
<script type="application/javascript">
	//禁用回车的默认事件
	document.onkeydown = function (e) {
		if (e.keyCode==13){
			const inputs = document.getElementsByName('fcount'); // inputs 里存放了所有name为fcount的html元素
			var t = $("input:focus");
			//console.log(t) //光标所在input元素的位置
			//console.log(t[0]) //光标所在input第一个元素的位置
			inputs.forEach((input, index) => {
				if (t[0] === input) {
					// 通过循环判断来获取当前输入框的index下标,进行相关操作
					if(index !==  (inputs.length - 1)) {
						inputs[index + 1].focus();
					}
				}
			});
			e.preventDefault();
		}
		
	}

	function addDate(date,days){

		var d=new Date(date);

		d.setDate(d.getDate()+days);

		var m=d.getMonth()+1;

		return d.getFullYear()+'-'+m+'-'+d.getDate();

	}
	function getWeek (dateTime) {
		// 获取从1970年到现在的时间毫秒数
		var temp_ms = dateTime.getTime();
		let temptTime = new Date(temp_ms);
		// 今天周几,如果是周日,则设为7
		let weekday = temptTime.getDay() & 7;
		// 周1+5天=周六,得到本周6的日期,之所以以每周末的日期为基准,不能用每周日的日期为基准来计算
		// 当前日期的周六的日期
		temptTime.setDate(temptTime.getDate() - weekday + 1 + 5);
		// 每年的第一天,年/1/1,参数之中,0代表月份,介于0(1月) ~11(12月)之间的整数,getDay获取星期几同理
		// 第一天的日期
		let firstDay = new Date(temptTime.getFullYear(), 0, 1);
		let dayOfWeek = firstDay.getDay();
		let spendDay = 1;
		// 如果第一天不是星期日,那么就找到下一个星期日作为开始
		if (dayOfWeek != 0) {
			spendDay = 7 - dayOfWeek + 1;
		}
		let yearOfW = temptTime.getFullYear();
		firstDay = new Date(yearOfW, 0, 1 + spendDay);
		/*
        1.Math.ceil 取大于等于所给值的最小整数
        2.86400000是换算到天的基数,js的时间差值为时间戳,即毫秒数
          1000毫秒 * 60秒 * 60分钟* 24小时 = 86400000
        3.temptTime是当前日期,firstDay是当年第一天,周数计算公式就是(当前日期-第一天天数)/7 就是本年的第几周
        4.d是差距天数,res是周数
        */
		let d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000);
		let res = Math.ceil(d / 7) + 1;
		let weekOfNow = res.toString();
		return weekOfNow;
	}
	function  changeYearMonthWeek(){
		var os =  $("#forderstatus").val()
		if (os==0){ //正常订单 获取距离最近的一个星期1 转年月周
			var date = new Date; //获取当前日期
			var day = date.getDay(); //获取当前是星期几,周1-6返回1-6,周日返回0
			//判断今天是不是周一
				date.setDate(date.getDate() + (1 + 7 - date.getDay()) % 7);
				var y = date.getYear();
				var m = date.getMonth()+1;
				var d = date.getDate();
				$("#yeardu").val(date.getFullYear());
				$("#monthdu").val(m);
				$("#weekdu").val(getWeek(date));
				if (d<10){
					d = "0"+d;
				}
				$("#fdate").val(date.getFullYear()+"-"+m+"-"+d);
		}else if (os == 1){//加急订单 获取当前日期 转年月周
			var date = new Date; //获取当前日期
			var y = date.getYear();
			var m = date.getMonth()+1;
			var d = date.getDate();
			$("#yeardu").val(date.getFullYear());
			$("#monthdu").val(m);
			$("#weekdu").val(getWeek(date));
			if (d<10){
				d = "0"+d;
			}
			// $("#fdate").val(date);
			$("#fdate").val(date.getFullYear()+"-"+m+"-"+d);

		}else {
			js.showMessage("请至少选择一种状态");
		}
		//重置交货日期
		var orderdate = $("#fdate").val();
		var senddate = addDate(orderdate,7);
		var dataList = $('#ygPrWeekorderentryDataGrid').dataGrid('getDataIDs');
		for(var i=0; i<dataList.length; i++){
			$("#"+ dataList[i] +"_fdate").val(senddate);
		}
	}

	//查询段数  价格查询
	function getPrice(id){
		var rowId = id.split("_")[0];
		//单价
		var custid=$("#fcustomerid").val();  //客户ID
		 var productnum=$("#"+ rowId +"_productnum").val();//段数
		 var fmertid=$("#"+ rowId +"_fmertid").val();//物料Id
		 var fdate11=$("#fdate").val();//订单日期

		// console.log(materialid)
		if(custid && fmertid && productnum){
			$.ajax({
				url: "${ctx}/ygprweekorder/ygPrWeekorder/findpriceByCust?custid="+custid+"&materialid="+fmertid+"&productnum="+productnum +"&ftype=3"+"&fdate="+fdate11,
				async: false,
				success: function(data){
					if(data.length != 0){
						$("#"+ rowId+"_fprice").val(data["0"].fprice);
						//限价
						//$("#"+ G_RowID+"_checkPrice").val(data["0"].fprice);
					}else{
						$("#"+ rowId+"_fprice").val("");
						//$("#"+ G_RowID+"_checkPrice").val("0.00");
					}
					var c = $("#"+ rowId+"_fcount").val();
					if (c){
						$("#"+ rowId+"_fsumprice").val(c*$("#"+ rowId+"_fprice").val());
					}
				}
			})
		}
	}

	//计算总价
	function getSumPrice(id){
		var rowId = id.split("_")[0];
		//先选择加工段数
		var productnum=$("#"+ rowId +"_productnum").val();
		if (!productnum){
			js.showMessage("请选择加工段数"+productnum)
		}
		//单价
		var price=$("#"+ rowId +"_fprice").val();
		var fcount=$("#"+ rowId +"_fcount").val();
		if (price||price){
			var res=price*fcount;
			$("#"+ rowId +"_fsumprice").val(res);
		}
		}

</script>
<script>
//初始化yg_pr_weekorderentryDataGrid对象
$("#ygPrWeekorderentryDataGrid").dataGrid({

	data: ${toJson(ygPrWeekorder.ygPrWeekorderentryList)},
	datatype: "local", // 设置本地数据
	autoGridHeight: function(){return 'auto'}, // 设置自动高度
	
	// 设置数据表格列
	columnModel: [
		{header:'状态', name:'status', editable:true, hidden:true},
		{header:'主键', name:'id', editable:true, hidden:true},
		{header:'${text("主表id")}', name:'parentid.id', editable:true, hidden:true},
		{header:'${text("胶料id")}', name:'fmertid', editable:true, hidden:true},
		{header:'${text('胶料编码')}', name:'fmertnumber', width:130, editable:true, edittype:'text', editoptions:{'maxlength':'200', 'class':'form-control required','readonly':'true','style':'background:transparent;border:0px'}},
		{header:'${text('胶料名称')}', name:'fmertnume', width:130, editable:true, edittype:'text', editoptions:{'maxlength':'200', 'class':'form-control','readonly':'true','style':'background:transparent;border:0px'}},
		{header:'${text('单位')}', name:'material.funitname', width:80, editable:true, edittype:'text', editoptions:{'maxlength':'50', 'class':'form-control','readonly':'true','style':'background:transparent;border:0px'}},
		{header:'${text('加工段数')}', name:'productnum',class:'form-control required' , width:120,
			editable:true, edittype:'select', editoptions:{'class':'form-control required','onchange':'getPrice(id)',
				items: $.merge([{dictLabel:'&nbsp;',dictValue:''}], ${@DictUtils.getDictListJson('productnum_type')}),
				itemLabel: 'dictLabel', itemValue: 'dictValue', dataInit: function(element){
					$(element).select2().on("change",function(){$(this).resetValid()});
				}
			}
		},
		{header:'${text('数量')}', name:'fcount', width:120,class:'digits', editable:true, edittype:'text', editoptions:{'maxlength':'64', 'onchange':'getSumPrice(id)','class':'form-control required digits'}},
		{header:'${text('单价')}', name:'fprice',class:'form-control required' ,width:120, editable:true, edittype:'text', editoptions:{'maxlength':'64','onchange':'getSumPrice(id)', 'class':'form-control required'}},
		{header:'${text('金额')}', name:'fsumprice', width:120,class:'required' , editable:true, edittype:'text', editoptions:{'readonly':'true','maxlength':'64', 'class':'form-control required'}},
		{header:'${text("交货日期")}', name:'fdate', width:150,
			formatter:'date', formatoptions:{srcformat:'Y-m-d H:i:s',newformat:'Y-m-d'},
			editable:true, edittype:'text', editoptions:{'class':'form-control Wdate required', 'readonly':'true',
				dataInit: function(element){
					laydate.render({elem:element, type:'date', format:'yyyy-MM-dd', done: function(){
							// 选择日期后,自动给下一个输入框赋值(联动实例)
						}});
				}
			}},
		{header:'${text('备注')}', name:'remarks',class:'form-control' ,width:120, editable:true, edittype:'text', editoptions:{'maxlength':'64', 'class':'form-control'}},
		{header:'${text("操作")}', name:'actions', width:80, align:'center', formatter: function(val, obj, row, act){
			var actions = [];
			if (val == 'new'){
				actions.push('<a href="#" onclick="js.confirm(\'${text("你确认要删除这条数据吗?")}\', function(){$(\'#ygPrWeekorderentryDataGrid\').dataGrid(\'delRowData\',\''+obj.rowId+'\')});return false;"><i class="fa fa-trash-o"></i></a>&nbsp;');
			}else{
				actions.push('<a href="#" onclick="js.confirm(\'${text("你确认要删除这条数据吗?")}\', function(){$(\'#ygPrWeekorderentryDataGrid\').dataGrid(\'setRowData\',\''+obj.rowId+'\',null,{display:\'none\'});$(\'#'+obj.rowId+'_status\').val(\''+Global.STATUS_DELETE+'\');});return false;"><i class="fa fa-trash-o"></i></a>&nbsp;');
			}
			return actions.join('');
		}, editoptions: {defaultValue: 'new'}}
	],
	
	// 编辑表格参数
	editGrid: true,				// 是否是编辑表格
	editGridInitRowNum: 0,		// 编辑表格的初始化新增行数
	editGridAddRowBtn: $('#ygPrWeekorderentryDataGridAddRowBtn'),	// 子表增行按钮
	editGridAddRowBtnToHeader: false,	// 子表增行按钮是否显示到表头上
	editGridAddRowInitData: {id: '', status: Global.STATUS_NORMAL},	// 新增行的时候初始化的数据
	
	// 编辑表格的提交数据参数
	editGridInputFormListName: 'ygPrWeekorderentryList', // 提交的数据列表名
	editGridInputFormListAttrs: 'status,id,parentid.id,fmertid,fmertnumber,remarks,fdate,fmertnume,funit,fcount,fprice,fsumprice,productnum,', // 提交数据列表的属性字段
	
	// 加载成功后执行事件
	ajaxSuccess: function(data){
		var c =$("#fisshowcustomer").val()
		if (c!=''){
			$("#custinfo").hide()
		}
		changeYearMonthWeek();
	}
});
</script>
<script>
$("#inputForm").validate({
	submitHandler: function(form){
		js.ajaxSubmitForm($(form), function(data){
			js.showMessage(data.message);
			if(data.result == Global.TRUE){
				js.closeCurrentTabPage(function(contentWindow){
					contentWindow.page();
				});
			}
		}, "json");
    }
});
</script>

<script>


	//客户 选择页
	function customerSelect() {
		top.customerSelectCallBack = customerSelectCallBack;
		shareSelect('客户选择', '${ctx}/base/customer/select');
	}
	//物料 选择页
	//物料选择
	var G_RowID;
	function materialSelect(){
		if ($("#fcustomerid").val()==""||$("#fcustomerid").val()==undefined){
			js.showMessage("请先选择客户!");
			return;
		}
		top.materialMultiSelectCallBack=materialMultiSelectCallBack;
		top.layer.open({
			type:2,
			title:'物料选择',
			shadeClose: true,  //点击遮罩关闭
			shade: 0.3,
			area: ['93%', '86%'],
			maxmin: true,
			closeBtn: 1,
			content:["${ctx}/base/material/selectList?multi=1&fdefaultcustomernumber="+$("#fcustomernumber").val(), 'yes'],
			cancle: function() {

			}
		});
	}
	//共用选择页
	function shareSelect(title, url) {

		top.layer.open({
			type: 2,
			title: title,
			shadeClose: true, //点击遮罩关闭
			shade: 0.3,
			area: ['93%', '86%'],
			maxmin: true,
			closeBtn: 1,
			content: [url, 'yes'] //iframe的url,yes是否有滚动条
		});
	}





	//客户回调数据
	function customerSelectCallBack(data) {
		$("#fcustomerid").val(data.id);
		$("#fcustomer").val(data.fshortname);
		$("#fcustomernumber").val(data.fnumber);
	}

	//物料回调数据
	function materialMultiSelectCallBack(datas) {
		var data = [];
		for(var i = 0;i<datas.length;i++){
			var flag = false;
			var dataList = $('#ygPrWeekorderentryDataGrid').dataGrid('getDataIDs');
			for(var j = 0;j<dataList.length; j++){
				var t =$('#'+dataList[j]+'_fmertnumber').val();
				if(datas[i].materialid == t){
					flag = true;
				}
			}
			if(!flag){
				data.push(datas[i]);
			}
		}
		var orderdate = $("#fdate").val();
		var senddate = addDate(orderdate,7);
		for(var i=0; i<data.length; i++){
			document.getElementById("ygPrWeekorderentryDataGridAddRowBtn").click();
			var dataList = $('#ygPrWeekorderentryDataGrid').dataGrid('getDataIDs');

			G_RowID = dataList[dataList.length-1];
			$("#"+ G_RowID +"_fmertnumber").val(data[i].fnumber);
			$("#"+ G_RowID +"_fmertnume").val(data[i].fname);
			$("#"+ G_RowID +"_fmertid").val(data[i].id);
			$("#"+ G_RowID +"_material_funitname").val(data[i].funitname);
			$("#"+ G_RowID +"_fdate").val(senddate);


		}

	}

	$("#inputForm").validate({
		submitHandler: function (form) {
			js.ajaxSubmitForm($(form), function (data) {
				js.showMessage(data.message);
				if (data.result == Global.TRUE) {
					js.closeCurrentTabPage(function (contentWindow) {
						contentWindow.page();
					});
				}
			}, "json");
		}
	});




</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值