username@email.com
2021-06-25 274fb67703d0ffcc7e3398d41855c5c8bfb3383b
Merge branch 'master' of http://47.108.235.38:8080/r/zhengcaioa

# Conflicts:
# zhengcaioa/IServices/IHrSalaryService.cs
# zhengcaioa/Services/HrSalaryService.cs
9个文件已修改
13个文件已添加
1980 ■■■■■ 已修改文件
zhengcaioa/DTO/HrSalaryDTO.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/IServices/IHrSalaryService.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Model/HrSalary.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Model/zhengcaioaContext.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Services/HrSalaryService.cs 668 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Services/SimService.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Controllers/HR/SalaryCheckController.cs 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Startup.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/SalaryCheck/Appeal.cshtml 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/SalaryCheck/Edit.cshtml 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/SalaryCheck/Employee.cshtml 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/SalaryCheck/Index.cshtml 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/SalaryCheck/SearchIndex.cshtml 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/laydate5.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.svg 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/laydate.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/wwwroot/js/plugins/search/search.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/zhengcaioa.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
申诉记录表.sql 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/DTO/HrSalaryDTO.cs
@@ -10,13 +10,18 @@
        public string Userid { get; set; }
        public int Year { get; set; }
        public int Month { get; set; }
        public string YearMonth { get { return Year + "-" + Month.ToString().PadLeft(2, '0'); } }
        public string Usernumber { get; set; }
        public string UserName { get; set; }
        public string DeptName { get; set; }
        public decimal? Jibengongzi { get; set; }
        public decimal? Baomifei { get; set; }
        public decimal? Gongzuobutie { get; set; }
        public decimal? Jiabangongzi { get; set; }
        public decimal? Shebao { get; set; }
        public decimal? Dianhuabutie { get; set; }
        public decimal? Quanqinjiang { get; set; }
@@ -24,13 +29,30 @@
        public decimal? Jixiaoticheng { get; set; }
        public decimal? Jiangjin { get; set; }
        public decimal? Bufagongzi { get; set; }
        public decimal sum_fgz
        {
            get
            {
                return ( (Jibengongzi??0) + (Baomifei??0) + (Gongzuobutie??0) + (Jiabangongzi??0) + (Shebao??0) +
                  (Dianhuabutie??0) + (Quanqinjiang??0) + (Jiaotngbutie??0) + (Jixiaoticheng??0) + (Jiangjin??0) + (Bufagongzi??0));
            }
        }
        public decimal? Shebaokou { get; set; }
        public decimal? Geshui { get; set; }
        public decimal? Dianhuafei { get; set; }
        public decimal? Queqin { get; set; }
        public decimal? Fakuan { get; set; }
        public decimal? Peichang { get; set; }
        public decimal? Jiucuo { get; set; }
        public decimal? Jiucuo { get; set; }
        public decimal sum_kgz
        {
            get
            {
                return (Shebaokou??0) + (Geshui?? 0) + (Dianhuafei ?? 0) + (Queqin ?? 0) + (Fakuan ?? 0) + (Peichang ?? 0) + (Jiucuo ?? 0);
            }
        }
        public decimal? Daozhanggongzi { get; set; }
        public decimal? Yufagongzi { get; set; }
        public decimal? Yufagongziheji { get; set; }
@@ -60,15 +82,43 @@
        public string Islock { get; set; }
        public string IslockChs { get
            {
                string str = "";
                switch(Islock)
                {
                    case "D":
                        str = "未确认";
                        break;
                    case "S":
                        str = "申诉";
                        break;
                    case "Q":
                        str = "已确认";
                        break;
                }
                return str;
            }
        }
        public string RecStatus { get; set; }
        public string Creater { get; set; }
        public DateTime Createtime { get; set; }
        public string Modifier { get; set; }
        public DateTime Modifytime { get; set; }
        public string reason { get; set; }
        public decimal amount { get; set; }
        public string basis { get; set; }
    }
    public partial class HrSalaryDTOSearch : SearchEntity
    {
        public string searchDate { get; set; }
        public string YearMonth { get; set; }
        public string Usernumber { get; set; }
        public string DeptId { get; set; }
zhengcaioa/IServices/IHrSalaryService.cs
@@ -2,13 +2,12 @@
using System;
using System.Collections.Generic;
using System.Text;
using zhengcaioa.Models;
namespace IServices
{
    public interface IHrSalaryService
    {
        ResultEntity save(HrSalaryDTO dto);
        HrSalaryDTO Get(string id);
@@ -19,6 +18,21 @@
        List<HrSalaryDTO> GetList();
        HrSalaryDTO GetListByUser(string Userid,int year,int month);
        List<HrSalaryDTO> GetSalary(string userid, int year, int month);
        ResultEntity CheckOk(string id, string user);
        ResultEntity CheckAppea(HrSalaryAppeal model);
        HrSalaryAppeal GetAppeal(string id, string user);
        ResultDataEntity<HrSalaryDTO> SearchByPagingFinish(HrSalaryDTOSearch searchEntity);
        ResultDataEntity<HrSalaryDTO> SearchSalaryByPaging(HrSalaryDTOSearch searchEntity);
        ResultEntity SaveCheckSalary(HrSalaryDTO dto);
    }
}
zhengcaioa/Model/HrSalary.cs
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
@@ -39,4 +41,34 @@
        public string Modifier { get; set; }
        public DateTime Modifytime { get; set; }
    }
    /// <summary>
    /// å·¥èµ„申诉记录
    /// </summary>
    [Table("t_salary_appeal")]
    public class HrSalaryAppeal
    {
        [Key]
        public int id { get; set; }
        public string salary_id { get; set; }
        public string reason { get; set; }
        public decimal amount { get; set; }
        public string basis { get; set; }
        public string sub_user { get; set; }
        public DateTime sub_time { get; set; }
        public string chk_user { get; set; }
        public DateTime? chk_time { get; set; }
        public string chk_result { get; set; }
        public string status { get; set; }
    }
}
zhengcaioa/Model/zhengcaioaContext.cs
@@ -21,6 +21,7 @@
        public virtual DbSet<SimBindView> SimBindView { get; set; }
        public virtual DbSet<SimCost> SimCost { get; set; }
        public virtual DbSet<SimCostView> SimCostView { get; set; }
        public virtual DbSet<HrSalaryAppeal> HrSalaryAppeal { get; set; }
        public virtual DbSet<AdmAskLeave> AdmAskLeaves { get; set; }
        public virtual DbSet<AdmAskLeaveOff> AdmAskLeaveOffs { get; set; }
zhengcaioa/Services/HrSalaryService.cs
@@ -93,16 +93,160 @@
            return resultEntity;
        }
        public ResultEntity SaveCheckSalary(HrSalaryDTO dto)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var updatepltRole = _context.HrSalaries.Where(c=>c.Id==dto.Id).SingleOrDefault();
                if(updatepltRole!=null)
                {
                    var user = _context.PltUsers.Where(c => c.Id == updatepltRole.Userid).SingleOrDefault();
                    updatepltRole.Jiangjin = dto.Jiangjin;
                    updatepltRole.Bufagongzi = dto.Bufagongzi;
                    var sum_f = ((updatepltRole.Jibengongzi ?? 0) + (updatepltRole.Baomifei ?? 0) + (updatepltRole.Gongzuobutie ?? 0) +
                        (updatepltRole.Jiabangongzi ?? 0) + (updatepltRole.Shebao ?? 0) + (updatepltRole.Dianhuabutie ?? 0) +
                        (updatepltRole.Quanqinjiang ?? 0) + (updatepltRole.Jiaotngbutie ?? 0) + (updatepltRole.Jixiaoticheng ?? 0) +
                        dto.Jiangjin + dto.Bufagongzi);
                    updatepltRole.Peichang = dto.Peichang;
                    updatepltRole.Jiucuo = dto.Jiucuo;
                    var sum_k= (updatepltRole.Shebaokou ?? 0) + (updatepltRole.Geshui ?? 0) + (updatepltRole.Dianhuafei ?? 0) +
                        (updatepltRole.Queqin ?? 0) + (updatepltRole.Fakuan ?? 0) + dto.Peichang + dto.Jiucuo;
                    //计算预发工资
                    //var lyear = updatepltRole.Year;
                    //var lmonth = updatepltRole.Month-1;
                    //if(lmonth==0)
                    //{
                    //    lyear = lyear - 1;
                    //    lmonth = 12;
                    //}
                    //var sumyfhj = _context.HrSalaries.Where(c => c.Year == lyear && c.Month == lmonth && c.Userid == updatepltRole.Userid).SingleOrDefault();
                    if(DateTime.Today> user.ShiyongDateEnd)
                    {
                        if(string.IsNullOrEmpty(user.BasicPrice))
                        {
                            updatepltRole.Daozhanggongzi = sum_f - sum_k;
                            updatepltRole.Yufagongzi = 0;
                        }
                        else
                        {
                            var pc = decimal.Parse(user.BasicPrice);
                            if (sum_f - sum_k > pc)
                            {
                                updatepltRole.Daozhanggongzi = sum_f - sum_k;
                                updatepltRole.Yufagongzi = 0;
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji - (sum_f - sum_k - pc);
                            }
                            else
                            {
                                updatepltRole.Daozhanggongzi = pc;
                                updatepltRole.Yufagongzi = pc-(sum_f - sum_k);
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji + updatepltRole.Yufagongzi;
                            }
                        }
                    }
                    else
                    {
                        if (user.ShiyongPrice.HasValue)
                        {
                            var pc = user.ShiyongPrice.Value;
                            if (sum_f - sum_k > pc)
                            {
                                updatepltRole.Daozhanggongzi = sum_f - sum_k;
                                updatepltRole.Yufagongzi = 0;
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji - (sum_f - sum_k - pc);
                            }
                            else
                            {
                                updatepltRole.Daozhanggongzi = pc;
                                updatepltRole.Yufagongzi = pc - (sum_f - sum_k);
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji + updatepltRole.Yufagongzi;
                            }
                        }
                        else
                        {
                            updatepltRole.Daozhanggongzi = sum_f - sum_k;
                            updatepltRole.Yufagongzi = 0;
                        }
                    }
                    updatepltRole.Islock = "Q";
                    updatepltRole.Modifier = dto.Modifier;
                    updatepltRole.Modifytime =DateTime.Now;
                    var count= _context.SaveChanges();
                    resultEntity.ReturnID = dto.Id;
                    resultEntity.Result = true;
                }
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
            }
            return resultEntity;
        }
        public HrSalaryDTO Get(string id)
        {
            var entity = _context.HrSalaries.Find(id);
            var entity = (from a in _context.HrSalaries
                          join b in _context.PltUsers on a.Userid equals b.Id
                          join c in _context.HrDepts on b.DeptId equals c.Id
                          where a.RecStatus == "A" && a.Id == id
                          select new HrSalaryDTO()
                          {
                              Id = a.Id,
                              Userid = a.Userid,
                              Usernumber = b.Usernumber,
                              UserName = b.UserName,
                              DeptName = c.DeptName,
                              Year = a.Year,
                              Month = a.Month,
                              Jibengongzi = a.Jibengongzi,
                              Baomifei = a.Baomifei,
                              Gongzuobutie = a.Gongzuobutie,
                              Jiabangongzi = a.Jiabangongzi,
                              Shebao = a.Shebao,
                              Dianhuabutie = a.Dianhuabutie,
                              Quanqinjiang = a.Quanqinjiang,
                              Jiaotngbutie = a.Jiaotngbutie,
                              Jixiaoticheng = a.Jixiaoticheng,
                              Jiangjin = a.Jiangjin,
                              Bufagongzi = a.Bufagongzi,
                              Shebaokou = a.Shebaokou,
                              Geshui = a.Geshui,
                              Dianhuafei = a.Dianhuafei,
                              Queqin = a.Queqin,
                              Fakuan = a.Fakuan,
                              Peichang = a.Peichang,
                              Jiucuo = a.Jiucuo,
                              Daozhanggongzi = a.Daozhanggongzi,
                              Yufagongzi = a.Yufagongzi,
                              Yufagongziheji = a.Yufagongziheji
                          }).SingleOrDefault();
            if (entity.RecStatus != "A")
            if (entity==null)
            {
                entity = new HrSalary();
                entity = new HrSalaryDTO();
            }
            var HrSalaryDTO = _mapper.Map<HrSalaryDTO>(entity);
            return HrSalaryDTO;
            else
            {
                var ss = _context.HrSalaryAppeal.Where(c => c.salary_id == id).SingleOrDefault();
                if(ss!=null)
                {
                    entity.amount = ss.amount;
                    entity.basis = ss.basis;
                    entity.reason = ss.reason;
                }
            }
            return entity;
        }
        public ResultDataEntity<HrSalaryDTO> SearchByPaging(HrSalaryDTOSearch searchEntity)
