From 6e831c9dd9a46a1dbd727f5f06068c10aef99b46 Mon Sep 17 00:00:00 2001
From: liaoxujun@qq.com <liaoxujun@qq.com>
Date: 星期五, 23 二月 2024 17:35:12 +0800
Subject: [PATCH] no message

---
 cy_scdz/Areas/Order/Views/OrderProduction/Import.cshtml               |   14 
 cy_scdz.Test/OrderProductionControllerTest.cs                         |  545 +++++
 cy_scdz/Areas/Order/Views/OrderProduction/BatchEdit.cshtml            |   14 
 cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingBatchVM.cs      |   35 
 cy_scdz/Areas/Order/Controllers/OrderProductionController.cs          |  219 ++
 cy_scdz/Areas/Setting/Views/PriceSetting/Delete.cshtml                |   50 
 cy_scdz.Test/PriceSettingControllerTest.cs                            |  658 ++++++
 cy_scdz/Areas/BidOrder/Views/OrderInfo/Import.cshtml                  |   14 
 cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingSearcher.cs     |   21 
 cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionListVM.cs   |  103 +
 cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoImportVM.cs          |   27 
 cy_scdz/Areas/Order/Views/OrderProduction/Delete.cshtml               |   36 
 cy_scdz/Areas/Order/Views/OrderProduction/Index.cshtml                |    8 
 cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchDelete.cshtml             |   12 
 cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingImportVM.cs     |  101 +
 cy_scdz/Areas/Setting/Views/PriceSetting/Create.cshtml                |   48 
 cy_scdz.ViewModel/dictionary/DictionaryVMs/DictionaryVM.cs            |    2 
 cy_scdz/appsettings.json                                              |    2 
 cy_scdz/Areas/BidOrder/Views/OrderInfo/Edit.cshtml                    |   36 
 cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoListVM.cs            |  118 +
 cy_scdz/Areas/Setting/Controllers/PriceSettingController.cs           |   57 
 cy_scdz/Areas/BidOrder/Controllers/OrderInfoController.cs             |  234 ++
 cy_scdz/Areas/BidOrder/Views/OrderInfo/Create.cshtml                  |  147 +
 cy_scdz/Areas/Setting/Views/PriceSetting/Index.cshtml                 |  281 ++
 cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoSearcher.cs          |   34 
 cy_scdz/Areas/Setting/Views/PriceSetting/Details.cshtml               |   47 
 cy_scdz/Areas/Order/Views/OrderProduction/Create.cshtml               |   34 
 cy_scdz/Areas/Setting/Views/PriceSetting/Import.cshtml                |   14 
 cy_scdz/Areas/BidOrder/Views/OrderInfo/Index.cshtml                   |   18 
 cy_scdz/Areas/BidOrder/Views/OrderInfo/CompleteProduction.cshtml      |  124 +
 cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoBatchVM.cs           |   35 
 cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionSearcher.cs |   21 
 cy_scdz/Areas/Setting/Views/Setting/index.cshtml                      |   38 
 cy_scdz.Model/Set/PriceSetting.cs                                     |  263 ++
 cy_scdz/Areas/BidOrder/Views/OrderInfo/Details.cshtml                 |   34 
 cy_scdz/Areas/Order/Views/OrderProduction/Details.cshtml              |   33 
 cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchEdit.cshtml               |   14 
 cy_scdz/Areas/Order/Views/OrderProduction/Edit.cshtml                 |   36 
 cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionImportVM.cs |   75 
 cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionBatchVM.cs  |   35 
 utils/StringExtensions.cs                                             |   32 
 cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoVM.cs                |  199 ++
 cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingListVM.cs       |  129 +
 cy_scdz/Areas/Setting/Views/PriceSetting/BatchEdit.cshtml             |   14 
 cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionVM.cs       |  236 ++
 cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingVM.cs           |   47 
 cy_scdz/Areas/BidOrder/Views/OrderInfo/Delete.cshtml                  |   37 
 cy_scdz/Areas/Setting/Controllers/SettingController.cs                |    9 
 cy_scdz.DataAccess/DataContext.cs                                     |    8 
 cy_scdz/Areas/Setting/Views/PriceSetting/Edit.cshtml                  |   49 
 cy_scdz/Areas/Setting/Views/PriceSetting/BatchDelete.cshtml           |   12 
 cy_scdz/Areas/Order/Views/OrderProduction/BatchDelete.cshtml          |   12 
 cy_scdz.Model/Order/OrderInfo.cs                                      |  702 +++++++
 cy_scdz.Test/OrderInfoControllerTest.cs                               |  537 +++++
 54 files changed, 5,649 insertions(+), 11 deletions(-)

diff --git a/cy_scdz.DataAccess/DataContext.cs b/cy_scdz.DataAccess/DataContext.cs
index 6c9c28a..a4b19f5 100644
--- a/cy_scdz.DataAccess/DataContext.cs
+++ b/cy_scdz.DataAccess/DataContext.cs
@@ -11,6 +11,7 @@
 using WalkingTec.Mvvm.Core.Models;
 using Microsoft.EntityFrameworkCore.Metadata.Builders;
 using cy_scdz.Model.Set;
