在上一次导入发现了一个问题就是 一个车型类型对应多个vin码,这样就导致车型类型重。所以这一次要添加一个VIN码与车型表对应的新表,新表与车型表是多对一关系。
1. 新表的数据结构
CREATE TABLE [dbo].[CoreCmsVin](
[id] [int] IDENTITY(1,1) NOT NULL,
[carTypeId] [int] NULL,
[VIN] [nvarchar](17) NULL,
CONSTRAINT [PK_CoreCmsVin] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'VIN码对与车型对照表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CoreCmsVin'
GO
2.在后台生成代码
选中刚才新建表格,点击 “立即生成”。
3. 将生成的代码添加到项目之中
CoreShop 的代码生成功能比Vol.NetCore 相比有点差,还需要手功添加到项目中,而且生成的主键,还要将 [Required(ErrorMessage = “请输入{0}”)] 这一行验证代码删除。
3.1将entity 中的CoreCmsVin.cs 放到 ,上次车辆类的entity同一目录中。并将上一行验证删除。
加入前台的
<div class="layui-upload">
<button type="button" class="layui-btn" id="test-upload">上传Excel文件</button>
<div class="layui-upload-list">
<table class="layui-table">
<thead>
<tr><th>文件名</th><th>状态</th><th>操作</th></tr>
</thead>
<tbody id="upload-result"></tbody>
</table>
</div>
</div>
将这一段代码加入到前台CoreCms.Net.Web.Admin\wwwroot\views\corecmscartype\index.html
文件中,这个目录是代码生成之后自己建立的,大家可以根据自己的爱好建立,只要记得文件夹名就好。
2. 加入按钮
<script type="text/html" id="LAY-app-CoreCmsCartype-pagebar">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="addData"><i class="layui-icon layui-icon-add-1"></i>添加数据</button>
<button class="layui-btn layui-btn-sm" lay-event="batchDelete"><i class="layui-icon layui-icon-delete"></i>批量删除</button>
<button class="layui-btn layui-btn-sm" lay-event="selectExportExcel"><i class="layui-icon layui-icon-add-circle"></i>选择导出</button>
<button class="layui-btn layui-btn-sm" lay-event="queryExportExcel"><i class="layui-icon layui-icon-download-circle"></i>查询导出</button>
<!-- 下面的这个是新增的按钮 -->
<button class="layui-btn layui-btn-sm" lay-event="queryExportExcel"><i class="layui-icon layui-icon-download-circle"></i>导入车型</button>
</div>
</script>
3. 添加导入车型 button 的响应事件
将按钮中queryExportExcel 事件改成为queryImportExcel,代码如下:
lay-event=“queryImportExcel”
在javacript 加入queryImportExcel的事件处理
//头工具栏事件
table.on('pagebar(LAY-app-CoreCmsCartype-tableBox)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
switch (obj.event) {
case 'addData':
doCreate();
break;
case 'batchDelete':
doBatchDelete(checkStatus);
break;
case 'selectExportExcel':
doSelectExportExcel(checkStatus);
break;
case 'queryExportExcel':
doQueryExportexcel();
break;
case 'queryImportExcel': //添加的代码
doQueryImportexcel();
break;
};
});
在这里插入代码片
6.最后加一个
本文件的创建数据页面太长,高度超过一屏。
这里改成一行两个数据列,代码大致如下:
<div class="layui-container" style="width:900px;">
<div class="layui-col-md6">
<label for="id" class="layui-form-label layui-form-required"></label>
<div class="layui-input-block">
<input type="number" min="0" max="999999" name="id" lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入" lay-reqText="请输入并为数字" />
</div>
</div>
<div class="layui-col-md6">
<label for="manufacturer" class="layui-form-label layui-form-required">厂家名称</label>
<div class="layui-input-block">
<input name="manufacturer" lay-verType="tips" lay-verify="required|verifymanufacturer" class="layui-input" lay-reqText="请输入厂家名称" placeholder="请输入厂家名称" />
</div>
</div>
</div>