@@ -131,10 +275,142 @@
            int month = 0;
            if (string.IsNullOrWhiteSpace(searchEntity.YearMonth))
            {
              DateTime yearMonth =  DateTime.Parse(searchEntity.YearMonth + "-01");
                DateTime yearMonth = DateTime.Now;//.Parse(searchEntity.YearMonth + "-01");
                year = yearMonth.Year;
                month = yearMonth.Month;
            }
            var query = (from a in _context.HrSalaries//.Where(x => x.RecStatus == "A")
                                                      // join b in listCode.Where(x => x.CodeTable == "hr_jibengongzi" && x.CodeField == "dianhuabutie")
                                                      //on a.Dianhuabutie equals b.CodeSn
                                                      // into bsssss
                                                      // from bbb in bsssss.DefaultIfEmpty()
                         join f in _context.PltUsers
                         on a.Userid equals f.Id
                         //  into fsssss
                         //from fff in fsssss.DefaultIfEmpty()
                         join g in _context.HrDepts
                        on f.DeptId equals g.Id
                         // into gsssss
                         //from ggg in gsssss.DefaultIfEmpty()
                         where a.RecStatus == "A" && a.Islock != "Q"
                          && (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || f.Usernumber == searchEntity.Usernumber.Trim())
                            && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || f.DeptId == searchEntity.DeptId.Trim())
                              && (string.IsNullOrWhiteSpace(searchEntity.UserName) || f.UserName.Contains(searchEntity.UserName.Trim()))
                         && (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || ( a.Year == year && a.Month == month ))
                         select new HrSalaryDTO
                         {
                             Id = a.Id,
                             Userid = a.Userid,
                             Usernumber = f.Usernumber,
                             UserName = f.UserName,
                             DeptName = g.DeptName,
                             Year = a.Year,
                             Month = a.Month,
                             Jibengongzi = a.Jibengongzi,
                             Baomifei = a.Baomifei,
                             Gongzuobutie = a.Gongzuobutie,
                             Jiabangongzi = a.Jiabangongzi,
                             Shebao = a.Shebao,
                             Dianhuabutie = a.Dianhuabutie,
                             Quanqinjiang = a.Quanqinjiang,
                             Jiaotngbutie = a.Jiaotngbutie,
                             Jixiaoticheng = a.Jixiaoticheng,
                             Jiangjin = a.Jiangjin,
                             Bufagongzi = a.Bufagongzi,
                             Shebaokou = a.Shebaokou,
                             Geshui = a.Geshui,
                             Dianhuafei = a.Dianhuafei,
                             Queqin = a.Queqin,
                             Fakuan = a.Fakuan,
                             Peichang = a.Peichang,
                             Jiucuo = a.Jiucuo,
                             Daozhanggongzi = a.Daozhanggongzi,
                             Yufagongzi = a.Yufagongzi,
                             Yufagongziheji = a.Yufagongziheji,
                             JibengongziName = a.Jibengongzi.HasValue ? a.Jibengongzi.Value.ToString("F2") : "",
                             BaomifeiName = a.Baomifei.HasValue ? a.Baomifei.Value.ToString("F2") : "",
                             GongzuobutieName = a.Gongzuobutie.HasValue ? a.Gongzuobutie.Value.ToString("F2") : "",
                             JiabangongziName = a.Jiabangongzi.HasValue ? a.Jiabangongzi.Value.ToString("F2") : "",
                             ShebaoName = a.Shebao.HasValue ? a.Shebao.Value.ToString("F2") : "",
                             DianhuabutieName = a.Dianhuabutie.HasValue ? a.Dianhuabutie.Value.ToString("F2") : "",
                             QuanqinjiangName = a.Quanqinjiang.HasValue ? a.Quanqinjiang.Value.ToString("F2") : "",
                             JiaotngbutieName = a.Jiaotngbutie.HasValue ? a.Jiaotngbutie.Value.ToString("F2") : "",
                             JixiaotichengName = a.Jixiaoticheng.HasValue ? a.Jixiaoticheng.Value.ToString("F2") : "",
                             JiangjinName = a.Jiangjin.HasValue ? a.Jiangjin.Value.ToString("F2") : "",
                             BufagongziName = a.Bufagongzi.HasValue ? a.Bufagongzi.Value.ToString("F2") : "",
                             ShebaokouName = a.Shebaokou.HasValue ? a.Shebaokou.Value.ToString("F2") : "",
                             GeshuiName = a.Geshui.HasValue ? a.Geshui.Value.ToString("F2") : "",
                             DianhuafeiName = a.Dianhuafei.HasValue ? a.Dianhuafei.Value.ToString("F2") : "",
                             QueqinName = a.Queqin.HasValue ? a.Queqin.Value.ToString("F2") : "",
                             FakuanName = a.Fakuan.HasValue ? a.Fakuan.Value.ToString("F2") : "",
                             PeichangName = a.Peichang.HasValue ? a.Peichang.Value.ToString("F2") : "",
                             JiucuoName = a.Jiucuo.HasValue ? a.Jiucuo.Value.ToString("F2") : "",
                             DaozhanggongziName = a.Daozhanggongzi.HasValue ? a.Daozhanggongzi.Value.ToString("F2") : "",
                             YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "",
                             YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "",
                             Islock = a.Islock,
                             RecStatus = a.RecStatus,
                             Creater = a.Creater,
                             Createtime = a.Createtime,
                             Modifier = a.Modifier,
                             Modifytime = a.Modifytime,
                         }).OrderByDescending(x => x.Modifytime).ToList();
            if (searchEntity.totalrows == 0)
                searchEntity.totalrows = query.Count();
            var rolelist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            data.LoadData(searchEntity, rolelist);
            return data;
        }
        public ResultDataEntity<HrSalaryDTO> SearchSalaryByPaging(HrSalaryDTOSearch searchEntity)
        {
            ResultDataEntity<HrSalaryDTO> data = new ResultDataEntity<HrSalaryDTO>();
            //var listCode = (from a in _context.SysCodeDtls
            //                join b in _context.SysCodes
            //                on a.CodeId equals b.Id
            //                where a.RecStatus == "A"
            //                              && b.RecStatus == "A"
            //                select new CodeDataEntity()
            //                {
            //                    CodeId = b.Id,
            //                    CodeTable = b.CodeTable,
            //                    CodeField = b.CodeField,
            //                    CodeSn = a.CodeSn,
            //                    Comments = a.Comments,
            //                    Contents = a.Contents,
            //                    RecStatus = a.RecStatus,
            //                    Sort = a.Sort
            //                }
            //         );
            //int year = 0;
            //int month = 0;
            //if (string.IsNullOrWhiteSpace(searchEntity.YearMonth))
            //{
            //    DateTime yearMonth = DateTime.Now;//.Parse(searchEntity.YearMonth + "-01");
            //    year = yearMonth.Year;
            //    month = yearMonth.Month;
            //}
            var query = (from a in _context.HrSalaries//.Where(x => x.RecStatus == "A")
                        // join b in listCode.Where(x => x.CodeTable == "hr_jibengongzi" && x.CodeField == "dianhuabutie")
                        //on a.Dianhuabutie equals b.CodeSn
@@ -151,11 +427,321 @@
                         // into gsssss
                         //from ggg in gsssss.DefaultIfEmpty()
                         where a.RecStatus == "A"
                         where a.RecStatus == "A" && a.Islock!="Q"
                          && (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || f.Usernumber == searchEntity.Usernumber.Trim())
                            && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || f.DeptId == searchEntity.DeptId.Trim())
                              && (string.IsNullOrWhiteSpace(searchEntity.UserName) || f.UserName.Contains(searchEntity.UserName.Trim()))
                              && (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || ( a.Year == year && a.Month == month ))
                              //&& (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || ( a.Year == year && a.Month == month ))
                         select new HrSalaryDTO
                         {
                             Id = a.Id,
                             Userid = a.Userid,
                             Usernumber = f.Usernumber,
                             UserName = f.UserName,
                             DeptName = g.DeptName,
                             Year = a.Year,
                             Month = a.Month,
                             Jibengongzi = a.Jibengongzi,
                             Baomifei = a.Baomifei,
                             Gongzuobutie = a.Gongzuobutie,
                             Jiabangongzi = a.Jiabangongzi,
                             Shebao = a.Shebao,
                             Dianhuabutie = a.Dianhuabutie,
                             Quanqinjiang = a.Quanqinjiang,
                             Jiaotngbutie = a.Jiaotngbutie,
                             Jixiaoticheng = a.Jixiaoticheng,
                             Jiangjin = a.Jiangjin,
                             Bufagongzi = a.Bufagongzi,
                             Shebaokou = a.Shebaokou,
                             Geshui = a.Geshui,
                             Dianhuafei = a.Dianhuafei,
                             Queqin = a.Queqin,
                             Fakuan = a.Fakuan,
                             Peichang = a.Peichang,
                             Jiucuo = a.Jiucuo,
                             Daozhanggongzi = a.Daozhanggongzi,
                             Yufagongzi = a.Yufagongzi,
                             Yufagongziheji = a.Yufagongziheji,
                             JibengongziName = a.Jibengongzi.HasValue ? a.Jibengongzi.Value.ToString("F2") : "",
                             BaomifeiName = a.Baomifei.HasValue ? a.Baomifei.Value.ToString("F2") : "",
                             GongzuobutieName = a.Gongzuobutie.HasValue ? a.Gongzuobutie.Value.ToString("F2") : "",
                             JiabangongziName = a.Jiabangongzi.HasValue ? a.Jiabangongzi.Value.ToString("F2") : "",
                             ShebaoName = a.Shebao.HasValue ? a.Shebao.Value.ToString("F2") : "",
                             DianhuabutieName = a.Dianhuabutie.HasValue ? a.Dianhuabutie.Value.ToString("F2") : "",
                             QuanqinjiangName = a.Quanqinjiang.HasValue ? a.Quanqinjiang.Value.ToString("F2") : "",
                             JiaotngbutieName = a.Jiaotngbutie.HasValue ? a.Jiaotngbutie.Value.ToString("F2") : "",
                             JixiaotichengName = a.Jixiaoticheng.HasValue ? a.Jixiaoticheng.Value.ToString("F2") : "",
                             JiangjinName = a.Jiangjin.HasValue ? a.Jiangjin.Value.ToString("F2") : "",
                             BufagongziName = a.Bufagongzi.HasValue ? a.Bufagongzi.Value.ToString("F2") : "",
                             ShebaokouName = a.Shebaokou.HasValue ? a.Shebaokou.Value.ToString("F2") : "",
                             GeshuiName = a.Geshui.HasValue ? a.Geshui.Value.ToString("F2") : "",
                             DianhuafeiName = a.Dianhuafei.HasValue ? a.Dianhuafei.Value.ToString("F2") : "",
                             QueqinName = a.Queqin.HasValue ? a.Queqin.Value.ToString("F2") : "",
                             FakuanName = a.Fakuan.HasValue ? a.Fakuan.Value.ToString("F2") : "",
                             PeichangName = a.Peichang.HasValue ? a.Peichang.Value.ToString("F2") : "",
                             JiucuoName = a.Jiucuo.HasValue ? a.Jiucuo.Value.ToString("F2") : "",
                             DaozhanggongziName = a.Daozhanggongzi.HasValue ? a.Daozhanggongzi.Value.ToString("F2") : "",
                             YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "",
                             YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "",
                             Islock =a.Islock,
                             RecStatus = a.RecStatus,
                             Creater = a.Creater,
                             Createtime = a.Createtime,
                             Modifier = a.Modifier,
                             Modifytime = a.Modifytime,
                         }).OrderByDescending(x => x.Modifytime).ToList();
            if (searchEntity.totalrows == 0)
                searchEntity.totalrows = query.Count();
            var rolelist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            data.LoadData(searchEntity, rolelist);
            return data;
        }
        public ResultEntity ModifyStatus(string id, string userid)
        {
            ResultEntity result = new ResultEntity();
            result.Result = true;
            var model = _context.HrSalaries.Find(id);
            if (model != null)
            {
                model.RecStatus = "D";
                model.Modifier = userid;
                model.Modifytime = DateTime.Now;
                _context.SaveChanges();
            }
            return result;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æœ‰æ•ˆè§’è‰²
        /// </summary>
        /// <returns></returns>
        public List<HrSalaryDTO> GetList()
        {
            var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A").ToList();
            var list = _mapper.Map<List<HrSalaryDTO>>(listPosition);
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æœ‰æ•ˆè§’è‰²
        /// </summary>
        /// <returns></returns>
        public HrSalaryDTO GetListByUser(string Userid, int year, int month)
        {
            var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A" && r.Userid == Userid && r.Year == year && r.Month == month).FirstOrDefault();
            HrSalaryDTO hrSalaryDTO = null;
            if (listPosition != null)
            {
                hrSalaryDTO = _mapper.Map<HrSalaryDTO>(listPosition);
            }
            return hrSalaryDTO;
        }
        /// <summary>
        /// å·¥èµ„核对
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <returns></returns>
        public List<HrSalaryDTO> GetSalary(string userid,int year,int month)
        {
            var entity = (from a in _context.HrSalaries
                          join b in _context.PltUsers on a.Userid equals b.Id
                          join c in _context.HrDepts on b.DeptId equals c.Id
                          where a.RecStatus=="A" && a.Userid == userid && a.Year == year && a.Month==month
                          select new HrSalaryDTO()
                          {
                              Id = a.Id,
                              Userid = a.Userid,
                              Usernumber = b.Usernumber,
                              UserName = b.UserName,
                              DeptName = c.DeptName,
                              Year = a.Year,
                              Month = a.Month,
                              Jibengongzi = a.Jibengongzi,
                              Baomifei = a.Baomifei,
                              Gongzuobutie = a.Gongzuobutie,
                              Jiabangongzi = a.Jiabangongzi,
                              Shebao = a.Shebao,
                              Dianhuabutie = a.Dianhuabutie,
                              Quanqinjiang = a.Quanqinjiang,
                              Jiaotngbutie = a.Jiaotngbutie,
                              Jixiaoticheng = a.Jixiaoticheng,
                              Jiangjin = a.Jiangjin,
                              Bufagongzi = a.Bufagongzi,
                              Shebaokou = a.Shebaokou,
                              Geshui = a.Geshui,
                              Dianhuafei = a.Dianhuafei,
                              Queqin = a.Queqin,
                              Fakuan = a.Fakuan,
                              Peichang = a.Peichang,
                              Jiucuo = a.Jiucuo,
                              Daozhanggongzi = a.Daozhanggongzi,
                              Yufagongzi = a.Yufagongzi,
                              Yufagongziheji = a.Yufagongziheji,
                              Islock=a.Islock
                          }).ToList();
            if (entity == null)
            {
                entity = new List<HrSalaryDTO>();
            }
            return entity;
        }
        /// <summary>
        /// å·¥èµ„确认
        /// </summary>
        /// <param name="id"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public ResultEntity CheckOk(string id,string user)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var updatepltRole = _context.HrSalaries.Where(c=>c.Id==id && c.Userid==user).FirstOrDefault();
                if(updatepltRole!=null)
                {
                    updatepltRole.Islock = "Q";
                    updatepltRole.Modifier = user;
                    updatepltRole.Modifytime = DateTime.Now;
                    _context.SaveChanges();
                    resultEntity.Result = true;
                }
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
            }
            return resultEntity;
        }
        /// <summary>
        /// æäº¤ç”³è¯‰
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResultEntity CheckAppea(HrSalaryAppeal model)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var salary = _context.HrSalaries.Where(c => c.Id == model.salary_id && c.RecStatus == "A" && c.Islock != "Q").SingleOrDefault();
                if (salary != null)
                {
                    salary.Islock = "S";
                    var temp = _context.HrSalaryAppeal.Where(e => e.salary_id == model.salary_id && e.sub_user==model.sub_user).SingleOrDefault();
                    if (temp != null && temp.status == "A")
                    {
                        temp.reason = model.reason;
                        temp.amount = model.amount;
                        temp.basis = model.basis;
                        temp.sub_time = DateTime.Now;
                    }
                    else
                    {
                        model.sub_time = DateTime.Now;
                        model.status = "A";
                        _context.HrSalaryAppeal.Add(model);
                    }
                    var i= _context.SaveChanges();
                    resultEntity.Result = true;
                }
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
                ex.Message.ToString();
            }
            return resultEntity;
        }
        /// <summary>
        /// æŸ¥ç”³è¯‰ä¿¡æ¯
        /// </summary>
        /// <param name="id"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public HrSalaryAppeal GetAppeal(string id,string user)
        {
            HrSalaryAppeal hd = new HrSalaryAppeal();
            try
            {
                hd = _context.HrSalaryAppeal.Where(e => e.salary_id == id && e.sub_user == user).SingleOrDefault();
            }
            catch (Exception er)
            {
                throw;
            }
            return hd;
        }
        /// <summary>
        /// å·¥èµ„查询(查完成确认的)
        /// </summary>
        /// <param name="searchEntity"></param>
        /// <returns></returns>
        public ResultDataEntity<HrSalaryDTO> SearchByPagingFinish(HrSalaryDTOSearch searchEntity)
        {
            ResultDataEntity<HrSalaryDTO> data = new ResultDataEntity<HrSalaryDTO>();
            DateTime st = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;
            DateTime et = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1);
            int month = 0;
            if (!string.IsNullOrEmpty(searchEntity.searchDate))
            {
                var times = searchEntity.searchDate.Split('|');
                if (times.Length == 2)
                {
                    st = DateTime.Parse(times[0]);
                    et= DateTime.Parse(times[1]);
                }
            }
            var query = (from a in _context.HrSalaries where a.Year >= st.Year && a.Month >= st.Month && a.Year <= et.Year && a.Month <= et.Month select a);
            var list = (from a in query
                         join f in _context.PltUsers on a.Userid equals f.Id
                         join g in _context.HrDepts  on f.DeptId equals g.Id
                         where a.RecStatus == "A" && a.Islock=="Q"
                          && (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || f.Usernumber == searchEntity.Usernumber.Trim())
                            && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || f.DeptId == searchEntity.DeptId.Trim())
                              && (string.IsNullOrWhiteSpace(searchEntity.UserName) || f.UserName.Contains(searchEntity.UserName.Trim()))
                         select new HrSalaryDTO
                         {
                             Id = a.Id,
@@ -216,9 +802,7 @@
                             YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "",
                             YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "",
                             Islock =a.Islock,
                             Islock = a.Islock,
                             RecStatus = a.RecStatus,
                             Creater = a.Creater,
                             Createtime = a.Createtime,
@@ -228,70 +812,12 @@
                         }).OrderByDescending(x => x.Modifytime).ToList();
            if (searchEntity.totalrows == 0)
                searchEntity.totalrows = query.Count();
            var rolelist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
                searchEntity.totalrows = list.Count();
            var rolelist = list.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            data.LoadData(searchEntity, rolelist);
            return data;
        }
        public ResultEntity ModifyStatus(string id, string userid)
        {
            ResultEntity result = new ResultEntity();
            result.Result = true;
            var model = _context.HrSalaries.Find(id);
            if (model != null)
            {
                model.RecStatus = "D";
                model.Modifier = userid;
                model.Modifytime = DateTime.Now;
                _context.SaveChanges();
            }
            return result;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æœ‰æ•ˆè§’è‰²
        /// </summary>
        /// <returns></returns>
        public List<HrSalaryDTO> GetList()
        {
            var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A").ToList();
            var list = _mapper.Map<List<HrSalaryDTO>>(listPosition);
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æœ‰æ•ˆè§’è‰²
        /// </summary>
        /// <returns></returns>
        public HrSalaryDTO GetListByUser(string Userid, int year, int month)
        {
            var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A" && r.Userid == Userid && r.Year == year && r.Month == month).FirstOrDefault();
            HrSalaryDTO hrSalaryDTO = null;
            if (listPosition != null)
            {
                hrSalaryDTO = _mapper.Map<HrSalaryDTO>(listPosition);
            }
            return hrSalaryDTO;
        }
    }
}
zhengcaioa/Services/SimService.cs
@@ -289,19 +289,25 @@
            ResultDataEntity<SimCostView> data = new ResultDataEntity<SimCostView>();
            try
            {
                var codedata = (from e in _context.SysCodes
                                join c in _context.SysCodeDtls
                                on e.Id equals c.CodeId
                                where e.RecStatus == "A"
                                && c.RecStatus == "A"
                                && e.CodeTable == "t_sim_bind"
                                && e.CodeField == "cardpro"
                                select c).OrderBy(x => x.Sort).ToList();
                //var codedata = (from e in _context.SysCodes
                //                join c in _context.SysCodeDtls
                //                on e.Id equals c.CodeId
                //                where e.RecStatus == "A"
                //                && c.RecStatus == "A"
                //                && e.CodeTable == "t_sim_bind"
                //                && e.CodeField == "cardpro"
                //                select c).OrderBy(x => x.Sort).ToList();
                var dt = _context.SimCostView.OrderByDescending(c => c.accounted_time).ToList();
                if (!string.IsNullOrEmpty(searchEntity.searchtime))
                {
                    //dt = dt.Where(c => c.simcard.Contains(searchEntity.simcard)).ToList();
                    var times = searchEntity.searchtime.Split('|');
                    if(times.Length==2)
                    {
                        DateTime d1 = DateTime.Parse(times[0]);
                        DateTime d2 = DateTime.Parse(times[1]);
                        dt = dt.Where(c => c.accounted_time > d1 && c.accounted_time < d2).ToList();
                    }
                }
                if (!string.IsNullOrEmpty(searchEntity.searchsim))
                {
zhengcaioa/zhengcaioa/Controllers/HR/SalaryCheckController.cs
New file
@@ -0,0 +1,220 @@
using DTO;
using IServices;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Transactions;
using zhengcaioa.Models;
namespace zhengcaioa.Controllers.HR
{
    public class SalaryCheckController : Controller
    {
        private readonly IHrDeptService _hrDeptService;
        private readonly ILogger<SalaryCheckController> _logger;
        private readonly IHrSalaryService _hrSalaryService;
        public SalaryCheckController(ILogger<SalaryCheckController> logger, IHrSalaryService hrSalaryService, IHrDeptService hrDeptService)
        {
            _logger = logger;
            _hrDeptService = hrDeptService;
            _hrSalaryService = hrSalaryService;
        }
        public IActionResult Index()
        {
            List<ActionEntity> actionlist = new List<ActionEntity>();
            ActionEntity actionEntity = new ActionEntity();
            actionEntity.OpenType = 0;
            actionEntity.ActionUrl = "";
            actionEntity.ActionFun = "Search";
            actionEntity.PageIco = "fa fa-search";
            actionEntity.ActionName = "查询";
            actionlist.Add(actionEntity);
            ActionEntity actionEntity1 = new ActionEntity();
            actionEntity1.OpenType = 0;
            actionEntity1.ActionUrl = "";
            actionEntity1.ActionFun = "Edit";
            actionEntity1.PageIco = "fa fa-plus";
            actionEntity1.ActionName = "核准";
            actionlist.Add(actionEntity1);
            ViewBag.editBtn = false;
            ViewData["ActionInfo"] = actionlist;
            ViewBag.dept = _hrDeptService.GetList().Select(x => new { code = x.Id, label = x.DeptName }).ToList();
            return View();
        }
        /// <summary>
        /// åˆ—表内容
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IActionResult GetList(HrSalaryDTOSearch search)
        {
            return new JsonResult(_hrSalaryService.SearchSalaryByPaging(search));
        }
        /// <summary>
        /// ç¼–辑页
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IActionResult Edit(string id)
        {
            HrSalaryDTO dto = new HrSalaryDTO();
            if (!string.IsNullOrEmpty(id))
            {
                dto = _hrSalaryService.Get(id);
            }
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// ä¿å­˜
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveCheck(HrSalaryDTO data)
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ResultEntity resultEntity = new ResultEntity();
            using (TransactionScope scope = new TransactionScope())
            {
                data.Modifier = curentuser.Id;
                resultEntity = _hrSalaryService.SaveCheckSalary(data);
                scope.Complete();
            }
            return new JsonResult(resultEntity);
        }
        #region å·¥èµ„核对
        public IActionResult Employee()
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewBag.Employee = curentuser;
            return View();
        }
        public JsonResult EmployeeSalary(string month)
        {
            ResultDataEntity<HrSalaryDTO> data = new ResultDataEntity<HrSalaryDTO>();
            HrSalaryDTOSearch searchEntity = new HrSalaryDTOSearch();
            searchEntity.page = 0;
            searchEntity.rows = 10;
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            if (!string.IsNullOrEmpty(month))
            {
                var dtime = DateTime.Parse(month);
                var md = _hrSalaryService.GetSalary(curentuser.Id, dtime.Year,dtime.Month);
                if (searchEntity.totalrows == 0)
                    searchEntity.totalrows =1;
                data.LoadData(searchEntity, md );
            }
            return Json(data);
        }
        [HttpPost]
        public JsonResult SalaryCheckOk(string id)
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ResultEntity resultEntity = new ResultEntity();
            if(!string.IsNullOrEmpty(id))
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    resultEntity = _hrSalaryService.CheckOk(id, curentuser.Id);
                    scope.Complete();
                }
            }
            return Json(resultEntity);
        }
        public IActionResult Appeal(string id)
        {
            HrSalaryAppeal dto = new HrSalaryAppeal();
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            if (!string.IsNullOrEmpty(id))
            {
                dto = _hrSalaryService.GetAppeal(id, curentuser.Id);
                if(dto==null)
                {
                    dto = new HrSalaryAppeal();
                    dto.salary_id = id;
                }
            }
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// ä¿å­˜ç”³è¯‰
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveAppeal(HrSalaryAppeal data)
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ResultEntity resultEntity = new ResultEntity();
            using (TransactionScope scope = new TransactionScope())
            {
                data.sub_user = curentuser.Id;
                resultEntity = _hrSalaryService.CheckAppea(data);
                scope.Complete();
            }
            return new JsonResult(resultEntity);
        }
        #endregion
        #region å·¥èµ„查询
        public IActionResult SearchIndex()
        {
            List<ActionEntity> actionlist = new List<ActionEntity>();
            ActionEntity actionEntity = new ActionEntity();
            actionEntity.OpenType = 0;
            actionEntity.ActionUrl = "";
            actionEntity.ActionFun = "Search";
            actionEntity.PageIco = "fa fa-search";
            actionEntity.ActionName = "查询";
            actionlist.Add(actionEntity);
            ViewData["ActionInfo"] = actionlist;
            ViewBag.dept = _hrDeptService.GetList().Select(x => new { code = x.Id, label = x.DeptName }).ToList();
            ViewBag.stime = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.ToString("yyyy-MM-dd");
            ViewBag.etime = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1).ToString("yyyy-MM-dd");
            return View();
        }
        /// <summary>
        /// åˆ—表内容
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IActionResult GetSearchList(HrSalaryDTOSearch search)
        {
            return new JsonResult(_hrSalaryService.SearchByPagingFinish(search));
        }
        #endregion
    }
}
zhengcaioa/zhengcaioa/Startup.cs
@@ -72,6 +72,7 @@
            services.AddControllersWithViews();
            services.AddScoped(typeof(ISimService), typeof(SimService));
            services.AddScoped(typeof(IHrSalaryService), typeof(HrSalaryService));
            services.AddScoped(typeof(IUserService), typeof(UserService));
            services.AddScoped(typeof(ILiaotianService), typeof(LiaotianService));