+using cy_scdz.Model.Oder;
 
 namespace cy_scdz.DataAccess
 {
@@ -20,6 +21,13 @@
         public DbSet<FrameworkUserRole> FrameworkUserRoles { get; set; }
         public DbSet<FrameworkUserGroup> FrameworkUserGroups { get; set; }
         public DbSet<Dictionary> Dictionary { get; set; }
+ 
+        public DbSet<OderSure> OderSure { get; set; }
+        public DbSet<OrderInfo> BidOder { get; set; }
+        public DbSet<PriceSetting> PriceSettings { get; set; }
+        public DbSet<OrderReceivables> OrderReceivables { get; set; }
+        public DbSet<AdvancePayment> AdvancePayment { get; set; }
+        public DbSet<OrderProduction> orderProductions { get; set; }
         public DataContext(CS cs)
              : base(cs)
         {
diff --git a/cy_scdz.Model/Order/OrderInfo.cs b/cy_scdz.Model/Order/OrderInfo.cs
new file mode 100644
index 0000000..8e5d580
--- /dev/null
+++ b/cy_scdz.Model/Order/OrderInfo.cs
@@ -0,0 +1,702 @@
+锘縰sing cy_scdz.Model.Set;
+using Microsoft.EntityFrameworkCore;
+using NPOI.HPSF;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+
+namespace cy_scdz.Model.Oder
+{
+    /// <summary>
+    /// 璁㈠崟璇︽儏
+    /// </summary>
+    public class OrderInfo:BasePoco
+    {
+        #region 椤圭洰涓�鑸儏鍐�
+        /// <summary>
+        /// 椤圭洰鍚嶇О
+        /// </summary>
+        [Display(Name = "椤圭洰鍚嶇О")]
+        [Required]
+        [Comment("椤圭洰鍚嶇О")]
+        public string Title { get; set; }
+        /// <summary>
+        /// 涓爣鏃堕棿
+        /// </summary>
+        [Display(Name = "涓爣鏃堕棿")]
+        [Required]
+        [Comment("涓爣鏃堕棿")]
+        public DateTime WinBidTime { get; set; }
+
+        /// <summary>
+        /// 鍒濆渚涜揣鏃堕棿
+        /// </summary>
+        [Display(Name = "鍒濆渚涜揣")]
+    
+        [Comment("鍒濆渚涜揣")]
+        public DateTime InitialDeliveryTime { get; set; }
+        /// <summary>
+        /// 鏄ョ瀛�
+        /// </summary>
+        [Display(Name = "鍒濆渚涜揣瀛h妭")]
+        [Comment("鍒濆渚涜揣瀛h妭")]
+        public chunqiue Chunqiuji { get; set; }
+        /// <summary>
+        /// 鍒濆渚涜揣鏃堕棿
+        /// 鍏宠仈瀛楀吀渚涜揣瀛︽湡閫夋嫨 鐖剁骇涓簁ey===ghxqi 榛樿涓�2瀛︽湡
+        /// </summary>
+        [Display(Name = "渚涜揣瀛︽湡")]
+
+        [Comment("渚涜揣瀛︽湡")]
+        public Dictionary Semester { get; set; }
+        /// <summary>
+        /// 渚涜揣瀛︽湡
+        /// 渚涜揣瀛︽湡 鐖剁骇涓簁ey===ghxqi 榛樿涓�2
+        /// </summary>
+        [Display(Name = "渚涜揣瀛︽湡")]
+        [Required]
+        [Comment("渚涜揣瀛︽湡")]
+        public Guid SemesterId { get; set; }
+
+        /// <summary>
+        /// 涓爣浠锋牸       
+        /// </summary>
+        [Display(Name = "涓爣浠锋牸")]
+        [Required]
+        [Comment("涓爣浠锋牸")]
+        public decimal BidMoney { get; set; } = 0;
+
+
+        /// <summary>
+        /// 渚涘簲鍟�       瀵瑰簲鐖剁骇key涓簔bgys
+        /// </summary>
+        [Display(Name = "涓爣渚涘簲鍟�")]
+        public Dictionary? Supplier { get; set; }
+        /// <summary>
+        /// 渚涘簲鍟�       
+        /// </summary>
+        [Display(Name = "涓爣渚涘簲鍟�")]
+        [Comment("涓爣渚涘簲鍟�")]
+        public Guid? SupplierId { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟绫诲埆       瀵瑰簲鐖剁骇key涓篸dnb
+        /// </summary>
+        [Display(Name = "璁㈠崟绫诲埆")]
+        public Dictionary? BidType { get; set; }
+        /// <summary>
+        /// 璁㈠崟绫诲埆       
+        /// </summary>
+        [Display(Name = "璁㈠崟绫诲埆")]
+        [Comment("璁㈠崟绫诲埆")]
+        public Guid? BidTypeId { get; set; }
+
+        /// <summary>
+        /// 鎷涙爣浠g悊璐�       
+        /// </summary>
+        [Display(Name = "鎷涙爣浠g悊璐�")]
+        [Comment("鎷涙爣浠g悊璐�")]
+        public decimal TenderAgentFee { get; set; } = 0;
+        #endregion
+        #region 鏀舵鎯呭喌
+        /// <summary>
+        /// 鏀舵鎯呭喌
+        /// </summary>
+        [Display(Name = "鏀舵鎯呭喌")]   
+        public List<OrderReceivables> OrderReceivablesStatus { get; set; }
+        #endregion
+        #region 鍗板埛瑕佹眰
+        #region 浣滀笟鏈�
+
+        /// <summary>
+        /// 浣滀笟鏈皝闈㈢焊寮�       瀵瑰簲鐖剁骇key涓篺mzz
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        public Dictionary? WorkbookCoverPaperType { get; set; }
+        /// <summary>
+        /// 浣滀笟鏈皝闈㈢焊寮�       
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        [Comment("灏侀潰绾稿紶")]
+        public Guid? WorkbookCoverPaperTypeId { get; set; }
+        /// <summary>
+        /// 浣滀笟鏈唴椤电焊寮�       瀵瑰簲鐖剁骇key涓簄yzz
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public Dictionary? WorkbookInnerPaperType { get; set; }
+        /// <summary>
+        /// 浣滀笟鏈唴椤电焊寮�       
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        [Comment("鍐呴〉绾稿紶")]
+        public Guid? WorkbookInnerPaperTypeId { get; set; }
+
+
+        /// <summary>
+        /// 浣滀笟鏈唴椤甸鑹�       瀵瑰簲鐖剁骇key涓簄yys
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public Dictionary? WorkbookColorType { get; set; }
+        /// <summary>
+        /// 浣滀笟鏈唴椤甸鑹�       
+        /// </summary>
+        [Display(Name = "鍐呴〉棰滆壊")]
+        [Comment("鍐呴〉棰滆壊")]
+        public Guid? WorkbookColorTypeId { get; set; }
+
+
+
+        /// <summary>
+        /// 浣滀笟鏈璁㈡柟寮�       瀵瑰簲鐖剁骇key涓簔dfs
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        public Dictionary? WorkbookBindingType { get; set; }
+        /// <summary>
+        /// 浣滀笟鏈璁㈡柟寮�       
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        [Comment("瑁呰鏂瑰紡")]
+        public Guid? WorkbookBindingTypeId { get; set; }
+     
+
+        /// <summary>
+        /// 鍐呴〉椤电爜       瀵瑰簲鐖剁骇key涓簄yym
+        /// </summary>
+        [Display(Name = "鍐呴〉椤电爜")]
+        public Dictionary? WorkbookInnerPageCode { get; set; }
+        /// <summary>
+        /// 鍐呴〉椤电爜       
+        /// </summary>
+        [Display(Name = "椤垫暟")]
+        [Comment("鍐呴〉椤电爜")]
+        public Guid? WorkbookInnerPageCodeId { get; set; }
+        #endregion
+
+        #region 鍥剧敾鏈�
+
+        /// <summary>
+        /// 鍥剧敾鏈皝闈㈢焊寮�       瀵瑰簲鐖剁骇key涓篺mzz
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        public Dictionary? PictureBookCoverPaperType { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈皝闈㈢焊寮�       
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        [Comment("灏侀潰绾稿紶")]
+        public Guid? PictureBookCoverPaperTypeId { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈唴椤电焊寮�       瀵瑰簲鐖剁骇key涓簄yzz
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public Dictionary? PictureBookInnerPaperType { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈唴椤电焊寮�       
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        [Comment("鍐呴〉绾稿紶")]
+        public Guid? PictureBookInnerPaperTypeId { get; set; }
+
+
+        /// <summary>
+        /// 鍥剧敾鏈唴椤甸鑹�       瀵瑰簲鐖剁骇key涓簄yys
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public Dictionary? PictureBookColorType { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈唴椤甸鑹�       
+        /// </summary>
+        [Display(Name = "鍐呴〉棰滆壊")]
+        [Comment("鍐呴〉棰滆壊")]
+        public Guid? PictureBookColorTypeId { get; set; }
+
+
+
+        /// <summary>
+        /// 鍥剧敾鏈璁㈡柟寮�       瀵瑰簲鐖剁骇key涓簔dfs
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        public Dictionary? PictureBookBindingType { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈璁㈡柟寮�       
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        [Comment("瑁呰鏂瑰紡")]
+        public Guid? PictureBookBindingTypeId { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈〉鐮�       瀵瑰簲鐖剁骇key涓簄yym
+        /// </summary>
+        [Display(Name = "鍥剧敾鏈〉鐮�")]
+        public Dictionary? PictureBookInnerPageCode { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈唴椤甸〉鐮�       
+        /// </summary>
+        [Display(Name = "椤垫暟")]
+        [Comment("鍥剧敾鏈唴椤甸〉鐮�")]
+        public Guid? PictureBookInnerPageCodeId { get; set; }
+        #endregion
+
+
+        #region 澶у瓧鏈�
+
+        /// <summary>
+        /// 澶у瓧鏈皝闈㈢焊寮�       瀵瑰簲鐖剁骇key涓篺mzz
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        public Dictionary? LargeCharacterBookCoverPaperType { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈皝闈㈢焊寮�       
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        [Comment("灏侀潰绾稿紶")]
+        public Guid? LargeCharacterBookCoverPaperTypeId { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈唴椤电焊寮�       瀵瑰簲鐖剁骇key涓簄yzz
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public Dictionary? LargeCharacterBookInnerPaperType { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈唴椤电焊寮�       
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        [Comment("鍐呴〉绾稿紶")]
+        public Guid? LargeCharacterBookInnerPaperTypeId { get; set; }
+
+
+        /// <summary>
+        /// 澶у瓧鏈唴椤甸鑹�       瀵瑰簲鐖剁骇key涓簄yys
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public Dictionary? LargeCharacterBookColorType { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈唴椤甸鑹�       
+        /// </summary>
+        [Display(Name = "鍐呴〉棰滆壊")]
+        [Comment("鍐呴〉棰滆壊")]
+        public Guid? LargeCharacterBookColorTypeId { get; set; }
+
+
+
+        /// <summary>
+        /// 澶у瓧鏈璁㈡柟寮�       瀵瑰簲鐖剁骇key涓簔dfs
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        public Dictionary? LargeCharacterBookBindingType { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈璁㈡柟寮�       
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        [Comment("瑁呰鏂瑰紡")]
+        public Guid? LargeCharacterBookBindingTypeId { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈唴椤甸〉鐮�       瀵瑰簲鐖剁骇key涓簄yym
+        /// </summary>
+        [Display(Name = "澶у瓧鏈唴椤甸〉鐮�")]
+        public Dictionary? LargeCharacterBookInnerPageCode { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈唴椤甸〉鐮�       
+        /// </summary>
+        [Display(Name = "椤垫暟")]
+        [Comment("澶у瓧鏈唴椤甸〉鐮�")]
+        public Guid? LargeCharacterBookInnerPageCodeId { get; set; }
+        #endregion
+        #endregion
+
+        #region 璁㈠崟鏁伴噺
+        /// <summary>
+        /// 璁㈠崟鏁伴噺
+        /// </summary>
+        [Display(Name ="璁㈠崟鏁伴噺")]
+       public List<OrderProduction> Productions { get; set; }
+        #endregion
+
+        #region 纭鏃堕棿
+        /// <summary>
+        /// 纭鍒楄〃
+        /// </summary>
+        [Display(Name ="纭")]
+       public List<OderSure> Sures { get; set; }
+        #endregion
+        #region 鍨祫鎯呭喌
+        /// <summary>
+        /// 鍨祫琛�
+        /// </summary>
+        [Display(Name = "鍨祫")]
+        public List<AdvancePayment> AdvancePayments { get; set; }
+        #endregion
+    }
+    /// <summary>
+    /// 椤圭洰鏀舵鎯呭喌
+    /// </summary>
+    public class OrderReceivables: BasePoco
+    {
+   
+        /// <summary>
+        /// 椤圭洰ID
+        /// </summary>
+        [Display(Name = "椤圭洰ID")]
+        [Required]
+        [Comment("椤圭洰ID")]
+        public Guid OderId { get; set; }
+        /// <summary>
+        /// 椤圭洰
+        /// </summary>
+        [Display(Name = "椤圭洰")]
+        [Required]
+        [Comment("椤圭洰")]
+        public OrderInfo  Oder { get; set; }
+        /// <summary>
+        /// 鍥炴鏃堕棿
+        /// </summary>
+        [Display(Name = "鍥炴鏃堕棿")]
+        [Required]
+        [Comment("鍥炴鏃堕棿")]
+        public DateTime Time { get; set; }
+
+        /// <summary>
+        /// 鍥炴閲戦
+        /// </summary>
+        [Display(Name = "鍥炴閲戦")]
+        [Required]
+        [Comment("鍥炴閲戦")]
+        public decimal ReceivablesMoney { get; set; }
+
+
+        /// <summary>
+        /// 鍥炴鍚嶇О 渚嬪 2024 骞寸涓�瀛︽湡
+        /// </summary>
+        [Display(Name = "鍥炴鍚嶇О")]
+        [Required]
+        [Comment("鍥炴鍚嶇О")]
+        public string ReceivablesName { get; set; }
+
+    }
+
+    /// <summary>
+    /// 璁㈠崟纭琛�
+    /// </summary>
+    public class OderSure: BasePoco
+    {
+
+      
+        /// <summary>
+        /// 椤圭洰ID
+        /// </summary>
+        [Display(Name = "椤圭洰ID")]
+        [Required]
+        [Comment("椤圭洰ID")]
+        public Guid OderId { get; set; }
+        /// <summary>
+        /// 椤圭洰
+        /// </summary>
+        [Display(Name = "椤圭洰")]      
+        [Comment("椤圭洰")]
+        public OrderInfo Oder { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛ID
+        /// </summary>
+        [Display(Name = "鐢ㄦ埛ID")]
+        [Required]
+        [Comment("鐢ㄦ埛ID")]
+        public Guid UserID { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛
+        /// </summary>
+        [Display(Name = "鐢ㄦ埛")]  
+        public FrameworkUser User { get; set; }
+        /// <summary>
+        /// 纭鏃堕棿
+        /// </summary>
+        [Display(Name = "纭鏃堕棿")]       
+        [Comment("纭鏃堕棿")]
+        public DateTime SureTime { get; set; }
+
+        /// <summary>
+        /// 鏍囨敞
+        /// </summary>
+        [Display(Name = "鏍囨敞")]     
+        [Comment("鏍囨敞")]
+        public string Mark { get; set; }
+    }
+
+    /// <summary>
+    /// 鍨祫璐圭敤琛�
+    /// </summary>
+    public class AdvancePayment:BasePoco
+    {
+        /// <summary>
+        /// 椤圭洰ID
+        /// </summary>
+        [Display(Name = "椤圭洰ID")]
+        [Required]
+        [Comment("椤圭洰ID")]
+        public Guid OderId { get; set; }
+        /// <summary>
+        /// 椤圭洰
+        /// </summary>
+        [Display(Name = "椤圭洰")]      
+        public OrderInfo Oder { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛ID
+        /// </summary>
+        [Display(Name = "鐢ㄦ埛ID")]
+        [Required]
+        [Comment("鐢ㄦ埛ID")]
+        public Guid UserID { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛
+        /// </summary>
+        [Display(Name = "鐢ㄦ埛")]
+        public FrameworkUser User { get; set; }
+        /// <summary>
+        /// 鏍囨敞
+        /// </summary>
+        [Display(Name = "鏍囨敞")]
+        [Comment("鏍囨敞")]
+        public string Mark { get; set; }
+        /// <summary>
+        /// 閲戦
+        /// </summary>
+        [Display(Name = "閲戦")]
+        [Comment("閲戦")]
+        public decimal Money { get; set; }
+    }
+
+    /// <summary>
+    /// 鐢熶骇鍗�
+    /// </summary>
+    public class OrderProduction: BasePoco
+    {
+
+        /// <summary>
+        /// 椤圭洰ID
+        /// </summary>
+        [Display(Name = "椤圭洰ID")]
+        [Required]
+        [Comment("椤圭洰ID")]
+        public Guid OderId { get; set; }
+        /// <summary>
+        /// 椤圭洰
+        /// </summary>
+        [Display(Name = "椤圭洰")]
+        public OrderInfo Oder { get; set; }
+
+        /// <summary>
+        /// 16K浣滀笟鏈暟閲�       
+        /// </summary>
+        [Display(Name = "16K浣滀笟鏈�")]
+        [Comment("16K浣滀笟鏈暟閲�")]
+        public int Workbook16KCount { get; set; } = 0;
+        /// <summary>
+        /// 16K浣滀笟鏈崟浠�       
+        /// </summary>
+        [Display(Name = "涓爣鍗曚环")]
+        [Comment("16K浣滀笟鏈崟浠�")]
+        public decimal Workbook16KPrice { get; set; } = 0;
+        ///// <summary>
+        ///// 鐢熶骇鍘傚晢
+        ///// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 
+        ///// </summary>
+        //[Display(Name = "鐢熶骇鍘傚晢")]
+        //public Dictionary? Workbook16KManufacturer { get; set; }
+        /// <summary>
+        /// 鐢熶骇鍘傚晢ID缁勫悎锛岀敤,鍒嗗壊
+        /// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===ghxqi 榛樿涓�2
+        /// </summary>
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        [Comment("鐢熶骇鍘傚晢ID锛岀敤,鍒嗗壊")]
+        public string Workbook16KManufacturerId { get; set; }
+        /// <summary>
+        /// 32K浣滀笟鏈暟閲�       
+        /// </summary>
+        [Display(Name = "32K浣滀笟鏈�")]
+        [Comment("32K浣滀笟鏈暟閲�")]
+        public int Workbook32KCount { get; set; } = 0;
+
+
+        /// <summary>
+        /// 16K浣滀笟鏈崟浠�       
+        /// </summary>
+        [Display(Name = "涓爣鍗曚环")]
+        [Comment("16K浣滀笟鏈崟浠�")]
+        public decimal Workbook32KPrice { get; set; } = 0;
+        ///// <summary>
+        ///// 鐢熶骇鍘傚晢
+        ///// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===sccs 榛樿涓�2瀛︽湡
+        ///// </summary>
+        //[Display(Name = "鐢熶骇鍘傚晢")]
+
+        //public Dictionary? Workbook32KManufacturer { get; set; }
+        /// <summary>
+        /// 鐢熶骇鍘傚晢ID缁勫悎锛岀敤,鍒嗗壊
+        /// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===ghxqi 榛樿涓�2
+        /// </summary>
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        [Comment("鐢熶骇鍘傚晢ID锛岀敤,鍒嗗壊")]
+        public string Workbook32KManufacturerId { get; set; }
+        /// <summary>
+        /// 16K鍥剧敾鏈暟閲�       
+        /// </summary>
+        [Display(Name = "16K鍥剧敾鏈�")]
+        [Comment("16K鍥剧敾鏈暟閲�")]
+        public int PictureBook16KCount { get; set; } = 0;
+
+
+        /// <summary>
+        /// 16K浣滀笟鏈崟浠�       
+        /// </summary>
+        [Display(Name = "涓爣鍗曚环")]
+        [Comment("16K浣滀笟鏈崟浠�")]
+        public decimal PictureBook16KPrice { get; set; } = 0;
+        ///// <summary>
+        ///// 鐢熶骇鍘傚晢
+        ///// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===sccs 榛樿涓�2瀛︽湡
+        ///// </summary>
+        //[Display(Name = "鐢熶骇鍘傚晢")]
+
+        //public Dictionary? PictureBook16KManufacturer { get; set; }
+        /// <summary>
+        /// 鐢熶骇鍘傚晢ID缁勫悎锛岀敤,鍒嗗壊
+        /// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===ghxqi 榛樿涓�2
+        /// </summary>
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        [Comment("鐢熶骇鍘傚晢ID锛岀敤,鍒嗗壊")]
+        public string PictureBook16KManufacturerId { get; set; }
+        /// <summary>
+        /// 32K鍥剧敾鏈暟閲�       
+        /// </summary>
+        [Display(Name = "32K鍥剧敾鏈�")]
+        [Comment("32K鍥剧敾鏈暟閲�")]
+        public int PictureBook32KCount { get; set; } = 0;
+
+
+        /// <summary>
+        /// 32K鍥剧敾鏈崟浠�       
+        /// </summary>
+        [Display(Name = "涓爣鍗曚环")]
+        [Comment("32K鍥剧敾鏈崟浠�")]
+        public decimal PictureBook32KPrice { get; set; } = 0;
+        ///// <summary>
+        ///// 鐢熶骇鍘傚晢
+        ///// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===sccs 榛樿涓�2瀛︽湡
+        ///// </summary>
+        //[Display(Name = "鐢熶骇鍘傚晢")]
+
+        //public Dictionary? PictureBook32KManufacturer { get; set; }
+        /// <summary>
+        /// 鐢熶骇鍘傚晢ID缁勫悎锛岀敤,鍒嗗壊
+        /// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===ghxqi 榛樿涓�2
+        /// </summary>
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        [Comment("鐢熶骇鍘傚晢ID锛岀敤,鍒嗗壊")]
+        public string PictureBook32KManufacturerId { get; set; }
+
+
+
+        /// <summary>
+        /// A4鍥剧敾鏈暟閲�       
+        /// </summary>
+        [Display(Name = "A4鍥剧敾鏈�")]
+        [Comment("A4鍥剧敾鏈暟閲�")]
+        public int PictureBookA4Count { get; set; } = 0;
+
+
+        /// <summary>
+        /// 16K浣滀笟鏈崟浠�       
+        /// </summary>
+        [Display(Name = "涓爣鍗曚环")]
+        [Comment("16K浣滀笟鏈崟浠�")]
+        public decimal PictureBookA4KPrice { get; set; } = 0;
+        ///// <summary>
+        ///// 鐢熶骇鍘傚晢
+        ///// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===sccs 榛樿涓�2瀛︽湡
+        ///// </summary>
+        //[Display(Name = "鐢熶骇鍘傚晢")]
+
+        //public Dictionary? PictureBookA4KManufacturer { get; set; }
+        /// <summary>
+        /// 鐢熶骇鍘傚晢ID缁勫悎锛岀敤,鍒嗗壊
+        /// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===yscs 榛樿涓�2
+        /// </summary>
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        [Comment("鐢熶骇鍘傚晢ID锛岀敤,鍒嗗壊")]
+        public string PictureBookA4KManufacturerId { get; set; }
+
+
+        /// <summary>
+        /// 澶у瓧鏈暟閲�       
+        /// </summary>
+        [Display(Name = "澶у瓧鏈�")]
+        [Comment("澶у瓧鏈暟閲�")]
+        public int LargeCharacterBookCount { get; set; } = 0;
+
+
+        /// <summary>
+        /// 澶у瓧鏈崟浠�       
+        /// </summary>
+        [Display(Name = "涓爣鍗曚环")]
+        [Comment("澶у瓧鏈崟浠�")]
+        public decimal LargeCharacterPrice { get; set; } = 0;
+        ///// <summary>
+        ///// 鐢熶骇鍘傚晢
+        ///// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===sccs 榛樿涓�2瀛︽湡
+        ///// </summary>
+        //[Display(Name = "鐢熶骇鍘傚晢")]
+
+        //public Dictionary? LargeCharacterManufacturer { get; set; }
+        /// <summary>
+        /// 鐢熶骇鍘傚晢ID缁勫悎锛岀敤,鍒嗗壊
+        /// 鍏宠仈瀛楀吀鐢熶骇鍘傚晢閫夋嫨 鐖剁骇涓簁ey===yscs 榛樿涓�2
+        /// </summary>
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        [Comment("鐢熶骇鍘傚晢ID锛岀敤,鍒嗗壊")]
+        public string LargeCharacterManufacturerIds { get; set; }
+
+        /// <summary>
+        /// 鏍囨敞
+        /// </summary>
+        [Display(Name = "鏍囨敞")]
+        [Comment("鏍囨敞")]
+        public string Mark { get; set; }
+        /// <summary>
+        /// 鍒濆渚涜揣鏃堕棿
+        /// </summary>
+        [Display(Name = "渚涜揣骞翠唤")]
+        [Comment("渚涜揣骞翠唤")]
+        public DateTime DeliveryTime { get; set; }
+
+        /// <summary>
+        /// 鏄ョ瀛�
+        /// </summary>
+        [Display(Name = "渚涜揣瀛︽湡")]
+        [Comment("渚涜揣瀛︽湡")]
+        public chunqiue Chunqiuji { get; set; }
+        /// <summary>
+        /// 鏄惁瀹岀粨
+        /// </summary>
+        [Display(Name = "鏄惁瀹岀粨")]
+        [Comment("鏄惁瀹岀粨")]
+        public bool IsOver { get; set; }=false;
+
+    }
+
+
+
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public enum chunqiue
+        {
+        [Display(Name ="鏄ュ")]
+         chun=1,
+        [Display(Name = "绉嬪")]
+        qiu =6
+    }
+}
diff --git a/cy_scdz.Model/Set/PriceSetting.cs b/cy_scdz.Model/Set/PriceSetting.cs
new file mode 100644
index 0000000..f6c540a
--- /dev/null
+++ b/cy_scdz.Model/Set/PriceSetting.cs
@@ -0,0 +1,263 @@
+锘縰sing Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+
+namespace cy_scdz.Model.Set
+{
+    /// <summary>
+    /// 浠锋牸璁剧疆
+    /// </summary>
+    public class PriceSetting : BasePoco
+    {
+
+
+        /// <summary>
+        /// 灏侀潰鍙岃兌绾�
+        /// </summary>
+        [Display(Name = "灏侀潰鍙岃兌绾�")]
+        [Comment("灏侀潰鍙岃兌绾�")]
+        public decimal Fmsjz { get; set; } = 0;
+        /// <summary>
+        /// 灏侀潰鐗涚毊绾�
+        /// </summary>
+        [Display(Name = "灏侀潰鐗涚毊绾�")]
+        [Comment("灏侀潰鐗涚毊绾�")]
+        public decimal Fmnpz { get; set; } = 0;
+        /// <summary>
+        /// 鍐呴〉鏈壊绾�
+        /// </summary>
+        [Display(Name = "鍐呴〉鏈壊绾�")]
+        [Comment("鍐呴〉鏈壊绾�")]
+        public decimal Nybsz { get; set; } = 0;
+        /// <summary>
+        /// 鍐呴〉楂樼櫧绾�
+        /// </summary>
+        [Display(Name = "鍐呴〉楂樼櫧绾�")]
+        [Comment("鍐呴〉楂樼櫧绾�")]
+        public decimal Nygbz { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛崟鑹�32椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�32椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛崟鑹�32椤�16寮�")]
+        public decimal Qmd_Nyds_32_16k { get; set; } = 0;
+
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛崟鑹�32椤�32寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�32椤�32寮�")]
+        [Comment("楠戦┈閽夊唴椤靛崟鑹�32椤�32寮�")]
+        public decimal Qmd_Nyds_32_32k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�")]
+        public decimal Qmd_Nyds_36_16k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�")]
+        public decimal Qmd_Nyds_36_32k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛弻鑹�32椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�32椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛弻鑹�32椤�16寮�")]
+        public decimal Qmd_Nyss_32_16k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛弻鑹�32椤�32寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�32椤�32寮�")]
+        [Comment("楠戦┈閽夊唴椤靛弻鑹�32椤�32寮�")]
+        public decimal Qmd_Nyss_32_32k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛弻鑹�36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�36-48椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛弻鑹�36-48椤�16寮�")]
+
+        public decimal Qmd_Nyss_36_16k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛弻鑹�36-48椤�32寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�36-48椤�32寮�")]
+        [Comment("楠戦┈閽夊唴椤靛弻鑹�36-48椤�32寮�")]
+        public decimal Qmd_Nyss_36_32k { get; set; } = 0;
+
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛洓鑹�32椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�32椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛洓鑹�32椤�16寮�")]
+        public decimal Qmd_Nysis_32_16k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛洓鑹�32椤�32寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�32椤�32寮�")]
+        [Comment("楠戦┈閽夊唴椤靛洓鑹�32椤�32寮�")]
+        public decimal Qmd_Nysis_32_32k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛洓鑹�36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�36-48椤�16寮�")]
+        [Comment("楠戦┈閽夊唴椤靛洓鑹�36-48椤�16寮�")]
+        public decimal Qmd_Nysis_36_16k { get; set; } = 0;
+        /// <summary>
+        /// 楠戦┈閽夊唴椤靛洓鑹�36-48椤�32寮�
+        /// </summary>
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�36-48椤�32寮�")]
+        [Comment("楠戦┈閽夊唴椤靛洓鑹�36-48椤�32寮�")]
+        public decimal Qmd_Nysis_36_32k { get; set; } = 0;
+
+
+
+
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍗曡壊32椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊32椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍗曡壊32椤�16寮�")]
+        public decimal Jb_Nyds_32_16k { get; set; } = 0;
+
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍗曡壊32椤�32寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊32椤�32寮�")]
+        [Comment("鑳跺寘鍐呴〉鍗曡壊32椤�32寮�")]
+        public decimal Jb_Nyds_32_32k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�")]
+        public decimal Jb_Nyds_36_16k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�")]
+        public decimal Jb_Nyds_36_32k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍙岃壊32椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊32椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍙岃壊32椤�16寮�")]
+        public decimal Jb_Nyss_32_16k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍙岃壊32椤�32寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊32椤�32寮�")]
+        [Comment("鑳跺寘鍐呴〉鍙岃壊32椤�32寮�")]
+        public decimal Jb_Nyss_32_32k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍙岃壊36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊36-48椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍙岃壊36-48椤�16寮�")]
+        public decimal Jb_Nyss_36_16k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍙岃壊36-48椤�32寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊36-48椤�32寮�")]
+        [Comment("鑳跺寘鍐呴〉鍙岃壊36-48椤�32寮�")]
+        public decimal Jb_Nyss_36_32k { get; set; } = 0;
+
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍥涜壊32椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊32椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍥涜壊32椤�16寮�")]
+        public decimal Jb_Nysis_32_16k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍥涜壊32椤�32寮�"
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊32椤�32寮�")]
+        [Comment("鑳跺寘鍐呴〉鍥涜壊32椤�32寮�")]
+        public decimal Jb_Nysis_32_32k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍥涜壊36-48椤�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊36-48椤�16寮�")]
+        [Comment("鑳跺寘鍐呴〉鍥涜壊36-48椤�16寮�")]
+        public decimal Jb_Nysis_36_16k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍐呴〉鍥涜壊36-48椤�32寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊36-48椤�32寮�")]
+        [Comment("鑳跺寘鍐呴〉鍥涜壊36-48椤�32寮�")]
+        public decimal Jb_Nysis_36_32k { get; set; } = 0;
+
+
+        /// <summary>
+        /// 鑳跺寘鍗曡壊32寮�16寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍗曡壊32寮�16寮�")]
+        [Comment("鑳跺寘鍗曡壊32寮�16寮�")]
+        public decimal Jb_Ds_32_16k { get; set; } = 0;
+        /// <summary>
+        /// 鑳跺寘鍗曡壊32寮�32寮�
+        /// </summary>
+        [Display(Name = "鑳跺寘鍗曡壊32寮�32寮�")]
+        [Comment("鑳跺寘鍗曡壊32寮�32寮�")]
+        public decimal Jb_Ds_32_32k { get; set; } = 0;
+
+        /// <summary>
+        /// 瑁硅儗鏉�16寮�
+        /// </summary>
+        [Display(Name = "瑁硅儗鏉�16寮�")]
+        [Comment("瑁硅儗鏉�16寮�")]
+        public decimal Gbt_16k { get; set; } = 0;
+        /// <summary>
+        /// 瑁硅儗鏉�32寮�
+        /// </summary>
+        [Display(Name = "瑁硅儗鏉�32寮�")]
+        [Comment("瑁硅儗鏉�32寮�")]
+        public decimal Gbt_32k { get; set; } = 0;
+
+
+        /// <summary>
+        /// 涓氬姟璐圭敤绔炰簤
+        /// </summary>
+        [Display(Name = "涓氬姟璐圭敤绔炰簤")]
+        [Comment("涓氬姟璐圭敤绔炰簤")]
+        public decimal Ywfy_Jz { get; set; } = 0;
+        /// <summary>
+        /// 涓氬姟璐圭敤鎶�鏈�
+        /// </summary>
+        [Display(Name = "涓氬姟璐圭敤鎶�鏈�")]
+        [Comment("涓氬姟璐圭敤鎶�鏈�")]
+        public decimal Ywfy_Zs { get; set; } = 0;
+        /// <summary>
+        /// 鐗╂祦璐圭敤
+        /// </summary>
+        [Display(Name = "鐗╂祦璐圭敤")]
+        [Comment("鐗╂祦璐圭敤")]
+        public decimal Wlfy { get; set; } = 0;
+        /// <summary>
+        /// 绋庤垂
+        /// </summary>
+        [Display(Name = "绋庤垂")]
+        [Comment("绋庤垂")]
+        public decimal Sf { get; set; } = 0;
+
+        /// <summary>
+        /// 绾稿紶娑堣��
+        /// </summary>
+        [Display(Name = "绾稿紶娑堣��")]
+        [Comment("绾稿紶娑堣��")]
+        [Column(TypeName = "decimal(18, 3)")]
+        public decimal Zzxh { get; set; } = 0;
+
+
+
+
+    }
+}
diff --git a/cy_scdz.Test/OrderInfoControllerTest.cs b/cy_scdz.Test/OrderInfoControllerTest.cs
new file mode 100644
index 0000000..53c1ecc
--- /dev/null
+++ b/cy_scdz.Test/OrderInfoControllerTest.cs
@@ -0,0 +1,537 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using WalkingTec.Mvvm.Core;
+using cy_scdz.Controllers;
+using cy_scdz.ViewModel.BidOrder.OrderInfoVMs;
+using cy_scdz.Model.Oder;
+using cy_scdz.DataAccess;
+using cy_scdz.Model.Set;
+
+
+namespace cy_scdz.Test
+{
+    [TestClass]
+    public class OrderInfoControllerTest
+    {
+        private OrderInfoController _controller;
+        private string _seed;
+
+        public OrderInfoControllerTest()
+        {
+            _seed = Guid.NewGuid().ToString();
+            _controller = MockController.CreateController<OrderInfoController>(new DataContext(_seed, DBTypeEnum.Memory), "user");
+        }
+
+        [TestMethod]
+        public void SearchTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Index();
+            Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM<TopBasePoco, BaseSearcher>));
+            string rv2 = _controller.Search((rv.Model as OrderInfoListVM).Searcher);
+            Assert.IsTrue(rv2.Contains("\"Code\":200"));
+        }
+
+        [TestMethod]
+        public void CreateTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Create();
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoVM));
+
+            OrderInfoVM vm = rv.Model as OrderInfoVM;
+            OrderInfo v = new OrderInfo();
+			
+            v.Title = "YN6";
+            v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22");
+            v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22");
+            v.SemesterId = AddDictionary();
+            v.BidMoney = 24;
+            v.SupplierId = AddDictionary();
+            v.BidTypeId = AddDictionary();
+            v.TenderAgentFee = 59;
+            v.WorkbookCoverPaperTypeId = AddDictionary();
+            v.WorkbookInnerPaperTypeId = AddDictionary();
+            v.WorkbookColorTypeId = AddDictionary();
+            v.WorkbookBindingTypeId = AddDictionary();
+            v.WorkbookPageCount = 86;
+            v.PictureBookCoverPaperTypeId = AddDictionary();
+            v.PictureBookInnerPaperTypeId = AddDictionary();
+            v.PictureBookColorTypeId = AddDictionary();
+            v.PictureBookBindingTypeId = AddDictionary();
+            v.PictureBookPageCount = 93;
+            v.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+            v.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+            v.LargeCharacterBookColorTypeId = AddDictionary();
+            v.LargeCharacterBookBindingTypeId = AddDictionary();
+            v.LargeCharacterBookPageCount = 47;
+            v.Workbook16K = 73;
+            v.Workbook32K = 56;
+            v.PictureBook16K = 16;
+            v.PictureBook32K = 85;
+            v.PictureBookA4 = 2;
+            v.LargeCharacterBook = 36;
+            vm.Entity = v;
+            _controller.Create(vm);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<OrderInfo>().Find(v.ID);
+				
+                Assert.AreEqual(data.Title, "YN6");
+                Assert.AreEqual(data.WinBidTime, DateTime.Parse("2024-12-12 11:17:22"));
+                Assert.AreEqual(data.InitialDeliveryTime, DateTime.Parse("2024-06-30 11:17:22"));
+                Assert.AreEqual(data.BidMoney, 24);
+                Assert.AreEqual(data.TenderAgentFee, 59);
+                Assert.AreEqual(data.WorkbookPageCount, 86);
+                Assert.AreEqual(data.PictureBookPageCount, 93);
+                Assert.AreEqual(data.LargeCharacterBookPageCount, 47);
+                Assert.AreEqual(data.Workbook16K, 73);
+                Assert.AreEqual(data.Workbook32K, 56);
+                Assert.AreEqual(data.PictureBook16K, 16);
+                Assert.AreEqual(data.PictureBook32K, 85);
+                Assert.AreEqual(data.PictureBookA4, 2);
+                Assert.AreEqual(data.LargeCharacterBook, 36);
+                Assert.AreEqual(data.CreateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
+            }
+
+        }
+
+        [TestMethod]
+        public void EditTest()
+        {
+            OrderInfo v = new OrderInfo();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+       			
+                v.Title = "YN6";
+                v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22");
+                v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22");
+                v.SemesterId = AddDictionary();
+                v.BidMoney = 24;
+                v.SupplierId = AddDictionary();
+                v.BidTypeId = AddDictionary();
+                v.TenderAgentFee = 59;
+                v.WorkbookCoverPaperTypeId = AddDictionary();
+                v.WorkbookInnerPaperTypeId = AddDictionary();
+                v.WorkbookColorTypeId = AddDictionary();
+                v.WorkbookBindingTypeId = AddDictionary();
+                v.WorkbookPageCount = 86;
+                v.PictureBookCoverPaperTypeId = AddDictionary();
+                v.PictureBookInnerPaperTypeId = AddDictionary();
+                v.PictureBookColorTypeId = AddDictionary();
+                v.PictureBookBindingTypeId = AddDictionary();
+                v.PictureBookPageCount = 93;
+                v.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+                v.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+                v.LargeCharacterBookColorTypeId = AddDictionary();
+                v.LargeCharacterBookBindingTypeId = AddDictionary();
+                v.LargeCharacterBookPageCount = 47;
+                v.Workbook16K = 73;
+                v.Workbook32K = 56;
+                v.PictureBook16K = 16;
+                v.PictureBook32K = 85;
+                v.PictureBookA4 = 2;
+                v.LargeCharacterBook = 36;
+                context.Set<OrderInfo>().Add(v);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoVM));
+
+            OrderInfoVM vm = rv.Model as OrderInfoVM;
+            vm.Wtm.DC = new DataContext(_seed, DBTypeEnum.Memory);
+            v = new OrderInfo();
+            v.ID = vm.Entity.ID;
+       		
+            v.Title = "TukzhvPqNM2";
+            v.WinBidTime = DateTime.Parse("2024-06-29 11:17:22");
+            v.InitialDeliveryTime = DateTime.Parse("2025-06-30 11:17:22");
+            v.BidMoney = 63;
+            v.TenderAgentFee = 64;
+            v.WorkbookPageCount = 25;
+            v.PictureBookPageCount = 23;
+            v.LargeCharacterBookPageCount = 61;
+            v.Workbook16K = 95;
+            v.Workbook32K = 78;
+            v.PictureBook16K = 34;
+            v.PictureBook32K = 62;
+            v.PictureBookA4 = 19;
+            v.LargeCharacterBook = 38;
+            vm.Entity = v;
+            vm.FC = new Dictionary<string, object>();
+			
+            vm.FC.Add("Entity.Title", "");
+            vm.FC.Add("Entity.WinBidTime", "");
+            vm.FC.Add("Entity.InitialDeliveryTime", "");
+            vm.FC.Add("Entity.SemesterId", "");
+            vm.FC.Add("Entity.BidMoney", "");
+            vm.FC.Add("Entity.SupplierId", "");
+            vm.FC.Add("Entity.BidTypeId", "");
+            vm.FC.Add("Entity.TenderAgentFee", "");
+            vm.FC.Add("Entity.WorkbookCoverPaperTypeId", "");
+            vm.FC.Add("Entity.WorkbookInnerPaperTypeId", "");
+            vm.FC.Add("Entity.WorkbookColorTypeId", "");
+            vm.FC.Add("Entity.WorkbookBindingTypeId", "");
+            vm.FC.Add("Entity.WorkbookPageCount", "");
+            vm.FC.Add("Entity.PictureBookCoverPaperTypeId", "");
+            vm.FC.Add("Entity.PictureBookInnerPaperTypeId", "");
+            vm.FC.Add("Entity.PictureBookColorTypeId", "");
+            vm.FC.Add("Entity.PictureBookBindingTypeId", "");
+            vm.FC.Add("Entity.PictureBookPageCount", "");
+            vm.FC.Add("Entity.LargeCharacterBookCoverPaperTypeId", "");
+            vm.FC.Add("Entity.LargeCharacterBookInnerPaperTypeId", "");
+            vm.FC.Add("Entity.LargeCharacterBookColorTypeId", "");
+            vm.FC.Add("Entity.LargeCharacterBookBindingTypeId", "");
+            vm.FC.Add("Entity.LargeCharacterBookPageCount", "");
+            vm.FC.Add("Entity.Workbook16K", "");
+            vm.FC.Add("Entity.Workbook32K", "");
+            vm.FC.Add("Entity.PictureBook16K", "");
+            vm.FC.Add("Entity.PictureBook32K", "");
+            vm.FC.Add("Entity.PictureBookA4", "");
+            vm.FC.Add("Entity.LargeCharacterBook", "");
+            _controller.Edit(vm);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<OrderInfo>().Find(v.ID);
+ 				
+                Assert.AreEqual(data.Title, "TukzhvPqNM2");
+                Assert.AreEqual(data.WinBidTime, DateTime.Parse("2024-06-29 11:17:22"));
+                Assert.AreEqual(data.InitialDeliveryTime, DateTime.Parse("2025-06-30 11:17:22"));
+                Assert.AreEqual(data.BidMoney, 63);
+                Assert.AreEqual(data.TenderAgentFee, 64);
+                Assert.AreEqual(data.WorkbookPageCount, 25);
+                Assert.AreEqual(data.PictureBookPageCount, 23);
+                Assert.AreEqual(data.LargeCharacterBookPageCount, 61);
+                Assert.AreEqual(data.Workbook16K, 95);
+                Assert.AreEqual(data.Workbook32K, 78);
+                Assert.AreEqual(data.PictureBook16K, 34);
+                Assert.AreEqual(data.PictureBook32K, 62);
+                Assert.AreEqual(data.PictureBookA4, 19);
+                Assert.AreEqual(data.LargeCharacterBook, 38);
+                Assert.AreEqual(data.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
+            }
+
+        }
+
+
+        [TestMethod]
+        public void DeleteTest()
+        {
+            OrderInfo v = new OrderInfo();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+        		
+                v.Title = "YN6";
+                v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22");
+                v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22");
+                v.SemesterId = AddDictionary();
+                v.BidMoney = 24;
+                v.SupplierId = AddDictionary();
+                v.BidTypeId = AddDictionary();
+                v.TenderAgentFee = 59;
+                v.WorkbookCoverPaperTypeId = AddDictionary();
+                v.WorkbookInnerPaperTypeId = AddDictionary();
+                v.WorkbookColorTypeId = AddDictionary();
+                v.WorkbookBindingTypeId = AddDictionary();
+                v.WorkbookPageCount = 86;
+                v.PictureBookCoverPaperTypeId = AddDictionary();
+                v.PictureBookInnerPaperTypeId = AddDictionary();
+                v.PictureBookColorTypeId = AddDictionary();
+                v.PictureBookBindingTypeId = AddDictionary();
+                v.PictureBookPageCount = 93;
+                v.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+                v.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+                v.LargeCharacterBookColorTypeId = AddDictionary();
+                v.LargeCharacterBookBindingTypeId = AddDictionary();
+                v.LargeCharacterBookPageCount = 47;
+                v.Workbook16K = 73;
+                v.Workbook32K = 56;
+                v.PictureBook16K = 16;
+                v.PictureBook32K = 85;
+                v.PictureBookA4 = 2;
+                v.LargeCharacterBook = 36;
+                context.Set<OrderInfo>().Add(v);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoVM));
+
+            OrderInfoVM vm = rv.Model as OrderInfoVM;
+            v = new OrderInfo();
+            v.ID = vm.Entity.ID;
+            vm.Entity = v;
+            _controller.Delete(v.ID.ToString(),null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<OrderInfo>().Find(v.ID);
+                Assert.AreEqual(data, null);
+          }
+
+        }
+
+
+        [TestMethod]
+        public void DetailsTest()
+        {
+            OrderInfo v = new OrderInfo();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v.Title = "YN6";
+                v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22");
+                v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22");
+                v.SemesterId = AddDictionary();
+                v.BidMoney = 24;
+                v.SupplierId = AddDictionary();
+                v.BidTypeId = AddDictionary();
+                v.TenderAgentFee = 59;
+                v.WorkbookCoverPaperTypeId = AddDictionary();
+                v.WorkbookInnerPaperTypeId = AddDictionary();
+                v.WorkbookColorTypeId = AddDictionary();
+                v.WorkbookBindingTypeId = AddDictionary();
+                v.WorkbookPageCount = 86;
+                v.PictureBookCoverPaperTypeId = AddDictionary();
+                v.PictureBookInnerPaperTypeId = AddDictionary();
+                v.PictureBookColorTypeId = AddDictionary();
+                v.PictureBookBindingTypeId = AddDictionary();
+                v.PictureBookPageCount = 93;
+                v.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+                v.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+                v.LargeCharacterBookColorTypeId = AddDictionary();
+                v.LargeCharacterBookBindingTypeId = AddDictionary();
+                v.LargeCharacterBookPageCount = 47;
+                v.Workbook16K = 73;
+                v.Workbook32K = 56;
+                v.PictureBook16K = 16;
+                v.PictureBook32K = 85;
+                v.PictureBookA4 = 2;
+                v.LargeCharacterBook = 36;
+                context.Set<OrderInfo>().Add(v);
+                context.SaveChanges();
+            }
+            PartialViewResult rv = (PartialViewResult)_controller.Details(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(IBaseCRUDVM<TopBasePoco>));
+            Assert.AreEqual(v.ID, (rv.Model as IBaseCRUDVM<TopBasePoco>).Entity.GetID());
+        }
+
+        [TestMethod]
+        public void BatchEditTest()
+        {
+            OrderInfo v1 = new OrderInfo();
+            OrderInfo v2 = new OrderInfo();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v1.Title = "YN6";
+                v1.WinBidTime = DateTime.Parse("2024-12-12 11:17:22");
+                v1.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22");
+                v1.SemesterId = AddDictionary();
+                v1.BidMoney = 24;
+                v1.SupplierId = AddDictionary();
+                v1.BidTypeId = AddDictionary();
+                v1.TenderAgentFee = 59;
+                v1.WorkbookCoverPaperTypeId = AddDictionary();
+                v1.WorkbookInnerPaperTypeId = AddDictionary();
+                v1.WorkbookColorTypeId = AddDictionary();
+                v1.WorkbookBindingTypeId = AddDictionary();
+                v1.WorkbookPageCount = 86;
+                v1.PictureBookCoverPaperTypeId = AddDictionary();
+                v1.PictureBookInnerPaperTypeId = AddDictionary();
+                v1.PictureBookColorTypeId = AddDictionary();
+                v1.PictureBookBindingTypeId = AddDictionary();
+                v1.PictureBookPageCount = 93;
+                v1.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+                v1.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+                v1.LargeCharacterBookColorTypeId = AddDictionary();
+                v1.LargeCharacterBookBindingTypeId = AddDictionary();
+                v1.LargeCharacterBookPageCount = 47;
+                v1.Workbook16K = 73;
+                v1.Workbook32K = 56;
+                v1.PictureBook16K = 16;
+                v1.PictureBook32K = 85;
+                v1.PictureBookA4 = 2;
+                v1.LargeCharacterBook = 36;
+                v2.Title = "TukzhvPqNM2";
+                v2.WinBidTime = DateTime.Parse("2024-06-29 11:17:22");
+                v2.InitialDeliveryTime = DateTime.Parse("2025-06-30 11:17:22");
+                v2.SemesterId = v1.SemesterId; 
+                v2.BidMoney = 63;
+                v2.SupplierId = v1.SupplierId; 
+                v2.BidTypeId = v1.BidTypeId; 
+                v2.TenderAgentFee = 64;
+                v2.WorkbookCoverPaperTypeId = v1.WorkbookCoverPaperTypeId; 
+                v2.WorkbookInnerPaperTypeId = v1.WorkbookInnerPaperTypeId; 
+                v2.WorkbookColorTypeId = v1.WorkbookColorTypeId; 
+                v2.WorkbookBindingTypeId = v1.WorkbookBindingTypeId; 
+                v2.WorkbookPageCount = 25;
+                v2.PictureBookCoverPaperTypeId = v1.PictureBookCoverPaperTypeId; 
+                v2.PictureBookInnerPaperTypeId = v1.PictureBookInnerPaperTypeId; 
+                v2.PictureBookColorTypeId = v1.PictureBookColorTypeId; 
+                v2.PictureBookBindingTypeId = v1.PictureBookBindingTypeId; 
+                v2.PictureBookPageCount = 23;
+                v2.LargeCharacterBookCoverPaperTypeId = v1.LargeCharacterBookCoverPaperTypeId; 
+                v2.LargeCharacterBookInnerPaperTypeId = v1.LargeCharacterBookInnerPaperTypeId; 
+                v2.LargeCharacterBookColorTypeId = v1.LargeCharacterBookColorTypeId; 
+                v2.LargeCharacterBookBindingTypeId = v1.LargeCharacterBookBindingTypeId; 
+                v2.LargeCharacterBookPageCount = 61;
+                v2.Workbook16K = 95;
+                v2.Workbook32K = 78;
+                v2.PictureBook16K = 34;
+                v2.PictureBook32K = 62;
+                v2.PictureBookA4 = 19;
+                v2.LargeCharacterBook = 38;
+                context.Set<OrderInfo>().Add(v1);
+                context.Set<OrderInfo>().Add(v2);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoBatchVM));
+
+            OrderInfoBatchVM vm = rv.Model as OrderInfoBatchVM;
+            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
+            
+            vm.FC = new Dictionary<string, object>();
+			
+            _controller.DoBatchEdit(vm, null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data1 = context.Set<OrderInfo>().Find(v1.ID);
+                var data2 = context.Set<OrderInfo>().Find(v2.ID);
+ 				
+                Assert.AreEqual(data1.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data1.UpdateTime.Value).Seconds < 10);
+                Assert.AreEqual(data2.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data2.UpdateTime.Value).Seconds < 10);
+            }
+        }
+
+
+        [TestMethod]
+        public void BatchDeleteTest()
+        {
+            OrderInfo v1 = new OrderInfo();
+            OrderInfo v2 = new OrderInfo();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v1.Title = "YN6";
+                v1.WinBidTime = DateTime.Parse("2024-12-12 11:17:22");
+                v1.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22");
+                v1.SemesterId = AddDictionary();
+                v1.BidMoney = 24;
+                v1.SupplierId = AddDictionary();
+                v1.BidTypeId = AddDictionary();
+                v1.TenderAgentFee = 59;
+                v1.WorkbookCoverPaperTypeId = AddDictionary();
+                v1.WorkbookInnerPaperTypeId = AddDictionary();
+                v1.WorkbookColorTypeId = AddDictionary();
+                v1.WorkbookBindingTypeId = AddDictionary();
+                v1.WorkbookPageCount = 86;
+                v1.PictureBookCoverPaperTypeId = AddDictionary();
+                v1.PictureBookInnerPaperTypeId = AddDictionary();
+                v1.PictureBookColorTypeId = AddDictionary();
+                v1.PictureBookBindingTypeId = AddDictionary();
+                v1.PictureBookPageCount = 93;
+                v1.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+                v1.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+                v1.LargeCharacterBookColorTypeId = AddDictionary();
+                v1.LargeCharacterBookBindingTypeId = AddDictionary();
+                v1.LargeCharacterBookPageCount = 47;
+                v1.Workbook16K = 73;
+                v1.Workbook32K = 56;
+                v1.PictureBook16K = 16;
+                v1.PictureBook32K = 85;
+                v1.PictureBookA4 = 2;
+                v1.LargeCharacterBook = 36;
+                v2.Title = "TukzhvPqNM2";
+                v2.WinBidTime = DateTime.Parse("2024-06-29 11:17:22");
+                v2.InitialDeliveryTime = DateTime.Parse("2025-06-30 11:17:22");
+                v2.SemesterId = v1.SemesterId; 
+                v2.BidMoney = 63;
+                v2.SupplierId = v1.SupplierId; 
+                v2.BidTypeId = v1.BidTypeId; 
+                v2.TenderAgentFee = 64;
+                v2.WorkbookCoverPaperTypeId = v1.WorkbookCoverPaperTypeId; 
+                v2.WorkbookInnerPaperTypeId = v1.WorkbookInnerPaperTypeId; 
+                v2.WorkbookColorTypeId = v1.WorkbookColorTypeId; 
+                v2.WorkbookBindingTypeId = v1.WorkbookBindingTypeId; 
+                v2.WorkbookPageCount = 25;
+                v2.PictureBookCoverPaperTypeId = v1.PictureBookCoverPaperTypeId; 
+                v2.PictureBookInnerPaperTypeId = v1.PictureBookInnerPaperTypeId; 
+                v2.PictureBookColorTypeId = v1.PictureBookColorTypeId; 
+                v2.PictureBookBindingTypeId = v1.PictureBookBindingTypeId; 
+                v2.PictureBookPageCount = 23;
+                v2.LargeCharacterBookCoverPaperTypeId = v1.LargeCharacterBookCoverPaperTypeId; 
+                v2.LargeCharacterBookInnerPaperTypeId = v1.LargeCharacterBookInnerPaperTypeId; 
+                v2.LargeCharacterBookColorTypeId = v1.LargeCharacterBookColorTypeId; 
+                v2.LargeCharacterBookBindingTypeId = v1.LargeCharacterBookBindingTypeId; 
+                v2.LargeCharacterBookPageCount = 61;
+                v2.Workbook16K = 95;
+                v2.Workbook32K = 78;
+                v2.PictureBook16K = 34;
+                v2.PictureBook32K = 62;
+                v2.PictureBookA4 = 19;
+                v2.LargeCharacterBook = 38;
+                context.Set<OrderInfo>().Add(v1);
+                context.Set<OrderInfo>().Add(v2);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoBatchVM));
+
+            OrderInfoBatchVM vm = rv.Model as OrderInfoBatchVM;
+            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
+            _controller.DoBatchDelete(vm, null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data1 = context.Set<OrderInfo>().Find(v1.ID);
+                var data2 = context.Set<OrderInfo>().Find(v2.ID);
+                Assert.AreEqual(data1, null);
+            Assert.AreEqual(data2, null);
+            }
+        }
+
+        [TestMethod]
+        public void ExportTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Index();
+            Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM<TopBasePoco, BaseSearcher>));
+            IActionResult rv2 = _controller.ExportExcel(rv.Model as OrderInfoListVM);
+            Assert.IsTrue((rv2 as FileContentResult).FileContents.Length > 0);
+        }
+
+        private Guid AddDictionary()
+        {
+            Dictionary v = new Dictionary();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                try{
+
+                v.Name = "Kq0grvnItm2Q15wH9u12gh49oGL";
+                v.Key = "8deHrntDJE5Rcs4zx";
+                v.Value = "z9CtDjBQ9Sh9Qc5Sm0PZQ5LIStCE3AsNKvhQ7QHh0SC7YSjw73iVwi3gaxjRVg1LyhDaS9zRPueG8f8mKkSMH5HVcIc2JbVIczQZiVqL0ZcuEHpNVgwan2GAaIucvw6Gr1Ksn2ZsRJlLCiaRz2zieMfU9ca84s42jBw";
+                v.IsEn = false;
+                context.Set<Dictionary>().Add(v);
+                context.SaveChanges();
+                }
+                catch{}
+            }
+            return v.ID;
+        }
+
+
+    }
+}
diff --git a/cy_scdz.Test/OrderProductionControllerTest.cs b/cy_scdz.Test/OrderProductionControllerTest.cs
new file mode 100644
index 0000000..58f3d39
--- /dev/null
+++ b/cy_scdz.Test/OrderProductionControllerTest.cs
@@ -0,0 +1,545 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using WalkingTec.Mvvm.Core;
+using cy_scdz.Controllers;
+using cy_scdz.ViewModel.Order.OrderProductionVMs;
+using cy_scdz.Model.Oder;
+using cy_scdz.DataAccess;
+
+
+namespace cy_scdz.Test
+{
+    [TestClass]
+    public class OrderProductionControllerTest
+    {
+        private OrderProductionController _controller;
+        private string _seed;
+
+        public OrderProductionControllerTest()
+        {
+            _seed = Guid.NewGuid().ToString();
+            _controller = MockController.CreateController<OrderProductionController>(new DataContext(_seed, DBTypeEnum.Memory), "user");
+        }
+
+        [TestMethod]
+        public void SearchTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Index();
+            Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM<TopBasePoco, BaseSearcher>));
+            string rv2 = _controller.Search((rv.Model as OrderProductionListVM).Searcher);
+            Assert.IsTrue(rv2.Contains("\"Code\":200"));
+        }
+
+        [TestMethod]
+        public void CreateTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Create();
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderProductionVM));
+
+            OrderProductionVM vm = rv.Model as OrderProductionVM;
+            OrderProduction v = new OrderProduction();
+			
+            v.OderId = AddOrderInfo();
+            v.Workbook16KCount = 8;
+            v.Workbook16KPrice = 86;
+            v.Workbook16KManufacturerId = "vw";
+            v.Workbook32KCount = 75;
+            v.Workbook32KPrice = 53;
+            v.Workbook32KManufacturerId = "NwDYVdgNN6UMyR";
+            v.PictureBook16KCount = 0;
+            v.PictureBook16KPrice = 19;
+            v.PictureBook16KManufacturerId = "1EJIm1rqJSx4";
+            v.PictureBook32KCount = 56;
+            v.PictureBook32KPrice = 6;
+            v.PictureBook32KManufacturerId = "PRZNQFXugVp";
+            v.PictureBookA4Count = 64;
+            v.PictureBookA4KPrice = 18;
+            v.PictureBookA4KManufacturerId = "nJZv9K8S17Go6wct";
+            v.LargeCharacterBookCount = 25;
+            v.LargeCharacterPrice = 65;
+            v.LargeCharacterManufacturerIds = "IatlD";
+            v.Mark = "b5Hl";
+            v.DeliveryTime = DateTime.Parse("2024-10-18 11:49:12");
+            v.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+            v.IsOver = false;
+            vm.Entity = v;
+            _controller.Create(vm);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<OrderProduction>().Find(v.ID);
+				
+                Assert.AreEqual(data.Workbook16KCount, 8);
+                Assert.AreEqual(data.Workbook16KPrice, 86);
+                Assert.AreEqual(data.Workbook16KManufacturerId, "vw");
+                Assert.AreEqual(data.Workbook32KCount, 75);
+                Assert.AreEqual(data.Workbook32KPrice, 53);
+                Assert.AreEqual(data.Workbook32KManufacturerId, "NwDYVdgNN6UMyR");
+                Assert.AreEqual(data.PictureBook16KCount, 0);
+                Assert.AreEqual(data.PictureBook16KPrice, 19);
+                Assert.AreEqual(data.PictureBook16KManufacturerId, "1EJIm1rqJSx4");
+                Assert.AreEqual(data.PictureBook32KCount, 56);
+                Assert.AreEqual(data.PictureBook32KPrice, 6);
+                Assert.AreEqual(data.PictureBook32KManufacturerId, "PRZNQFXugVp");
+                Assert.AreEqual(data.PictureBookA4Count, 64);
+                Assert.AreEqual(data.PictureBookA4KPrice, 18);
+                Assert.AreEqual(data.PictureBookA4KManufacturerId, "nJZv9K8S17Go6wct");
+                Assert.AreEqual(data.LargeCharacterBookCount, 25);
+                Assert.AreEqual(data.LargeCharacterPrice, 65);
+                Assert.AreEqual(data.LargeCharacterManufacturerIds, "IatlD");
+                Assert.AreEqual(data.Mark, "b5Hl");
+                Assert.AreEqual(data.DeliveryTime, DateTime.Parse("2024-10-18 11:49:12"));
+                Assert.AreEqual(data.Chunqiuji, cy_scdz.Model.Oder.chunqiue.qiu);
+                Assert.AreEqual(data.IsOver, false);
+                Assert.AreEqual(data.CreateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
+            }
+
+        }
+
+        [TestMethod]
+        public void EditTest()
+        {
+            OrderProduction v = new OrderProduction();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+       			
+                v.OderId = AddOrderInfo();
+                v.Workbook16KCount = 8;
+                v.Workbook16KPrice = 86;
+                v.Workbook16KManufacturerId = "vw";
+                v.Workbook32KCount = 75;
+                v.Workbook32KPrice = 53;
+                v.Workbook32KManufacturerId = "NwDYVdgNN6UMyR";
+                v.PictureBook16KCount = 0;
+                v.PictureBook16KPrice = 19;
+                v.PictureBook16KManufacturerId = "1EJIm1rqJSx4";
+                v.PictureBook32KCount = 56;
+                v.PictureBook32KPrice = 6;
+                v.PictureBook32KManufacturerId = "PRZNQFXugVp";
+                v.PictureBookA4Count = 64;
+                v.PictureBookA4KPrice = 18;
+                v.PictureBookA4KManufacturerId = "nJZv9K8S17Go6wct";
+                v.LargeCharacterBookCount = 25;
+                v.LargeCharacterPrice = 65;
+                v.LargeCharacterManufacturerIds = "IatlD";
+                v.Mark = "b5Hl";
+                v.DeliveryTime = DateTime.Parse("2024-10-18 11:49:12");
+                v.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v.IsOver = false;
+                context.Set<OrderProduction>().Add(v);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderProductionVM));
+
+            OrderProductionVM vm = rv.Model as OrderProductionVM;
+            vm.Wtm.DC = new DataContext(_seed, DBTypeEnum.Memory);
+            v = new OrderProduction();
+            v.ID = vm.Entity.ID;
+       		
+            v.Workbook16KCount = 34;
+            v.Workbook16KPrice = 90;
+            v.Workbook16KManufacturerId = "rH9rS8WltK";
+            v.Workbook32KCount = 58;
+            v.Workbook32KPrice = 59;
+            v.Workbook32KManufacturerId = "VU6am";
+            v.PictureBook16KCount = 11;
+            v.PictureBook16KPrice = 93;
+            v.PictureBook16KManufacturerId = "E488h7QbNrRqF";
+            v.PictureBook32KCount = 32;
+            v.PictureBook32KPrice = 29;
+            v.PictureBook32KManufacturerId = "bfleJn";
+            v.PictureBookA4Count = 10;
+            v.PictureBookA4KPrice = 65;
+            v.PictureBookA4KManufacturerId = "f7o";
+            v.LargeCharacterBookCount = 4;
+            v.LargeCharacterPrice = 84;
+            v.LargeCharacterManufacturerIds = "x";
+            v.Mark = "iFqVNYrTwDVvVALN";
+            v.DeliveryTime = DateTime.Parse("2023-11-30 11:49:12");
+            v.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+            v.IsOver = true;
+            vm.Entity = v;
+            vm.FC = new Dictionary<string, object>();
+			
+            vm.FC.Add("Entity.OderId", "");
+            vm.FC.Add("Entity.Workbook16KCount", "");
+            vm.FC.Add("Entity.Workbook16KPrice", "");
+            vm.FC.Add("Entity.Workbook16KManufacturerId", "");
+            vm.FC.Add("Entity.Workbook32KCount", "");
+            vm.FC.Add("Entity.Workbook32KPrice", "");
+            vm.FC.Add("Entity.Workbook32KManufacturerId", "");
+            vm.FC.Add("Entity.PictureBook16KCount", "");
+            vm.FC.Add("Entity.PictureBook16KPrice", "");
+            vm.FC.Add("Entity.PictureBook16KManufacturerId", "");
+            vm.FC.Add("Entity.PictureBook32KCount", "");
+            vm.FC.Add("Entity.PictureBook32KPrice", "");
+            vm.FC.Add("Entity.PictureBook32KManufacturerId", "");
+            vm.FC.Add("Entity.PictureBookA4Count", "");
+            vm.FC.Add("Entity.PictureBookA4KPrice", "");
+            vm.FC.Add("Entity.PictureBookA4KManufacturerId", "");
+            vm.FC.Add("Entity.LargeCharacterBookCount", "");
+            vm.FC.Add("Entity.LargeCharacterPrice", "");
+            vm.FC.Add("Entity.LargeCharacterManufacturerIds", "");
+            vm.FC.Add("Entity.Mark", "");
+            vm.FC.Add("Entity.DeliveryTime", "");
+            vm.FC.Add("Entity.Chunqiuji", "");
+            vm.FC.Add("Entity.IsOver", "");
+            _controller.Edit(vm);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<OrderProduction>().Find(v.ID);
+ 				
+                Assert.AreEqual(data.Workbook16KCount, 34);
+                Assert.AreEqual(data.Workbook16KPrice, 90);
+                Assert.AreEqual(data.Workbook16KManufacturerId, "rH9rS8WltK");
+                Assert.AreEqual(data.Workbook32KCount, 58);
+                Assert.AreEqual(data.Workbook32KPrice, 59);
+                Assert.AreEqual(data.Workbook32KManufacturerId, "VU6am");
+                Assert.AreEqual(data.PictureBook16KCount, 11);
+                Assert.AreEqual(data.PictureBook16KPrice, 93);
+                Assert.AreEqual(data.PictureBook16KManufacturerId, "E488h7QbNrRqF");
+                Assert.AreEqual(data.PictureBook32KCount, 32);
+                Assert.AreEqual(data.PictureBook32KPrice, 29);
+                Assert.AreEqual(data.PictureBook32KManufacturerId, "bfleJn");
+                Assert.AreEqual(data.PictureBookA4Count, 10);
+                Assert.AreEqual(data.PictureBookA4KPrice, 65);
+                Assert.AreEqual(data.PictureBookA4KManufacturerId, "f7o");
+                Assert.AreEqual(data.LargeCharacterBookCount, 4);
+                Assert.AreEqual(data.LargeCharacterPrice, 84);
+                Assert.AreEqual(data.LargeCharacterManufacturerIds, "x");
+                Assert.AreEqual(data.Mark, "iFqVNYrTwDVvVALN");
+                Assert.AreEqual(data.DeliveryTime, DateTime.Parse("2023-11-30 11:49:12"));
+                Assert.AreEqual(data.Chunqiuji, cy_scdz.Model.Oder.chunqiue.qiu);
+                Assert.AreEqual(data.IsOver, true);
+                Assert.AreEqual(data.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
+            }
+
+        }
+
+
+        [TestMethod]
+        public void DeleteTest()
+        {
+            OrderProduction v = new OrderProduction();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+        		
+                v.OderId = AddOrderInfo();
+                v.Workbook16KCount = 8;
+                v.Workbook16KPrice = 86;
+                v.Workbook16KManufacturerId = "vw";
+                v.Workbook32KCount = 75;
+                v.Workbook32KPrice = 53;
+                v.Workbook32KManufacturerId = "NwDYVdgNN6UMyR";
+                v.PictureBook16KCount = 0;
+                v.PictureBook16KPrice = 19;
+                v.PictureBook16KManufacturerId = "1EJIm1rqJSx4";
+                v.PictureBook32KCount = 56;
+                v.PictureBook32KPrice = 6;
+                v.PictureBook32KManufacturerId = "PRZNQFXugVp";
+                v.PictureBookA4Count = 64;
+                v.PictureBookA4KPrice = 18;
+                v.PictureBookA4KManufacturerId = "nJZv9K8S17Go6wct";
+                v.LargeCharacterBookCount = 25;
+                v.LargeCharacterPrice = 65;
+                v.LargeCharacterManufacturerIds = "IatlD";
+                v.Mark = "b5Hl";
+                v.DeliveryTime = DateTime.Parse("2024-10-18 11:49:12");
+                v.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v.IsOver = false;
+                context.Set<OrderProduction>().Add(v);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderProductionVM));
+
+            OrderProductionVM vm = rv.Model as OrderProductionVM;
+            v = new OrderProduction();
+            v.ID = vm.Entity.ID;
+            vm.Entity = v;
+            _controller.Delete(v.ID.ToString(),null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<OrderProduction>().Find(v.ID);
+                Assert.AreEqual(data, null);
+          }
+
+        }
+
+
+        [TestMethod]
+        public void DetailsTest()
+        {
+            OrderProduction v = new OrderProduction();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v.OderId = AddOrderInfo();
+                v.Workbook16KCount = 8;
+                v.Workbook16KPrice = 86;
+                v.Workbook16KManufacturerId = "vw";
+                v.Workbook32KCount = 75;
+                v.Workbook32KPrice = 53;
+                v.Workbook32KManufacturerId = "NwDYVdgNN6UMyR";
+                v.PictureBook16KCount = 0;
+                v.PictureBook16KPrice = 19;
+                v.PictureBook16KManufacturerId = "1EJIm1rqJSx4";
+                v.PictureBook32KCount = 56;
+                v.PictureBook32KPrice = 6;
+                v.PictureBook32KManufacturerId = "PRZNQFXugVp";
+                v.PictureBookA4Count = 64;
+                v.PictureBookA4KPrice = 18;
+                v.PictureBookA4KManufacturerId = "nJZv9K8S17Go6wct";
+                v.LargeCharacterBookCount = 25;
+                v.LargeCharacterPrice = 65;
+                v.LargeCharacterManufacturerIds = "IatlD";
+                v.Mark = "b5Hl";
+                v.DeliveryTime = DateTime.Parse("2024-10-18 11:49:12");
+                v.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v.IsOver = false;
+                context.Set<OrderProduction>().Add(v);
+                context.SaveChanges();
+            }
+            PartialViewResult rv = (PartialViewResult)_controller.Details(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(IBaseCRUDVM<TopBasePoco>));
+            Assert.AreEqual(v.ID, (rv.Model as IBaseCRUDVM<TopBasePoco>).Entity.GetID());
+        }
+
+        [TestMethod]
+        public void BatchEditTest()
+        {
+            OrderProduction v1 = new OrderProduction();
+            OrderProduction v2 = new OrderProduction();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v1.OderId = AddOrderInfo();
+                v1.Workbook16KCount = 8;
+                v1.Workbook16KPrice = 86;
+                v1.Workbook16KManufacturerId = "vw";
+                v1.Workbook32KCount = 75;
+                v1.Workbook32KPrice = 53;
+                v1.Workbook32KManufacturerId = "NwDYVdgNN6UMyR";
+                v1.PictureBook16KCount = 0;
+                v1.PictureBook16KPrice = 19;
+                v1.PictureBook16KManufacturerId = "1EJIm1rqJSx4";
+                v1.PictureBook32KCount = 56;
+                v1.PictureBook32KPrice = 6;
+                v1.PictureBook32KManufacturerId = "PRZNQFXugVp";
+                v1.PictureBookA4Count = 64;
+                v1.PictureBookA4KPrice = 18;
+                v1.PictureBookA4KManufacturerId = "nJZv9K8S17Go6wct";
+                v1.LargeCharacterBookCount = 25;
+                v1.LargeCharacterPrice = 65;
+                v1.LargeCharacterManufacturerIds = "IatlD";
+                v1.Mark = "b5Hl";
+                v1.DeliveryTime = DateTime.Parse("2024-10-18 11:49:12");
+                v1.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v1.IsOver = false;
+                v2.OderId = v1.OderId; 
+                v2.Workbook16KCount = 34;
+                v2.Workbook16KPrice = 90;
+                v2.Workbook16KManufacturerId = "rH9rS8WltK";
+                v2.Workbook32KCount = 58;
+                v2.Workbook32KPrice = 59;
+                v2.Workbook32KManufacturerId = "VU6am";
+                v2.PictureBook16KCount = 11;
+                v2.PictureBook16KPrice = 93;
+                v2.PictureBook16KManufacturerId = "E488h7QbNrRqF";
+                v2.PictureBook32KCount = 32;
+                v2.PictureBook32KPrice = 29;
+                v2.PictureBook32KManufacturerId = "bfleJn";
+                v2.PictureBookA4Count = 10;
+                v2.PictureBookA4KPrice = 65;
+                v2.PictureBookA4KManufacturerId = "f7o";
+                v2.LargeCharacterBookCount = 4;
+                v2.LargeCharacterPrice = 84;
+                v2.LargeCharacterManufacturerIds = "x";
+                v2.Mark = "iFqVNYrTwDVvVALN";
+                v2.DeliveryTime = DateTime.Parse("2023-11-30 11:49:12");
+                v2.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v2.IsOver = true;
+                context.Set<OrderProduction>().Add(v1);
+                context.Set<OrderProduction>().Add(v2);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderProductionBatchVM));
+
+            OrderProductionBatchVM vm = rv.Model as OrderProductionBatchVM;
+            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
+            
+            vm.FC = new Dictionary<string, object>();
+			
+            _controller.DoBatchEdit(vm, null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data1 = context.Set<OrderProduction>().Find(v1.ID);
+                var data2 = context.Set<OrderProduction>().Find(v2.ID);
+ 				
+                Assert.AreEqual(data1.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data1.UpdateTime.Value).Seconds < 10);
+                Assert.AreEqual(data2.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data2.UpdateTime.Value).Seconds < 10);
+            }
+        }
+
+
+        [TestMethod]
+        public void BatchDeleteTest()
+        {
+            OrderProduction v1 = new OrderProduction();
+            OrderProduction v2 = new OrderProduction();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v1.OderId = AddOrderInfo();
+                v1.Workbook16KCount = 8;
+                v1.Workbook16KPrice = 86;
+                v1.Workbook16KManufacturerId = "vw";
+                v1.Workbook32KCount = 75;
+                v1.Workbook32KPrice = 53;
+                v1.Workbook32KManufacturerId = "NwDYVdgNN6UMyR";
+                v1.PictureBook16KCount = 0;
+                v1.PictureBook16KPrice = 19;
+                v1.PictureBook16KManufacturerId = "1EJIm1rqJSx4";
+                v1.PictureBook32KCount = 56;
+                v1.PictureBook32KPrice = 6;
+                v1.PictureBook32KManufacturerId = "PRZNQFXugVp";
+                v1.PictureBookA4Count = 64;
+                v1.PictureBookA4KPrice = 18;
+                v1.PictureBookA4KManufacturerId = "nJZv9K8S17Go6wct";
+                v1.LargeCharacterBookCount = 25;
+                v1.LargeCharacterPrice = 65;
+                v1.LargeCharacterManufacturerIds = "IatlD";
+                v1.Mark = "b5Hl";
+                v1.DeliveryTime = DateTime.Parse("2024-10-18 11:49:12");
+                v1.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v1.IsOver = false;
+                v2.OderId = v1.OderId; 
+                v2.Workbook16KCount = 34;
+                v2.Workbook16KPrice = 90;
+                v2.Workbook16KManufacturerId = "rH9rS8WltK";
+                v2.Workbook32KCount = 58;
+                v2.Workbook32KPrice = 59;
+                v2.Workbook32KManufacturerId = "VU6am";
+                v2.PictureBook16KCount = 11;
+                v2.PictureBook16KPrice = 93;
+                v2.PictureBook16KManufacturerId = "E488h7QbNrRqF";
+                v2.PictureBook32KCount = 32;
+                v2.PictureBook32KPrice = 29;
+                v2.PictureBook32KManufacturerId = "bfleJn";
+                v2.PictureBookA4Count = 10;
+                v2.PictureBookA4KPrice = 65;
+                v2.PictureBookA4KManufacturerId = "f7o";
+                v2.LargeCharacterBookCount = 4;
+                v2.LargeCharacterPrice = 84;
+                v2.LargeCharacterManufacturerIds = "x";
+                v2.Mark = "iFqVNYrTwDVvVALN";
+                v2.DeliveryTime = DateTime.Parse("2023-11-30 11:49:12");
+                v2.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v2.IsOver = true;
+                context.Set<OrderProduction>().Add(v1);
+                context.Set<OrderProduction>().Add(v2);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
+            Assert.IsInstanceOfType(rv.Model, typeof(OrderProductionBatchVM));
+
+            OrderProductionBatchVM vm = rv.Model as OrderProductionBatchVM;
+            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
+            _controller.DoBatchDelete(vm, null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data1 = context.Set<OrderProduction>().Find(v1.ID);
+                var data2 = context.Set<OrderProduction>().Find(v2.ID);
+                Assert.AreEqual(data1, null);
+            Assert.AreEqual(data2, null);
+            }
+        }
+
+        [TestMethod]
+        public void ExportTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Index();
+            Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM<TopBasePoco, BaseSearcher>));
+            IActionResult rv2 = _controller.ExportExcel(rv.Model as OrderProductionListVM);
+            Assert.IsTrue((rv2 as FileContentResult).FileContents.Length > 0);
+        }
+
+        private Guid AddDictionary()
+        {
+            Dictionary v = new Dictionary();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                try{
+
+                v.Name = "ZduWh6QtVECvy";
+                v.Key = "P85L29A";
+                v.Value = "Uaka8lrdb54Jl";
+                v.IsEn = false;
+                context.Set<Dictionary>().Add(v);
+                context.SaveChanges();
+                }
+                catch{}
+            }
+            return v.ID;
+        }
+
+        private Guid AddOrderInfo()
+        {
+            OrderInfo v = new OrderInfo();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                try{
+
+                v.Title = "Kcb";
+                v.WinBidTime = DateTime.Parse("2024-11-05 11:49:12");
+                v.InitialDeliveryTime = DateTime.Parse("2023-01-29 11:49:12");
+                v.Chunqiuji = cy_scdz.Model.Oder.chunqiue.qiu;
+                v.SemesterId = AddDictionary();
+                v.BidMoney = 63;
+                v.SupplierId = AddDictionary();
+                v.BidTypeId = AddDictionary();
+                v.TenderAgentFee = 17;
+                v.WorkbookCoverPaperTypeId = AddDictionary();
+                v.WorkbookInnerPaperTypeId = AddDictionary();
+                v.WorkbookColorTypeId = AddDictionary();
+                v.WorkbookBindingTypeId = AddDictionary();
+                v.WorkbookInnerPageCodeId = AddDictionary();
+                v.PictureBookCoverPaperTypeId = AddDictionary();
+                v.PictureBookInnerPaperTypeId = AddDictionary();
+                v.PictureBookColorTypeId = AddDictionary();
+                v.PictureBookBindingTypeId = AddDictionary();
+                v.PictureBookInnerPageCodeId = AddDictionary();
+                v.LargeCharacterBookCoverPaperTypeId = AddDictionary();
+                v.LargeCharacterBookInnerPaperTypeId = AddDictionary();
+                v.LargeCharacterBookColorTypeId = AddDictionary();
+                v.LargeCharacterBookBindingTypeId = AddDictionary();
+                v.LargeCharacterBookInnerPageCodeId = AddDictionary();
+                context.Set<OrderInfo>().Add(v);
+                context.SaveChanges();
+                }
+                catch{}
+            }
+            return v.ID;
+        }
+
+
+    }
+}
diff --git a/cy_scdz.Test/PriceSettingControllerTest.cs b/cy_scdz.Test/PriceSettingControllerTest.cs
new file mode 100644
index 0000000..976daa2
--- /dev/null
+++ b/cy_scdz.Test/PriceSettingControllerTest.cs
@@ -0,0 +1,658 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using WalkingTec.Mvvm.Core;
+using cy_scdz.Controllers;
+using cy_scdz.ViewModel.Setting.PriceSettingVMs;
+using cy_scdz.Model.Set;
+using cy_scdz.DataAccess;
+
+
+namespace cy_scdz.Test
+{
+    [TestClass]
+    public class PriceSettingControllerTest
+    {
+        private PriceSettingController _controller;
+        private string _seed;
+
+        public PriceSettingControllerTest()
+        {
+            _seed = Guid.NewGuid().ToString();
+            _controller = MockController.CreateController<PriceSettingController>(new DataContext(_seed, DBTypeEnum.Memory), "user");
+        }
+
+        [TestMethod]
+        public void SearchTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Index();
+            Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM<TopBasePoco, BaseSearcher>));
+            string rv2 = _controller.Search((rv.Model as PriceSettingListVM).Searcher);
+            Assert.IsTrue(rv2.Contains("\"Code\":200"));
+        }
+
+        [TestMethod]
+        public void CreateTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Create();
+            Assert.IsInstanceOfType(rv.Model, typeof(PriceSettingVM));
+
+            PriceSettingVM vm = rv.Model as PriceSettingVM;
+            PriceSetting v = new PriceSetting();
+			
+            v.Fmsjz = 63;
+            v.Fmnpz = 96;
+            v.Nybsz = 31;
+            v.Nygbz = 8;
+            v.Qmd_Nyds_32_16k = 56;
+            v.Qmd_Nyds_32_32k = 56;
+            v.Qmd_Nyds_36_16k = 71;
+            v.Qmd_Nyds_36_32k = 81;
+            v.Qmd_Nyss_32_16k = 77;
+            v.Qmd_Nyss_32_32k = 41;
+            v.Qmd_Nyss_36_16k = 41;
+            v.Qmd_Nyss_36_32k = 10;
+            v.Qmd_Nysis_32_16k = 31;
+            v.Qmd_Nysis_32_32k = 18;
+            v.Qmd_Nysis_36_16k = 26;
+            v.Qmd_Nysis_36_32k = 30;
+            v.Jb_Nyds_32_16k = 30;
+            v.Jb_Nyds_32_32k = 59;
+            v.Jb_Nyds_36_16k = 56;
+            v.Jb_Nyds_36_32k = 7;
+            v.Jb_Nyss_32_16k = 59;
+            v.Jb_Nyss_32_32k = 5;
+            v.Jb_Nyss_36_16k = 22;
+            v.Jb_Nyss_36_32k = 45;
+            v.Jb_Nysis_32_16k = 18;
+            v.Jb_Nysis_32_32k = 15;
+            v.Jb_Nysis_36_16k = 7;
+            v.Jb_Nysis_36_32k = 77;
+            v.Jb_Ds_32_16k = 30;
+            v.Jb_Ds_32_32k = 88;
+            v.Gbt_16k = 1;
+            v.Gbt_32k = 3;
+            v.Ywfy_Jz = 33;
+            v.Ywfy_Zs = 81;
+            v.Wlfy = 21;
+            v.Sf = 55;
+            v.Zzxh = 91;
+            vm.Entity = v;
+            _controller.Create(vm);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<PriceSetting>().Find(v.ID);
+				
+                Assert.AreEqual(data.Fmsjz, 63);
+                Assert.AreEqual(data.Fmnpz, 96);
+                Assert.AreEqual(data.Nybsz, 31);
+                Assert.AreEqual(data.Nygbz, 8);
+                Assert.AreEqual(data.Qmd_Nyds_32_16k, 56);
+                Assert.AreEqual(data.Qmd_Nyds_32_32k, 56);
+                Assert.AreEqual(data.Qmd_Nyds_36_16k, 71);
+                Assert.AreEqual(data.Qmd_Nyds_36_32k, 81);
+                Assert.AreEqual(data.Qmd_Nyss_32_16k, 77);
+                Assert.AreEqual(data.Qmd_Nyss_32_32k, 41);
+                Assert.AreEqual(data.Qmd_Nyss_36_16k, 41);
+                Assert.AreEqual(data.Qmd_Nyss_36_32k, 10);
+                Assert.AreEqual(data.Qmd_Nysis_32_16k, 31);
+                Assert.AreEqual(data.Qmd_Nysis_32_32k, 18);
+                Assert.AreEqual(data.Qmd_Nysis_36_16k, 26);
+                Assert.AreEqual(data.Qmd_Nysis_36_32k, 30);
+                Assert.AreEqual(data.Jb_Nyds_32_16k, 30);
+                Assert.AreEqual(data.Jb_Nyds_32_32k, 59);
+                Assert.AreEqual(data.Jb_Nyds_36_16k, 56);
+                Assert.AreEqual(data.Jb_Nyds_36_32k, 7);
+                Assert.AreEqual(data.Jb_Nyss_32_16k, 59);
+                Assert.AreEqual(data.Jb_Nyss_32_32k, 5);
+                Assert.AreEqual(data.Jb_Nyss_36_16k, 22);
+                Assert.AreEqual(data.Jb_Nyss_36_32k, 45);
+                Assert.AreEqual(data.Jb_Nysis_32_16k, 18);
+                Assert.AreEqual(data.Jb_Nysis_32_32k, 15);
+                Assert.AreEqual(data.Jb_Nysis_36_16k, 7);
+                Assert.AreEqual(data.Jb_Nysis_36_32k, 77);
+                Assert.AreEqual(data.Jb_Ds_32_16k, 30);
+                Assert.AreEqual(data.Jb_Ds_32_32k, 88);
+                Assert.AreEqual(data.Gbt_16k, 1);
+                Assert.AreEqual(data.Gbt_32k, 3);
+                Assert.AreEqual(data.Ywfy_Jz, 33);
+                Assert.AreEqual(data.Ywfy_Zs, 81);
+                Assert.AreEqual(data.Wlfy, 21);
+                Assert.AreEqual(data.Sf, 55);
+                Assert.AreEqual(data.Zzxh, 91);
+                Assert.AreEqual(data.CreateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
+            }
+
+        }
+
+        [TestMethod]
+        public void EditTest()
+        {
+            PriceSetting v = new PriceSetting();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+       			
+                v.Fmsjz = 63;
+                v.Fmnpz = 96;
+                v.Nybsz = 31;
+                v.Nygbz = 8;
+                v.Qmd_Nyds_32_16k = 56;
+                v.Qmd_Nyds_32_32k = 56;
+                v.Qmd_Nyds_36_16k = 71;
+                v.Qmd_Nyds_36_32k = 81;
+                v.Qmd_Nyss_32_16k = 77;
+                v.Qmd_Nyss_32_32k = 41;
+                v.Qmd_Nyss_36_16k = 41;
+                v.Qmd_Nyss_36_32k = 10;
+                v.Qmd_Nysis_32_16k = 31;
+                v.Qmd_Nysis_32_32k = 18;
+                v.Qmd_Nysis_36_16k = 26;
+                v.Qmd_Nysis_36_32k = 30;
+                v.Jb_Nyds_32_16k = 30;
+                v.Jb_Nyds_32_32k = 59;
+                v.Jb_Nyds_36_16k = 56;
+                v.Jb_Nyds_36_32k = 7;
+                v.Jb_Nyss_32_16k = 59;
+                v.Jb_Nyss_32_32k = 5;
+                v.Jb_Nyss_36_16k = 22;
+                v.Jb_Nyss_36_32k = 45;
+                v.Jb_Nysis_32_16k = 18;
+                v.Jb_Nysis_32_32k = 15;
+                v.Jb_Nysis_36_16k = 7;
+                v.Jb_Nysis_36_32k = 77;
+                v.Jb_Ds_32_16k = 30;
+                v.Jb_Ds_32_32k = 88;
+                v.Gbt_16k = 1;
+                v.Gbt_32k = 3;
+                v.Ywfy_Jz = 33;
+                v.Ywfy_Zs = 81;
+                v.Wlfy = 21;
+                v.Sf = 55;
+                v.Zzxh = 91;
+                context.Set<PriceSetting>().Add(v);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(PriceSettingVM));
+
+            PriceSettingVM vm = rv.Model as PriceSettingVM;
+            vm.Wtm.DC = new DataContext(_seed, DBTypeEnum.Memory);
+            v = new PriceSetting();
+            v.ID = vm.Entity.ID;
+       		
+            v.Fmsjz = 22;
+            v.Fmnpz = 38;
+            v.Nybsz = 62;
+            v.Nygbz = 31;
+            v.Qmd_Nyds_32_16k = 20;
+            v.Qmd_Nyds_32_32k = 32;
+            v.Qmd_Nyds_36_16k = 61;
+            v.Qmd_Nyds_36_32k = 63;
+            v.Qmd_Nyss_32_16k = 23;
+            v.Qmd_Nyss_32_32k = 31;
+            v.Qmd_Nyss_36_16k = 4;
+            v.Qmd_Nyss_36_32k = 98;
+            v.Qmd_Nysis_32_16k = 97;
+            v.Qmd_Nysis_32_32k = 15;
+            v.Qmd_Nysis_36_16k = 94;
+            v.Qmd_Nysis_36_32k = 20;
+            v.Jb_Nyds_32_16k = 8;
+            v.Jb_Nyds_32_32k = 94;
+            v.Jb_Nyds_36_16k = 42;
+            v.Jb_Nyds_36_32k = 56;
+            v.Jb_Nyss_32_16k = 75;
+            v.Jb_Nyss_32_32k = 74;
+            v.Jb_Nyss_36_16k = 45;
+            v.Jb_Nyss_36_32k = 68;
+            v.Jb_Nysis_32_16k = 57;
+            v.Jb_Nysis_32_32k = 78;
+            v.Jb_Nysis_36_16k = 45;
+            v.Jb_Nysis_36_32k = 42;
+            v.Jb_Ds_32_16k = 65;
+            v.Jb_Ds_32_32k = 61;
+            v.Gbt_16k = 23;
+            v.Gbt_32k = 0;
+            v.Ywfy_Jz = 63;
+            v.Ywfy_Zs = 2;
+            v.Wlfy = 46;
+            v.Sf = 7;
+            v.Zzxh = 62;
+            vm.Entity = v;
+            vm.FC = new Dictionary<string, object>();
+			
+            vm.FC.Add("Entity.Fmsjz", "");
+            vm.FC.Add("Entity.Fmnpz", "");
+            vm.FC.Add("Entity.Nybsz", "");
+            vm.FC.Add("Entity.Nygbz", "");
+            vm.FC.Add("Entity.Qmd_Nyds_32_16k", "");
+            vm.FC.Add("Entity.Qmd_Nyds_32_32k", "");
+            vm.FC.Add("Entity.Qmd_Nyds_36_16k", "");
+            vm.FC.Add("Entity.Qmd_Nyds_36_32k", "");
+            vm.FC.Add("Entity.Qmd_Nyss_32_16k", "");
+            vm.FC.Add("Entity.Qmd_Nyss_32_32k", "");
+            vm.FC.Add("Entity.Qmd_Nyss_36_16k", "");
+            vm.FC.Add("Entity.Qmd_Nyss_36_32k", "");
+            vm.FC.Add("Entity.Qmd_Nysis_32_16k", "");
+            vm.FC.Add("Entity.Qmd_Nysis_32_32k", "");
+            vm.FC.Add("Entity.Qmd_Nysis_36_16k", "");
+            vm.FC.Add("Entity.Qmd_Nysis_36_32k", "");
+            vm.FC.Add("Entity.Jb_Nyds_32_16k", "");
+            vm.FC.Add("Entity.Jb_Nyds_32_32k", "");
+            vm.FC.Add("Entity.Jb_Nyds_36_16k", "");
+            vm.FC.Add("Entity.Jb_Nyds_36_32k", "");
+            vm.FC.Add("Entity.Jb_Nyss_32_16k", "");
+            vm.FC.Add("Entity.Jb_Nyss_32_32k", "");
+            vm.FC.Add("Entity.Jb_Nyss_36_16k", "");
+            vm.FC.Add("Entity.Jb_Nyss_36_32k", "");
+            vm.FC.Add("Entity.Jb_Nysis_32_16k", "");
+            vm.FC.Add("Entity.Jb_Nysis_32_32k", "");
+            vm.FC.Add("Entity.Jb_Nysis_36_16k", "");
+            vm.FC.Add("Entity.Jb_Nysis_36_32k", "");
+            vm.FC.Add("Entity.Jb_Ds_32_16k", "");
+            vm.FC.Add("Entity.Jb_Ds_32_32k", "");
+            vm.FC.Add("Entity.Gbt_16k", "");
+            vm.FC.Add("Entity.Gbt_32k", "");
+            vm.FC.Add("Entity.Ywfy_Jz", "");
+            vm.FC.Add("Entity.Ywfy_Zs", "");
+            vm.FC.Add("Entity.Wlfy", "");
+            vm.FC.Add("Entity.Sf", "");
+            vm.FC.Add("Entity.Zzxh", "");
+            _controller.Edit(vm);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<PriceSetting>().Find(v.ID);
+ 				
+                Assert.AreEqual(data.Fmsjz, 22);
+                Assert.AreEqual(data.Fmnpz, 38);
+                Assert.AreEqual(data.Nybsz, 62);
+                Assert.AreEqual(data.Nygbz, 31);
+                Assert.AreEqual(data.Qmd_Nyds_32_16k, 20);
+                Assert.AreEqual(data.Qmd_Nyds_32_32k, 32);
+                Assert.AreEqual(data.Qmd_Nyds_36_16k, 61);
+                Assert.AreEqual(data.Qmd_Nyds_36_32k, 63);
+                Assert.AreEqual(data.Qmd_Nyss_32_16k, 23);
+                Assert.AreEqual(data.Qmd_Nyss_32_32k, 31);
+                Assert.AreEqual(data.Qmd_Nyss_36_16k, 4);
+                Assert.AreEqual(data.Qmd_Nyss_36_32k, 98);
+                Assert.AreEqual(data.Qmd_Nysis_32_16k, 97);
+                Assert.AreEqual(data.Qmd_Nysis_32_32k, 15);
+                Assert.AreEqual(data.Qmd_Nysis_36_16k, 94);
+                Assert.AreEqual(data.Qmd_Nysis_36_32k, 20);
+                Assert.AreEqual(data.Jb_Nyds_32_16k, 8);
+                Assert.AreEqual(data.Jb_Nyds_32_32k, 94);
+                Assert.AreEqual(data.Jb_Nyds_36_16k, 42);
+                Assert.AreEqual(data.Jb_Nyds_36_32k, 56);
+                Assert.AreEqual(data.Jb_Nyss_32_16k, 75);
+                Assert.AreEqual(data.Jb_Nyss_32_32k, 74);
+                Assert.AreEqual(data.Jb_Nyss_36_16k, 45);
+                Assert.AreEqual(data.Jb_Nyss_36_32k, 68);
+                Assert.AreEqual(data.Jb_Nysis_32_16k, 57);
+                Assert.AreEqual(data.Jb_Nysis_32_32k, 78);
+                Assert.AreEqual(data.Jb_Nysis_36_16k, 45);
+                Assert.AreEqual(data.Jb_Nysis_36_32k, 42);
+                Assert.AreEqual(data.Jb_Ds_32_16k, 65);
+                Assert.AreEqual(data.Jb_Ds_32_32k, 61);
+                Assert.AreEqual(data.Gbt_16k, 23);
+                Assert.AreEqual(data.Gbt_32k, 0);
+                Assert.AreEqual(data.Ywfy_Jz, 63);
+                Assert.AreEqual(data.Ywfy_Zs, 2);
+                Assert.AreEqual(data.Wlfy, 46);
+                Assert.AreEqual(data.Sf, 7);
+                Assert.AreEqual(data.Zzxh, 62);
+                Assert.AreEqual(data.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
+            }
+
+        }
+
+
+        [TestMethod]
+        public void DeleteTest()
+        {
+            PriceSetting v = new PriceSetting();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+        		
+                v.Fmsjz = 63;
+                v.Fmnpz = 96;
+                v.Nybsz = 31;
+                v.Nygbz = 8;
+                v.Qmd_Nyds_32_16k = 56;
+                v.Qmd_Nyds_32_32k = 56;
+                v.Qmd_Nyds_36_16k = 71;
+                v.Qmd_Nyds_36_32k = 81;
+                v.Qmd_Nyss_32_16k = 77;
+                v.Qmd_Nyss_32_32k = 41;
+                v.Qmd_Nyss_36_16k = 41;
+                v.Qmd_Nyss_36_32k = 10;
+                v.Qmd_Nysis_32_16k = 31;
+                v.Qmd_Nysis_32_32k = 18;
+                v.Qmd_Nysis_36_16k = 26;
+                v.Qmd_Nysis_36_32k = 30;
+                v.Jb_Nyds_32_16k = 30;
+                v.Jb_Nyds_32_32k = 59;
+                v.Jb_Nyds_36_16k = 56;
+                v.Jb_Nyds_36_32k = 7;
+                v.Jb_Nyss_32_16k = 59;
+                v.Jb_Nyss_32_32k = 5;
+                v.Jb_Nyss_36_16k = 22;
+                v.Jb_Nyss_36_32k = 45;
+                v.Jb_Nysis_32_16k = 18;
+                v.Jb_Nysis_32_32k = 15;
+                v.Jb_Nysis_36_16k = 7;
+                v.Jb_Nysis_36_32k = 77;
+                v.Jb_Ds_32_16k = 30;
+                v.Jb_Ds_32_32k = 88;
+                v.Gbt_16k = 1;
+                v.Gbt_32k = 3;
+                v.Ywfy_Jz = 33;
+                v.Ywfy_Zs = 81;
+                v.Wlfy = 21;
+                v.Sf = 55;
+                v.Zzxh = 91;
+                context.Set<PriceSetting>().Add(v);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(PriceSettingVM));
+
+            PriceSettingVM vm = rv.Model as PriceSettingVM;
+            v = new PriceSetting();
+            v.ID = vm.Entity.ID;
+            vm.Entity = v;
+            _controller.Delete(v.ID.ToString(),null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data = context.Set<PriceSetting>().Find(v.ID);
+                Assert.AreEqual(data, null);
+          }
+
+        }
+
+
+        [TestMethod]
+        public void DetailsTest()
+        {
+            PriceSetting v = new PriceSetting();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v.Fmsjz = 63;
+                v.Fmnpz = 96;
+                v.Nybsz = 31;
+                v.Nygbz = 8;
+                v.Qmd_Nyds_32_16k = 56;
+                v.Qmd_Nyds_32_32k = 56;
+                v.Qmd_Nyds_36_16k = 71;
+                v.Qmd_Nyds_36_32k = 81;
+                v.Qmd_Nyss_32_16k = 77;
+                v.Qmd_Nyss_32_32k = 41;
+                v.Qmd_Nyss_36_16k = 41;
+                v.Qmd_Nyss_36_32k = 10;
+                v.Qmd_Nysis_32_16k = 31;
+                v.Qmd_Nysis_32_32k = 18;
+                v.Qmd_Nysis_36_16k = 26;
+                v.Qmd_Nysis_36_32k = 30;
+                v.Jb_Nyds_32_16k = 30;
+                v.Jb_Nyds_32_32k = 59;
+                v.Jb_Nyds_36_16k = 56;
+                v.Jb_Nyds_36_32k = 7;
+                v.Jb_Nyss_32_16k = 59;
+                v.Jb_Nyss_32_32k = 5;
+                v.Jb_Nyss_36_16k = 22;
+                v.Jb_Nyss_36_32k = 45;
+                v.Jb_Nysis_32_16k = 18;
+                v.Jb_Nysis_32_32k = 15;
+                v.Jb_Nysis_36_16k = 7;
+                v.Jb_Nysis_36_32k = 77;
+                v.Jb_Ds_32_16k = 30;
+                v.Jb_Ds_32_32k = 88;
+                v.Gbt_16k = 1;
+                v.Gbt_32k = 3;
+                v.Ywfy_Jz = 33;
+                v.Ywfy_Zs = 81;
+                v.Wlfy = 21;
+                v.Sf = 55;
+                v.Zzxh = 91;
+                context.Set<PriceSetting>().Add(v);
+                context.SaveChanges();
+            }
+            PartialViewResult rv = (PartialViewResult)_controller.Details(v.ID.ToString());
+            Assert.IsInstanceOfType(rv.Model, typeof(IBaseCRUDVM<TopBasePoco>));
+            Assert.AreEqual(v.ID, (rv.Model as IBaseCRUDVM<TopBasePoco>).Entity.GetID());
+        }
+
+        [TestMethod]
+        public void BatchEditTest()
+        {
+            PriceSetting v1 = new PriceSetting();
+            PriceSetting v2 = new PriceSetting();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v1.Fmsjz = 63;
+                v1.Fmnpz = 96;
+                v1.Nybsz = 31;
+                v1.Nygbz = 8;
+                v1.Qmd_Nyds_32_16k = 56;
+                v1.Qmd_Nyds_32_32k = 56;
+                v1.Qmd_Nyds_36_16k = 71;
+                v1.Qmd_Nyds_36_32k = 81;
+                v1.Qmd_Nyss_32_16k = 77;
+                v1.Qmd_Nyss_32_32k = 41;
+                v1.Qmd_Nyss_36_16k = 41;
+                v1.Qmd_Nyss_36_32k = 10;
+                v1.Qmd_Nysis_32_16k = 31;
+                v1.Qmd_Nysis_32_32k = 18;
+                v1.Qmd_Nysis_36_16k = 26;
+                v1.Qmd_Nysis_36_32k = 30;
+                v1.Jb_Nyds_32_16k = 30;
+                v1.Jb_Nyds_32_32k = 59;
+                v1.Jb_Nyds_36_16k = 56;
+                v1.Jb_Nyds_36_32k = 7;
+                v1.Jb_Nyss_32_16k = 59;
+                v1.Jb_Nyss_32_32k = 5;
+                v1.Jb_Nyss_36_16k = 22;
+                v1.Jb_Nyss_36_32k = 45;
+                v1.Jb_Nysis_32_16k = 18;
+                v1.Jb_Nysis_32_32k = 15;
+                v1.Jb_Nysis_36_16k = 7;
+                v1.Jb_Nysis_36_32k = 77;
+                v1.Jb_Ds_32_16k = 30;
+                v1.Jb_Ds_32_32k = 88;
+                v1.Gbt_16k = 1;
+                v1.Gbt_32k = 3;
+                v1.Ywfy_Jz = 33;
+                v1.Ywfy_Zs = 81;
+                v1.Wlfy = 21;
+                v1.Sf = 55;
+                v1.Zzxh = 91;
+                v2.Fmsjz = 22;
+                v2.Fmnpz = 38;
+                v2.Nybsz = 62;
+                v2.Nygbz = 31;
+                v2.Qmd_Nyds_32_16k = 20;
+                v2.Qmd_Nyds_32_32k = 32;
+                v2.Qmd_Nyds_36_16k = 61;
+                v2.Qmd_Nyds_36_32k = 63;
+                v2.Qmd_Nyss_32_16k = 23;
+                v2.Qmd_Nyss_32_32k = 31;
+                v2.Qmd_Nyss_36_16k = 4;
+                v2.Qmd_Nyss_36_32k = 98;
+                v2.Qmd_Nysis_32_16k = 97;
+                v2.Qmd_Nysis_32_32k = 15;
+                v2.Qmd_Nysis_36_16k = 94;
+                v2.Qmd_Nysis_36_32k = 20;
+                v2.Jb_Nyds_32_16k = 8;
+                v2.Jb_Nyds_32_32k = 94;
+                v2.Jb_Nyds_36_16k = 42;
+                v2.Jb_Nyds_36_32k = 56;
+                v2.Jb_Nyss_32_16k = 75;
+                v2.Jb_Nyss_32_32k = 74;
+                v2.Jb_Nyss_36_16k = 45;
+                v2.Jb_Nyss_36_32k = 68;
+                v2.Jb_Nysis_32_16k = 57;
+                v2.Jb_Nysis_32_32k = 78;
+                v2.Jb_Nysis_36_16k = 45;
+                v2.Jb_Nysis_36_32k = 42;
+                v2.Jb_Ds_32_16k = 65;
+                v2.Jb_Ds_32_32k = 61;
+                v2.Gbt_16k = 23;
+                v2.Gbt_32k = 0;
+                v2.Ywfy_Jz = 63;
+                v2.Ywfy_Zs = 2;
+                v2.Wlfy = 46;
+                v2.Sf = 7;
+                v2.Zzxh = 62;
+                context.Set<PriceSetting>().Add(v1);
+                context.Set<PriceSetting>().Add(v2);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
+            Assert.IsInstanceOfType(rv.Model, typeof(PriceSettingBatchVM));
+
+            PriceSettingBatchVM vm = rv.Model as PriceSettingBatchVM;
+            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
+            
+            vm.FC = new Dictionary<string, object>();
+			
+            _controller.DoBatchEdit(vm, null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data1 = context.Set<PriceSetting>().Find(v1.ID);
+                var data2 = context.Set<PriceSetting>().Find(v2.ID);
+ 				
+                Assert.AreEqual(data1.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data1.UpdateTime.Value).Seconds < 10);
+                Assert.AreEqual(data2.UpdateBy, "user");
+                Assert.IsTrue(DateTime.Now.Subtract(data2.UpdateTime.Value).Seconds < 10);
+            }
+        }
+
+
+        [TestMethod]
+        public void BatchDeleteTest()
+        {
+            PriceSetting v1 = new PriceSetting();
+            PriceSetting v2 = new PriceSetting();
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+				
+                v1.Fmsjz = 63;
+                v1.Fmnpz = 96;
+                v1.Nybsz = 31;
+                v1.Nygbz = 8;
+                v1.Qmd_Nyds_32_16k = 56;
+                v1.Qmd_Nyds_32_32k = 56;
+                v1.Qmd_Nyds_36_16k = 71;
+                v1.Qmd_Nyds_36_32k = 81;
+                v1.Qmd_Nyss_32_16k = 77;
+                v1.Qmd_Nyss_32_32k = 41;
+                v1.Qmd_Nyss_36_16k = 41;
+                v1.Qmd_Nyss_36_32k = 10;
+                v1.Qmd_Nysis_32_16k = 31;
+                v1.Qmd_Nysis_32_32k = 18;
+                v1.Qmd_Nysis_36_16k = 26;
+                v1.Qmd_Nysis_36_32k = 30;
+                v1.Jb_Nyds_32_16k = 30;
+                v1.Jb_Nyds_32_32k = 59;
+                v1.Jb_Nyds_36_16k = 56;
+                v1.Jb_Nyds_36_32k = 7;
+                v1.Jb_Nyss_32_16k = 59;
+                v1.Jb_Nyss_32_32k = 5;
+                v1.Jb_Nyss_36_16k = 22;
+                v1.Jb_Nyss_36_32k = 45;
+                v1.Jb_Nysis_32_16k = 18;
+                v1.Jb_Nysis_32_32k = 15;
+                v1.Jb_Nysis_36_16k = 7;
+                v1.Jb_Nysis_36_32k = 77;
+                v1.Jb_Ds_32_16k = 30;
+                v1.Jb_Ds_32_32k = 88;
+                v1.Gbt_16k = 1;
+                v1.Gbt_32k = 3;
+                v1.Ywfy_Jz = 33;
+                v1.Ywfy_Zs = 81;
+                v1.Wlfy = 21;
+                v1.Sf = 55;
+                v1.Zzxh = 91;
+                v2.Fmsjz = 22;
+                v2.Fmnpz = 38;
+                v2.Nybsz = 62;
+                v2.Nygbz = 31;
+                v2.Qmd_Nyds_32_16k = 20;
+                v2.Qmd_Nyds_32_32k = 32;
+                v2.Qmd_Nyds_36_16k = 61;
+                v2.Qmd_Nyds_36_32k = 63;
+                v2.Qmd_Nyss_32_16k = 23;
+                v2.Qmd_Nyss_32_32k = 31;
+                v2.Qmd_Nyss_36_16k = 4;
+                v2.Qmd_Nyss_36_32k = 98;
+                v2.Qmd_Nysis_32_16k = 97;
+                v2.Qmd_Nysis_32_32k = 15;
+                v2.Qmd_Nysis_36_16k = 94;
+                v2.Qmd_Nysis_36_32k = 20;
+                v2.Jb_Nyds_32_16k = 8;
+                v2.Jb_Nyds_32_32k = 94;
+                v2.Jb_Nyds_36_16k = 42;
+                v2.Jb_Nyds_36_32k = 56;
+                v2.Jb_Nyss_32_16k = 75;
+                v2.Jb_Nyss_32_32k = 74;
+                v2.Jb_Nyss_36_16k = 45;
+                v2.Jb_Nyss_36_32k = 68;
+                v2.Jb_Nysis_32_16k = 57;
+                v2.Jb_Nysis_32_32k = 78;
+                v2.Jb_Nysis_36_16k = 45;
+                v2.Jb_Nysis_36_32k = 42;
+                v2.Jb_Ds_32_16k = 65;
+                v2.Jb_Ds_32_32k = 61;
+                v2.Gbt_16k = 23;
+                v2.Gbt_32k = 0;
+                v2.Ywfy_Jz = 63;
+                v2.Ywfy_Zs = 2;
+                v2.Wlfy = 46;
+                v2.Sf = 7;
+                v2.Zzxh = 62;
+                context.Set<PriceSetting>().Add(v1);
+                context.Set<PriceSetting>().Add(v2);
+                context.SaveChanges();
+            }
+
+            PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
+            Assert.IsInstanceOfType(rv.Model, typeof(PriceSettingBatchVM));
+
+            PriceSettingBatchVM vm = rv.Model as PriceSettingBatchVM;
+            vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() };
+            _controller.DoBatchDelete(vm, null);
+
+            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
+            {
+                var data1 = context.Set<PriceSetting>().Find(v1.ID);
+                var data2 = context.Set<PriceSetting>().Find(v2.ID);
+                Assert.AreEqual(data1, null);
+            Assert.AreEqual(data2, null);
+            }
+        }
+
+        [TestMethod]
+        public void ExportTest()
+        {
+            PartialViewResult rv = (PartialViewResult)_controller.Index();
+            Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM<TopBasePoco, BaseSearcher>));
+            IActionResult rv2 = _controller.ExportExcel(rv.Model as PriceSettingListVM);
+            Assert.IsTrue((rv2 as FileContentResult).FileContents.Length > 0);
+        }
+
+
+    }
+}
diff --git a/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoBatchVM.cs b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoBatchVM.cs
new file mode 100644
index 0000000..feb153a
--- /dev/null
+++ b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoBatchVM.cs
@@ -0,0 +1,35 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+
+
+namespace cy_scdz.ViewModel.BidOrder.OrderInfoVMs
+{
+    public partial class OrderInfoBatchVM : BaseBatchVM<OrderInfo, OrderInfo_BatchEdit>
+    {
+        public OrderInfoBatchVM()
+        {
+            ListVM = new OrderInfoListVM();
+            LinkedVM = new OrderInfo_BatchEdit();
+        }
+
+    }
+
+	/// <summary>
+    /// Class to define batch edit fields
+    /// </summary>
+    public class OrderInfo_BatchEdit : BaseVM
+    {
+
+        protected override void InitVM()
+        {
+        }
+
+    }
+
+}
diff --git a/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoImportVM.cs b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoImportVM.cs
new file mode 100644
index 0000000..c1a82e4
--- /dev/null
+++ b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoImportVM.cs
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+
+
+namespace cy_scdz.ViewModel.BidOrder.OrderInfoVMs
+{
+    public partial class OrderInfoTemplateVM : BaseTemplateVM
+    {
+
+	    protected override void InitVM()
+        {
+        }
+
+    }
+
+    public class OrderInfoImportVM : BaseImportVM<OrderInfoTemplateVM, OrderInfo>
+    {
+
+    }
+
+}
diff --git a/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoListVM.cs b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoListVM.cs
new file mode 100644
index 0000000..a858ed3
--- /dev/null
+++ b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoListVM.cs
@@ -0,0 +1,118 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using System.ComponentModel.DataAnnotations;
+using cy_scdz.Model.Oder;
+using cy_scdz.Model.Set;
+using System.Text;
+
+namespace cy_scdz.ViewModel.BidOrder.OrderInfoVMs
+{
+    public partial class OrderInfoListVM : BasePagedListVM<OrderInfo_View, OrderInfoSearcher>        
+    {
+
+        public override void AfterDoSearcher()
+        {
+            for (int i = 0; i < EntityList.Count; i++)
+            {
+                EntityList[i].Index = i+1;
+            }
+            base.AfterDoSearcher();
+        }
+        protected override List<GridAction> InitGridAction()
+        {
+            return new List<GridAction>
+            {
+                this.MakeStandardAction("OrderInfo", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"BidOrder", dialogWidth: 1440),
+                this.MakeStandardAction("OrderInfo", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "BidOrder", dialogWidth: 1440),
+                this.MakeStandardAction("OrderInfo", GridActionStandardTypesEnum.Delete, Localizer["Sys.Delete"], "BidOrder", dialogWidth: 800),
+                this.MakeStandardAction("OrderInfo", GridActionStandardTypesEnum.Details, Localizer["Sys.Details"], "BidOrder", dialogWidth: 800),
+
+            };
+        }
+
+
+        protected override IEnumerable<IGridColumn<OrderInfo_View>> InitGridHeader()
+        {
+            return new List<GridColumn<OrderInfo_View>>{
+                     this.MakeGridHeader(x => x.Index).SetWidth(20).SetHeader(" "),
+                this.MakeGridHeader(x => x.Title),
+              
+                this.MakeGridHeader(x => x.WinBidTime),
+                this.MakeGridHeader(x => x.Name_view),
+                this.MakeGridHeader(x => x.BidMoney),
+                this.MakeGridHeader(x => x.Name_view2),
+                this.MakeGridHeader(x => x.Name_view3),
+                  this.MakeGridHeader(x => x.Productions).SetFormat(showProductions).SetHeader("鍓╀綑瀛︽湡"),
+                this.MakeGridHeaderAction(width: 200)
+            };
+        }
+        private string showProductions(OrderInfo_View entity, object obj)
+        {
+      var list=      entity.Productions.Where(x => x.IsOver == false).ToList();
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < list.Count; i++) {
+                sb.Append("<p>").Append(list[i].DeliveryTime.ToString("yyyy")+" "+ list[i].Chunqiuji.GetEnumDisplayName()+" "
+                    +  UIService.MakeButton(ButtonTypesEnum.Link, "BidOrder/OrderInfo/CompleteProduction?id=" + list[i].ID.ToString(), "鐢熶骇", 1440, null, title: "璇︽儏")
+                    
+                    ).Append("</p>");
+            }
+            return sb.ToString();
+          
+           
+
+           // return UIService.MakeButton(ButtonTypesEnum.Link, "user/FrameworkUser/Details?id=" + entity.ParentITCode.ID.ToString(), entity.ParentITCode.Name.ToString(), 1024, null, title: "璇︽儏", Toptitle: "鏌ョ湅璇︽儏");
+        }
+        public override IOrderedQueryable<OrderInfo_View> GetSearchQuery()
+        {
+            var query = DC.Set<OrderInfo>().Include(x=>x.Productions)
+                .CheckContain(Searcher.Title, x=>x.Title)
+                .CheckBetween(Searcher.WinBidTime?.GetStartTime(), Searcher.WinBidTime?.GetEndTime(), x => x.WinBidTime, includeMax: false)
+                .CheckEqual(Searcher.SupplierId, x=>x.SupplierId)
+                .CheckEqual(Searcher.BidTypeId, x=>x.BidTypeId)
+                .Select(x => new OrderInfo_View
+                {
+				    ID = x.ID,
+                    Title = x.Title,
+                    WinBidTime = x.WinBidTime,
+                    Name_view = x.Semester.Name,
+                    BidMoney = x.BidMoney,
+                    Productions=x.Productions,
+                    Name_view2 = x.Supplier.Name,
+                    Name_view3 = x.BidType.Name,
+                    CreateTime=x.CreateTime
+                })
+                .OrderByDescending(x => x.CreateTime);
+            return query;
+        }
+
+    }
+
+    public class OrderInfo_View : OrderInfo{
+        /// <summary>
+        /// 搴忓彿
+        /// </summary>
+        [Display(Name = "搴忓彿")]
+        public int Index { get; set; }
+        /// <summary>
+        /// 渚涜揣瀛︽湡
+        /// </summary>
+        [Display(Name = "渚涜揣瀛︽湡")]
+        public String Name_view { get; set; }
+        /// <summary>
+        /// 涓爣渚涘簲鍟�
+        /// </summary>
+        [Display(Name = "涓爣渚涘簲鍟�")]
+        public String Name_view2 { get; set; }
+        /// <summary>
+        /// 璁㈠崟绫诲埆
+        /// </summary>
+        [Display(Name = "璁㈠崟绫诲埆")]
+        public String Name_view3 { get; set; }
+
+    }
+}
diff --git a/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoSearcher.cs b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoSearcher.cs
new file mode 100644
index 0000000..9b1533d
--- /dev/null
+++ b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoSearcher.cs
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+using cy_scdz.Model.Set;
+using Microsoft.EntityFrameworkCore;
+
+namespace cy_scdz.ViewModel.BidOrder.OrderInfoVMs
+{
+    public partial class OrderInfoSearcher : BaseSearcher
+    {
+        [Display(Name = "椤圭洰鍚嶇О")]
+        public String Title { get; set; }
+        [Display(Name = "涓爣鏃堕棿")]
+        public DateRange WinBidTime { get; set; } = new DateRange(DateTime.Now.AddYears(-2), DateTime.Now);
+        public List<ComboSelectListItem> AllSuppliers { get; set; }
+        [Display(Name = "涓爣渚涘簲鍟�")]
+        public Guid? SupplierId { get; set; }
+        public List<ComboSelectListItem> AllBidTypes { get; set; }
+        [Display(Name = "璁㈠崟绫诲埆")]
+        public Guid? BidTypeId { get; set; }
+
+        protected override void InitVM()
+        {
+            AllSuppliers = DC.Set<Dictionary>().Include(x=>x.Parent).Where(x=>x.Parent.Key=="zbgys").GetSelectListItems(Wtm, y => y.Name);
+            AllBidTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "ddlb").GetSelectListItems(Wtm, y => y.Name);
+        }
+
+    }
+}
diff --git a/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoVM.cs b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoVM.cs
new file mode 100644
index 0000000..aa518ff
--- /dev/null
+++ b/cy_scdz.ViewModel/BidOrder/OrderInfoVMs/OrderInfoVM.cs
@@ -0,0 +1,199 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.ComponentModel.DataAnnotations;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+using cy_scdz.Model.Set;
+using Microsoft.EntityFrameworkCore;
+using utils;
+using Microsoft.AspNetCore.Http;
+using System.Globalization;
+using NPOI.SS.Formula.Functions;
+
+namespace cy_scdz.ViewModel.BidOrder.OrderInfoVMs
+{
+    public partial class OrderInfoVM : BaseCRUDVM<OrderInfo>
+    {
+        /// <summary>
+        /// 渚涜揣瀛︽湡
+        /// </summary>
+        public List<ComboSelectListItem> AllSemesters { get; set; }
+        /// <summary>
+        /// 渚涘簲鍟�
+        /// </summary>
+        public List<ComboSelectListItem> AllSuppliers { get; set; }
+        /// <summary>
+        /// 璁㈠崟绫诲埆
+        /// </summary>
+        public List<ComboSelectListItem> AllBidTypes { get; set; }
+        /// <summary>
+        /// 灏侀潰绾稿紶
+        /// </summary>
+        public List<ComboSelectListItem> AllCoverPaperTypes { get; set; }
+        /// <summary>
+        /// 鍐呴〉绾稿紶
+        /// </summary>
+        public List<ComboSelectListItem> AllInnerPaperTypes { get; set; }
+        
+        /// <summary>
+        /// 鍐呴〉棰滆壊
+        /// </summary>
+        public List<ComboSelectListItem> AllColorTypes { get; set; }
+        /// <summary>
+        /// 瑁呰鏂瑰紡
+        /// </summary>
+        public List<ComboSelectListItem> AllBindingTypes { get; set; }
+
+        /// <summary>
+        /// 鍗板埛鍘�
+        /// </summary>
+        public List<ComboSelectListItem> AllManufacturers { get; set; }
+        /// <summary>
+        /// 椤电爜
+        /// </summary>
+        public List<ComboSelectListItem> AllInnerPaperCodes { get; set; }
+        /// <summary>
+        /// 鍒濆渚涜揣骞翠唤 涓轰簡闄や簡date鎺т欢骞翠唤bug
+        /// </summary>
+        [Display(Name ="鍒濆渚涜揣")]
+        [Required]
+        public string InitialDeliveryTime { set; get; }
+
+        public OrderInfoVM()
+        {
+            SetInclude(x => x.Semester);
+            SetInclude(x => x.Supplier);
+            SetInclude(x => x.BidType);
+            SetInclude(x => x.WorkbookCoverPaperType);
+            SetInclude(x => x.WorkbookInnerPaperType);
+            SetInclude(x => x.WorkbookColorType);
+            SetInclude(x => x.WorkbookBindingType);
+            SetInclude(x => x.PictureBookCoverPaperType);
+            SetInclude(x => x.PictureBookInnerPaperType);
+            SetInclude(x => x.PictureBookColorType);
+            SetInclude(x => x.PictureBookBindingType);
+            SetInclude(x => x.LargeCharacterBookCoverPaperType);
+            SetInclude(x => x.LargeCharacterBookInnerPaperType);
+            SetInclude(x => x.LargeCharacterBookColorType);
+            SetInclude(x => x.LargeCharacterBookBindingType);
+            SetInclude(x => x.OrderReceivablesStatus);
+            SetInclude(x => x.Sures);
+            SetInclude(x => x.AdvancePayments);
+            //SetInclude(x => x.LargeCharacterManufacturer);
+            //SetInclude(x => x.Workbook16KManufacturer);
+            //SetInclude(x => x.Workbook32KManufacturer);
+            //SetInclude(x => x.PictureBook16KManufacturer);
+            //SetInclude(x => x.PictureBook32KManufacturer);
+            //SetInclude(x => x.PictureBookA4KManufacturer);
+        }
+
+        protected override void InitVM()
+        {
+            AllSemesters = DC.Set<Dictionary>().Include(x=>x.Parent).Where(x=>x.Parent.Key== "ghxq").GetSelectListItems(Wtm, y => y.Name);
+            AllSuppliers = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "zbgys").GetSelectListItems(Wtm, y => y.Name);
+            AllBidTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "ddlb").GetSelectListItems(Wtm, y => y.Name);
+             AllCoverPaperTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "fmzz").GetSelectListItems(Wtm, y => y.Name);
+            AllInnerPaperTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "nyzz").GetSelectListItems(Wtm, y => y.Name);
+            AllColorTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "nyys").GetSelectListItems(Wtm, y => y.Name);
+            AllBindingTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "zdfs").GetSelectListItems(Wtm, y => y.Name);
+            AllManufacturers = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "yscs").GetSelectListItems(Wtm, y => y.Name);
+            AllInnerPaperCodes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "nyym").GetSelectListItems(Wtm, y => y.Name);
+
+            if (string.IsNullOrEmpty(Entity.Title))
+            {
+                //鏄柊寤�
+                //璁剧疆榛樿鍊�
+                Entity.SemesterId = DC.Set<Dictionary>().Where(x => x.Key == "ghxqmrz").Select(x => x.ID).SingleOrDefault();
+
+              var   WorkbookCoverPaperTypeId= DC.Set<Dictionary>().Where(x => x.Key == "fmzzmrz").Select(x => x.ID).SingleOrDefault();
+                Entity.WorkbookCoverPaperTypeId = WorkbookCoverPaperTypeId;
+                Entity.PictureBookCoverPaperTypeId = WorkbookCoverPaperTypeId;
+                Entity.LargeCharacterBookCoverPaperTypeId= WorkbookCoverPaperTypeId;
+                var WorkbookInnerPaperTypeId = DC.Set<Dictionary>().Where(x => x.Key == "nyzzmrz").Select(x => x.ID).SingleOrDefault();
+                Entity.WorkbookInnerPaperTypeId = WorkbookInnerPaperTypeId;
+                Entity.PictureBookInnerPaperTypeId = WorkbookInnerPaperTypeId;
+                Entity.LargeCharacterBookInnerPaperTypeId = WorkbookInnerPaperTypeId;
+                InitialDeliveryTime = DateTime.Now.ToString("yyyy");
+                Entity.Chunqiuji = chunqiue.chun;
+                //鐢熶骇鍘傚晢
+               var ManufacturerId = DC.Set<Dictionary>().Where(x => x.Key == "bchang").Select(x => x.ID).SingleOrDefault();
+                //Entity.Workbook32KManufacturerId = ManufacturerId;
+                //Entity.Workbook16KManufacturerId = ManufacturerId;
+                //Entity.PictureBook16KManufacturerId= ManufacturerId;
+                //Entity.PictureBook32KManufacturerId= ManufacturerId;
+                //Entity.PictureBookA4KManufacturerId = ManufacturerId;
+                //Entity.LargeCharacterManufacturerId = ManufacturerId;
+                
+
+
+            }
+            else
+            {
+                InitialDeliveryTime= Entity.InitialDeliveryTime.ToString("yyyy");
+            }
+            
+        }
+
+        public override void DoAdd()
+        {
+          var data=  DC.Set<Dictionary>().Where(x => x.ID == Entity.SemesterId).Select(x => x.Value).SingleOrDefault();
+            var SemesterCount = data?.ToInt32();
+            int year = InitialDeliveryTime.ToInt32();
+            if(year<1000)
+            {
+                MSD.AddModelError("InitialDeliveryTime", "鍒濆渚涜揣骞翠唤閫夋嫨閿欒");
+                return;
+            }
+
+            Entity.InitialDeliveryTime = new DateTime(year, Entity.Chunqiuji == chunqiue.chun?1:7, 1);
+            var ProductionTime = Entity.InitialDeliveryTime;
+            using (var tr = DC.BeginTransaction())
+            {
+                DC.AddEntity(Entity);
+
+                ///鍒涘缓璁㈠崟
+                for (int i = 0; i < SemesterCount; i++)
+                {
+                    var oder = new OrderProduction
+                    {
+                        CreateTime = DateTime.Now,
+                        CreateBy = Wtm.LoginUserInfo.ITCode,
+                        OderId = Entity.ID,
+                        DeliveryTime = ProductionTime,
+                        Chunqiuji = ProductionTime.Month >= 6 ? chunqiue.qiu : chunqiue.chun
+
+                    };
+                    DC.AddEntity<OrderProduction>(oder);
+                    ProductionTime= ProductionTime.AddMonths(6);
+                }
+                DC.SaveChanges();
+                if(MSD.IsValid)
+                {
+                    tr.Commit();
+                }
+                else
+                { tr.Rollback(); }  
+            }
+            //base.DoAdd();
+        }
+
+        public override void DoEdit(bool updateAllFields = false)
+        {
+            base.DoEdit(updateAllFields);
+        }
+
+        public override void DoDelete()
+        {
+            base.DoDelete();
+        }
+
+      
+        //private List<OrderProduction> CreatProduction(DateTime ProductionTime,Guid OderId)
+        //{
+
+        //}
+    }
+}
diff --git a/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionBatchVM.cs b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionBatchVM.cs
new file mode 100644
index 0000000..1da06ed
--- /dev/null
+++ b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionBatchVM.cs
@@ -0,0 +1,35 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+
+
+namespace cy_scdz.ViewModel.Order.OrderProductionVMs
+{
+    public partial class OrderProductionBatchVM : BaseBatchVM<OrderProduction, OrderProduction_BatchEdit>
+    {
+        public OrderProductionBatchVM()
+        {
+            ListVM = new OrderProductionListVM();
+            LinkedVM = new OrderProduction_BatchEdit();
+        }
+
+    }
+
+	/// <summary>
+    /// Class to define batch edit fields
+    /// </summary>
+    public class OrderProduction_BatchEdit : BaseVM
+    {
+
+        protected override void InitVM()
+        {
+        }
+
+    }
+
+}
diff --git a/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionImportVM.cs b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionImportVM.cs
new file mode 100644
index 0000000..e35b279
--- /dev/null
+++ b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionImportVM.cs
@@ -0,0 +1,75 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+
+
+namespace cy_scdz.ViewModel.Order.OrderProductionVMs
+{
+    public partial class OrderProductionTemplateVM : BaseTemplateVM
+    {
+        [Display(Name = "椤圭洰")]
+        public ExcelPropety Oder_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.OderId);
+        [Display(Name = "16K浣滀笟鏈�")]
+        public ExcelPropety Workbook16KCount_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Workbook16KCount);
+        [Display(Name = "16K浣滀笟鏈崟浠�")]
+        public ExcelPropety Workbook16KPrice_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Workbook16KPrice);
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        public ExcelPropety Workbook16KManufacturerId_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Workbook16KManufacturerId);
+        [Display(Name = "32K浣滀笟鏈�")]
+        public ExcelPropety Workbook32KCount_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Workbook32KCount);
+        [Display(Name = "16K浣滀笟鏈崟浠�")]
+        public ExcelPropety Workbook32KPrice_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Workbook32KPrice);
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        public ExcelPropety Workbook32KManufacturerId_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Workbook32KManufacturerId);
+        [Display(Name = "16K鍥剧敾鏈�")]
+        public ExcelPropety PictureBook16KCount_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBook16KCount);
+        [Display(Name = "16K浣滀笟鏈崟浠�")]
+        public ExcelPropety PictureBook16KPrice_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBook16KPrice);
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        public ExcelPropety PictureBook16KManufacturerId_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBook16KManufacturerId);
+        [Display(Name = "32K鍥剧敾鏈�")]
+        public ExcelPropety PictureBook32KCount_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBook32KCount);
+        [Display(Name = "32K鍥剧敾鏈崟浠�")]
+        public ExcelPropety PictureBook32KPrice_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBook32KPrice);
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        public ExcelPropety PictureBook32KManufacturerId_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBook32KManufacturerId);
+        [Display(Name = "A4鍥剧敾鏈�")]
+        public ExcelPropety PictureBookA4Count_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBookA4Count);
+        [Display(Name = "16K浣滀笟鏈崟浠�")]
+        public ExcelPropety PictureBookA4KPrice_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBookA4KPrice);
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        public ExcelPropety PictureBookA4KManufacturerId_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.PictureBookA4KManufacturerId);
+        [Display(Name = "澶у瓧鏈�")]
+        public ExcelPropety LargeCharacterBookCount_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.LargeCharacterBookCount);
+        [Display(Name = "澶у瓧鏈崟浠�")]
+        public ExcelPropety LargeCharacterPrice_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.LargeCharacterPrice);
+        [Display(Name = "鐢熶骇鍘傚晢")]
+        public ExcelPropety LargeCharacterManufacturerIds_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.LargeCharacterManufacturerIds);
+        [Display(Name = "鏍囨敞")]
+        public ExcelPropety Mark_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Mark);
+        [Display(Name = "渚涜揣骞翠唤")]
+        public ExcelPropety DeliveryTime_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.DeliveryTime);
+        [Display(Name = "渚涜揣瀛︽湡")]
+        public ExcelPropety Chunqiuji_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.Chunqiuji);
+        [Display(Name = "鏄惁瀹岀粨")]
+        public ExcelPropety IsOver_Excel = ExcelPropety.CreateProperty<OrderProduction>(x => x.IsOver);
+
+	    protected override void InitVM()
+        {
+            Oder_Excel.DataType = ColumnDataType.ComboBox;
+            Oder_Excel.ListItems = DC.Set<OrderInfo>().GetSelectListItems(Wtm, y => y.Title);
+        }
+
+    }
+
+    public class OrderProductionImportVM : BaseImportVM<OrderProductionTemplateVM, OrderProduction>
+    {
+
+    }
+
+}
diff --git a/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionListVM.cs b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionListVM.cs
new file mode 100644
index 0000000..f8ddecd
--- /dev/null
+++ b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionListVM.cs
@@ -0,0 +1,103 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using System.ComponentModel.DataAnnotations;
+using cy_scdz.Model.Oder;
+
+
+namespace cy_scdz.ViewModel.Order.OrderProductionVMs
+{
+    public partial class OrderProductionListVM : BasePagedListVM<OrderProduction_View, OrderProductionSearcher>
+    {
+        protected override List<GridAction> InitGridAction()
+        {
+            return new List<GridAction>
+            {
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.Delete, Localizer["Sys.Delete"], "Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.Details, Localizer["Sys.Details"], "Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.BatchEdit, Localizer["Sys.BatchEdit"], "Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "Order", dialogWidth: 800),
+                this.MakeStandardAction("OrderProduction", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "Order"),
+            };
+        }
+
+
+        protected override IEnumerable<IGridColumn<OrderProduction_View>> InitGridHeader()
+        {
+            return new List<GridColumn<OrderProduction_View>>{
+                this.MakeGridHeader(x => x.Title_view),
+                this.MakeGridHeader(x => x.Workbook16KCount),
+                this.MakeGridHeader(x => x.Workbook16KPrice),
+                this.MakeGridHeader(x => x.Workbook16KManufacturerId),
+                this.MakeGridHeader(x => x.Workbook32KCount),
+                this.MakeGridHeader(x => x.Workbook32KPrice),
+                this.MakeGridHeader(x => x.Workbook32KManufacturerId),
+                this.MakeGridHeader(x => x.PictureBook16KCount),
+                this.MakeGridHeader(x => x.PictureBook16KPrice),
+                this.MakeGridHeader(x => x.PictureBook16KManufacturerId),
+                this.MakeGridHeader(x => x.PictureBook32KCount),
+                this.MakeGridHeader(x => x.PictureBook32KPrice),
+                this.MakeGridHeader(x => x.PictureBook32KManufacturerId),
+                this.MakeGridHeader(x => x.PictureBookA4Count),
+                this.MakeGridHeader(x => x.PictureBookA4KPrice),
+                this.MakeGridHeader(x => x.PictureBookA4KManufacturerId),
+                this.MakeGridHeader(x => x.LargeCharacterBookCount),
+                this.MakeGridHeader(x => x.LargeCharacterPrice),
+                this.MakeGridHeader(x => x.LargeCharacterManufacturerIds),
+                this.MakeGridHeader(x => x.Mark),
+                this.MakeGridHeader(x => x.DeliveryTime),
+                this.MakeGridHeader(x => x.Chunqiuji),
+                this.MakeGridHeader(x => x.IsOver),
+                this.MakeGridHeaderAction(width: 200)
+            };
+        }
+
+        public override IOrderedQueryable<OrderProduction_View> GetSearchQuery()
+        {
+            var query = DC.Set<OrderProduction>()
+                .Select(x => new OrderProduction_View
+                {
+				    ID = x.ID,
+                    Title_view = x.Oder.Title,
+                    Workbook16KCount = x.Workbook16KCount,
+                    Workbook16KPrice = x.Workbook16KPrice,
+                    Workbook16KManufacturerId = x.Workbook16KManufacturerId,
+                    Workbook32KCount = x.Workbook32KCount,
+                    Workbook32KPrice = x.Workbook32KPrice,
+                    Workbook32KManufacturerId = x.Workbook32KManufacturerId,
+                    PictureBook16KCount = x.PictureBook16KCount,
+                    PictureBook16KPrice = x.PictureBook16KPrice,
+                    PictureBook16KManufacturerId = x.PictureBook16KManufacturerId,
+                    PictureBook32KCount = x.PictureBook32KCount,
+                    PictureBook32KPrice = x.PictureBook32KPrice,
+                    PictureBook32KManufacturerId = x.PictureBook32KManufacturerId,
+                    PictureBookA4Count = x.PictureBookA4Count,
+                    PictureBookA4KPrice = x.PictureBookA4KPrice,
+                    PictureBookA4KManufacturerId = x.PictureBookA4KManufacturerId,
+                    LargeCharacterBookCount = x.LargeCharacterBookCount,
+                    LargeCharacterPrice = x.LargeCharacterPrice,
+                    LargeCharacterManufacturerIds = x.LargeCharacterManufacturerIds,
+                    Mark = x.Mark,
+                    DeliveryTime = x.DeliveryTime,
+                    Chunqiuji = x.Chunqiuji,
+                    IsOver = x.IsOver,
+                })
+                .OrderBy(x => x.ID);
+            return query;
+        }
+
+    }
+
+    public class OrderProduction_View : OrderProduction{
+        [Display(Name = "椤圭洰鍚嶇О")]
+        public String Title_view { get; set; }
+
+    }
+}
diff --git a/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionSearcher.cs b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionSearcher.cs
new file mode 100644
index 0000000..ec56d8b
--- /dev/null
+++ b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionSearcher.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+
+
+namespace cy_scdz.ViewModel.Order.OrderProductionVMs
+{
+    public partial class OrderProductionSearcher : BaseSearcher
+    {
+
+        protected override void InitVM()
+        {
+        }
+
+    }
+}
diff --git a/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionVM.cs b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionVM.cs
new file mode 100644
index 0000000..4c9d79a
--- /dev/null
+++ b/cy_scdz.ViewModel/Order/OrderProductionVMs/OrderProductionVM.cs
@@ -0,0 +1,236 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.ComponentModel.DataAnnotations;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Oder;
+using cy_scdz.Model.Set;
+using Microsoft.EntityFrameworkCore;
+using NPOI.SS.Formula.Functions;
+
+namespace cy_scdz.ViewModel.Order.OrderProductionVMs
+{
+    public partial class OrderProductionVM : BaseCRUDVM<OrderProduction>
+    {
+
+        /// <summary>
+        /// 渚涜揣瀛︽湡
+        /// </summary>
+        public List<ComboSelectListItem> AllSemesters { get; set; }
+        /// <summary>
+        /// 渚涘簲鍟�
+        /// </summary>
+        public List<ComboSelectListItem> AllSuppliers { get; set; }
+        /// <summary>
+        /// 璁㈠崟绫诲埆
+        /// </summary>
+        public List<ComboSelectListItem> AllBidTypes { get; set; }
+        /// <summary>
+        /// 灏侀潰绾稿紶
+        /// </summary>
+        public List<ComboSelectListItem> AllCoverPaperTypes { get; set; }
+        /// <summary>
+        /// 鍐呴〉绾稿紶
+        /// </summary>
+        public List<ComboSelectListItem> AllInnerPaperTypes { get; set; }
+
+        /// <summary>
+        /// 鍐呴〉棰滆壊
+        /// </summary>
+        public List<ComboSelectListItem> AllColorTypes { get; set; }
+        /// <summary>
+        /// 瑁呰鏂瑰紡
+        /// </summary>
+        public List<ComboSelectListItem> AllBindingTypes { get; set; }
+
+        /// <summary>
+        /// 鍗板埛鍘�
+        /// </summary>
+        public List<ComboSelectListItem> AllManufacturers { get; set; }
+        /// <summary>
+        /// 椤电爜
+        /// </summary>
+        public List<ComboSelectListItem> AllInnerPaperCodes { get; set; }
+
+        public List<ComboSelectListItem> AllOders { get; set; }
+
+        /// <summary>
+        /// 褰撳墠瀛︽湡
+        /// </summary>
+        [Display(Name ="褰撳墠瀛︽湡")]
+        public string Delivery { get;set; }
+        /// <summary>
+        /// 璁㈠崟绫诲瀷
+        /// </summary>
+        [Display(Name ="璁㈠崟绫诲瀷")]
+        public string BidType { get;set; }
+        /// <summary>
+        /// 瀛︽湡鎬绘暟
+        /// </summary>
+        [Display(Name = "瀛︽湡鎬绘暟")]
+        public string Semester { get;set; }
+        /// <summary>
+        /// 涓爣渚涘簲鍟�
+        /// </summary>
+        [Display(Name = "涓爣渚涘簲鍟�")]
+        public string Supplier { get;set; }
+        /// <summary>
+        /// 浣滀笟鏈皝闈㈢焊寮�
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        public string WorkbookCoverPaperType { get;set; }
+        /// <summary>
+        /// 浣滀笟鏈唴椤电焊寮�
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public string WorkbookInnerPaperTyp { get; set; }
+
+
+        /// <summary>
+        /// 浣滀笟鏈唴椤甸〉鐮�
+        /// </summary>
+        [Display(Name = "鍐呴〉椤电爜")]
+        public string WorkbookInnerPageCode { get; set; }
+
+        /// <summary>
+        /// 浣滀笟鏈唴椤甸鑹�
+        /// </summary>
+        [Display(Name = "鍐呴〉棰滆壊")]
+        public string WorkbookColorType { get; set; }
+        /// <summary>
+        /// 浣滀笟鏈璁㈡柟寮�
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        public string WorkbookBindingType { get; set; }
+
+
+        /// <summary>
+        /// 鍥剧敾鏈皝闈㈢焊寮�
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        public string PictureBookCoverPaperType { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈唴椤电焊寮�
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public string PictureBookInnerPaperTyp { get; set; }
+
+
+        /// <summary>
+        /// 鍥剧敾鏈唴椤甸〉鐮�
+        /// </summary>
+        [Display(Name = "鍐呴〉椤电爜")]
+        public string PictureBookInnerPageCode { get; set; }
+
+        /// <summary>
+        /// 鍥剧敾鏈唴椤甸鑹�
+        /// </summary>
+        [Display(Name = "鍐呴〉棰滆壊")]
+        public string PictureBookColorType { get; set; }
+        /// <summary>
+        /// 鍥剧敾鏈璁㈡柟寮�
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        public string PictureBookBindingType { get; set; }
+
+
+        /// <summary>
+        /// 澶у瓧鏈皝闈㈢焊寮�
+        /// </summary>
+        [Display(Name = "灏侀潰绾稿紶")]
+        public string LargeCharacterBookCoverPaperType { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈唴椤电焊寮�
+        /// </summary>
+        [Display(Name = "鍐呴〉绾稿紶")]
+        public string LargeCharacterBookInnerPaperTyp { get; set; }
+
+
+        /// <summary>
+        /// 澶у瓧鏈唴椤甸〉鐮�
+        /// </summary>
+        [Display(Name = "鍐呴〉椤电爜")]
+        public string LargeCharacterBookInnerPageCode { get; set; }
+
+        /// <summary>
+        /// 澶у瓧鏈唴椤甸鑹�
+        /// </summary>
+        [Display(Name = "鍐呴〉棰滆壊")]
+        public string LargeCharacterBookColorType { get; set; }
+        /// <summary>
+        /// 澶у瓧鏈璁㈡柟寮�
+        /// </summary>
+        [Display(Name = "瑁呰鏂瑰紡")]
+        public string LargeCharacterBookBindingType { get; set; }
+            
+              
+        
+        public OrderProductionVM()
+        {
+            SetInclude(x => x.Oder);
+            SetInclude(x => x.Oder.Semester);
+            SetInclude(x => x.Oder.Supplier);
+            SetInclude(x => x.Oder.BidType);
+            SetInclude(x => x.Oder.WorkbookCoverPaperType);
+            SetInclude(x => x.Oder.WorkbookInnerPaperType);
+            SetInclude(x => x.Oder.WorkbookColorType);
+            SetInclude(x => x.Oder.WorkbookBindingType);
+            SetInclude(x => x.Oder.PictureBookCoverPaperType);
+            SetInclude(x => x.Oder.PictureBookInnerPaperType);
+            SetInclude(x => x.Oder.PictureBookColorType);
+            SetInclude(x => x.Oder.PictureBookBindingType);
+            SetInclude(x => x.Oder.LargeCharacterBookCoverPaperType);
+            SetInclude(x => x.Oder.LargeCharacterBookInnerPaperType);
+            SetInclude(x => x.Oder.LargeCharacterBookColorType);
+            SetInclude(x => x.Oder.LargeCharacterBookBindingType);
+            SetInclude(x => x.Oder.OrderReceivablesStatus);
+            SetInclude(x => x.Oder.Sures);
+            SetInclude(x => x.Oder.AdvancePayments);
+        }
+
+        protected override void InitVM()
+        {
+            AllOders = DC.Set<OrderInfo>().GetSelectListItems(Wtm, y => y.Title);
+            AllSemesters = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "ghxq").GetSelectListItems(Wtm, y => y.Name);
+            AllSuppliers = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "zbgys").GetSelectListItems(Wtm, y => y.Name);
+            AllBidTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "ddlb").GetSelectListItems(Wtm, y => y.Name);
+            AllCoverPaperTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "fmzz").GetSelectListItems(Wtm, y => y.Name);
+            AllInnerPaperTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "nyzz").GetSelectListItems(Wtm, y => y.Name);
+            AllColorTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "nyys").GetSelectListItems(Wtm, y => y.Name);
+            AllBindingTypes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "zdfs").GetSelectListItems(Wtm, y => y.Name);
+            AllManufacturers = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "yscs").GetSelectListItems(Wtm, y => y.Name);
+            AllInnerPaperCodes = DC.Set<Dictionary>().Include(x => x.Parent).Where(x => x.Parent.Key == "nyym").GetSelectListItems(Wtm, y => y.Name);
+            if(!string.IsNullOrEmpty( Entity.Oder.Title))
+            {
+                Delivery= Entity.DeliveryTime.ToString("yyyy")+"骞� "+Entity.Chunqiuji.GetEnumDisplayName();
+                Semester = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.SemesterId).Select(x => x.Name).FirstOrDefault();
+                Supplier = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.SupplierId).Select(x => x.Name).FirstOrDefault();
+                BidType = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.BidTypeId).Select(x => x.Name).FirstOrDefault();
+                //WorkbookCoverPaperType = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.WorkbookCoverPaperTypeId).Select(x => x.Name).FirstOrDefault();
+                //WorkbookCoverPaperType = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.WorkbookCoverPaperTypeId).Select(x => x.Name).FirstOrDefault();
+                //WorkbookCoverPaperType = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.WorkbookCoverPaperTypeId).Select(x => x.Name).FirstOrDefault();
+                //WorkbookCoverPaperType = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.WorkbookCoverPaperTypeId).Select(x => x.Name).FirstOrDefault();
+                //WorkbookCoverPaperType = DC.Set<Dictionary>().Where(x => x.ID == Entity.Oder.WorkbookCoverPaperTypeId).Select(x => x.Name).FirstOrDefault();
+
+
+            }
+        }
+
+        public override void DoAdd()
+        {           
+            base.DoAdd();
+        }
+
+        public override void DoEdit(bool updateAllFields = false)
+        {
+            base.DoEdit(updateAllFields);
+        }
+
+        public override void DoDelete()
+        {
+            base.DoDelete();
+        }
+    }
+}
diff --git a/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingBatchVM.cs b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingBatchVM.cs
new file mode 100644
index 0000000..f667b3a
--- /dev/null
+++ b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingBatchVM.cs
@@ -0,0 +1,35 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Set;
+
+
+namespace cy_scdz.ViewModel.Setting.PriceSettingVMs
+{
+    public partial class PriceSettingBatchVM : BaseBatchVM<PriceSetting, PriceSetting_BatchEdit>
+    {
+        public PriceSettingBatchVM()
+        {
+            ListVM = new PriceSettingListVM();
+            LinkedVM = new PriceSetting_BatchEdit();
+        }
+
+    }
+
+	/// <summary>
+    /// Class to define batch edit fields
+    /// </summary>
+    public class PriceSetting_BatchEdit : BaseVM
+    {
+
+        protected override void InitVM()
+        {
+        }
+
+    }
+
+}
diff --git a/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingImportVM.cs b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingImportVM.cs
new file mode 100644
index 0000000..1bcf2be
--- /dev/null
+++ b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingImportVM.cs
@@ -0,0 +1,101 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Set;
+
+
+namespace cy_scdz.ViewModel.Setting.PriceSettingVMs
+{
+    public partial class PriceSettingTemplateVM : BaseTemplateVM
+    {
+        [Display(Name = "灏侀潰鍙岃兌绾�")]
+        public ExcelPropety Fmsjz_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Fmsjz);
+        [Display(Name = "灏侀潰鐗涚毊绾�")]
+        public ExcelPropety Fmnpz_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Fmnpz);
+        [Display(Name = "鍐呴〉鏈壊绾�")]
+        public ExcelPropety Nybsz_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Nybsz);
+        [Display(Name = "鍐呴〉楂樼櫧绾�")]
+        public ExcelPropety Nygbz_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Nygbz);
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�32椤�16寮�")]
+        public ExcelPropety Qmd_Nyds_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyds_32_16k);
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�32椤�32寮�")]
+        public ExcelPropety Qmd_Nyds_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyds_32_32k);
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�")]
+        public ExcelPropety Qmd_Nyds_36_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyds_36_16k);
+        [Display(Name = "楠戦┈閽夊唴椤靛崟鑹�36-48椤�16寮�")]
+        public ExcelPropety Qmd_Nyds_36_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyds_36_32k);
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�32椤�16寮�")]
+        public ExcelPropety Qmd_Nyss_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyss_32_16k);
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�32椤�32寮�")]
+        public ExcelPropety Qmd_Nyss_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyss_32_32k);
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�36-48椤�16寮�")]
+        public ExcelPropety Qmd_Nyss_36_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyss_36_16k);
+        [Display(Name = "楠戦┈閽夊唴椤靛弻鑹�36-48椤�32寮�")]
+        public ExcelPropety Qmd_Nyss_36_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nyss_36_32k);
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�32椤�16寮�")]
+        public ExcelPropety Qmd_Nysis_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nysis_32_16k);
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�32椤�32寮�")]
+        public ExcelPropety Qmd_Nysis_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nysis_32_32k);
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�36-48椤�16寮�")]
+        public ExcelPropety Qmd_Nysis_36_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nysis_36_16k);
+        [Display(Name = "楠戦┈閽夊唴椤靛洓鑹�36-48椤�32寮�")]
+        public ExcelPropety Qmd_Nysis_36_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Qmd_Nysis_36_32k);
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊32椤�16寮�")]
+        public ExcelPropety Jb_Nyds_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyds_32_16k);
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊32椤�32寮�")]
+        public ExcelPropety Jb_Nyds_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyds_32_32k);
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�")]
+        public ExcelPropety Jb_Nyds_36_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyds_36_16k);
+        [Display(Name = "鑳跺寘鍐呴〉鍗曡壊36-48椤�16寮�")]
+        public ExcelPropety Jb_Nyds_36_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyds_36_32k);
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊32椤�16寮�")]
+        public ExcelPropety Jb_Nyss_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyss_32_16k);
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊32椤�32寮�")]
+        public ExcelPropety Jb_Nyss_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyss_32_32k);
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊36-48椤�16寮�")]
+        public ExcelPropety Jb_Nyss_36_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyss_36_16k);
+        [Display(Name = "鑳跺寘鍐呴〉鍙岃壊36-48椤�32寮�")]
+        public ExcelPropety Jb_Nyss_36_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nyss_36_32k);
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊32椤�16寮�")]
+        public ExcelPropety Jb_Nysis_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nysis_32_16k);
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊32椤�32寮�")]
+        public ExcelPropety Jb_Nysis_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nysis_32_32k);
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊36-48椤�16寮�")]
+        public ExcelPropety Jb_Nysis_36_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nysis_36_16k);
+        [Display(Name = "鑳跺寘鍐呴〉鍥涜壊36-48椤�32寮�")]
+        public ExcelPropety Jb_Nysis_36_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Nysis_36_32k);
+        [Display(Name = "鑳跺寘鍗曡壊32寮�16寮�")]
+        public ExcelPropety Jb_Ds_32_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Ds_32_16k);
+        [Display(Name = "鑳跺寘鍗曡壊32寮�32寮�")]
+        public ExcelPropety Jb_Ds_32_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Jb_Ds_32_32k);
+        [Display(Name = "瑁硅儗鏉�16寮�")]
+        public ExcelPropety Gbt_16k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Gbt_16k);
+        [Display(Name = "瑁硅儗鏉�32寮�")]
+        public ExcelPropety Gbt_32k_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Gbt_32k);
+        [Display(Name = "涓氬姟璐圭敤绔炰簤")]
+        public ExcelPropety Ywfy_Jz_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Ywfy_Jz);
+        [Display(Name = "涓氬姟璐圭敤鎶�鏈�")]
+        public ExcelPropety Ywfy_Zs_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Ywfy_Zs);
+        [Display(Name = "鐗╂祦璐圭敤")]
+        public ExcelPropety Wlfy_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Wlfy);
+        [Display(Name = "绋庤垂")]
+        public ExcelPropety Sf_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Sf);
+        [Display(Name = "绾稿紶娑堣��")]
+        public ExcelPropety Zzxh_Excel = ExcelPropety.CreateProperty<PriceSetting>(x => x.Zzxh);
+
+	    protected override void InitVM()
+        {
+        }
+
+    }
+
+    public class PriceSettingImportVM : BaseImportVM<PriceSettingTemplateVM, PriceSetting>
+    {
+
+    }
+
+}
diff --git a/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingListVM.cs b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingListVM.cs
new file mode 100644
index 0000000..c55b602
--- /dev/null
+++ b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingListVM.cs
@@ -0,0 +1,129 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using System.ComponentModel.DataAnnotations;
+using cy_scdz.Model.Set;
+
+
+namespace cy_scdz.ViewModel.Setting.PriceSettingVMs
+{
+    public partial class PriceSettingListVM : BasePagedListVM<PriceSetting_View, PriceSettingSearcher>
+    {
+        protected override List<GridAction> InitGridAction()
+        {
+            return new List<GridAction>
+            {
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.Delete, Localizer["Sys.Delete"], "Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.Details, Localizer["Sys.Details"], "Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.BatchEdit, Localizer["Sys.BatchEdit"], "Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "Setting", dialogWidth: 800),
+                this.MakeStandardAction("PriceSetting", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "Setting"),
+            };
+        }
+
+
+        protected override IEnumerable<IGridColumn<PriceSetting_View>> InitGridHeader()
+        {
+            return new List<GridColumn<PriceSetting_View>>{
+                this.MakeGridHeader(x => x.Fmsjz),
+                this.MakeGridHeader(x => x.Fmnpz),
+                this.MakeGridHeader(x => x.Nybsz),
+                this.MakeGridHeader(x => x.Nygbz),
+                this.MakeGridHeader(x => x.Qmd_Nyds_32_16k),
+                this.MakeGridHeader(x => x.Qmd_Nyds_32_32k),
+                this.MakeGridHeader(x => x.Qmd_Nyds_36_16k),
+                this.MakeGridHeader(x => x.Qmd_Nyds_36_32k),
+                this.MakeGridHeader(x => x.Qmd_Nyss_32_16k),
+                this.MakeGridHeader(x => x.Qmd_Nyss_32_32k),
+                this.MakeGridHeader(x => x.Qmd_Nyss_36_16k),
+                this.MakeGridHeader(x => x.Qmd_Nyss_36_32k),
+                this.MakeGridHeader(x => x.Qmd_Nysis_32_16k),
+                this.MakeGridHeader(x => x.Qmd_Nysis_32_32k),
+                this.MakeGridHeader(x => x.Qmd_Nysis_36_16k),
+                this.MakeGridHeader(x => x.Qmd_Nysis_36_32k),
+                this.MakeGridHeader(x => x.Jb_Nyds_32_16k),
+                this.MakeGridHeader(x => x.Jb_Nyds_32_32k),
+                this.MakeGridHeader(x => x.Jb_Nyds_36_16k),
+                this.MakeGridHeader(x => x.Jb_Nyds_36_32k),
+                this.MakeGridHeader(x => x.Jb_Nyss_32_16k),
+                this.MakeGridHeader(x => x.Jb_Nyss_32_32k),
+                this.MakeGridHeader(x => x.Jb_Nyss_36_16k),
+                this.MakeGridHeader(x => x.Jb_Nyss_36_32k),
+                this.MakeGridHeader(x => x.Jb_Nysis_32_16k),
+                this.MakeGridHeader(x => x.Jb_Nysis_32_32k),
+                this.MakeGridHeader(x => x.Jb_Nysis_36_16k),
+                this.MakeGridHeader(x => x.Jb_Nysis_36_32k),
+                this.MakeGridHeader(x => x.Jb_Ds_32_16k),
+                this.MakeGridHeader(x => x.Jb_Ds_32_32k),
+                this.MakeGridHeader(x => x.Gbt_16k),
+                this.MakeGridHeader(x => x.Gbt_32k),
+                this.MakeGridHeader(x => x.Ywfy_Jz),
+                this.MakeGridHeader(x => x.Ywfy_Zs),
+                this.MakeGridHeader(x => x.Wlfy),
+                this.MakeGridHeader(x => x.Sf),
+                this.MakeGridHeader(x => x.Zzxh),
+                this.MakeGridHeaderAction(width: 200)
+            };
+        }
+
+        public override IOrderedQueryable<PriceSetting_View> GetSearchQuery()
+        {
+            var query = DC.Set<PriceSetting>()
+                .Select(x => new PriceSetting_View
+                {
+				    ID = x.ID,
+                    Fmsjz = x.Fmsjz,
+                    Fmnpz = x.Fmnpz,
+                    Nybsz = x.Nybsz,
+                    Nygbz = x.Nygbz,
+                    Qmd_Nyds_32_16k = x.Qmd_Nyds_32_16k,
+                    Qmd_Nyds_32_32k = x.Qmd_Nyds_32_32k,
+                    Qmd_Nyds_36_16k = x.Qmd_Nyds_36_16k,
+                    Qmd_Nyds_36_32k = x.Qmd_Nyds_36_32k,
+                    Qmd_Nyss_32_16k = x.Qmd_Nyss_32_16k,
+                    Qmd_Nyss_32_32k = x.Qmd_Nyss_32_32k,
+                    Qmd_Nyss_36_16k = x.Qmd_Nyss_36_16k,
+                    Qmd_Nyss_36_32k = x.Qmd_Nyss_36_32k,
+                    Qmd_Nysis_32_16k = x.Qmd_Nysis_32_16k,
+                    Qmd_Nysis_32_32k = x.Qmd_Nysis_32_32k,
+                    Qmd_Nysis_36_16k = x.Qmd_Nysis_36_16k,
+                    Qmd_Nysis_36_32k = x.Qmd_Nysis_36_32k,
+                    Jb_Nyds_32_16k = x.Jb_Nyds_32_16k,
+                    Jb_Nyds_32_32k = x.Jb_Nyds_32_32k,
+                    Jb_Nyds_36_16k = x.Jb_Nyds_36_16k,
+                    Jb_Nyds_36_32k = x.Jb_Nyds_36_32k,
+                    Jb_Nyss_32_16k = x.Jb_Nyss_32_16k,
+                    Jb_Nyss_32_32k = x.Jb_Nyss_32_32k,
+                    Jb_Nyss_36_16k = x.Jb_Nyss_36_16k,
+                    Jb_Nyss_36_32k = x.Jb_Nyss_36_32k,
+                    Jb_Nysis_32_16k = x.Jb_Nysis_32_16k,
+                    Jb_Nysis_32_32k = x.Jb_Nysis_32_32k,
+                    Jb_Nysis_36_16k = x.Jb_Nysis_36_16k,
+                    Jb_Nysis_36_32k = x.Jb_Nysis_36_32k,
+                    Jb_Ds_32_16k = x.Jb_Ds_32_16k,
+                    Jb_Ds_32_32k = x.Jb_Ds_32_32k,
+                    Gbt_16k = x.Gbt_16k,
+                    Gbt_32k = x.Gbt_32k,
+                    Ywfy_Jz = x.Ywfy_Jz,
+                    Ywfy_Zs = x.Ywfy_Zs,
+                    Wlfy = x.Wlfy,
+                    Sf = x.Sf,
+                    Zzxh = x.Zzxh,
+                })
+                .OrderBy(x => x.ID);
+            return query;
+        }
+
+    }
+
+    public class PriceSetting_View : PriceSetting{
+
+    }
+}
diff --git a/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingSearcher.cs b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingSearcher.cs
new file mode 100644
index 0000000..3dfd976
--- /dev/null
+++ b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingSearcher.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Set;
+
+
+namespace cy_scdz.ViewModel.Setting.PriceSettingVMs
+{
+    public partial class PriceSettingSearcher : BaseSearcher
+    {
+
+        protected override void InitVM()
+        {
+        }
+
+    }
+}
diff --git a/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingVM.cs b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingVM.cs
new file mode 100644
index 0000000..6233e59
--- /dev/null
+++ b/cy_scdz.ViewModel/Setting/PriceSettingVMs/PriceSettingVM.cs
@@ -0,0 +1,47 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.ComponentModel.DataAnnotations;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.Model.Set;
+using Microsoft.EntityFrameworkCore;
+
+namespace cy_scdz.ViewModel.Setting.PriceSettingVMs
+{
+    public partial class PriceSettingVM : BaseCRUDVM<PriceSetting>
+    {
+
+        public PriceSettingVM()
+        {
+        }
+
+        protected override async void InitVM()
+        {
+          Entity =  DC.Set<PriceSetting>().FirstOrDefault();
+            if(Entity == null)
+            {
+                var  fist= new PriceSetting();
+                DC.Set<PriceSetting>().Add(fist);
+              await  DC.SaveChangesAsync();
+                Entity = DC.Set<PriceSetting>().FirstOrDefault();
+            }
+        }
+
+        public override void DoAdd()
+        {           
+            base.DoAdd();
+        }
+
+        public override void DoEdit(bool updateAllFields = false)
+        {
+            base.DoEdit(updateAllFields);
+        }
+
+        public override void DoDelete()
+        {
+            base.DoDelete();
+        }
+    }
+}
diff --git a/cy_scdz.ViewModel/dictionary/DictionaryVMs/DictionaryVM.cs b/cy_scdz.ViewModel/dictionary/DictionaryVMs/DictionaryVM.cs
index ff76c45..7e9daf6 100644
--- a/cy_scdz.ViewModel/dictionary/DictionaryVMs/DictionaryVM.cs
+++ b/cy_scdz.ViewModel/dictionary/DictionaryVMs/DictionaryVM.cs
@@ -30,7 +30,7 @@
         }
         public override DuplicatedInfo<Dictionary> SetDuplicatedCheck()
         {
-            var rv = CreateFieldsInfo(SimpleField(x => x.Name));
+            var rv = CreateFieldsInfo(SimpleField(x => x.Name), SimpleField(x => x.ParentId));
             rv.AddGroup(SimpleField(x => x.Key));
 
             return rv;
diff --git a/cy_scdz/Areas/BidOrder/Controllers/OrderInfoController.cs b/cy_scdz/Areas/BidOrder/Controllers/OrderInfoController.cs
new file mode 100644
index 0000000..3935380
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Controllers/OrderInfoController.cs
@@ -0,0 +1,234 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Mvc;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.ViewModel.BidOrder.OrderInfoVMs;
+using cy_scdz.ViewModel._Admin.FrameworkUserVMs;
+using cy_scdz.Model.Oder;
+using cy_scdz.ViewModel.Order.OrderProductionVMs;
+
+namespace cy_scdz.Controllers
+{
+    [Area("BidOrder")]
+    [ActionDescription("椤圭洰绠$悊")]
+    public partial class OrderInfoController : BaseController
+    {
+        #region Search
+        [ActionDescription("Sys.Search")]
+        public ActionResult Index()
+        {
+            var vm = Wtm.CreateVM<OrderInfoListVM>();
+            return PartialView(vm);
+        }
+
+        [ActionDescription("Sys.Search")]
+        [HttpPost]
+        public string Search(OrderInfoSearcher searcher)
+        {
+            var vm = Wtm.CreateVM<OrderInfoListVM>(passInit: true);
+            if (ModelState.IsValid)
+            {
+                vm.Searcher = searcher;
+                return vm.GetJson(false);
+            }
+            else
+            {
+                return vm.GetError();
+            }
+        }
+
+        #endregion
+
+        #region Create
+        [ActionDescription("Sys.Create")]
+        public ActionResult Create()
+        {
+            var vm = Wtm.CreateVM<OrderInfoVM>();
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.Create")]
+        public ActionResult Create(OrderInfoVM vm)
+        {
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                vm.DoAdd();
+                if (!ModelState.IsValid)
+                {
+                    vm.DoReInit();
+                    return PartialView(vm);
+                }
+                else
+                {
+                    return FFResult().CloseDialog().RefreshGrid();
+                }
+            }
+        }
+        #endregion
+        #region 瀹屾垚璁㈠崟
+        /// <summary>
+        /// 瀹屾垚鐢熶骇鍗�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public ActionResult CompleteProduction(string id)
+        {
+            var vm = Wtm.CreateVM<OrderProductionVM>(id);
+           
+            return PartialView(vm);
+        }
+        #endregion
+        #region Edit
+        [ActionDescription("Sys.Edit")]
+        public ActionResult Edit(string id)
+        {
+            var vm = Wtm.CreateVM<OrderInfoVM>(id);
+            return PartialView(vm);
+        }
+
+        [ActionDescription("Sys.Edit")]
+        [HttpPost]
+        [ValidateFormItemOnly]
+        public ActionResult Edit(OrderInfoVM vm)
+        {
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                vm.DoEdit();
+                if (!ModelState.IsValid)
+                {
+                    vm.DoReInit();
+                    return PartialView(vm);
+                }
+                else
+                {
+                    return FFResult().CloseDialog().RefreshGridRow(vm.Entity.ID);
+                }
+            }
+        }
+        #endregion
+
+        #region Delete
+        [ActionDescription("Sys.Delete")]
+        public ActionResult Delete(string id)
+        {
+            var vm = Wtm.CreateVM<OrderInfoVM>(id);
+            return PartialView(vm);
+        }
+
+        [ActionDescription("Sys.Delete")]
+        [HttpPost]
+        public ActionResult Delete(string id, IFormCollection nouse)
+        {
+            var vm = Wtm.CreateVM<OrderInfoVM>(id);
+            vm.DoDelete();
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid();
+            }
+        }
+        #endregion
+
+        #region Details
+        [ActionDescription("Sys.Details")]
+        public ActionResult Details(string id)
+        {
+            var vm = Wtm.CreateVM<OrderInfoVM>(id);
+            return PartialView(vm);
+        }
+        #endregion
+
+        #region BatchEdit
+        [HttpPost]
+        [ActionDescription("Sys.BatchEdit")]
+        public ActionResult BatchEdit(string[] IDs)
+        {
+            var vm = Wtm.CreateVM<OrderInfoBatchVM>(Ids: IDs);
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.BatchEdit")]
+        public ActionResult DoBatchEdit(OrderInfoBatchVM vm, IFormCollection nouse)
+        {
+            if (!ModelState.IsValid || !vm.DoBatchEdit())
+            {
+                return PartialView("BatchEdit",vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.BatchEditSuccess", vm.Ids.Length]);
+            }
+        }
+        #endregion
+
+        #region BatchDelete
+        [HttpPost]
+        [ActionDescription("Sys.BatchDelete")]
+        public ActionResult BatchDelete(string[] IDs)
+        {
+            var vm = Wtm.CreateVM<OrderInfoBatchVM>(Ids: IDs);
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.BatchDelete")]
+        public ActionResult DoBatchDelete(OrderInfoBatchVM vm, IFormCollection nouse)
+        {
+            if (!ModelState.IsValid || !vm.DoBatchDelete())
+            {
+                return PartialView("BatchDelete",vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.BatchDeleteSuccess", vm.Ids.Length]);
+            }
+        }
+        #endregion
+
+        #region Import
+		[ActionDescription("Sys.Import")]
+        public ActionResult Import()
+        {
+            var vm = Wtm.CreateVM<OrderInfoImportVM>();
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.Import")]
+        public ActionResult Import(OrderInfoImportVM vm, IFormCollection nouse)
+        {
+            if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData())
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.ImportSuccess", vm.EntityList.Count.ToString()]);
+            }
+        }
+        #endregion
+
+        [ActionDescription("Sys.Export")]
+        [HttpPost]
+        public IActionResult ExportExcel(OrderInfoListVM vm)
+        {
+            return vm.GetExportData();
+        }
+
+    }
+}
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchDelete.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchDelete.cshtml
new file mode 100644
index 0000000..b1b6f1d
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchDelete.cshtml
@@ -0,0 +1,12 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoBatchVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+	<wt:quote>@Localizer["Sys.BatchDeleteConfirm"]</wt:quote>
+    <wt:hidden field="Ids" />
+    <wt:grid vm="ListVM" use-local-data="true" height="300"  hidden-checkbox="true" hidden-panel="true"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton theme=" ButtonThemeEnum.Warm" text="@Localizer["Sys.Delete"]"/>
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchEdit.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchEdit.cshtml
new file mode 100644
index 0000000..54a4bdb
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/BatchEdit.cshtml
@@ -0,0 +1,14 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoBatchVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <div style="margin-bottom:10px">@Localizer["Sys.BatchEditConfirm"] </div>
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+</wt:row>
+    <wt:hidden field="Ids" />
+    <wt:grid vm="ListVM" use-local-data="true" height="300"  hidden-checkbox="true" hidden-panel="true"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/CompleteProduction.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/CompleteProduction.cshtml
new file mode 100644
index 0000000..b61452e
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/CompleteProduction.cshtml
@@ -0,0 +1,124 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">鍩烘湰淇℃伅</div>
+
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.One">
+                <wt:display field="Entity.Oder.Title"  />
+            </wt:row>
+            <wt:row items-per-row="ItemsPerRowEnum.Four">
+                <wt:display field="Entity.Oder.WinBidTime" />
+                <wt:display field="Delivery"  />               
+                <wt:display field="Semester"  />
+                <wt:display field="Supplier"  />
+                <wt:display field="Entity.Oder.BidMoney" padding-text="鍏�"  />
+                <wt:display field="BidType" items="AllBidTypes" enable-search="false"  />
+                <wt:display field="Entity.Oder.TenderAgentFee" padding-text="鍏�"  />
+            </wt:row>
+        </div>
+    </div>
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">鍗板埛瑕佹眰</div>
+
+        <div class="layui-card-body">
+            <p>浣滀笟鏈�</p>
+            <wt:row items-per-row="ItemsPerRowEnum.Six">
+                <wt:display field="Entity.Oder.WorkbookBindingType.Name" label-text="灏侀潰绾稿紶"/>
+                <wt:display field="Entity.Oder.WorkbookInnerPageCode.Name"  label-text="鍐呴〉绾稿紶" />
+
+                <wt:display field="Entity.Oder.WorkbookInnerPageCode.Name" label-text="椤垫暟" />
+                <wt:display field="Entity.Oder.WorkbookColorType.Name" label-text="鍐呴〉棰滆壊" />
+                <wt:display field="Entity.Oder.WorkbookBindingType.Name" label-text="瑁呰鏂瑰紡" />
+            </wt:row>
+            <p>鍥剧敾鏈�</p>
+            <wt:row items-per-row="ItemsPerRowEnum.Six">
+                <wt:display field="Entity.Oder.PictureBookCoverPaperType.Name" label-text="灏侀潰绾稿紶" />
+                <wt:display field="Entity.Oder.PictureBookInnerPaperType.Name" label-text="鍐呴〉绾稿紶" />
+                <wt:display field="Entity.Oder.PictureBookInnerPageCode.Name" label-text="椤垫暟" />
+                <wt:display field="Entity.Oder.PictureBookColorType.Name" label-text="鍐呴〉棰滆壊" />
+                <wt:display field="Entity.Oder.PictureBookBindingType.Name" label-text="瑁呰鏂瑰紡" />
+
+            </wt:row>
+            <p>澶у瓧鏈�</p>
+            <wt:row items-per-row="ItemsPerRowEnum.Six">
+                <wt:display field="Entity.Oder.LargeCharacterBookCoverPaperType.Name" label-text="灏侀潰绾稿紶" />
+                <wt:display field="Entity.Oder.LargeCharacterBookInnerPaperType.Name" label-text="鍐呴〉绾稿紶" />
+                <wt:display field="Entity.Oder.LargeCharacterBookInnerPageCode.Name" label-text="椤垫暟" />
+                <wt:display field="Entity.Oder.LargeCharacterBookColorType.Name" label-text="鍐呴〉棰滆壊" />
+                <wt:display field="Entity.Oder.LargeCharacterBookBindingType.Name" label-text="瑁呰鏂瑰紡" />
+
+            </wt:row>
+        </div>
+    </div>
+
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">璁㈠崟鏁伴噺</div>
+
+        <div class="layui-card-body">
+            <p>浣滀笟鏈�</p>
+            <wt:row items-per-row="ItemsPerRowEnum.Three">
+      
+                <wt:textbox field="Entity.Workbook16KCount" label-width="100"/>
+                <wt:textbox field="Entity.Workbook16KPrice" label-width="100" />
+                <wt:textbox field="Entity.Workbook16KManufacturerId" label-width="100" />
+                <wt:textbox field="Entity.Workbook32KCount" label-width="100" />
+                <wt:textbox field="Entity.Workbook32KPrice" label-width="100" />
+                <wt:textbox field="Entity.Workbook32KManufacturerId" label-width="100" />
+                <wt:textbox field="Entity.PictureBook16KCount" label-width="100" />
+                <wt:textbox field="Entity.PictureBook16KPrice" label-width="100" />
+                <wt:textbox field="Entity.PictureBook16KManufacturerId" label-width="100" />
+                <wt:textbox field="Entity.PictureBook32KCount" label-width="100" />
+                <wt:textbox field="Entity.PictureBook32KPrice" label-width="100" />
+                <wt:textbox field="Entity.PictureBook32KManufacturerId" label-width="100" />
+                <wt:textbox field="Entity.PictureBookA4Count" label-width="100" />
+                <wt:textbox field="Entity.PictureBookA4KPrice" label-width="100" />
+                <wt:textbox field="Entity.PictureBookA4KManufacturerId" label-width="100" />
+                <wt:textbox field="Entity.LargeCharacterBookCount" label-width="100" />
+                <wt:textbox field="Entity.LargeCharacterPrice" label-width="100" />
+                <wt:textbox field="Entity.LargeCharacterManufacturerIds" label-width="100" />
+
+
+            </wt:row>
+        </div>
+    </div>
+   
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
+<style>
+    .this-card {
+        padding: 0px;
+        margin: 5px;
+        background-color: #f0f0f0;
+        line-height: 12px;
+    }
+
+        .this-card .layui-input, .this-card .layui-select, .this-card .layui-textarea {
+            height: 30px;
+        }
+
+        .this-card xm-select {
+            min-height: 30px;
+            line-height: 25px;
+        }
+
+        .this-card .layui-card-body {
+            line-height: 12px;
+            padding: 0px 11px;
+        }
+
+            .this-card .layui-card-body p {
+                line-height: 12px;
+                padding: 0px 11px;
+            }
+
+</style>
\ No newline at end of file
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/Create.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Create.cshtml
new file mode 100644
index 0000000..22fd185
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Create.cshtml
@@ -0,0 +1,147 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">鍩烘湰淇℃伅</div>
+        
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.One">
+                <wt:textbox field="Entity.Title" />
+            </wt:row>
+            <wt:row items-per-row="ItemsPerRowEnum.Four">
+                <wt:datetime field="Entity.WinBidTime" Type=Date />
+              
+             
+                        <wt:datetime field="InitialDeliveryTime" Type=Year padding-text="骞�"  width="200"/>
+                <wt:combobox field="Entity.Chunqiuji"  width="100" enable-search="false" hide-label="true"  />
+                  
+               
+               
+               
+                <wt:combobox field="Entity.SemesterId" items="AllSemesters" enable-search="false" default-value="2瀛︽湡"/>
+                <wt:combobox field="Entity.SupplierId" items="AllSuppliers" enable-search="false" />
+            
+                <wt:textbox field="Entity.BidMoney" padding-text="鍏�" />
+                <wt:combobox field="Entity.BidTypeId" items="AllBidTypes" enable-search="false" />
+                <wt:textbox field="Entity.TenderAgentFee" padding-text="鍏�"  />
+            </wt:row>
+     </div>
+   </div>
+   @*  <div class="layui-card this-card ">
+        <div class="layui-card-header">鏀舵鎯呭喌</div>
+
+        <div class="layui-card-body">
+            @for (int i = 0; i <( Model.Entity.OrderReceivablesStatus?.Count == null ? 0 : Model.Entity.OrderReceivablesStatus?.Count); i++)
+            {
+                <p>绗瑊i}瀛︽湡</p>
+                <wt:row items-per-row="ItemsPerRowEnum.Four">
+                <wt:textbox field="Entity.OrderReceivablesStatus[i].Time"  />
+                    <wt:textbox field="Entity.OrderReceivablesStatus[i].ReceivablesMoney" />
+                </wt:row>
+            }
+            
+        </div>
+    </div> *@
+
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">鍗板埛瑕佹眰</div>
+
+        <div class="layui-card-body">
+          <p>浣滀笟鏈�</p>          
+          <wt:row items-per-row="ItemsPerRowEnum.Six">
+                <wt:combobox field="Entity.WorkbookCoverPaperTypeId" items="AllCoverPaperTypes"  enable-search="false"/>
+                <wt:combobox field="Entity.WorkbookInnerPaperTypeId" items="AllInnerPaperTypes" enable-search="false" />
+                
+                <wt:combobox field="Entity.WorkbookInnerPageCodeId" items="AllInnerPaperCodes" enable-search="false" />
+                <wt:combobox field="Entity.WorkbookColorTypeId" items="AllColorTypes" enable-search="false" />
+                <wt:combobox field="Entity.WorkbookBindingTypeId" items="AllBindingTypes" enable-search="false" />
+              </wt:row>
+               <p>鍥剧敾鏈�</p>          
+          <wt:row items-per-row="ItemsPerRowEnum.Six">
+                <wt:combobox field="Entity.PictureBookCoverPaperTypeId" items="AllCoverPaperTypes" enable-search="false" />
+                <wt:combobox field="Entity.PictureBookInnerPaperTypeId" items="AllInnerPaperTypes" enable-search="false" />
+                <wt:combobox field="Entity.PictureBookInnerPageCodeId" items="AllInnerPaperCodes" enable-search="false" />
+                <wt:combobox field="Entity.PictureBookColorTypeId" items="AllColorTypes" enable-search="false" />
+                <wt:combobox field="Entity.PictureBookBindingTypeId" items="AllBindingTypes" enable-search="false" />
+          
+              </wt:row>
+            <p>澶у瓧鏈�</p>
+            <wt:row items-per-row="ItemsPerRowEnum.Six">
+                <wt:combobox field="Entity.LargeCharacterBookCoverPaperTypeId" items="AllCoverPaperTypes" enable-search="false" />
+                <wt:combobox field="Entity.LargeCharacterBookInnerPaperTypeId" items="AllInnerPaperTypes" enable-search="false" />
+                <wt:combobox field="Entity.LargeCharacterBookInnerPageCodeId" items="AllInnerPaperCodes" enable-search="false" />
+                <wt:combobox field="Entity.LargeCharacterBookColorTypeId" items="AllColorTypes" enable-search="false" />
+                <wt:combobox field="Entity.LargeCharacterBookBindingTypeId" items="AllBindingTypes" enable-search="false" />
+              
+            </wt:row>
+        </div>
+    </div>
+
+@*     <div class="layui-card this-card ">
+        <div class="layui-card-header">璁㈠崟鏁伴噺</div>
+
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.Three">
+      
+                <wt:textbox field="Entity.Workbook16KCount" padding-text="鏈�" />
+                <wt:textbox field="Entity.Workbook16KPrice" label-text="涓爣鍗曚环" padding-text="鍏�" />
+                <wt:combobox field="Entity.Workbook16KManufacturerId" items="AllManufacturers" label-text="鐢熶骇鍘傚晢" enable-search="false" />
+                <wt:textbox field="Entity.Workbook32KCount" padding-text="鏈�" />
+                <wt:textbox field="Entity.Workbook32KPrice" label-text="涓爣鍗曚环" padding-text="鍏�" />
+                <wt:combobox field="Entity.Workbook32KManufacturerId" items="AllManufacturers" label-text="鐢熶骇鍘傚晢" enable-search="false" />
+                <wt:textbox field="Entity.PictureBook16KCount" padding-text="鏈�" />
+                <wt:textbox field="Entity.PictureBook16KPrice" label-text="涓爣鍗曚环" padding-text="鍏�" />
+                <wt:combobox field="Entity.PictureBook16KManufacturerId" items="AllManufacturers" label-text="鐢熶骇鍘傚晢" enable-search="false" />
+                <wt:textbox field="Entity.PictureBook32KCount" padding-text="鏈�" />
+                <wt:textbox field="Entity.PictureBook32KPrice" label-text="涓爣鍗曚环" padding-text="鍏�" />
+                <wt:combobox field="Entity.PictureBook32KManufacturerId" items="AllManufacturers" label-text="鐢熶骇鍘傚晢" enable-search="false" />
+                <wt:textbox field="Entity.PictureBookA4Count" padding-text="鏈�" />
+                <wt:textbox field="Entity.PictureBookA4KPrice" label-text="涓爣鍗曚环" padding-text="鍏�" />
+                <wt:combobox field="Entity.PictureBookA4KManufacturerId" items="AllManufacturers" label-text="鐢熶骇鍘傚晢" enable-search="false" />
+                <wt:textbox field="Entity.LargeCharacterBookCount" padding-text="鏈�" />
+                <wt:textbox field="Entity.LargeCharacterPrice" label-text="涓爣鍗曚环" padding-text="鍏�" />
+                <wt:combobox field="Entity.LargeCharacterManufacturerId" items="AllManufacturers" label-text="鐢熶骇鍘傚晢" enable-search="false" />
+            </wt:row>
+
+        </div>
+    </div> *@
+
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
+<style>
+    .this-card {
+        padding:0px;
+        margin:5px;
+        background-color: #f0f0f0;
+        line-height: 12px;
+    }
+
+        .this-card .layui-input, .this-card .layui-select, .this-card .layui-textarea{
+            height:30px;
+        }
+
+        .this-card xm-select{
+            min-height:30px;
+            line-height: 25px;
+            
+        }
+
+        .this-card .layui-card-body {
+        line-height: 12px;
+        padding:0px 11px;
+        
+    }
+
+             .this-card .layui-card-body p
+            {
+                line-height: 12px;
+                padding: 0px 11px;
+            }
+
+   
+</style>
\ No newline at end of file
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/Delete.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Delete.cshtml
new file mode 100644
index 0000000..f6ee919
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Delete.cshtml
@@ -0,0 +1,37 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+	<wt:quote>@Localizer["Sys.DeleteConfirm"]</wt:quote>
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:display field="Entity.Title" />
+<wt:display field="Entity.WinBidTime" />
+<wt:display field="Entity.InitialDeliveryTime" />
+<wt:display field="Entity.Semester.Name" />
+<wt:display field="Entity.BidMoney" />
+<wt:display field="Entity.Supplier.Name" />
+<wt:display field="Entity.BidType.Name" />
+<wt:display field="Entity.TenderAgentFee" />
+<wt:display field="Entity.WorkbookCoverPaperType.Name" />
+<wt:display field="Entity.WorkbookInnerPaperType.Name" />
+<wt:display field="Entity.WorkbookColorType.Name" />
+<wt:display field="Entity.WorkbookBindingType.Name" />
+
+<wt:display field="Entity.PictureBookCoverPaperType.Name" />
+<wt:display field="Entity.PictureBookInnerPaperType.Name" />
+<wt:display field="Entity.PictureBookColorType.Name" />
+<wt:display field="Entity.PictureBookBindingType.Name" />
+
+<wt:display field="Entity.LargeCharacterBookCoverPaperType.Name" />
+<wt:display field="Entity.LargeCharacterBookInnerPaperType.Name" />
+<wt:display field="Entity.LargeCharacterBookColorType.Name" />
+<wt:display field="Entity.LargeCharacterBookBindingType.Name" />
+
+
+</wt:row>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton theme=" ButtonThemeEnum.Warm" text="@Localizer["Sys.Delete"]"/>
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/Details.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Details.cshtml
new file mode 100644
index 0000000..de65bce
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Details.cshtml
@@ -0,0 +1,34 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:display field="Entity.Title" />
+<wt:display field="Entity.WinBidTime" />
+<wt:display field="Entity.InitialDeliveryTime" />
+<wt:display field="Entity.Semester.Name" />
+<wt:display field="Entity.BidMoney" />
+<wt:display field="Entity.Supplier.Name" />
+<wt:display field="Entity.BidType.Name" />
+<wt:display field="Entity.TenderAgentFee" />
+<wt:display field="Entity.WorkbookCoverPaperType.Name" />
+<wt:display field="Entity.WorkbookInnerPaperType.Name" />
+<wt:display field="Entity.WorkbookColorType.Name" />
+<wt:display field="Entity.WorkbookBindingType.Name" />
+
+<wt:display field="Entity.PictureBookCoverPaperType.Name" />
+<wt:display field="Entity.PictureBookInnerPaperType.Name" />
+<wt:display field="Entity.PictureBookColorType.Name" />
+<wt:display field="Entity.PictureBookBindingType.Name" />
+
+<wt:display field="Entity.LargeCharacterBookCoverPaperType.Name" />
+<wt:display field="Entity.LargeCharacterBookInnerPaperType.Name" />
+<wt:display field="Entity.LargeCharacterBookColorType.Name" />
+<wt:display field="Entity.LargeCharacterBookBindingType.Name" />
+
+
+</wt:row>
+    <wt:row align="AlignEnum.Right">
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/Edit.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Edit.cshtml
new file mode 100644
index 0000000..a6ad87a
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Edit.cshtml
@@ -0,0 +1,36 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:textbox field="Entity.Title" />
+<wt:datetime field="Entity.WinBidTime" />
+<wt:datetime field="Entity.InitialDeliveryTime" />
+<wt:combobox field="Entity.SemesterId" items="AllSemesters"/>
+<wt:textbox field="Entity.BidMoney" />
+<wt:combobox field="Entity.SupplierId" items="AllSuppliers"/>
+<wt:combobox field="Entity.BidTypeId" items="AllBidTypes"/>
+<wt:textbox field="Entity.TenderAgentFee" />
+<wt:combobox field="Entity.WorkbookCoverPaperTypeId" items="AllCoverPaperTypes"/>
+<wt:combobox field="Entity.WorkbookInnerPaperTypeId" items="AllInnerPaperTypes"/>
+<wt:combobox field="Entity.WorkbookColorTypeId" items="AllColorTypes"/>
+<wt:combobox field="Entity.WorkbookBindingTypeId" items="AllBindingTypes"/>
+
+        <wt:combobox field="Entity.PictureBookCoverPaperTypeId" items="AllCoverPaperTypes" />
+        <wt:combobox field="Entity.PictureBookInnerPaperTypeId" items="AllInnerPaperTypes" />
+        <wt:combobox field="Entity.PictureBookColorTypeId" items="AllColorTypes" />
+        <wt:combobox field="Entity.PictureBookBindingTypeId" items="AllBindingTypes" />
+
+        <wt:combobox field="Entity.LargeCharacterBookCoverPaperTypeId" items="AllCoverPaperTypes" />
+        <wt:combobox field="Entity.LargeCharacterBookInnerPaperTypeId" items="AllInnerPaperTypes" />
+        <wt:combobox field="Entity.LargeCharacterBookColorTypeId" items="AllColorTypes" />
+        <wt:combobox field="Entity.LargeCharacterBookBindingTypeId" items="AllBindingTypes" />
+
+
+</wt:row>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/Import.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Import.cshtml
new file mode 100644
index 0000000..fac0c1a
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Import.cshtml
@@ -0,0 +1,14 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoImportVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <wt:row align="AlignEnum.Right">
+        <wt:downloadTemplateButton vm="@Model" />
+    </wt:row>
+    <wt:upload field="UploadFileId" label-text="@Model.Localizer["Sys.UploadTemplate"]" upload-type="ExcelFile" />
+    <wt:grid vm="ErrorListVM" use-local-data="true" hidden-checkbox="true" hidden-grid-index="true" hidden-panel="true"  height="300"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/BidOrder/Views/OrderInfo/Index.cshtml b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Index.cshtml
new file mode 100644
index 0000000..f7ce68b
--- /dev/null
+++ b/cy_scdz/Areas/BidOrder/Views/OrderInfo/Index.cshtml
@@ -0,0 +1,18 @@
+锘緻model cy_scdz.ViewModel.BidOrder.OrderInfoVMs.OrderInfoListVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:searchpanel vm="@Model" reset-btn="true">
+<wt:row items-per-row="ItemsPerRowEnum.Three">
+<wt:textbox field="Searcher.Title" />
+<wt:datetime field="Searcher.WinBidTime" range="true" />
+<wt:combobox field="Searcher.SupplierId" items="Searcher.AllSuppliers" empty-text="@Localizer["Sys.All"]" />
+<wt:combobox field="Searcher.BidTypeId" items="Searcher.AllBidTypes" empty-text="@Localizer["Sys.All"]" />
+</wt:row>
+</wt:searchpanel>
+<wt:grid vm="@Model" url="/BidOrder/OrderInfo/Search" multi-line hidden-checkbox hidden-grid-index />
+
+
+<style>
+
+
+</style>
\ No newline at end of file
diff --git a/cy_scdz/Areas/Order/Controllers/OrderProductionController.cs b/cy_scdz/Areas/Order/Controllers/OrderProductionController.cs
new file mode 100644
index 0000000..75b5ef4
--- /dev/null
+++ b/cy_scdz/Areas/Order/Controllers/OrderProductionController.cs
@@ -0,0 +1,219 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Mvc;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.ViewModel.Order.OrderProductionVMs;
+
+namespace cy_scdz.Controllers
+{
+    [Area("Order")]
+    [ActionDescription("鐢熶骇鏁伴噺")]
+    public partial class OrderProductionController : BaseController
+    {
+        #region Search
+        [ActionDescription("Sys.Search")]
+        public ActionResult Index()
+        {
+            var vm = Wtm.CreateVM<OrderProductionListVM>();
+            return PartialView(vm);
+        }
+
+        [ActionDescription("Sys.Search")]
+        [HttpPost]
+        public string Search(OrderProductionSearcher searcher)
+        {
+            var vm = Wtm.CreateVM<OrderProductionListVM>(passInit: true);
+            if (ModelState.IsValid)
+            {
+                vm.Searcher = searcher;
+                return vm.GetJson(false);
+            }
+            else
+            {
+                return vm.GetError();
+            }
+        }
+
+        #endregion
+
+        #region Create
+        [ActionDescription("Sys.Create")]
+        public ActionResult Create()
+        {
+            var vm = Wtm.CreateVM<OrderProductionVM>();
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.Create")]
+        public ActionResult Create(OrderProductionVM vm)
+        {
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                vm.DoAdd();
+                if (!ModelState.IsValid)
+                {
+                    vm.DoReInit();
+                    return PartialView(vm);
+                }
+                else
+                {
+                    return FFResult().CloseDialog().RefreshGrid();
+                }
+            }
+        }
+        #endregion
+
+        #region Edit
+        [ActionDescription("Sys.Edit")]
+        public ActionResult Edit(string id)
+        {
+            var vm = Wtm.CreateVM<OrderProductionVM>(id);
+            return PartialView(vm);
+        }
+
+        [ActionDescription("Sys.Edit")]
+        [HttpPost]
+        [ValidateFormItemOnly]
+        public ActionResult Edit(OrderProductionVM vm)
+        {
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                vm.DoEdit();
+                if (!ModelState.IsValid)
+                {
+                    vm.DoReInit();
+                    return PartialView(vm);
+                }
+                else
+                {
+                    return FFResult().CloseDialog().RefreshGridRow(vm.Entity.ID);
+                }
+            }
+        }
+        #endregion
+
+        #region Delete
+        [ActionDescription("Sys.Delete")]
+        public ActionResult Delete(string id)
+        {
+            var vm = Wtm.CreateVM<OrderProductionVM>(id);
+            return PartialView(vm);
+        }
+
+        [ActionDescription("Sys.Delete")]
+        [HttpPost]
+        public ActionResult Delete(string id, IFormCollection nouse)
+        {
+            var vm = Wtm.CreateVM<OrderProductionVM>(id);
+            vm.DoDelete();
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid();
+            }
+        }
+        #endregion
+
+        #region Details
+        [ActionDescription("Sys.Details")]
+        public ActionResult Details(string id)
+        {
+            var vm = Wtm.CreateVM<OrderProductionVM>(id);
+            return PartialView(vm);
+        }
+        #endregion
+
+        #region BatchEdit
+        [HttpPost]
+        [ActionDescription("Sys.BatchEdit")]
+        public ActionResult BatchEdit(string[] IDs)
+        {
+            var vm = Wtm.CreateVM<OrderProductionBatchVM>(Ids: IDs);
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.BatchEdit")]
+        public ActionResult DoBatchEdit(OrderProductionBatchVM vm, IFormCollection nouse)
+        {
+            if (!ModelState.IsValid || !vm.DoBatchEdit())
+            {
+                return PartialView("BatchEdit",vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.BatchEditSuccess", vm.Ids.Length]);
+            }
+        }
+        #endregion
+
+        #region BatchDelete
+        [HttpPost]
+        [ActionDescription("Sys.BatchDelete")]
+        public ActionResult BatchDelete(string[] IDs)
+        {
+            var vm = Wtm.CreateVM<OrderProductionBatchVM>(Ids: IDs);
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.BatchDelete")]
+        public ActionResult DoBatchDelete(OrderProductionBatchVM vm, IFormCollection nouse)
+        {
+            if (!ModelState.IsValid || !vm.DoBatchDelete())
+            {
+                return PartialView("BatchDelete",vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.BatchDeleteSuccess", vm.Ids.Length]);
+            }
+        }
+        #endregion
+
+        #region Import
+		[ActionDescription("Sys.Import")]
+        public ActionResult Import()
+        {
+            var vm = Wtm.CreateVM<OrderProductionImportVM>();
+            return PartialView(vm);
+        }
+
+        [HttpPost]
+        [ActionDescription("Sys.Import")]
+        public ActionResult Import(OrderProductionImportVM vm, IFormCollection nouse)
+        {
+            if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData())
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.ImportSuccess", vm.EntityList.Count.ToString()]);
+            }
+        }
+        #endregion
+
+        [ActionDescription("Sys.Export")]
+        [HttpPost]
+        public IActionResult ExportExcel(OrderProductionListVM vm)
+        {
+            return vm.GetExportData();
+        }
+
+    }
+}
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/BatchDelete.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/BatchDelete.cshtml
new file mode 100644
index 0000000..655d957
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/BatchDelete.cshtml
@@ -0,0 +1,12 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionBatchVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+	<wt:quote>@Localizer["Sys.BatchDeleteConfirm"]</wt:quote>
+    <wt:hidden field="Ids" />
+    <wt:grid vm="ListVM" use-local-data="true" height="300"  hidden-checkbox="true" hidden-panel="true"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton theme=" ButtonThemeEnum.Warm" text="@Localizer["Sys.Delete"]"/>
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/BatchEdit.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/BatchEdit.cshtml
new file mode 100644
index 0000000..6355a9f
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/BatchEdit.cshtml
@@ -0,0 +1,14 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionBatchVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <div style="margin-bottom:10px">@Localizer["Sys.BatchEditConfirm"] </div>
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+</wt:row>
+    <wt:hidden field="Ids" />
+    <wt:grid vm="ListVM" use-local-data="true" height="300"  hidden-checkbox="true" hidden-panel="true"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/Create.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/Create.cshtml
new file mode 100644
index 0000000..6e8d928
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/Create.cshtml
@@ -0,0 +1,34 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:combobox field="Entity.OderId" items="AllOders"/>
+<wt:textbox field="Entity.Workbook16KCount" />
+<wt:textbox field="Entity.Workbook16KPrice" />
+<wt:textbox field="Entity.Workbook16KManufacturerId" />
+<wt:textbox field="Entity.Workbook32KCount" />
+<wt:textbox field="Entity.Workbook32KPrice" />
+<wt:textbox field="Entity.Workbook32KManufacturerId" />
+<wt:textbox field="Entity.PictureBook16KCount" />
+<wt:textbox field="Entity.PictureBook16KPrice" />
+<wt:textbox field="Entity.PictureBook16KManufacturerId" />
+<wt:textbox field="Entity.PictureBook32KCount" />
+<wt:textbox field="Entity.PictureBook32KPrice" />
+<wt:textbox field="Entity.PictureBook32KManufacturerId" />
+<wt:textbox field="Entity.PictureBookA4Count" />
+<wt:textbox field="Entity.PictureBookA4KPrice" />
+<wt:textbox field="Entity.PictureBookA4KManufacturerId" />
+<wt:textbox field="Entity.LargeCharacterBookCount" />
+<wt:textbox field="Entity.LargeCharacterPrice" />
+<wt:textbox field="Entity.LargeCharacterManufacturerIds" />
+<wt:textbox field="Entity.Mark" />
+<wt:datetime field="Entity.DeliveryTime" />
+<wt:combobox field="Entity.Chunqiuji" />
+<wt:switch field="Entity.IsOver" />
+</wt:row>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/Delete.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/Delete.cshtml
new file mode 100644
index 0000000..6e43e34
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/Delete.cshtml
@@ -0,0 +1,36 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+	<wt:quote>@Localizer["Sys.DeleteConfirm"]</wt:quote>
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:display field="Entity.Oder.Title" />
+<wt:display field="Entity.Workbook16KCount" />
+<wt:display field="Entity.Workbook16KPrice" />
+<wt:display field="Entity.Workbook16KManufacturerId" />
+<wt:display field="Entity.Workbook32KCount" />
+<wt:display field="Entity.Workbook32KPrice" />
+<wt:display field="Entity.Workbook32KManufacturerId" />
+<wt:display field="Entity.PictureBook16KCount" />
+<wt:display field="Entity.PictureBook16KPrice" />
+<wt:display field="Entity.PictureBook16KManufacturerId" />
+<wt:display field="Entity.PictureBook32KCount" />
+<wt:display field="Entity.PictureBook32KPrice" />
+<wt:display field="Entity.PictureBook32KManufacturerId" />
+<wt:display field="Entity.PictureBookA4Count" />
+<wt:display field="Entity.PictureBookA4KPrice" />
+<wt:display field="Entity.PictureBookA4KManufacturerId" />
+<wt:display field="Entity.LargeCharacterBookCount" />
+<wt:display field="Entity.LargeCharacterPrice" />
+<wt:display field="Entity.LargeCharacterManufacturerIds" />
+<wt:display field="Entity.Mark" />
+<wt:display field="Entity.DeliveryTime" />
+<wt:display field="Entity.Chunqiuji" />
+<wt:display field="Entity.IsOver" />
+</wt:row>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton theme=" ButtonThemeEnum.Warm" text="@Localizer["Sys.Delete"]"/>
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/Details.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/Details.cshtml
new file mode 100644
index 0000000..b199c14
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/Details.cshtml
@@ -0,0 +1,33 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:display field="Entity.Oder.Title" />
+<wt:display field="Entity.Workbook16KCount" />
+<wt:display field="Entity.Workbook16KPrice" />
+<wt:display field="Entity.Workbook16KManufacturerId" />
+<wt:display field="Entity.Workbook32KCount" />
+<wt:display field="Entity.Workbook32KPrice" />
+<wt:display field="Entity.Workbook32KManufacturerId" />
+<wt:display field="Entity.PictureBook16KCount" />
+<wt:display field="Entity.PictureBook16KPrice" />
+<wt:display field="Entity.PictureBook16KManufacturerId" />
+<wt:display field="Entity.PictureBook32KCount" />
+<wt:display field="Entity.PictureBook32KPrice" />
+<wt:display field="Entity.PictureBook32KManufacturerId" />
+<wt:display field="Entity.PictureBookA4Count" />
+<wt:display field="Entity.PictureBookA4KPrice" />
+<wt:display field="Entity.PictureBookA4KManufacturerId" />
+<wt:display field="Entity.LargeCharacterBookCount" />
+<wt:display field="Entity.LargeCharacterPrice" />
+<wt:display field="Entity.LargeCharacterManufacturerIds" />
+<wt:display field="Entity.Mark" />
+<wt:display field="Entity.DeliveryTime" />
+<wt:display field="Entity.Chunqiuji" />
+<wt:display field="Entity.IsOver" />
+</wt:row>
+    <wt:row align="AlignEnum.Right">
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/Edit.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/Edit.cshtml
new file mode 100644
index 0000000..3d6765a
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/Edit.cshtml
@@ -0,0 +1,36 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:combobox field="Entity.OderId" items="AllOders"/>
+<wt:textbox field="Entity.Workbook16KCount" />
+<wt:textbox field="Entity.Workbook16KPrice" />
+<wt:textbox field="Entity.Workbook16KManufacturerId" />
+<wt:textbox field="Entity.Workbook32KCount" />
+<wt:textbox field="Entity.Workbook32KPrice" />
+<wt:textbox field="Entity.Workbook32KManufacturerId" />
+<wt:textbox field="Entity.PictureBook16KCount" />
+<wt:textbox field="Entity.PictureBook16KPrice" />
+<wt:textbox field="Entity.PictureBook16KManufacturerId" />
+<wt:textbox field="Entity.PictureBook32KCount" />
+<wt:textbox field="Entity.PictureBook32KPrice" />
+<wt:textbox field="Entity.PictureBook32KManufacturerId" />
+<wt:textbox field="Entity.PictureBookA4Count" />
+<wt:textbox field="Entity.PictureBookA4KPrice" />
+<wt:textbox field="Entity.PictureBookA4KManufacturerId" />
+<wt:textbox field="Entity.LargeCharacterBookCount" />
+<wt:textbox field="Entity.LargeCharacterPrice" />
+<wt:textbox field="Entity.LargeCharacterManufacturerIds" />
+<wt:textbox field="Entity.Mark" />
+<wt:datetime field="Entity.DeliveryTime" />
+<wt:combobox field="Entity.Chunqiuji" />
+<wt:switch field="Entity.IsOver" />
+</wt:row>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/Import.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/Import.cshtml
new file mode 100644
index 0000000..6a3a29c
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/Import.cshtml
@@ -0,0 +1,14 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionImportVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <wt:row align="AlignEnum.Right">
+        <wt:downloadTemplateButton vm="@Model" />
+    </wt:row>
+    <wt:upload field="UploadFileId" label-text="@Model.Localizer["Sys.UploadTemplate"]" upload-type="ExcelFile" />
+    <wt:grid vm="ErrorListVM" use-local-data="true" hidden-checkbox="true" hidden-grid-index="true" hidden-panel="true"  height="300"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Order/Views/OrderProduction/Index.cshtml b/cy_scdz/Areas/Order/Views/OrderProduction/Index.cshtml
new file mode 100644
index 0000000..44a3017
--- /dev/null
+++ b/cy_scdz/Areas/Order/Views/OrderProduction/Index.cshtml
@@ -0,0 +1,8 @@
+锘緻model cy_scdz.ViewModel.Order.OrderProductionVMs.OrderProductionListVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:searchpanel vm="@Model" reset-btn="true">
+<wt:row items-per-row="ItemsPerRowEnum.Three">
+</wt:row>
+</wt:searchpanel>
+<wt:grid vm="@Model" url="/Order/OrderProduction/Search"/>
diff --git a/cy_scdz/Areas/Setting/Controllers/PriceSettingController.cs b/cy_scdz/Areas/Setting/Controllers/PriceSettingController.cs
new file mode 100644
index 0000000..bf329c9
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Controllers/PriceSettingController.cs
@@ -0,0 +1,57 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using WalkingTec.Mvvm.Core;
+using WalkingTec.Mvvm.Mvc;
+using WalkingTec.Mvvm.Core.Extensions;
+using cy_scdz.ViewModel.Setting.PriceSettingVMs;
+
+namespace cy_scdz.Controllers
+{
+    [Area("Setting")]
+    [ActionDescription("浠锋牸璁剧疆")]
+    public partial class PriceSettingController : BaseController
+    {
+        
+
+   
+
+        #region Edit
+        [ActionDescription("璁剧疆")]
+        public ActionResult Index()
+        {
+            var vm = Wtm.CreateVM<PriceSettingVM>();
+            return PartialView(vm);
+        }
+
+        [ActionDescription("璁剧疆")]
+        [HttpPost]
+        [ValidateFormItemOnly]
+        public ActionResult Index(PriceSettingVM vm)
+        {
+            if (!ModelState.IsValid)
+            {
+                return PartialView(vm);
+            }
+            else
+            {
+                vm.DoEdit();
+                if (!ModelState.IsValid)
+                {
+                    vm.DoReInit();
+                    return PartialView(vm);
+                }
+                else
+                {
+                    return PartialView(vm);
+                }
+            }
+        }
+        #endregion
+
+      
+
+   
+
+    }
+}
diff --git a/cy_scdz/Areas/Setting/Controllers/SettingController.cs b/cy_scdz/Areas/Setting/Controllers/SettingController.cs
index c7f426e..cf0fbdb 100644
--- a/cy_scdz/Areas/Setting/Controllers/SettingController.cs
+++ b/cy_scdz/Areas/Setting/Controllers/SettingController.cs
@@ -32,7 +32,7 @@
                 return Ok(new { code = 0});
             var vm= Wtm.CreateVM<SettingVm>(passInit:true);
           
-            vm.addNew(Param.name, Param.key);
+            vm.addNew(Param.name, Param.key,value:Param.Val);
             if(vm.MSD.IsValid)
             {
                 return Ok(new { code = 1 });
@@ -61,5 +61,12 @@
         [Required]
         public string name { get; set; }
 
+
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>
+      
+        public string Val { get; set; }
+
     }
 }
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/BatchDelete.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/BatchDelete.cshtml
new file mode 100644
index 0000000..c88efff
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/BatchDelete.cshtml
@@ -0,0 +1,12 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingBatchVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+	<wt:quote>@Localizer["Sys.BatchDeleteConfirm"]</wt:quote>
+    <wt:hidden field="Ids" />
+    <wt:grid vm="ListVM" use-local-data="true" height="300"  hidden-checkbox="true" hidden-panel="true"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton theme=" ButtonThemeEnum.Warm" text="@Localizer["Sys.Delete"]"/>
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/BatchEdit.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/BatchEdit.cshtml
new file mode 100644
index 0000000..b507587
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/BatchEdit.cshtml
@@ -0,0 +1,14 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingBatchVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <div style="margin-bottom:10px">@Localizer["Sys.BatchEditConfirm"] </div>
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+</wt:row>
+    <wt:hidden field="Ids" />
+    <wt:grid vm="ListVM" use-local-data="true" height="300"  hidden-checkbox="true" hidden-panel="true"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/Create.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/Create.cshtml
new file mode 100644
index 0000000..dabe209
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/Create.cshtml
@@ -0,0 +1,48 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:textbox field="Entity.Fmsjz" />
+<wt:textbox field="Entity.Fmnpz" />
+<wt:textbox field="Entity.Nybsz" />
+<wt:textbox field="Entity.Nygbz" />
+<wt:textbox field="Entity.Qmd_Nyds_32_16k" />
+<wt:textbox field="Entity.Qmd_Nyds_32_32k" />
+<wt:textbox field="Entity.Qmd_Nyds_36_16k" />
+<wt:textbox field="Entity.Qmd_Nyds_36_32k" />
+<wt:textbox field="Entity.Qmd_Nyss_32_16k" />
+<wt:textbox field="Entity.Qmd_Nyss_32_32k" />
+<wt:textbox field="Entity.Qmd_Nyss_36_16k" />
+<wt:textbox field="Entity.Qmd_Nyss_36_32k" />
+<wt:textbox field="Entity.Qmd_Nysis_32_16k" />
+<wt:textbox field="Entity.Qmd_Nysis_32_32k" />
+<wt:textbox field="Entity.Qmd_Nysis_36_16k" />
+<wt:textbox field="Entity.Qmd_Nysis_36_32k" />
+<wt:textbox field="Entity.Jb_Nyds_32_16k" />
+<wt:textbox field="Entity.Jb_Nyds_32_32k" />
+<wt:textbox field="Entity.Jb_Nyds_36_16k" />
+<wt:textbox field="Entity.Jb_Nyds_36_32k" />
+<wt:textbox field="Entity.Jb_Nyss_32_16k" />
+<wt:textbox field="Entity.Jb_Nyss_32_32k" />
+<wt:textbox field="Entity.Jb_Nyss_36_16k" />
+<wt:textbox field="Entity.Jb_Nyss_36_32k" />
+<wt:textbox field="Entity.Jb_Nysis_32_16k" />
+<wt:textbox field="Entity.Jb_Nysis_32_32k" />
+<wt:textbox field="Entity.Jb_Nysis_36_16k" />
+<wt:textbox field="Entity.Jb_Nysis_36_32k" />
+<wt:textbox field="Entity.Jb_Ds_32_16k" />
+<wt:textbox field="Entity.Jb_Ds_32_32k" />
+<wt:textbox field="Entity.Gbt_16k" />
+<wt:textbox field="Entity.Gbt_32k" />
+<wt:textbox field="Entity.Ywfy_Jz" />
+<wt:textbox field="Entity.Ywfy_Zs" />
+<wt:textbox field="Entity.Wlfy" />
+<wt:textbox field="Entity.Sf" />
+<wt:textbox field="Entity.Zzxh" />
+</wt:row>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/Delete.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/Delete.cshtml
new file mode 100644
index 0000000..07c99a8
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/Delete.cshtml
@@ -0,0 +1,50 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+	<wt:quote>@Localizer["Sys.DeleteConfirm"]</wt:quote>
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:display field="Entity.Fmsjz" />
+<wt:display field="Entity.Fmnpz" />
+<wt:display field="Entity.Nybsz" />
+<wt:display field="Entity.Nygbz" />
+<wt:display field="Entity.Qmd_Nyds_32_16k" />
+<wt:display field="Entity.Qmd_Nyds_32_32k" />
+<wt:display field="Entity.Qmd_Nyds_36_16k" />
+<wt:display field="Entity.Qmd_Nyds_36_32k" />
+<wt:display field="Entity.Qmd_Nyss_32_16k" />
+<wt:display field="Entity.Qmd_Nyss_32_32k" />
+<wt:display field="Entity.Qmd_Nyss_36_16k" />
+<wt:display field="Entity.Qmd_Nyss_36_32k" />
+<wt:display field="Entity.Qmd_Nysis_32_16k" />
+<wt:display field="Entity.Qmd_Nysis_32_32k" />
+<wt:display field="Entity.Qmd_Nysis_36_16k" />
+<wt:display field="Entity.Qmd_Nysis_36_32k" />
+<wt:display field="Entity.Jb_Nyds_32_16k" />
+<wt:display field="Entity.Jb_Nyds_32_32k" />
+<wt:display field="Entity.Jb_Nyds_36_16k" />
+<wt:display field="Entity.Jb_Nyds_36_32k" />
+<wt:display field="Entity.Jb_Nyss_32_16k" />
+<wt:display field="Entity.Jb_Nyss_32_32k" />
+<wt:display field="Entity.Jb_Nyss_36_16k" />
+<wt:display field="Entity.Jb_Nyss_36_32k" />
+<wt:display field="Entity.Jb_Nysis_32_16k" />
+<wt:display field="Entity.Jb_Nysis_32_32k" />
+<wt:display field="Entity.Jb_Nysis_36_16k" />
+<wt:display field="Entity.Jb_Nysis_36_32k" />
+<wt:display field="Entity.Jb_Ds_32_16k" />
+<wt:display field="Entity.Jb_Ds_32_32k" />
+<wt:display field="Entity.Gbt_16k" />
+<wt:display field="Entity.Gbt_32k" />
+<wt:display field="Entity.Ywfy_Jz" />
+<wt:display field="Entity.Ywfy_Zs" />
+<wt:display field="Entity.Wlfy" />
+<wt:display field="Entity.Sf" />
+<wt:display field="Entity.Zzxh" />
+</wt:row>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton theme=" ButtonThemeEnum.Warm" text="@Localizer["Sys.Delete"]"/>
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/Details.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/Details.cshtml
new file mode 100644
index 0000000..048a9c5
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/Details.cshtml
@@ -0,0 +1,47 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:display field="Entity.Fmsjz" />
+<wt:display field="Entity.Fmnpz" />
+<wt:display field="Entity.Nybsz" />
+<wt:display field="Entity.Nygbz" />
+<wt:display field="Entity.Qmd_Nyds_32_16k" />
+<wt:display field="Entity.Qmd_Nyds_32_32k" />
+<wt:display field="Entity.Qmd_Nyds_36_16k" />
+<wt:display field="Entity.Qmd_Nyds_36_32k" />
+<wt:display field="Entity.Qmd_Nyss_32_16k" />
+<wt:display field="Entity.Qmd_Nyss_32_32k" />
+<wt:display field="Entity.Qmd_Nyss_36_16k" />
+<wt:display field="Entity.Qmd_Nyss_36_32k" />
+<wt:display field="Entity.Qmd_Nysis_32_16k" />
+<wt:display field="Entity.Qmd_Nysis_32_32k" />
+<wt:display field="Entity.Qmd_Nysis_36_16k" />
+<wt:display field="Entity.Qmd_Nysis_36_32k" />
+<wt:display field="Entity.Jb_Nyds_32_16k" />
+<wt:display field="Entity.Jb_Nyds_32_32k" />
+<wt:display field="Entity.Jb_Nyds_36_16k" />
+<wt:display field="Entity.Jb_Nyds_36_32k" />
+<wt:display field="Entity.Jb_Nyss_32_16k" />
+<wt:display field="Entity.Jb_Nyss_32_32k" />
+<wt:display field="Entity.Jb_Nyss_36_16k" />
+<wt:display field="Entity.Jb_Nyss_36_32k" />
+<wt:display field="Entity.Jb_Nysis_32_16k" />
+<wt:display field="Entity.Jb_Nysis_32_32k" />
+<wt:display field="Entity.Jb_Nysis_36_16k" />
+<wt:display field="Entity.Jb_Nysis_36_32k" />
+<wt:display field="Entity.Jb_Ds_32_16k" />
+<wt:display field="Entity.Jb_Ds_32_32k" />
+<wt:display field="Entity.Gbt_16k" />
+<wt:display field="Entity.Gbt_32k" />
+<wt:display field="Entity.Ywfy_Jz" />
+<wt:display field="Entity.Ywfy_Zs" />
+<wt:display field="Entity.Wlfy" />
+<wt:display field="Entity.Sf" />
+<wt:display field="Entity.Zzxh" />
+</wt:row>
+    <wt:row align="AlignEnum.Right">
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/Edit.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/Edit.cshtml
new file mode 100644
index 0000000..54276f4
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/Edit.cshtml
@@ -0,0 +1,49 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+<wt:row items-per-row="ItemsPerRowEnum.Two">
+<wt:textbox field="Entity.Fmsjz" />
+<wt:textbox field="Entity.Fmnpz" />
+<wt:textbox field="Entity.Nybsz" />
+<wt:textbox field="Entity.Nygbz" />
+<wt:textbox field="Entity.Qmd_Nyds_32_16k" />
+<wt:textbox field="Entity.Qmd_Nyds_32_32k" />
+<wt:textbox field="Entity.Qmd_Nyds_36_16k" />
+<wt:textbox field="Entity.Qmd_Nyds_36_32k" />
+<wt:textbox field="Entity.Qmd_Nyss_32_16k" />
+<wt:textbox field="Entity.Qmd_Nyss_32_32k" />
+<wt:textbox field="Entity.Qmd_Nyss_36_16k" />
+<wt:textbox field="Entity.Qmd_Nyss_36_32k" />
+<wt:textbox field="Entity.Qmd_Nysis_32_16k" />
+<wt:textbox field="Entity.Qmd_Nysis_32_32k" />
+<wt:textbox field="Entity.Qmd_Nysis_36_16k" />
+<wt:textbox field="Entity.Qmd_Nysis_36_32k" />
+<wt:textbox field="Entity.Jb_Nyds_32_16k" />
+<wt:textbox field="Entity.Jb_Nyds_32_32k" />
+<wt:textbox field="Entity.Jb_Nyds_36_16k" />
+<wt:textbox field="Entity.Jb_Nyds_36_32k" />
+<wt:textbox field="Entity.Jb_Nyss_32_16k" />
+<wt:textbox field="Entity.Jb_Nyss_32_32k" />
+<wt:textbox field="Entity.Jb_Nyss_36_16k" />
+<wt:textbox field="Entity.Jb_Nyss_36_32k" />
+<wt:textbox field="Entity.Jb_Nysis_32_16k" />
+<wt:textbox field="Entity.Jb_Nysis_32_32k" />
+<wt:textbox field="Entity.Jb_Nysis_36_16k" />
+<wt:textbox field="Entity.Jb_Nysis_36_32k" />
+<wt:textbox field="Entity.Jb_Ds_32_16k" />
+<wt:textbox field="Entity.Jb_Ds_32_32k" />
+<wt:textbox field="Entity.Gbt_16k" />
+<wt:textbox field="Entity.Gbt_32k" />
+<wt:textbox field="Entity.Ywfy_Jz" />
+<wt:textbox field="Entity.Ywfy_Zs" />
+<wt:textbox field="Entity.Wlfy" />
+<wt:textbox field="Entity.Sf" />
+<wt:textbox field="Entity.Zzxh" />
+</wt:row>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton  text="淇濆瓨"/>
+      
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/Import.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/Import.cshtml
new file mode 100644
index 0000000..5d6939b
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/Import.cshtml
@@ -0,0 +1,14 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingImportVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+    <wt:row align="AlignEnum.Right">
+        <wt:downloadTemplateButton vm="@Model" />
+    </wt:row>
+    <wt:upload field="UploadFileId" label-text="@Model.Localizer["Sys.UploadTemplate"]" upload-type="ExcelFile" />
+    <wt:grid vm="ErrorListVM" use-local-data="true" hidden-checkbox="true" hidden-grid-index="true" hidden-panel="true"  height="300"/>
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton />
+        <wt:closebutton />
+    </wt:row>
+</wt:form>
diff --git a/cy_scdz/Areas/Setting/Views/PriceSetting/Index.cshtml b/cy_scdz/Areas/Setting/Views/PriceSetting/Index.cshtml
new file mode 100644
index 0000000..3a4f135
--- /dev/null
+++ b/cy_scdz/Areas/Setting/Views/PriceSetting/Index.cshtml
@@ -0,0 +1,281 @@
+锘緻model cy_scdz.ViewModel.Setting.PriceSettingVMs.PriceSettingVM
+@inject IStringLocalizer<Program> Localizer;
+
+<wt:form vm="@Model">
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">绾镐环璁剧疆</div>
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.Four">
+                <wt:textbox field="Entity.Fmsjz" padding-text="鍏�/鍚�" />
+                <wt:textbox field="Entity.Fmnpz" padding-text="鍏�/鍚�" />
+                <wt:textbox field="Entity.Nybsz" padding-text="鍏�/鍚�" />
+                <wt:textbox field="Entity.Nygbz" padding-text="鍏�/鍚�" />
+            </wt:row>
+        </div>
+    </div>
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">鍗板埛璐圭敤璁剧疆</div>
+        <div class="layui-card-body">
+            <table class="layui-table custom-thead">
+                <thead>
+                    <!-- 绗竴绾ц〃澶� -->
+                    <tr>
+
+                        <!-- 绗竴琛屽墿浣欏垪 -->
+                        <th colspan="12">楠戦┈閽�</th>
+                        <th colspan="14">鑳跺寘</th>
+                    </tr>
+
+                    <!-- 绗簩绾ц〃澶� -->
+                    <tr>
+                        <!-- 瀵瑰簲涓婁竴琛岀浜屽垪琚悎骞剁殑涓夊垪 -->
+                        <th colspan="4">鍐呴〉鍗曡壊</th>
+                        <th colspan="4">鍐呴〉鍙岃壊</th>
+                        <th colspan="4">鍐呴〉鍥涜壊</th>
+                        <th colspan="4">鍐呴〉鍗曡壊</th>
+                        <th colspan="4">鍐呴〉鍙岃壊</th>
+                        <th colspan="4">鍐呴〉鍥涜壊</th>
+                        <th colspan="2">鍗曢潰</th>
+
+                    </tr>
+
+                    <!-- 绗簩绾ц〃澶� -->
+                    <tr>
+                        <!-- 瀵瑰簲涓婁竴琛岀浜屽垪琚悎骞剁殑涓夊垪 -->
+                        <th colspan="2">32椤�</th>
+                        <th colspan="2">36-48椤�</th>
+                        <th colspan="2">32椤�</th>
+                        <th colspan="2">36-48椤�</th>
+                        <th colspan="2">32椤�</th>
+                        <th colspan="2">36-48椤�</th>
+
+                        <th colspan="2">32椤�</th>
+                        <th colspan="2">36-48椤�</th>
+                        <th colspan="2">32椤�</th>
+                        <th colspan="2">36-48椤�</th>
+                        <th colspan="2">32椤�</th>
+                        <th colspan="2">36-48椤�</th>
+
+                        <th colspan="2">32寮�</th>
+
+
+                    </tr>
+
+                    <tr>
+                        <!-- 瀵瑰簲涓婁竴琛岀浜屽垪琚悎骞剁殑涓夊垪 -->
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+                        <th>16K</th>
+                        <th>32K</th>
+
+                    </tr>
+                </thead>
+
+                <tbody>
+                    <!-- 琛ㄦ牸鏁版嵁琛� -->
+                    <tr>
+                        <td ><wt:textbox field="Entity.Qmd_Nyds_32_16k" hide-label="true" /></td>
+                        <td><wt:textbox field="Entity.Qmd_Nyds_32_32k" hide-label="true" /></td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nyds_36_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nyds_36_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nyss_32_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nyss_32_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nyss_36_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nyss_36_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nysis_32_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nysis_32_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nysis_36_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Qmd_Nysis_36_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyds_32_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyds_32_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyds_36_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyds_36_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyss_32_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyss_32_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyss_36_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nyss_36_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nysis_32_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nysis_32_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nysis_36_16k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Nysis_36_32k" hide-label="true" />
+                        </td>
+                        <td>
+                            <wt:textbox field="Entity.Jb_Ds_32_16k" hide-label="true" />
+                        </td>
+                        <td> <wt:textbox field="Entity.Jb_Ds_32_32k" hide-label="true" /></td>
+
+                    </tr>
+                    <!-- 鏇村鏁版嵁琛�... -->
+                </tbody>
+            </table>
+        </div>
+    </div>
+    @* <div class="layui-card this-card ">
+        <div class="layui-card-header">鍗板埛璐圭敤璁剧疆</div>
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.Four">
+                <wt:textbox field="Entity.Qmd_Nyds_32_16k" />
+                <wt:textbox field="Entity.Qmd_Nyds_32_32k" />
+                <wt:textbox field="Entity.Qmd_Nyds_36_16k" />
+                <wt:textbox field="Entity.Qmd_Nyds_36_32k" />
+                <wt:textbox field="Entity.Qmd_Nyss_32_16k" />
+                <wt:textbox field="Entity.Qmd_Nyss_32_32k" />
+                <wt:textbox field="Entity.Qmd_Nyss_36_16k" />
+                <wt:textbox field="Entity.Qmd_Nyss_36_32k" />
+                <wt:textbox field="Entity.Qmd_Nysis_32_16k" />
+                <wt:textbox field="Entity.Qmd_Nysis_32_32k" />
+                <wt:textbox field="Entity.Qmd_Nysis_36_16k" />
+                <wt:textbox field="Entity.Qmd_Nysis_36_32k" />
+                <wt:textbox field="Entity.Jb_Nyds_32_16k" />
+                <wt:textbox field="Entity.Jb_Nyds_32_32k" />
+                <wt:textbox field="Entity.Jb_Nyds_36_16k" />
+                <wt:textbox field="Entity.Jb_Nyds_36_32k" />
+                <wt:textbox field="Entity.Jb_Nyss_32_16k" />
+                <wt:textbox field="Entity.Jb_Nyss_32_32k" />
+                <wt:textbox field="Entity.Jb_Nyss_36_16k" />
+                <wt:textbox field="Entity.Jb_Nyss_36_32k" />
+                <wt:textbox field="Entity.Jb_Nysis_32_16k" />
+                <wt:textbox field="Entity.Jb_Nysis_32_32k" />
+                <wt:textbox field="Entity.Jb_Nysis_36_16k" />
+                <wt:textbox field="Entity.Jb_Nysis_36_32k" />
+                <wt:textbox field="Entity.Jb_Ds_32_16k" />
+                <wt:textbox field="Entity.Jb_Ds_32_32k" />
+            </wt:row>
+        </div>
+    </div> *@
+
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">瑁硅儗鏉′环鏍�</div>
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.Three">
+                <wt:textbox field="Entity.Gbt_16k" padding-text="鍏�/涓�"  label-width="120"/>
+                <wt:textbox field="Entity.Gbt_32k" padding-text="鍏�/涓�" label-width="120" />
+            </wt:row>
+        </div>
+    </div>
+
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">涓氬姟璐圭敤</div>
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.Three">
+                <wt:textbox field="Entity.Ywfy_Jz" padding-text="%" label-width="120" />
+                <wt:textbox field="Entity.Ywfy_Zs" padding-text="%" label-width="120" />
+            </wt:row>
+        </div>
+    </div>
+    <div class="layui-card this-card ">
+        <div class="layui-card-header">鍏朵粬璁剧疆</div>
+        <div class="layui-card-body">
+            <wt:row items-per-row="ItemsPerRowEnum.Three">
+                <wt:textbox field="Entity.Wlfy" padding-text="鍏�/涓�" label-width="120" />
+                <wt:textbox field="Entity.Sf" padding-text="%" label-width="120" />
+                <wt:textbox field="Entity.Zzxh" padding-text="鈥�" label-width="120" />
+    </wt:row>
+        </div>
+    </div>
+    <wt:hidden field="Entity.ID" />
+    <wt:row align="AlignEnum.Right">
+        <wt:submitbutton text="淇濆瓨" />
+       
+    </wt:row>
+</wt:form>
+
+<style>
+    .this-card {
+        background-color: #f0f0f0;
+    }
+
+    .custom-thead th {
+        text-align: center;
+        border-color: red;
+    
+    }
+
+    .custom-thead td {
+        margin: 0px;
+        padding: 0px;
+        border-color: red;
+        text-align: center;
+        vertical-align: middle;
+      
+    }
+
+    .custom-thead td div{
+            height: 100%;
+            overflow:hidden;
+            vertical-align: middle;
+
+    }
+
+    .layui-form-item{
+        margin-bottom:0px
+    }
+ 
+</style>
\ No newline at end of file
diff --git a/cy_scdz/Areas/Setting/Views/Setting/index.cshtml b/cy_scdz/Areas/Setting/Views/Setting/index.cshtml
index 7fe57a9..928870c 100644
--- a/cy_scdz/Areas/Setting/Views/Setting/index.cshtml
+++ b/cy_scdz/Areas/Setting/Views/Setting/index.cshtml
@@ -93,15 +93,21 @@
 
             // 鑾峰彇褰撳墠鐐瑰嚮鎸夐挳鐨刬d灞炴�у��
             var buttonId = "";