zhengcaioa/zhengcaioa/Views/SalaryCheck/Appeal.cshtml
New file
@@ -0,0 +1,173 @@
@model HrSalaryAppeal;
@using DTO;
@using zhengcaioa.Models;
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ThemeBucket">
    <link href="~/css/bootstrap.min.css" rel="stylesheet">
    <link href="~/css/font-awesome.min.css" rel="stylesheet">
    <link href="~/css/animate.min.css" rel="stylesheet">
    <link href="~/css/style.min.css" rel="stylesheet">
    <link href="~/css/plugins/chosen/chosen.css" rel="stylesheet">
    <link href="~/js/plugins/layer/skin/layer.css" rel="stylesheet">
    <link href="~/css/style.min.css" rel="stylesheet">
    <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet" />
    <!-- jqgrid-->
    <script language="javascript" src="~/js/jquery.min.js" type="text/javascript"></script>
    <script src="~/js/bootstrap.min.js"></script>
    <!--容器-->
    <script language="javascript" src="~/js/plugins/chosen/chosen.jquery.js" type="text/javascript"></script>
    <script language="javascript" src="~/js/plugins/layer/layer.js" type="text/javascript"></script>
    <script src="~/js/plugins/toastr/toastr.min.js" type="text/javascript"></script>
    <script language="javascript" src="~/js/common-layout.js" type="text/javascript"></script>
    <script src="~/js/plugins/layer/laydate/laydate.js" type="text/javascript"></script>
    <script src="~/js/TUJS.js"></script>
    <style type="text/css">
        div.clearfix > label {
            padding-top: 8px;
        }
        .col-md-1.control-label {
            padding-right: 0px;
            font-weight: 400;
        }
    </style>
</head>
<body class="gray-bg" style="overflow:auto">
    <form id="fm" method="post">
        <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;">
            <div class="row">
                <div class="col-sm-12">
                    <div class="ibox float-e-margins">
                        <div id="div_content" class="ibox-content" style="background-color:white;">
                            <div class="row">
                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                    <label class="text-right col-sm-1 col-md-1 control-label">申诉理由<i class="red">*</i></label>
                                    <div class="col-sm-2 col-md-2">
                                        <textarea class="form-control bt" id="ssly" name="reason"  maxlength="4000" length="long" style="resize:none;overflow-y:hidden; height:80px;">@Model.reason</textarea>
                                    </div>
                                </div>
                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                    <label class="text-right col-sm-1 col-md-1 control-label">争议金额<i class="red">*</i></label>
                                    <div class="col-sm-2 col-md-2">
                                        <input class="form-control" id="zyje" name="amount" type="text" value="@Model.amount" oninput="if(value.length>10)value=value.slice(0,10)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                    </div>
                                </div>
                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                    <label class="text-right col-sm-1 col-md-1 control-label">制度依据<i class="red">*</i></label>
                                    <div class="col-sm-2 col-md-2">
                                        <input type="hidden" name="salary_id" value="@Model.salary_id" />
                                        <input class="form-control" id="zdyj" name="basis" labtype="txt" addvisible="true" editvisible="true" type="text" value="@Model.basis">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="ibox-content" id="top" style="z-index:100; position:fixed; height:50px; width:100%;bottom:0; text-align: right; padding-top:8px ">
            <div class="" style="float:right;" data-bootstro-width="500px">
                <a class="btn btn-success" href="javascript:void(0)" onclick="_pageAutoClose();" style="margin-left:4px; border-radius:4px;">
                    <i class="glyphicon glyphicon-remove"></i>&nbsp;&nbsp;<span class="bold">取消</span>
                </a>
                <a class="btn btn-success" href="javascript:void(0)" onclick="saveSimCost();" style="margin-left:4px; border-radius:4px;">
                    <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">提交</span>
                </a>
            </div>
        </div>
    </form>
    <script type="text/javascript">
        var hh = document.body.clientHeight -  $("#top").height() * 2 - 50;
        $("#div_content").height(hh);
        toastr.options = {
            "closeButton": true,
            "debug": false,
            "progressBar": true,
            "positionClass": "toast-bottom-right",
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "600",
            "timeOut": "4500",
            "extendedTimeOut": "600",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };
        // ä¿å­˜
        function saveSimCost() {
            if ($("#ssly").val() == '') {
                toastr.warning("申诉理由不能为空");
                return;
            }
            if ($("#zyje").val() == '') {
                toastr.warning("争议金额不能为空");
                return;
            }
            if ($("#zdyj").val() == '') {
                toastr.warning("制度依据不能为空");
                return;
            }
            $.ajax({
                type: "POST",
                url: "/SalaryCheck/SaveAppeal",
                dataType: "json",
                global: false,
                data: $('#fm').serialize(),
                success: function (data) {
                        if (data.Result) {
                            parent.layer.msg('提交成功', { icon: 6 });
                            try {
                                _pageAutoClose();//自动关闭页面方法
                            }
                            catch (err) {
                                parent._CloseTab1("/SalaryCheck/Appeal/");
                            }
                        }
                        else {
                            parent.layer.msg(data.Message, { icon: 5 });
                        }
                },
                error: function () {
                    parent.layer.msg('失败', { icon: 5 });
                }
            });
        }
        function _pageAutoClose() {
            parent.window._reloadPageData();
            var index = parent.layer.getFrameIndex(window.name);
            parent.layer.isRefresh = true;
            parent.layer.closeAll('loading');
            parent.layer.close(index);
            return false;
        }
    </script>