+            var strct = "";
             switch (this.id) {
                 case 'zbgys':
                     buttonId = "璇疯緭鍏ユ柊澧炰腑鏍囦緵搴斿晢鍚嶇О";
+                    strct = '<div><label>鍚嶇О锛�</label><input type="text" id="textValue"></div>';
                     break;
                 case 'fmzz':
                     buttonId = "璇疯緭鍏ユ柊澧炲皝闈㈢焊寮犺鏍�";
+                    strct = '<div><label>鍚嶇О锛�</label><input type="text" id="textValue"></div>' +
+                        '<div><label>鍏嬮噸锛�</label><input type="number" id="numValue"></div>';
                     break;
                 case 'nyzz':
                     buttonId = "璇疯緭鍏ユ柊澧炲唴椤电焊寮犺鏍�";
+                    strct = '<div><label>鍚嶇О锛�</label><input type="text" id="textValue"></div>' +
+                        '<div><label>鍏嬮噸锛�</label><input type="number" id="numValue"></div>';
                     break;
                 default:
                     buttonId = "";
@@ -110,16 +116,32 @@
             }
 
             var btid = this.id;
-
-            // 寮瑰嚭涓�涓璇濇璁╃敤鎴疯緭鍏ュ唴瀹�
-            layer.prompt({
+            layer.open({
+                type: 1,
                 title: buttonId,
-                formType: 0 // 0 琛ㄧず鏂囨湰杈撳叆妗�
-            }, function (value, index, elem) {
-                // 鍦ㄨ繖閲屾墽琛屾彁浜ら�昏緫锛屼緥濡傚悜鏈嶅姟鍣ㄥ彂閫佹暟鎹瓑
-                submitData(btid, value, index);
+                content: strct,
+                btn: ['纭', '鍙栨秷'],
+                yes: function (index, layero) {
+                    var textVal = $('#textValue').val();
+                    var numVal = $('#numValue').val();
 
+                    if (!isNaN(numVal)) {
+                        submitData(btid, { text: textVal, number: numVal }, index);
+                    } else {
+                        layer.msg('鏁板瓧杈撳叆涓嶅悎娉曪紝璇疯緭鍏ユ湁鏁堢殑鏁板瓧');
+                    }
+                }
             });
+
+            // // 寮瑰嚭涓�涓璇濇璁╃敤鎴疯緭鍏ュ唴瀹�
+            // layer.prompt({
+            //     title: buttonId,
+            //     formType: 0 // 0 琛ㄧず鏂囨湰杈撳叆妗�
+            // }, function (value, index, elem) {
+            //     // 鍦ㄨ繖閲屾墽琛屾彁浜ら�昏緫锛屼緥濡傚悜鏈嶅姟鍣ㄥ彂閫佹暟鎹瓑
+            //     submitData(btid, value, index);
+
+            // });
         });
 
         function submitData(id, value, index) {
@@ -129,7 +151,7 @@
                 type: "POST"
                 , contentType: "application/json; charset=utf-8"
                 , dataType: "json"
-                , data: JSON.stringify({ key: id, name: value })
+                , data: JSON.stringify({ key: id, name: value.text, val: value.number })
 
 
                 , success: function (result) {
diff --git a/cy_scdz/appsettings.json b/cy_scdz/appsettings.json
index 25181c8..897dd87 100644
--- a/cy_scdz/appsettings.json
+++ b/cy_scdz/appsettings.json
@@ -21,7 +21,7 @@
   "Connections": [
     {
       "Key": "default",
-      "Value": "Server=localhost\\SQLEXPRESS;Database=cy_scdz_db;Trusted_Connection=True;User ID=sa;Password=123456;",
+      "Value": "Server=localhost\\SQLEXPRESS;Database=cy_scdz1_db;Trusted_Connection=True;User ID=sa;Password=123456;",
       "DbContext": "DataContext",
       "DBType": "SqlServer" //DataBase, you can choose mysql,sqlserver,pgsql,sqlite,oracle
     }
diff --git a/utils/StringExtensions.cs b/utils/StringExtensions.cs
new file mode 100644
index 0000000..d840fea
--- /dev/null
+++ b/utils/StringExtensions.cs
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace utils
+{
+    /// <summary>
+    /// string 鎵╁睍鍑芥暟
+    /// </summary>
+    public static class StringExtensions
+    {
+        /// <summary>
+        /// str杞琲nt鎵╁睍鍑芥暟
+        /// </summary>     
+        /// <param name="defaultValue"> 杞崲澶辫触杩斿洖榛樿鍊�</param>
+        /// <returns></returns>
+        public static int ToInt32(this string value, int defaultValue = 0)
+        {
+            int result;
+            if (int.TryParse(value, out result))
+            {
+                return result;
+            }
+            else
+            {
+                return defaultValue;
+            }
+        }
+    }
+}

--
Gitblit v1.9.1