</body>
</html>
zhengcaioa/zhengcaioa/Views/SalaryCheck/Edit.cshtml
New file
@@ -0,0 +1,231 @@
@model HrSalaryDTO;
@using DTO;
@using zhengcaioa.Models;
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ThemeBucket">
    <link href="~/css/bootstrap.min.css" rel="stylesheet">
    <link href="~/css/font-awesome.min.css" rel="stylesheet">
    <link href="~/css/animate.min.css" rel="stylesheet">
    <link href="~/css/style.min.css" rel="stylesheet">
    <link href="~/css/plugins/chosen/chosen.css" rel="stylesheet">
    <link href="~/js/plugins/layer/skin/layer.css" rel="stylesheet">
    <link href="~/css/style.min.css" rel="stylesheet">
    <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet" />
    <!-- jqgrid-->
    <script language="javascript" src="~/js/jquery.min.js" type="text/javascript"></script>
    <script src="~/js/bootstrap.min.js"></script>
    <!--容器-->
    <script language="javascript" src="~/js/plugins/chosen/chosen.jquery.js" type="text/javascript"></script>
    <script language="javascript" src="~/js/plugins/layer/layer.js" type="text/javascript"></script>
    <script src="~/js/plugins/toastr/toastr.min.js" type="text/javascript"></script>
    <script language="javascript" src="~/js/common-layout.js" type="text/javascript"></script>
    <script src="~/js/plugins/layer/laydate/laydate.js" type="text/javascript"></script>
    <script src="~/js/TUJS.js"></script>
    <style type="text/css">
        div.clearfix > label {
            padding-top: 8px;
        }
        .col-md-1.control-label {
            padding-right: 0px;
            font-weight: 400;
        }
    </style>
</head>
<body class="gray-bg" style="overflow:auto">
    <form id="fm" method="post">
        <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;">
            <div class="row">
                <div class="col-sm-6 col-md-6">
                    @*<div class="ibox float-e-margins"></div>*@
                    <div id="div_content" class="ibox-content" style="background-color:white;">
                        <div class="row">
                            <div class="clearfix layer-area" style="padding-bottom:15px;">
                                <label class="text-right col-sm-3 col-md-3 control-label">员工姓名</label>
                                <div class="col-sm-9 col-md-9">
                                    <input class="form-control" labtype="txt" addvisible="true" readonly="readonly" type="text" value="@Model.UserName">
                                    <input type="hidden" name="id" value="@Model.Id" />
                                </div>
                            </div>
                            <div class="clearfix layer-area" style="padding-bottom:15px;">
                                <label class="text-right col-sm-3 col-md-3 control-label">工作部门</label>
                                <div class="col-sm-9 col-md-9">
                                    <input class="form-control" labtype="txt" addvisible="true" readonly="readonly" type="text" value="@Model.DeptName">
                                </div>
                            </div>
                            <div class="clearfix layer-area" style="padding-bottom:15px;">
                                <label class="text-right col-sm-3 col-md-3 control-label">奖金</label>
                                <div class="col-sm-9 col-md-9">
                                    <input class="form-control" name="Jiangjin" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value="@Model.Jiangjin" oninput="if(value.length>10)value=value.slice(0,10)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                </div>
                            </div>
                            <div class="clearfix layer-area" style="padding-bottom:15px;">
                                <label class="text-right col-sm-3 col-md-3 control-label">补发工资</label>
                                <div class="col-sm-9 col-md-9">
                                    <input class="form-control" name="Bufagongzi" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value="@Model.Bufagongzi" oninput="if(value.length>10)value=value.slice(0,10)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                </div>
                            </div>
                            <div class="clearfix layer-area" style="padding-bottom:15px;">
                                <label class="text-right col-sm-3 col-md-3 control-label">赔偿</label>
                                <div class="col-sm-9 col-md-9">
                                    <input class="form-control" name="Peichang" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value="@Model.Peichang" oninput="if(value.length>10)value=value.slice(0,10)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                </div>
                            </div>
                            <div class="clearfix layer-area" style="padding-bottom:15px;">
                                <label class="text-right col-sm-3 col-md-3 control-label">纠错</label>
                                <div class="col-sm-9 col-md-9">
                                    <input class="form-control" label="薪资待遇" name="Jiucuo" labtype="txt" addvisible="true" maxlength="500" editvisible="true" reg="" ismust="true" type="text" value="@Model.Jiucuo" oninput="if(value.length>10)value=value.slice(0,10)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-sm-6 col-md-6">
                    <div class="panel panel-default" id="panelss" >
                        <div class="panel-heading">
                            ç”³è¯‰å†…容
                        </div>
                        <div class="panel-body">
                            <div class="row">
                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                    <label class="text-right col-sm-3 col-md-3 control-label">申诉理由<i class="red">*</i></label>
                                    <div class="col-sm-9 col-md-9">
                                        <textarea class="form-control bt" readonly="readonly" style="resize:none;overflow-y:hidden; height:150px;">@Model.reason</textarea>
                                    </div>
                                </div>
                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                    <label class="text-right col-sm-3 col-md-3 control-label">争议金额<i class="red">*</i></label>
                                    <div class="col-sm-9 col-md-9">
                                        <input class="form-control" type="text" value="@Model.amount" readonly="readonly">
                                    </div>
                                </div>
                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                    <label class="text-right col-sm-3 col-md-3 control-label">制度依据<i class="red">*</i></label>
                                    <div class="col-sm-9 col-md-9">
                                        <input class="form-control" labtype="txt" type="text" readonly="readonly" value="@Model.basis">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="ibox-content" id="top" style="z-index:100; position:fixed; height:50px; width:100%;bottom:0; text-align: right; padding-top:8px ">
            <div class="" style="float:right;" data-bootstro-width="500px" data-bootstro-content="功能按钮:“保存”,“取消”">
                <a class="btn btn-success" href="javascript:void(0)" onclick="_pageAutoClose();" style="margin-left:4px; border-radius:4px;">
                    <i class="glyphicon glyphicon-remove"></i>&nbsp;&nbsp;<span class="bold">取消</span>
                </a>
                <a class="btn btn-success" href="javascript:void(0)" onclick="saveSimCost();" style="margin-left:4px; border-radius:4px;">
                    <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">提交</span>
                </a>
            </div>
        </div>
    </form>
    <script type="text/javascript">
         $(function () {
             var pl = '@Model.reason';
             if (pl.length > 0) {
             }
             else {
                 $("#panelss").hide();
             }
            });
        var hh = document.body.clientHeight -  $("#top").height() * 2 - 75;
        $("#div_content").height(hh);
        toastr.options = {
            "closeButton": true,
            "debug": false,
            "progressBar": true,
            "positionClass": "toast-bottom-right",
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "600",
            "timeOut": "4500",
            "extendedTimeOut": "600",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };
        // ä¿å­˜
        function saveSimCost() {
            if ($("#cbbCard").val() == '') {
                toastr.warning("电话卡号不能为空");
                return;
            }
            if ($("#billamount").val() == '') {
                toastr.warning("实际电话费用不能为空");
                return;
            }
            if ($("#acTime").val() == '') {
                toastr.warning("费用记账日期不能为空");
                return;
            }
            $.ajax({
                type: "POST",
                url: "/SimCost/SaveSimCost2",
                dataType: "json",
                global: false,
                data: $('#fm').serialize(),
                success: function (data) {
                        if (data.Result) {
                            parent.layer.msg('设置成功', { icon: 6 });
                            try {
                                _pageAutoClose();//自动关闭页面方法
                            }
                            catch (err) {
                                parent._CloseTab1("/SimCost/Edit/");
                            }
                        }
                        else {
                            // toastr.error("失败");
                            parent.layer.msg(data.Message, { icon: 5 });
                        }
                },
                error: function () {
                    parent.layer.msg('失败', { icon: 5 });
                }
            });
        }
        function _pageAutoClose() {
            parent.window._reloadPageData();
            var index = parent.layer.getFrameIndex(window.name);
            parent.layer.isRefresh = true;
            parent.layer.closeAll('loading');
            parent.layer.close(index);
            return false;
        }
    </script>
</body>
</html>
zhengcaioa/zhengcaioa/Views/SalaryCheck/Employee.cshtml
New file
@@ -0,0 +1,227 @@
@{
    ViewBag.Title = "工资核对";
    Layout = "~/Views/Shared/_Layout_Search.cshtml";
    PltUser Employee = ViewData["Employee"] as PltUser;
}
<link href="~/css/jquery-confirm.css" rel="stylesheet">
@*<link href="~/js/plugins/layer/skin/layer.css" rel="stylesheet">*@
<link href="~/js/plugins/layer/laydate/theme/default/laydate.css" rel="stylesheet">
<script src="~/js/jquery-confirm.js" type="text/javascript"></script>
<script src="~/js/plugins/layer/laydate/laydate5.js" type="text/javascript"></script>
<style>
   /* .laydate_table {
        display: none;
    }*/
    .col-base {
        line-height: 35px;
    }
/*
    #laydate_hms {
        display: none !important;
    }*/
</style>
@section headerStyle{
    <table style="line-height:35px;margin-top:15px">
        <tr>
            <td width="100"></td>
            <td width="200">姓名:@Employee.UserName</td>
            <td width="200">工号:@Employee.Usernumber</td>
            <td >工资月份:</td>
            <td width="180">
                <input id="acTime" style="width:150px" class="layui-input" placeholder="yyyy-MM" type="text" />
            </td>
            <td>
                <a class="btn btn-default btn-outline" href="#" onclick="doSearch()">
                    <i class="fa fa-search"></i>&nbsp;&nbsp;<span class="bold">查询</span>
                </a>
            </td>
            <td></td>
        </tr>
    </table>
    <script type="text/javascript">
        gridConfig = { multiselect: false, selectcol: "Id" };
        shrinkToFit = false;
        footerrow = false;
        dataCol = [
            { label: '序号', name: 'Id', labtype: 'txt', hidden: true },
            { label: '序号', name: 'Islock', labtype: 'txt', hidden: true },
            { label: '工号', name: 'Usernumber', labtype: 'txt', hidden: false, width: 100},
            {
                label: '姓名', name: 'UserName', labtype: 'txt', hidden: false, width: 100,
            },
            { label: '工资月份', name: 'YearMonth', labtype: 'txt', hidden: false, width: 100 },
            {
                label: '状态', name: 'IslockChs', labtype: 'txt', hidden: false, width: 100, formatter: function (cellvalue, options, rowObject) {
                    if (rowObject.Islock == 'S') {
                        return '<b style="color: red">' + cellvalue + '</b>';
                    } else {
                        return cellvalue;
                    }
                }
            },
            { label: '工作部门', name: 'DeptName', labtype: 'txt', hidden: false, width: 120 },
            { label: '基本工资', name: 'Jibengongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '保密费', name: 'Baomifei', labtype: 'txt', hidden: false, width: 100 },
            { label: '工作补贴', name: 'Gongzuobutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '加班工资', name: 'Jiabangongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '社保', name: 'Shebao', labtype: 'txt', hidden: false, width: 100 },
            { label: '电话补贴', name: 'Dianhuabutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '全勤奖', name: 'Quanqinjiang', labtype: 'txt', hidden: false, width: 100 },
            { label: '交通补贴', name: 'Jiaotngbutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '绩效提成', name: 'Jixiaoticheng', labtype: 'txt', hidden: false, width: 100 },
            { label: '奖金', name: 'Jiangjin', labtype: 'txt', hidden: false, width: 100 },
            { label: '补发工资', name: 'Bufagongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '合计', name: 'sum_fgz', labtype: 'txt', hidden: false, width: 100 },
            { label: '个人社保', name: 'Shebaokou', labtype: 'txt', hidden: false, width: 100 },
            { label: '个税', name: 'Geshui', labtype: 'txt', hidden: false, width: 100 },
            { label: '电话费', name: 'Dianhuafei', labtype: 'txt', hidden: false, width: 100 },
            { label: '缺勤', name: 'Queqin', labtype: 'txt', hidden: false, width: 100 },
            { label: '罚款', name: 'Fakuan', labtype: 'txt', hidden: false, width: 100 },
            { label: '赔偿', name: 'Peichang', labtype: 'txt', hidden: false, width: 100 },
            { label: '纠错', name: 'Jiucuo', labtype: 'txt', hidden: false, width: 100 },
            { label: '合计', name: 'sum_kgz', labtype: 'txt', hidden: false, width: 100 },
            { label: '到账工资', name: 'Daozhanggongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '预发工资', name: 'Yufagongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '预发工资合计', name: 'Yufagongziheji', labtype: 'txt', hidden: false, width: 100 },
        ];
        dataUrl = "/SalaryCheck/EmployeeSalary?month=" + getNowFormatDate();
        searchCol = [];
        $(function () {
            laydate.render({
                elem: '#acTime'
                , type: 'month'
                , value: getNowFormatDate()
            });
            $("#jqGridPager").hide();//隐藏div
            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({ 'overflow-x': 'scroll' });
            jQuery("#jqGrid").jqGrid('setGroupHeaders', {
                useColSpanStyle: true,
                groupHeaders: [
                    { startColumnName: 'Jibengongzi', numberOfColumns: 12, titleText: '应发工资' },
                    { startColumnName: 'Shebaokou', numberOfColumns: 8, titleText: '应扣工资' }
                ]
            });
            jQuery("#jqGrid").jqGrid('setGridHeight', 150);
        });
        function getNowFormatDate() {
            var date = new Date();
            var seperator1 = "-";
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var strDate = date.getDate();
            if (month >= 1 && month <= 9) {
                month = "0" + month;
            }
            if (strDate >= 0 && strDate <= 9) {
                strDate = "0" + strDate;
            }
            var currentdate = year + seperator1 + month;//+ seperator1 + strDate;
            return currentdate;
        }
        function doSearch() {
           // $("#jqGrid").trigger('reloadGrid');
            $("#jqGrid").jqGrid('setGridParam', {
                url: "/SalaryCheck/EmployeeSalary?month=" + $('#acTime').val()
            }).trigger("reloadGrid");
        }
        function doQr() {
            var dt = $("#jqGrid").getDataIDs();
            if (dt.length > 0) {
                var lk = $("#jqGrid").getCell(dt, "Islock");
                if (lk == "Q") {
                    toastr.error("错误提示:此月份已经进行过确认操作!");
                }
                else {
                    $.ajax({
                        type: "POST",
                        url: "/SalaryCheck/SalaryCheckOk?id=" + dt,
                        dataType: "json",
                        global: false,
                        success: function (data) {
                            if (data.Result) {
                                parent.layer.msg('设置成功', { icon: 6 });
                                doSearch();
                            }
                            else {
                                // toastr.error("失败");
                                parent.layer.msg(data.Message, { icon: 5 });
                            }
                        },
                        error: function () {
                            parent.layer.msg('失败', { icon: 5 });
                        }
                    });
                }
            }
            else {
                parent.layer.msg('无内容可操作', { icon: 5 });
            }
        }
        function doSs() {
            var dt = $("#jqGrid").getDataIDs();
            if (dt.length > 0) {
                var lk = $("#jqGrid").getCell(dt, "Islock");
                if (lk == "Q") {
                    toastr.error("错误提示:此月份已完成确认,不能申诉!");
                }
                else {
                    OpenWindow('申诉', '40%', '50%', '/SalaryCheck/Appeal?id=' + dt);
                }
            }
            else {
                parent.layer.msg('无内容可操作', { icon: 5 });
            }
        }
    </script>
}
<div id="btnView" style="margin-top:15px;text-align:center">
    <table style="line-height:35px;width:100%">
        <tr>
            <td width="40%"></td>
            <td width="150">
                <a class="btn btn-default btn-outline" href="#" onclick="doQr()">
                    <i class="fa fa-save"></i>&nbsp;&nbsp;<span class="bold">确认</span>
                </a>
            </td>
            <td width="150">
                <a class="btn btn-default btn-outline" href="#" onclick="doSs()">
                    <i class="fa fa-question"></i>&nbsp;&nbsp;<span class="bold">申诉</span>
                </a>
            </td>
            <td width="40%"></td>
        </tr>
    </table>
</div>
zhengcaioa/zhengcaioa/Views/SalaryCheck/Index.cshtml
New file
@@ -0,0 +1,113 @@
@{
    ViewBag.Title = "工资核准";
    Layout = "~/Views/Shared/_Layout_Search.cshtml";
}
<link href="~/css/jquery-confirm.css" rel="stylesheet">
<script src="~/js/jquery-confirm.js" type="text/javascript"></script>
@section headerStyle{
    <script type="text/javascript">
        var dept = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.dept))';
        gridConfig = { multiselect: false, selectcol: "Id" };
        shrinkToFit = false;
        footerrow = false;
        dataCol = [
            { label: '序号', name: 'Id', labtype: 'txt', hidden: true },
            { label: '工号', name: 'Usernumber', labtype: 'txt', hidden: false, width: 100},
            {
                label: '姓名', name: 'UserName', labtype: 'txt', hidden: false, width: 100,
                formatter: function (cellvalue, options, rowObject) {
                    return "<a onclick=\"OpenWindow('工资核准','60%','55%', '/SalaryCheck/Edit?id=" + rowObject.Id + "')\"  >" + cellvalue + "</a>";
                }
            },
            { label: '工资月份', name: 'YearMonth', labtype: 'txt', hidden: false, width: 100 },
            {
                label: '状态', name: 'IslockChs', labtype: 'txt', hidden: false, width: 100, formatter: function (cellvalue, options, rowObject) {
                    if (rowObject.Islock == 'S') {
                        return '<b style="color: red">' + cellvalue + '</b>';
                    } else {
                        return cellvalue;
                    }
                }
            },
            { label: '工作部门', name: 'DeptName', labtype: 'txt', hidden: false, width: 120 },
            { label: '基本工资', name: 'Jibengongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '保密费', name: 'Baomifei', labtype: 'txt', hidden: false, width: 100 },
            { label: '工作补贴', name: 'Gongzuobutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '加班工资', name: 'Jiabangongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '社保', name: 'Shebao', labtype: 'txt', hidden: false, width: 100 },
            { label: '电话补贴', name: 'Dianhuabutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '全勤奖', name: 'Quanqinjiang', labtype: 'txt', hidden: false, width: 100 },
            { label: '交通补贴', name: 'Jiaotngbutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '绩效提成', name: 'Jixiaoticheng', labtype: 'txt', hidden: false, width: 100 },
            { label: '奖金', name: 'Jiangjin', labtype: 'txt', hidden: false, width: 100 },
            { label: '补发工资', name: 'Bufagongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '合计', name: 'sum_fgz', labtype: 'txt', hidden: false, width: 100 },
            { label: '个人社保', name: 'Shebaokou', labtype: 'txt', hidden: false, width: 100 },
            { label: '个税', name: 'Geshui', labtype: 'txt', hidden: false, width: 100 },
            { label: '电话费', name: 'Dianhuafei', labtype: 'txt', hidden: false, width: 100 },
            { label: '缺勤', name: 'Queqin', labtype: 'txt', hidden: false, width: 100 },
            { label: '罚款', name: 'Fakuan', labtype: 'txt', hidden: false, width: 100 },
            { label: '赔偿', name: 'Peichang', labtype: 'txt', hidden: false, width: 100 },
            { label: '纠错', name: 'Jiucuo', labtype: 'txt', hidden: false, width: 100 },
            { label: '合计', name: 'sum_kgz', labtype: 'txt', hidden: false, width: 100 },
            { label: '到账工资', name: 'Daozhanggongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '预发工资', name: 'Yufagongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '预发工资合计', name: 'Yufagongziheji', labtype: 'txt', hidden: false, width: 100 },
        ];
        dataUrl = "/SalaryCheck/GetList";
        searchCol = [
            { label: '工号', name: 'Usernumber2', labtype: 'txt', hidden: false },
            { label: '工作部门', name: 'DeptId', labtype: 'combox', hidden: false, data: JSON.parse(dept) },
            { label: '职工姓名', name: 'UserName', labtype: 'txt', hidden: false },
        ];
        $(function () {
            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({ 'overflow-x': 'scroll' });
            jQuery("#jqGrid").jqGrid('setGroupHeaders', {
                useColSpanStyle: true,
                groupHeaders: [
                    { startColumnName: 'Jibengongzi', numberOfColumns: 12, titleText: '应发工资' },
                    { startColumnName: 'Shebaokou', numberOfColumns: 8, titleText: '应扣工资' }
                ]
            });
        });
        var _pageEdit = function () {
            var id = jQuery("#jqGrid").jqGrid('getGridParam', 'selrow');
            if (id) {
                OpenWindow('工资核准', '60%', '55%', '/SalaryCheck/Edit?id=' + id );
            } else {
                toastr.error("请先选中1条记录!");
            }
        };
        var _afterSave = function (result) {
            if (result) {
                toastr.success("保存成功");
            } else {
                toastr.error("保存失败");
            }
        }
        var _afterDel = function (result) {
            if (result) {
                toastr.success("删除成功");
            } else {
                /**/
                toastr.error("删除成功");
                /**/
            }
        }
    </script>
}
zhengcaioa/zhengcaioa/Views/SalaryCheck/SearchIndex.cshtml
New file
@@ -0,0 +1,123 @@
@{
    ViewBag.Title = "工资查询";
    Layout = "~/Views/Shared/_Layout_Search.cshtml";
}
<link href="~/css/jquery-confirm.css" rel="stylesheet">
<script src="~/js/jquery-confirm.js" type="text/javascript"></script>
@section headerStyle{
    <style type="text/css">
/*
        .form-control {
            width:100px;
        }*/
    </style>
    <script type="text/javascript">
        var dept = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.dept))';
        gridConfig = { multiselect: false, selectcol: "Id" };
        shrinkToFit = false;
        footerrow = false;
        dataCol = [
            { label: '序号', name: 'Id', labtype: 'txt', hidden: true },
            { label: '工号', name: 'Usernumber', labtype: 'txt', hidden: false, width: 100},
            {
                label: '姓名', name: 'UserName', labtype: 'txt', hidden: false, width: 100,
            },
            { label: '工资月份', name: 'YearMonth', labtype: 'txt', hidden: false, width: 100 },
            { label: '工作部门', name: 'DeptName', labtype: 'txt', hidden: false, width: 120 },
            { label: '基本工资', name: 'Jibengongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '保密费', name: 'Baomifei', labtype: 'txt', hidden: false, width: 100 },
            { label: '工作补贴', name: 'Gongzuobutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '加班工资', name: 'Jiabangongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '社保', name: 'Shebao', labtype: 'txt', hidden: false, width: 100 },
            { label: '电话补贴', name: 'Dianhuabutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '全勤奖', name: 'Quanqinjiang', labtype: 'txt', hidden: false, width: 100 },
            { label: '交通补贴', name: 'Jiaotngbutie', labtype: 'txt', hidden: false, width: 100 },
            { label: '绩效提成', name: 'Jixiaoticheng', labtype: 'txt', hidden: false, width: 100 },
            { label: '奖金', name: 'Jiangjin', labtype: 'txt', hidden: false, width: 100 },
            { label: '补发工资', name: 'Bufagongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '合计', name: 'sum_fgz', labtype: 'txt', hidden: false, width: 100 },
            { label: '个人社保', name: 'Shebaokou', labtype: 'txt', hidden: false, width: 100 },
            { label: '个税', name: 'Geshui', labtype: 'txt', hidden: false, width: 100 },
            { label: '电话费', name: 'Dianhuafei', labtype: 'txt', hidden: false, width: 100 },
            { label: '缺勤', name: 'Queqin', labtype: 'txt', hidden: false, width: 100 },
            { label: '罚款', name: 'Fakuan', labtype: 'txt', hidden: false, width: 100 },
            { label: '赔偿', name: 'Peichang', labtype: 'txt', hidden: false, width: 100 },
            { label: '纠错', name: 'Jiucuo', labtype: 'txt', hidden: false, width: 100 },
            { label: '合计', name: 'sum_kgz', labtype: 'txt', hidden: false, width: 100 },
            { label: '到账工资', name: 'Daozhanggongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '预发工资', name: 'Yufagongzi', labtype: 'txt', hidden: false, width: 100 },
            { label: '预发工资合计', name: 'Yufagongziheji', labtype: 'txt', hidden: false, width: 100 },
            {
                label: '状态', name: 'IslockChs', labtype: 'txt', hidden: false, width: 100, formatter: function (cellvalue, options, rowObject) {
                    if (rowObject.Islock == 'S') {
                        return '<b style="color: red">' + cellvalue + '</b>';
                    } else {
                        return cellvalue;
                    }
                }
            },
        ];
        dataUrl = "/SalaryCheck/GetSearchList";
        searchCol = [
            { label: '时间', name: 'searchDate', labtype: 'datearea', hidden: false },
            { label: '部门', name: 'DeptId', labtype: 'combox', hidden: false, data: JSON.parse(dept) },
            { label: '姓名', name: 'UserName', labtype: 'txt', hidden: false },
            { label: '工号', name: 'Usernumber', labtype: 'txt', hidden: false },
        ];
        $(function () {
            $("#PBSsearchDatestart").val('@ViewBag.stime');
            $("#PBSsearchDateend").val('@ViewBag.etime');
            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({ 'overflow-x': 'scroll' });
            jQuery("#jqGrid").jqGrid('setGroupHeaders', {
                useColSpanStyle: true,
                groupHeaders: [
                    { startColumnName: 'Jibengongzi', numberOfColumns: 12, titleText: '应发工资' },
                    { startColumnName: 'Shebaokou', numberOfColumns: 8, titleText: '应扣工资' }
                ]
            });
        });
        var _pageEdit = function () {
            var id = jQuery("#jqGrid").jqGrid('getGridParam', 'selrow');
            if (id) {
                OpenWindow('工资核准', '50%', '60%', '/SalaryCheck/Edit?id=' + id );
            } else {
                toastr.error("请先选中1条记录!");
            }
        };
        var _afterSave = function (result) {
            if (result) {
                toastr.success("保存成功");
            } else {
                toastr.error("保存失败");
            }
        }
        var _afterDel = function (result) {
            if (result) {
                toastr.success("删除成功");
            } else {
                /**/
                toastr.error("删除成功");
                /**/
            }
        }
    </script>
}
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/laydate5.js
New file
@@ -0,0 +1,3 @@
/*! layDate v5.3.1 | æ—¥æœŸä¸Žæ—¶é—´ç»„ä»¶ | MIT Licensed */
 ;!function(e){"use strict";var t=e.document,n={modules:{},status:{},timeout:10,event:{}},a=function(){this.v="2.6.7"},r=e.LAYUI_GLOBAL||{},i=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,n=t.scripts,a=n.length-1,r=a;r>0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[a].src}();return n.dir=r.dir||e.substring(0,e.lastIndexOf("/")+1)}(),o=function(t,n){n=n||"log",e.console&&console[n]&&console[n]("layui error hint: "+t)},l="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),s=n.builtin={lay:"lay",layer:"layer",laydate:"laydate",laypage:"laypage",laytpl:"laytpl",layedit:"layedit",form:"form",upload:"upload",dropdown:"dropdown",transfer:"transfer",tree:"tree",table:"table",element:"element",rate:"rate",colorpicker:"colorpicker",slider:"slider",carousel:"carousel",flow:"flow",util:"util",code:"code",jquery:"jquery",all:"all","layui.all":"layui.all"};a.prototype.cache=n,a.prototype.define=function(e,t){var a=this,r="function"==typeof e,i=function(){var e=function(e,t){u[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(a,r){e(a,r),n.callback[a]=function(){t(e)}}),this};return r&&(t=e,e=[]),a.use(e,i,null,"define"),a},a.prototype.use=function(a,r,c,y){function d(e,t){var a="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||a.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[g]=t,p.removeChild(w),function r(){return++v>1e3*n.timeout/4?o(g+" is not a valid module","error"):void(n.status[g]?m():setTimeout(r,4))}())}function m(){c.push(u[g]),a.length>1?f.use(a.slice(1),r,c,y):"function"==typeof r&&function(){return u.jquery&&"function"==typeof u.jquery&&"define"!==y?u.jquery(function(){r.apply(u,c)}):void r.apply(u,c)}()}var f=this,h=n.dir=n.dir?n.dir:i,p=t.getElementsByTagName("head")[0];a=function(){return"string"==typeof a?[a]:"function"==typeof a?(r=a,["all"]):a}(),e.jQuery&&jQuery.fn.on&&(f.each(a,function(e,t){"jquery"===t&&a.splice(e,1)}),u.jquery=u.$=jQuery);var g=a[0],v=0;if(c=c||[],n.host=n.host||(h.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===a.length||u["layui.all"]&&s[g])return m(),f;var T=(s[g]?h+"modules/":/^\{\/\}/.test(f.modules[g])?"":n.base||"")+(f.modules[g]||g)+".js";if(T=T.replace(/^\{\/\}/,""),!n.modules[g]&&u[g]&&(n.modules[g]=T),n.modules[g])!function D(){return++v>1e3*n.timeout/4?o(g+" is not a valid module","error"):void("string"==typeof n.modules[g]&&n.status[g]?m():setTimeout(D,4))}();else{var w=t.createElement("script");w.async=!0,w.charset="utf-8",w.src=T+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),p.appendChild(w),!w.attachEvent||w.attachEvent.toString&&w.attachEvent.toString().indexOf("[native code")<0||l?w.addEventListener("load",function(e){d(e,T)},!1):w.attachEvent("onreadystatechange",function(e){d(e,T)}),n.modules[g]=T}return f},a.prototype.getStyle=function(t,n){var a=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return a[a.getPropertyValue?"getPropertyValue":"getAttribute"](n)},a.prototype.link=function(e,a,r){var i=this,l=t.getElementsByTagName("head")[0],s=t.createElement("link");"string"==typeof a&&(r=a);var c=(r||e).replace(/\.|\//g,""),u=s.id="layuicss-"+c,y="creating",d=0;return s.rel="stylesheet",s.href=e+(n.debug?"?v="+(new Date).getTime():""),s.media="all",t.getElementById(u)||l.appendChild(s),"function"!=typeof a?i:(function m(r){var l=100,s=t.getElementById(u);return++d>1e3*n.timeout/l?o(e+" timeout"):void(1989===parseInt(i.getStyle(s,"width"))?(r===y&&s.removeAttribute("lay-status"),s.getAttribute("lay-status")===y?setTimeout(m,l):a()):(s.setAttribute("lay-status",y),setTimeout(function(){m(y)},l)))}(),i)},a.prototype.addcss=function(e,t,a){return u.link(n.dir+"css/"+e,t,a)},n.callback={},a.prototype.factory=function(e){if(u[e])return"function"==typeof n.callback[e]?n.callback[e]:null},a.prototype.img=function(e,t,n){var a=new Image;return a.src=e,a.complete?t(a):(a.onload=function(){a.onload=null,"function"==typeof t&&t(a)},void(a.onerror=function(e){a.onerror=null,"function"==typeof n&&n(e)}))},a.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},a.prototype.modules=function(){var e={};for(var t in s)e[t]=s[t];return e}(),a.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?o(n+" Module already exists","error"):t.modules[n]=e[n];return t},a.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),n.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},a.prototype.url=function(e){var t=this,n={pathname:function(){var t=e?function(){var t=(e.match(/\.[^.]+?\/.+/)||[])[0]||"";return t.replace(/^[^\/]+/,"").replace(/\?.+/,"")}():location.pathname;return t.replace(/^\//,"").split("/")}(),search:function(){var n={},a=(e?function(){var t=(e.match(/\?.+/)||[])[0]||"";return t.replace(/\#.+/,"")}():location.search).replace(/^\?+/,"").split("&");return t.each(a,function(e,t){var a=t.indexOf("="),r=function(){return a<0?t.substr(0,t.length):0!==a&&t.substr(0,a)}();r&&(n[r]=a>0?t.substr(a+1):null)}),n}(),hash:t.router(function(){return e?(e.match(/#.+/)||[])[0]||"/":location.hash}())};return n},a.prototype.data=function(t,n,a){if(t=t||"layui",a=a||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete a[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(a[t])}catch(i){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],a[t]=JSON.stringify(r),n.key?r[n.key]:r}},a.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},a.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),a=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:a("micromessenger")};return t&&!r[t]&&(r[t]=a(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r.mobile=!(!r.android&&!r.ios),r},a.prototype.hint=function(){return{error:o}},a.prototype._typeof=function(e){return null===e?String(e):"object"==typeof e||"function"==typeof e?function(){var t=Object.prototype.toString.call(e).match(/\s(.+)\]$/)||[],n="Function|Array|Date|RegExp|Object|Error|Symbol";return t=t[1]||"Object",new RegExp("\\b("+n+")\\b").test(t)?t.toLowerCase():"object"}():typeof e},a.prototype._isArray=function(t){var n,a=this,r=a._typeof(t);return!(!t||"object"!=typeof t||t===e)&&(n="length"in t&&t.length,"array"===r||0===n||"number"==typeof n&&n>0&&n-1 in t)},a.prototype.each=function(e,t){var n,a=this,r=function(e,n){return t.call(n[e],e,n[e])};if("function"!=typeof t)return a;if(e=e||[],a._isArray(e))for(n=0;n<e.length&&!r(n,e);n++);else for(n in e)if(r(n,e))break;return a},a.prototype.sort=function(e,t,n){var a=JSON.parse(JSON.stringify(e||[]));return t?(a.sort(function(e,n){var a=/^-?\d+$/,r=e[t],i=n[t];return a.test(r)&&(r=parseFloat(r)),a.test(i)&&(i=parseFloat(i)),r-i}),n&&a.reverse(),a):a},a.prototype.stope=function(t){t=t||e.event;try{t.stopPropagation()}catch(n){t.cancelBubble=!0}};var c="LAYUI-EVENT-REMOVE";a.prototype.onevent=function(e,t,n){return"string"!=typeof e||"function"!=typeof n?this:a.event(e,t,null,n)},a.prototype.event=a.event=function(e,t,a,r){var i=this,o=null,l=(t||"").match(/\((.*)\)$/)||[],s=(e+"."+t).replace(l[0],""),y=l[1]||"",d=function(e,t){var n=t&&t.call(i,a);n===!1&&null===o&&(o=!1)};return a===c?(delete(i.cache.event[s]||{})[y],i):r?(n.event[s]=n.event[s]||{},n.event[s][y]=[r],this):(u.each(n.event[s],function(e,t){return"{*}"===y?void u.each(t,d):(""===e&&u.each(t,d),void(y&&e===y&&u.each(t,d)))}),o)},a.prototype.on=function(e,t,n){var a=this;return a.onevent.call(a,t,e,n)},a.prototype.off=function(e,t){var n=this;return n.event.call(n,t,e,c)};var u=new a,y="lay",d=window.document,m=function(e){return new f(e)},f=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,d.querySelectorAll(e||null));t<n.length;t++)this.push(n[t])};f.prototype=[],f.prototype.constructor=f,m.extend=function(){var e=1,t=arguments,n=function(e,t){e=e||(t.constructor===Array?[]:{});for(var a in t)e[a]=t[a]&&t[a].constructor===Object?n(e[a],t[a]):t[a];return e};for(t[0]="object"==typeof t[0]?t[0]:{};e<t.length;e++)"object"==typeof t[e]&&n(t[0],t[e]);return t[0]},m.v="1.0.7",m.ie=function(){var e=navigator.userAgent.toLowerCase();return!!(window.ActiveXObject||"ActiveXObject"in window)&&((e.match(/msie\s(\d+)/)||[])[1]||"11")}(),m.layui=u,m.getPath=u.cache.dir,m.stope=u.stope,m.each=function(){return u.each.apply(u,arguments),this},m.digit=function(e,t,n){var a="";e=String(e),t=t||2;for(var r=e.length;r<t;r++)a+="0";return e<Math.pow(10,t)?a+(0|e):e},m.elem=function(e,t){var n=d.createElement(e);return m.each(t||{},function(e,t){n.setAttribute(e,t)}),n},m.hasScrollbar=function(){return d.body.scrollHeight>(window.innerHeight||d.documentElement.clientHeight)},m.position=function(e,t,n){if(t){n=n||{},e!==d&&e!==m("body")[0]||(n.clickType="right");var a="right"===n.clickType?function(){var e=n.e||window.event||{};return{left:e.clientX,top:e.clientY,right:e.clientX,bottom:e.clientY}}():e.getBoundingClientRect(),r=t.offsetWidth,i=t.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",d.body[e]|d.documentElement[e]},l=function(e){return d.documentElement[e?"clientWidth":"clientHeight"]},s=5,c=a.left,u=a.bottom;c+r+s>l("width")&&(c=l("width")-r-s),u+i+s>l()&&(a.top>i+s?u=a.top-i-2*s:"right"===n.clickType&&(u=l()-i-2*s,u<0&&(u=0)));var y=n.position;if(y&&(t.style.position=y),t.style.left=c+("fixed"===y?0:o(1))+"px",t.style.top=u+("fixed"===y?0:o())+"px",!m.hasScrollbar()){var f=t.getBoundingClientRect();!n.SYSTEM_RELOAD&&f.bottom+s>l()&&(n.SYSTEM_RELOAD=!0,setTimeout(function(){m.position(e,t,n)},50))}}},m.options=function(e,t){var n=m(e),a=t||"lay-options";try{return new Function("return "+(n.attr(a)||"{}"))()}catch(r){return hint.error("parseerror\uff1a"+r,"error"),{}}},m.isTopElem=function(e){var t=[d,m("body")[0]],n=!1;return m.each(t,function(t,a){if(a===e)return n=!0}),n},f.addStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),m.each(t,function(t,n){new RegExp("\\b"+n+"\\b").test(e)||(e=e+" "+n)}),e.replace(/^\s|\s$/,"")},f.removeStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),m.each(t,function(t,n){var a=new RegExp("\\b"+n+"\\b");a.test(e)&&(e=e.replace(a,""))}),e.replace(/\s+/," ").replace(/^\s|\s$/,"")},f.prototype.find=function(e){var t=this,n=0,a=[],r="object"==typeof e;return this.each(function(i,o){for(var l=r?o.contains(e):o.querySelectorAll(e||null);n<l.length;n++)a.push(l[n]);t.shift()}),r||(t.selector=(t.selector?t.selector+" ":"")+e),m.each(a,function(e,n){t.push(n)}),t},f.prototype.each=function(e){return m.each.call(this,this,e)},f.prototype.addClass=function(e,t){return this.each(function(n,a){a.className=f[t?"removeStr":"addStr"](a.className,e)})},f.prototype.removeClass=function(e){return this.addClass(e,!0)},f.prototype.hasClass=function(e){var t=!1;return this.each(function(n,a){new RegExp("\\b"+e+"\\b").test(a.className)&&(t=!0)}),t},f.prototype.css=function(e,t){var n=this,a=function(e){return isNaN(e)?e:e+"px"};return"string"==typeof e&&void 0===t?function(){if(n.length>0)return n[0].style[e]}():n.each(function(n,r){"object"==typeof e?m.each(e,function(e,t){r.style[e]=a(t)}):r.style[e]=a(t)})},f.prototype.width=function(e){var t=this;return void 0===e?function(){if(t.length>0)return t[0].offsetWidth}():t.each(function(n,a){t.css("width",e)})},f.prototype.height=function(e){var t=this;return void 0===e?function(){if(t.length>0)return t[0].offsetHeight}():t.each(function(n,a){t.css("height",e)})},f.prototype.attr=function(e,t){var n=this;return void 0===t?function(){if(n.length>0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},f.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},f.prototype.html=function(e){var t=this;return void 0===e?function(){if(t.length>0)return t[0].innerHTML}():this.each(function(t,n){n.innerHTML=e})},f.prototype.val=function(e){var t=this;return void 0===e?function(){if(t.length>0)return t[0].value}():this.each(function(t,n){n.value=e})},f.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},f.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},f.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},f.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},window.lay=m,window.layui&&u.define&&u.define(function(e){e(y,m)})}(window,window.document),!function(e,t){"use strict";var n=e.layui&&layui.define,a={getPath:e.lay&&lay.getPath?lay.getPath:"",link:function(t,n,a){i.path&&e.lay&&lay.layui&&lay.layui.link(i.path+t,n,a)}},r=e.LAYUI_GLOBAL||{},i={v:"5.3.1",config:{},index:e.laydate&&e.laydate.v?1e5:0,path:r.laydate_dir||a.getPath,set:function(e){var t=this;return t.config=lay.extend({},t.config,e),t},ready:function(e){var t="laydate",r="",o=(n?"modules/laydate/":"theme/")+"default/laydate.css?v="+i.v+r;return n?layui.addcss(o,e,t):a.link(o,e,t),this}},o=function(){var e=this,t=e.config,n=t.id;return o.that[n]=e,{hint:function(t){e.hint.call(e,t)},config:e.config}},l="laydate",s=".layui-laydate",c="layui-this",u="laydate-disabled",y=[100,2e5],d="layui-laydate-static",m="layui-laydate-list",f="layui-laydate-hint",h="layui-laydate-footer",p=".laydate-btns-confirm",g="laydate-time-text",v="laydate-btns-time",T="layui-laydate-preview",w=function(e){var t=this;t.index=++i.index,t.config=lay.extend({},t.config,i.config,e),e=t.config,e.id="id"in e?e.id:t.index,i.ready(function(){t.init()})},D="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s";o.formatArr=function(e){return(e||"").match(new RegExp(D+"|.","g"))||[]},w.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},w.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"click",show:!1,showBottom:!0,isPreview:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},w.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],time:["\u65f6","\u5206","\u79d2"],timeTips:"\u9009\u62e9\u65f6\u95f4",startTime:"\u5f00\u59cb\u65f6\u95f4",endTime:"\u7ed3\u675f\u65f6\u95f4",dateTips:"\u8fd4\u56de\u65e5\u671f",month:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],tools:{confirm:"\u786e\u5b9a",clear:"\u6e05\u7a7a",now:"\u73b0\u5728"},timeout:"\u7ed3\u675f\u65f6\u95f4\u4e0d\u80fd\u65e9\u4e8e\u5f00\u59cb\u65f6\u95f4<br>\u8bf7\u91cd\u65b0\u9009\u62e9",invalidDate:"\u4e0d\u5728\u6709\u6548\u65e5\u671f\u6216\u65f6\u95f4\u8303\u56f4\u5185",formatError:["\u65e5\u671f\u683c\u5f0f\u4e0d\u5408\u6cd5<br>\u5fc5\u987b\u9075\u5faa\u4e0b\u8ff0\u683c\u5f0f\uff1a<br>","<br>\u5df2\u4e3a\u4f60\u91cd\u7f6e"],preview:"\u5f53\u524d\u9009\u4e2d\u7684\u7ed3\u679c"},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"},timeout:"End time cannot be less than start Time<br>Please re-select",invalidDate:"Invalid date",formatError:["The date format error<br>Must be followed\uff1a<br>","<br>It has been reset"],preview:"The selected result"}};return n[t.lang]||n.cn},w.prototype.init=function(){var t=this,n=t.config,a="static"===n.position,r={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};n.elem=lay(n.elem),n.eventElem=lay(n.eventElem),n.elem[0]&&(t.rangeStr=n.range?"string"==typeof n.range?n.range:"-":"",n.range&&n.range.constructor===Array&&(t.rangeElem=[lay(n.range[0]),lay(n.range[1])]),r[n.type]||(e.console&&console.error&&console.error("laydate type error:'"+n.type+"' is not supported"),n.type="date"),n.format===r.date&&(n.format=r[n.type]||r.date),t.format=o.formatArr(n.format),t.EXP_IF="",t.EXP_SPLIT="",lay.each(t.format,function(e,n){var a=new RegExp(D).test(n)?"\\d{"+function(){return new RegExp(D).test(t.format[0===e?e+1:e-1]||"")?/^yyyy|y$/.test(n)?4:n.length:/^yyyy$/.test(n)?"1,4":/^y$/.test(n)?"1,308":"1,2"}()+"}":"\\"+n;t.EXP_IF=t.EXP_IF+a,t.EXP_SPLIT=t.EXP_SPLIT+"("+a+")"}),t.EXP_IF_ONE=new RegExp("^"+t.EXP_IF+"$"),t.EXP_IF=new RegExp("^"+(n.range?t.EXP_IF+"\\s\\"+t.rangeStr+"\\s"+t.EXP_IF:t.EXP_IF)+"$"),t.EXP_SPLIT=new RegExp("^"+t.EXP_SPLIT+"$",""),t.isInput(n.elem[0])||"focus"===n.trigger&&(n.trigger="click"),n.elem.attr("lay-key")||(n.elem.attr("lay-key",t.index),n.eventElem.attr("lay-key",t.index)),n.mark=lay.extend({},n.calendar&&"cn"===n.lang?{"0-1-1":"\u5143\u65e6","0-2-14":"\u60c5\u4eba","0-3-8":"\u5987\u5973","0-3-12":"\u690d\u6811","0-4-1":"\u611a\u4eba","0-5-1":"\u52b3\u52a8","0-5-4":"\u9752\u5e74","0-6-1":"\u513f\u7ae5","0-9-10":"\u6559\u5e08","0-9-18":"\u56fd\u803b","0-10-1":"\u56fd\u5e86","0-12-25":"\u5723\u8bde"}:{},n.mark),lay.each(["min","max"],function(e,t){var a=[],r=[];if("number"==typeof n[t]){var i=n[t],o=(new Date).getTime(),l=864e5,s=new Date(i?i<l?o+i*l:i:o);a=[s.getFullYear(),s.getMonth()+1,s.getDate()],i<l||(r=[s.getHours(),s.getMinutes(),s.getSeconds()])}else a=(n[t].match(/\d+-\d+-\d+/)||[""])[0].split("-"),r=(n[t].match(/\d+:\d+:\d+/)||[""])[0].split(":");n[t]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|r[0],minutes:0|r[1],seconds:0|r[2]}}),t.elemID="layui-laydate"+n.elem.attr("lay-key"),(n.show||a)&&t.render(),a||t.events(),n.value&&n.isInitValue&&(n.value.constructor===Date?t.setValue(t.parse(0,t.systemDate(n.value))):t.setValue(n.value)))},w.prototype.render=function(){var e=this,n=e.config,a=e.lang(),r="static"===n.position,o=e.elem=lay.elem("div",{id:e.elemID,"class":["layui-laydate",n.range?" layui-laydate-range":"",r?" "+d:"",n.theme&&"default"!==n.theme&&!/^#/.test(n.theme)?" laydate-theme-"+n.theme:""].join("")}),l=e.elemMain=[],s=e.elemHeader=[],c=e.elemCont=[],u=e.table=[],y=e.footer=lay.elem("div",{"class":h});if(n.zIndex&&(o.style.zIndex=n.zIndex),lay.each(new Array(2),function(e){if(!n.range&&e>0)return!0;var t=lay.elem("div",{"class":"layui-laydate-header"}),r=[function(){var e=lay.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="&#xe65a;",e}(),function(){var e=lay.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="&#xe603;",e}(),function(){var e=lay.elem("div",{"class":"laydate-set-ym"}),t=lay.elem("span"),n=lay.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=lay.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="&#xe602;",e}(),function(){var e=lay.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="&#xe65b;",e}()],i=lay.elem("div",{"class":"layui-laydate-content"}),o=lay.elem("table"),y=lay.elem("thead"),d=lay.elem("tr");lay.each(r,function(e,n){t.appendChild(n)}),y.appendChild(d),lay.each(new Array(6),function(e){var t=o.insertRow(0);lay.each(new Array(7),function(n){if(0===e){var r=lay.elem("th");r.innerHTML=a.weeks[n],d.appendChild(r)}t.insertCell(n)})}),o.insertBefore(y,o.children[0]),i.appendChild(o),l[e]=lay.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),l[e].appendChild(t),l[e].appendChild(i),s.push(r),c.push(i),u.push(o)}),lay(y).html(function(){var e=[],t=[];return"datetime"===n.type&&e.push('<span lay-type="datetime" class="'+v+'">'+a.timeTips+"</span>"),(n.range||"datetime"!==n.type)&&e.push('<span class="'+T+'" title="'+a.preview+'"></span>'),lay.each(n.btns,function(e,i){var o=a.tools[i]||"btn";n.range&&"now"===i||(r&&"clear"===i&&(o="cn"===n.lang?"\u91cd\u7f6e":"Reset"),t.push('<span lay-type="'+i+'" class="laydate-btns-'+i+'">'+o+"</span>"))}),e.push('<div class="laydate-footer-btns">'+t.join("")+"</div>"),e.join("")}()),lay.each(l,function(e,t){o.appendChild(t)}),n.showBottom&&o.appendChild(y),/^#/.test(n.theme)){var m=lay.elem("style"),f=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,n.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=f):m.innerHTML=f,lay(o).addClass("laydate-theme-molv"),o.appendChild(m)}i.thisId=n.id,e.remove(w.thisElemDate),r?n.elem.append(o):(t.body.appendChild(o),e.position()),e.checkDate().calendar(null,0,"init"),e.changeEvent(),w.thisElemDate=e.elemID,"function"==typeof n.ready&&n.ready(lay.extend({},n.dateTime,{month:n.dateTime.month+1})),e.preview()},w.prototype.remove=function(e){var t=this,n=(t.config,lay("#"+(e||t.elemID)));return n[0]?(n.hasClass(d)||t.checkDate(function(){n.remove()}),t):t},w.prototype.position=function(){var e=this,t=e.config;return lay.position(e.bindElem||t.elem[0],e.elem,{position:t.position}),e},w.prototype.hint=function(e){var t=this,n=(t.config,lay.elem("div",{"class":f}));t.elem&&(n.innerHTML=e||"",lay(t.elem).find("."+f).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){lay(t.elem).find("."+f).remove()},3e3))},w.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},w.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},w.prototype.checkDate=function(e){var t,n,a=this,r=(new Date,a.config),o=a.lang(),l=r.dateTime=r.dateTime||a.systemDate(),s=a.bindElem||r.elem[0],c=(a.isInput(s)?"val":"html",function(){if(a.rangeElem){var e=[a.rangeElem[0].val(),a.rangeElem[1].val()];if(e[0]&&e[1])return e.join(" "+a.rangeStr+" ")}return a.isInput(s)?s.value:"static"===r.position?"":lay(s).attr("lay-date")}()),u=function(e){e.year>y[1]&&(e.year=y[1],n=!0),e.month>11&&(e.month=11,n=!0),e.hours>23&&(e.hours=0,n=!0),e.minutes>59&&(e.minutes=0,e.hours++,n=!0),e.seconds>59&&(e.seconds=0,e.minutes++,n=!0),t=i.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,n=!0)},d=function(e,t,i){var o=["startTime","endTime"];t=(t.match(a.EXP_SPLIT)||[]).slice(1),i=i||0,r.range&&(a[o[i]]=a[o[i]]||{}),lay.each(a.format,function(l,s){var c=parseFloat(t[l]);t[l].length<s.length&&(n=!0),/yyyy|y/.test(s)?(c<y[0]&&(c=y[0],n=!0),e.year=c):/MM|M/.test(s)?(c<1&&(c=1,n=!0),e.month=c-1):/dd|d/.test(s)?(c<1&&(c=1,n=!0),e.date=c):/HH|H/.test(s)?(c<1&&(c=0,n=!0),e.hours=c,r.range&&(a[o[i]].hours=c)):/mm|m/.test(s)?(c<1&&(c=0,n=!0),e.minutes=c,r.range&&(a[o[i]].minutes=c)):/ss|s/.test(s)&&(c<1&&(c=0,n=!0),e.seconds=c,r.range&&(a[o[i]].seconds=c))}),u(e)};if("limit"===e)return u(l),a;c=c||r.value,"string"==typeof c&&(c=c.replace(/\s+/g," ").replace(/^\s|\s$/g,""));var m=function(){r.range&&(a.endDate=a.endDate||lay.extend({},r.dateTime,function(){var e={},t=r.dateTime,n=a.getAsYM(t.year,t.month);return"year"===r.type?e.year=t.year+1:"time"!==r.type&&(e.year=n[0],e.month=n[1]),"datetime"!==r.type&&"time"!==r.type||(e.hours=23,e.minutes=e.seconds=59),e}()))};m(),"string"==typeof c&&c?a.EXP_IF.test(c)?r.range?(c=c.split(" "+a.rangeStr+" "),lay.each([r.dateTime,a.endDate],function(e,t){d(t,c[e],e)})):d(l,c):(a.hint(o.formatError[0]+(r.range?r.format+" "+a.rangeStr+" "+r.format:r.format)+o.formatError[1]),n=!0):c&&c.constructor===Date?r.dateTime=a.systemDate(c):(r.dateTime=a.systemDate(),delete a.startTime,delete a.endDate,m(),delete a.endTime),function(){if(a.rangeElem){var e=[a.rangeElem[0].val(),a.rangeElem[1].val()],t=[r.dateTime,a.endDate];lay.each(e,function(e,n){a.EXP_IF_ONE.test(n)&&d(t[e],n,e)})}}(),u(l),r.range&&u(a.endDate),n&&c&&a.setValue(r.range?a.endDate?a.parse():"":a.parse());var f=function(e){return a.newDate(e).getTime()};return(f(l)>f(r.max)||f(l)<f(r.min))&&(l=r.dateTime=lay.extend({},r.min)),r.range&&(f(a.endDate)<f(r.min)||f(a.endDate)>f(r.max))&&(a.endDate=lay.extend({},r.max)),e&&e(),a},w.prototype.mark=function(e,t){var n,a=this,r=a.config;return lay.each(r.mark,function(e,a){var r=e.split("-");r[0]!=t[0]&&0!=r[0]||r[1]!=t[1]&&0!=r[1]||r[2]!=t[2]||(n=a||t[2])}),n&&e.html('<span class="laydate-day-mark">'+n+"</span>"),a},w.prototype.limit=function(e,t,n,a){var r,i=this,o=i.config,l={},s=o[n>41?"endDate":"dateTime"],c=lay.extend({},s,t||{});return lay.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=i.newDate(lay.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return lay.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),r=l.now<l.min||l.now>l.max,e&&e[r?"addClass":"removeClass"](u),r},w.prototype.thisDateTime=function(e){var t=this,n=t.config;return e?t.endDate:n.dateTime},w.prototype.calendar=function(e,t,n){var a,r,o,l=this,s=l.config,t=t?1:0,u=e||l.thisDateTime(t),d=new Date,m=l.lang(),f="date"!==s.type&&"datetime"!==s.type,h=lay(l.table[t]).find("td"),g=lay(l.elemHeader[t][2]).find("span");return u.year<y[0]&&(u.year=y[0],l.hint(m.invalidDate)),u.year>y[1]&&(u.year=y[1],l.hint(m.invalidDate)),l.firstDate||(l.firstDate=lay.extend({},u)),d.setFullYear(u.year,u.month,1),a=d.getDay(),r=i.getEndDate(u.month||12,u.year),o=i.getEndDate(u.month+1,u.year),lay.each(h,function(e,t){var n=[u.year,u.month],i=0;t=lay(t),t.removeAttr("class"),e<a?(i=r-a+e,t.addClass("laydate-day-prev"),n=l.getAsYM(u.year,u.month,"sub")):e>=a&&e<o+a?(i=e-a,i+1===u.date&&t.addClass(c)):(i=e-o-a,t.addClass("laydate-day-next"),n=l.getAsYM(u.year,u.month)),n[1]++,n[2]=i+1,t.attr("lay-ymd",n.join("-")).html(n[2]),l.mark(t,n).limit(t,{year:n[0],month:n[1]-1,date:n[2]},e)}),lay(g[0]).attr("lay-ym",u.year+"-"+(u.month+1)),lay(g[1]).attr("lay-ym",u.year+"-"+(u.month+1)),"cn"===s.lang?(lay(g[0]).attr("lay-type","year").html(u.year+" \u5e74"),lay(g[1]).attr("lay-type","month").html(u.month+1+" \u6708")):(lay(g[0]).attr("lay-type","month").html(m.month[u.month]),lay(g[1]).attr("lay-type","year").html(u.year)),f&&(s.range?e&&(l.listYM=[[s.dateTime.year,s.dateTime.month+1],[l.endDate.year,l.endDate.month+1]],l.list(s.type,0).list(s.type,1),"time"===s.type?l.setBtnStatus("\u65f6\u95f4",lay.extend({},l.systemDate(),l.startTime),lay.extend({},l.systemDate(),l.endTime)):l.setBtnStatus(!0)):(l.listYM=[[u.year,u.month+1]],l.list(s.type,0))),s.range&&"init"===n&&!e&&l.calendar(l.endDate,1),s.range||l.limit(lay(l.footer).find(p),null,0,["hours","minutes","seconds"]),l.setBtnStatus(),l},w.prototype.list=function(e,t){var n=this,a=n.config,r=a.dateTime,i=n.lang(),o=a.range&&"date"!==a.type&&"datetime"!==a.type,l=lay.elem("ul",{"class":m+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[e]}),s=n.elemHeader[t],y=lay(s[2]).find("span"),d=n.elemCont[t||0],f=lay(d).find("."+m)[0],h="cn"===a.lang,T=h?"\u5e74":"",w=n.listYM[t]||{},D=["hours","minutes","seconds"],b=["startTime","endTime"][t];if(w[0]<1&&(w[0]=1),"year"===e){var E,x=E=w[0]-7;x<1&&(x=E=1),lay.each(new Array(15),function(e){var r=lay.elem("li",{"lay-ym":E}),i={year:E};E==w[0]&&lay(r).addClass(c),r.innerHTML=E+T,l.appendChild(r),E<n.firstDate.year?(i.month=a.min.month,i.date=a.min.date):E>=n.firstDate.year&&(i.month=a.max.month,i.date=a.max.date),n.limit(lay(r),i,t),E++}),lay(y[h?0:1]).attr("lay-ym",E-8+"-"+w[1]).html(x+T+" - "+(E-1+T))}else if("month"===e)lay.each(new Array(12),function(e){var r=lay.elem("li",{"lay-ym":e}),o={year:w[0],month:e};e+1==w[1]&&lay(r).addClass(c),r.innerHTML=i.month[e]+(h?"\u6708":""),l.appendChild(r),w[0]<n.firstDate.year?o.date=a.min.date:w[0]>=n.firstDate.year&&(o.date=a.max.date),n.limit(lay(r),o,t)}),lay(y[h?0:1]).attr("lay-ym",w[0]+"-"+w[1]).html(w[0]+T);else if("time"===e){var C=function(){lay(l).find("ol").each(function(e,a){lay(a).find("li").each(function(a,r){n.limit(lay(r),[{hours:a},{hours:n[b].hours,minutes:a},{hours:n[b].hours,minutes:n[b].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(lay(n.footer).find(p),n[b],0,["hours","minutes","seconds"])};a.range?n[b]||(n[b]="startTime"===b?r:n.endDate):n[b]=r,lay.each([24,60,60],function(e,t){var a=lay.elem("li"),r=["<p>"+i.time[e]+"</p><ol>"];lay.each(new Array(t),function(t){r.push("<li"+(n[b][D[e]]===t?' class="'+c+'"':"")+">"+lay.digit(t,2)+"</li>")}),a.innerHTML=r.join("")+"</ol>",l.appendChild(a)}),C()}if(f&&d.removeChild(f),d.appendChild(l),"year"===e||"month"===e)lay(n.elemMain[t]).addClass("laydate-ym-show"),lay(l).find("li").on("click",function(){var i=0|lay(this).attr("lay-ym");if(!lay(this).hasClass(u)){0===t?(r[e]=i,n.limit(lay(n.footer).find(p),null,0)):n.endDate[e]=i;var s="year"===a.type||"month"===a.type;s?(lay(l).find("."+c).removeClass(c),lay(this).addClass(c),"month"===a.type&&"year"===e&&(n.listYM[t][0]=i,o&&((t?n.endDate:r).year=i),n.list("month",t))):(n.checkDate("limit").calendar(null,t),n.closeList()),n.setBtnStatus(),a.range||("month"===a.type&&"month"===e||"year"===a.type&&"year"===e)&&n.setValue(n.parse()).remove().done(),n.done(null,"change"),lay(n.footer).find("."+v).removeClass(u)}});else{var M=lay.elem("span",{"class":g}),S=function(){lay(l).find("ol").each(function(e){var t=this,a=lay(t).find("li");t.scrollTop=30*(n[b][D[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!lay(this).hasClass(u))return t.scrollTop=30*(e-2),!0})})},k=lay(s[2]).find("."+g);S(),M.innerHTML=a.range?[i.startTime,i.endTime][t]:i.timeTips,lay(n.elemMain[t]).addClass("laydate-time-show"),k[0]&&k.remove(),s[2].appendChild(M),lay(l).find("ol").each(function(e){var t=this;lay(t).find("li").on("click",function(){var i=0|this.innerHTML;lay(this).hasClass(u)||(a.range?n[b][D[e]]=i:r[D[e]]=i,lay(t).find("."+c).removeClass(c),lay(this).addClass(c),C(),S(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},w.prototype.listYM=[],w.prototype.closeList=function(){var e=this;e.config;lay.each(e.elemCont,function(t,n){lay(this).find("."+m).remove(),lay(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),lay(e.elem).find("."+g).remove()},w.prototype.setBtnStatus=function(e,t,n){var a,r=this,i=r.config,o=r.lang(),l=lay(r.footer).find(p);i.range&&"time"!==i.type&&(t=t||i.dateTime,n=n||r.endDate,a=r.newDate(t).getTime()>r.newDate(n).getTime(),r.limit(null,t)||r.limit(null,n)?l.addClass(u):l[a?"addClass":"removeClass"](u),e&&a&&r.hint("string"==typeof e?o.timeout.replace(/\u65e5\u671f/g,e):o.timeout))},w.prototype.parse=function(e,t){var n=this,a=n.config,r=t||("end"==e?lay.extend({},n.endDate,n.endTime):a.range?lay.extend({},a.dateTime,n.startTime):a.dateTime),o=i.parse(r,n.format,1);return a.range&&void 0===e?o+" "+n.rangeStr+" "+n.parse("end"):o},w.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},w.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0];return"static"===n.position?t:(e=e||"",t.isInput(a)?lay(a).val(e):t.rangeElem?(t.rangeElem[0].val(e?t.parse("start"):""),t.rangeElem[1].val(e?t.parse("end"):"")):(0===lay(a).find("*").length&&lay(a).html(e),lay(a).attr("lay-date",e)),t)},w.prototype.preview=function(){var e=this,t=e.config;if(t.isPreview){var n=lay(e.elem).find("."+T),a=t.range?e.endDate?e.parse():"":e.parse();n.html(a).css({color:"#5FB878","font-size":"14px;"}),setTimeout(function(){
n.css({color:"#666","font-size":"12px;"})},300)}},w.prototype.done=function(e,t){var n=this,a=n.config,r=lay.extend({},lay.extend(a.dateTime,n.startTime)),i=lay.extend({},lay.extend(n.endDate,n.endTime));return lay.each([r,i],function(e,t){"month"in t&&lay.extend(t,{month:t.month+1})}),n.preview(),e=e||[n.parse(),r,i],"function"==typeof a[t||"done"]&&a[t||"done"].apply(a,e),n},w.prototype.choose=function(e,t){var n=this,a=n.config,r=n.thisDateTime(t),i=(lay(n.elem).find("td"),e.attr("lay-ymd").split("-"));i={year:0|i[0],month:(0|i[1])-1,date:0|i[2]},e.hasClass(u)||(lay.extend(r,i),a.range?(lay.each(["startTime","endTime"],function(e,t){n[t]=n[t]||{hours:0,minutes:0,seconds:0}}),n.calendar(null,t).done(null,"change")):"static"===a.position?n.calendar().done().done(null,"change"):"date"===a.type?n.setValue(n.parse()).remove().done():"datetime"===a.type&&n.calendar().done(null,"change"))},w.prototype.tool=function(e,t){var n=this,a=n.config,r=n.lang(),i=a.dateTime,o="static"===a.position,l={datetime:function(){lay(e).hasClass(u)||(n.list("time",0),a.range&&n.list("time",1),lay(e).attr("lay-type","date").html(n.lang().dateTips))},date:function(){n.closeList(),lay(e).attr("lay-type","datetime").html(n.lang().timeTips)},clear:function(){o&&(lay.extend(i,n.firstDate),n.calendar()),a.range&&(delete a.dateTime,delete n.endDate,delete n.startTime,delete n.endTime),n.setValue("").remove(),n.done(["",{},{}])},now:function(){var e=new Date;lay.extend(i,n.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),n.setValue(n.parse()).remove(),o&&n.calendar(),n.done()},confirm:function(){if(a.range){if(lay(e).hasClass(u))return n.hint("time"===a.type?r.timeout.replace(/\u65e5\u671f/g,"\u65f6\u95f4"):r.timeout)}else if(lay(e).hasClass(u))return n.hint(r.invalidDate);n.done(),n.setValue(n.parse()).remove()}};l[t]&&l[t]()},w.prototype.change=function(e){var t=this,n=t.config,a=t.thisDateTime(e),r=n.range&&("year"===n.type||"month"===n.type),i=t.elemCont[e||0],o=t.listYM[e],l=function(l){var s=lay(i).find(".laydate-year-list")[0],c=lay(i).find(".laydate-month-list")[0];return s&&(o[0]=l?o[0]-15:o[0]+15,t.list("year",e)),c&&(l?o[0]--:o[0]++,t.list("month",e)),(s||c)&&(lay.extend(a,{year:o[0]}),r&&(a.year=o[0]),n.range||t.done(null,"change"),n.range||t.limit(lay(t.footer).find(p),{year:o[0]})),t.setBtnStatus(),s||c};return{prevYear:function(){l("sub")||(a.year--,t.checkDate("limit").calendar(null,e),t.done(null,"change"))},prevMonth:function(){var n=t.getAsYM(a.year,a.month,"sub");lay.extend(a,{year:n[0],month:n[1]}),t.checkDate("limit").calendar(null,e),t.done(null,"change")},nextMonth:function(){var n=t.getAsYM(a.year,a.month);lay.extend(a,{year:n[0],month:n[1]}),t.checkDate("limit").calendar(null,e),t.done(null,"change")},nextYear:function(){l()||(a.year++,t.checkDate("limit").calendar(null,e),t.done(null,"change"))}}},w.prototype.changeEvent=function(){var e=this;e.config;lay(e.elem).on("click",function(e){lay.stope(e)}).on("mousedown",function(e){lay.stope(e)}),lay.each(e.elemHeader,function(t,n){lay(n[0]).on("click",function(n){e.change(t).prevYear()}),lay(n[1]).on("click",function(n){e.change(t).prevMonth()}),lay(n[2]).find("span").on("click",function(n){var a=lay(this),r=a.attr("lay-ym"),i=a.attr("lay-type");r&&(r=r.split("-"),e.listYM[t]=[0|r[0],0|r[1]],e.list(i,t),lay(e.footer).find("."+v).addClass(u))}),lay(n[3]).on("click",function(n){e.change(t).nextMonth()}),lay(n[4]).on("click",function(n){e.change(t).nextYear()})}),lay.each(e.table,function(t,n){var a=lay(n).find("td");a.on("click",function(){e.choose(lay(this),t)})}),lay(e.footer).find("span").on("click",function(){var t=lay(this).attr("lay-type");e.tool(this,t)})},w.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())},w.prototype.events=function(){var e=this,t=e.config,n=function(n,a){n.on(t.trigger,function(){a&&(e.bindElem=this),e.render()})};t.elem[0]&&!t.elem[0].eventHandler&&(n(t.elem,"bind"),n(t.eventElem),t.elem[0].eventHandler=!0)},o.that={},o.getThis=function(e){var t=o.that[e];return t||hint.error(e?l+" instance with ID '"+e+"' not found":"ID argument required"),t},a.run=function(n){n(t).on("mousedown",function(e){if(i.thisId){var t=o.getThis(i.thisId);if(t){var a=t.config;e.target!==a.elem[0]&&e.target!==a.eventElem[0]&&e.target!==n(a.closeStop)[0]&&t.remove()}}}).on("keydown",function(e){if(i.thisId){var t=o.getThis(i.thisId);t&&13===e.keyCode&&n("#"+t.elemID)[0]&&t.elemID===w.thisElemDate&&(e.preventDefault(),n(t.footer).find(p)[0].click())}}),n(e).on("resize",function(){if(i.thisId){var e=o.getThis(i.thisId);if(e)return!(!e.elem||!n(s)[0])&&void e.position()}})},i.render=function(e){var t=new w(e);return o.call(t)},i.parse=function(e,t,n){return e=e||{},"string"==typeof t&&(t=o.formatArr(t)),t=(t||[]).concat(),lay.each(t,function(a,r){/yyyy|y/.test(r)?t[a]=lay.digit(e.year,r.length):/MM|M/.test(r)?t[a]=lay.digit(e.month+(n||0),r.length):/dd|d/.test(r)?t[a]=lay.digit(e.date,r.length):/HH|H/.test(r)?t[a]=lay.digit(e.hours,r.length):/mm|m/.test(r)?t[a]=lay.digit(e.minutes,r.length):/ss|s/.test(r)&&(t[a]=lay.digit(e.seconds,r.length))}),t.join("")},i.getEndDate=function(e,t){var n=new Date;return n.setFullYear(t||n.getFullYear(),e||n.getMonth()+1,1),new Date(n.getTime()-864e5).getDate()},n?(i.ready(),layui.define("lay",function(e){i.path=layui.cache.dir,a.run(lay),e(l,i)})):"function"==typeof define&&define.amd?define(function(){return a.run(lay),i}):function(){i.ready(),a.run(e.lay),e.laydate=i}()}(window,window.document);
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.eot
Binary files differ
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.svg
New file
@@ -0,0 +1,45 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="laydate-icon" horiz-adv-x="1024" >
  <font-face
    font-family="laydate-icon"
    font-weight="500"
    font-stretch="normal"
    units-per-em="1024"
    ascent="896"
    descent="-128"
  />
    <missing-glyph />
    <glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
    <glyph glyph-name="youyou" unicode="&#58882;" d="M283.648 721.918976 340.873216 780.926976 740.352 383.997952 340.876288-12.925952 283.648 46.077952 619.52 383.997952Z"  horiz-adv-x="1024" />
    <glyph glyph-name="zuozuo" unicode="&#58883;" d="M740.352 721.918976 683.126784 780.926976 283.648 383.997952 683.123712-12.925952 740.352 46.077952 404.48 383.997952Z"  horiz-adv-x="1024" />
    <glyph glyph-name="xiayiye" unicode="&#58970;" d="M62.573 384.103l423.401 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.751-18.976-68.727 0l-39.753 39.753 0.269 0.246-385.655 385.661zM451.365 384.103l423.407 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.757-18.977-68.727 0l-39.762 39.754 0.273 0.249-385.662 385.661zM451.365 384.103z"  horiz-adv-x="1024" />
    <glyph glyph-name="xiayiye1" unicode="&#58971;" d="M948.066926 382.958838l-411.990051-412.24426c-18.47333-18.47333-48.417689-18.47333-66.875207 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L814.691135 383.088983 467.512212 730.269123c-18.466032 18.458735-18.466032 48.405526 0 66.873991 18.468465 18.464816 48.410391 18.464816 66.872774 0l38.682336-38.682336-0.261507-0.239614 375.259894-375.265975v0.003649m-378.312834 0L157.756743-29.285422c-18.47333-18.47333-48.415256-18.47333-66.872775 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L436.369787 383.088983 89.19208 730.269123c-18.4636 18.458735-18.4636 48.405526 0 66.873991 18.470898 18.464816 48.415256 18.464816 66.872774 0l38.692067-38.682336-0.266372-0.239614 375.267191-375.265975-0.004865 0.003649m0 0z"  horiz-adv-x="1024" />
  </font>
</defs></svg>
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.ttf
Binary files differ
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/font/iconfont.woff
Binary files differ
zhengcaioa/zhengcaioa/wwwroot/js/plugins/layer/laydate/theme/default/laydate.css
New file
@@ -0,0 +1 @@
.laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}@font-face{font-family:laydate-icon;src:url(font/iconfont.eot);src:url(font/iconfont.eot#iefix) format('embedded-opentype'),url(font/iconfont.svg#iconfont) format('svg'),url(font/iconfont.woff) format('woff'),url(font/iconfont.ttf) format('truetype')}.laydate-icon{font-family:laydate-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;animation-name:laydate-downbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@keyframes laydate-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;padding:0 5px;color:#999;font-size:18px;cursor:pointer}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-set-ym span{padding:0 10px;cursor:pointer}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px}.layui-laydate-footer span{display:inline-block;vertical-align:top;height:26px;line-height:24px;padding:0 10px;border:1px solid #C9C9C9;border-radius:2px;background-color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .3s}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-footer span:hover{color:#5FB878}.layui-laydate-footer span.layui-laydate-preview{cursor:default;border-color:transparent!important}.layui-laydate-footer span.layui-laydate-preview:hover{color:#666}.layui-laydate-footer span:first-child.layui-laydate-preview{padding-left:0}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{margin:0 0 0 -1px}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;height:30px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content,.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#B5FFF8}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eee;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}
zhengcaioa/zhengcaioa/wwwroot/js/plugins/search/search.js
@@ -7,7 +7,8 @@
//参数配置   multiselect æ˜¯å¦å‡ºçŽ°å¤šé€‰  selectcol å¤šé€‰èŽ·å–çš„å€¼ é»˜è®¤id,
//获取方式:GetGridSelect() å€¼ç»“æžœ 1,2,3 æ³¨æ„ä¸ç®¡æ˜¯å¦ä¸­æ–‡ éƒ½æ— å¼•号 ä¾‹å¦‚ :春,夏,秋,东
var gridConfig = { multiselect: false, selectcol: "id" };
var shrinkToFit = true;
var footerrow = true;
//txt date datetime datearea chechbox ,combox å‚考
//searchCol = [
//    { label: '商品编号', name: 'Productcode', labtype: 'txt', ismust: true },
@@ -182,13 +183,13 @@
        datatype: "json",
        colModel: dataCol,
        viewrecords: true, // show the current page, data rang and total records on the toolbar
        width: 780,
        shrinkToFit: shrinkToFit,
        width:1000,
        height: 200,
        loadonce: false,
        pager: "#jqGridPager",
        footerrow: true,
        footerrow: footerrow,
        rownumbers: true,
        rowNum: 30,
        rowList: [30, 50, 100],
        cmTemplate: { sortable: false },
zhengcaioa/zhengcaioa/zhengcaioa.csproj.user
@@ -4,7 +4,7 @@
    <DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
  </PropertyGroup>
  <PropertyGroup>
    <ActiveDebugProfile>IIS Express</ActiveDebugProfile>
    <ActiveDebugProfile>zhengcaioa</ActiveDebugProfile>
    <View_SelectedScaffolderID>RazorViewEmptyScaffolder</View_SelectedScaffolderID>
    <View_SelectedScaffolderCategoryPath>root/Common/MVC/View</View_SelectedScaffolderCategoryPath>
    <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
ÉêË߼Ǽ±í.sql
New file
@@ -0,0 +1,37 @@
use zhengcaioa
if exists (select 1
            from  sysobjects
           where  id = object_id('t_salary_appeal')
            and   type = 'U')
   drop table t_salary_appeal
go
/*==============================================================*/
/* Table: t_salary_appeal                                       */
/*==============================================================*/
create table t_salary_appeal (
   id                   int                  identity,
   salary_id            nvarchar(50)         null,
   reason               nvarchar(1000)       null,
   amount               decimal(10,2)        null,
   basis                nvarchar(500)        null,
   sub_user             nvarchar(50)         null,
   sub_time             datetime             null,
   chk_user             nvarchar(50)         null,
   chk_time             datetime             null,
   chk_result           nvarchar(1000)       null,
   status               nvarchar(1)          null,
   constraint PK_T_SALARY_APPEAL primary key (id)
)
go
INSERT [dbo].[plt_page] ([Id], [system_id], [page_name], [display_seq], [page_path], [page_method], [page_type], [page_superior], [open_type], [rec_status], [creater], [createtime]) VALUES (newid(), N'1', N'工资核对', 7, N'/SalaryCheck/Employee', N'01', N'M', N'6a13cb10-35d9-4176-a231-8887948e059e',  0, N'A', N'e4c93811-b9b1-4998-89f5-c416ebab0c07', getdate())
go
INSERT [dbo].[plt_page] ([Id], [system_id], [page_name], [display_seq], [page_path], [page_method], [page_type], [page_superior],  [open_type], [rec_status], [creater], [createtime]) VALUES (newid(), N'1', N'工资查询', 2, N'/SalaryCheck/SearchIndex', N'01', N'M', N'6a13cb10-35d9-4176-a231-8887948e059e',  0, N'A', N'e4c93811-b9b1-4998-89f5-c416ebab0c07', getdate())
go
INSERT [dbo].[plt_page] ([Id], [system_id], [page_name], [display_seq], [page_path], [page_method], [page_type], [page_superior],  [open_type], [rec_status], [creater], [createtime]) VALUES (newid(), N'1', N'工资核准', 3, N'/SalaryCheck/Index', N'01', N'M', N'6a13cb10-35d9-4176-a231-8887948e059e',  0, N'A', N'e4c93811-b9b1-4998-89f5-c416ebab0c07', getdate())
go