========================
这里面我的设计是先创建一个表,创表的时候根本原型创立,有些可能会涉及到相关联的字段也同时创建好。
-- 自动采集信息查询 表
create table nncq_AutCollectInfoSearch
(
ID uniqueidentifier primary key,--主键 AutCIS意思的 自动采集信息查询的简称
AutCISArea varchar(50), --所属地区
AutProjectName varchar(50), --工程名称
AutTestProject varchar(50), --检测项目
AutCollectTime datetime, --采集时间
AutEntrustNum varchar(50),--委托编号
AutEntrustCompany varchar(50), --委托单位
AutCompanyNum varchar(50),--检测机构代码
AutCompanyName varchar(50),--检测机构名称
AutMyPhotoAtta uniqueidentifier, --数据照片
SortCode varchar(50), --排序条件,我想去掉它不知道怎么搞
IsDel bit --是否删除
)
外页显示基础信息,内页我的想法是有一个上传图片按钮,把图片可以上传上去。AutMyPhotoAtta uniqueidentifier这类型类似GUID,空值是
update [pkpmbs_gx_new].[dbo].[nncq_AutCollectInfoSearch] set AutMyPhotoAtta='00000000-0000-0000-0000-000000000000'
注意一点的是 内也是一个局部页 return PartialView();涉及到原型,以及视图模型我就懒得贴代码了。
AccAssociation、BusinessFile这两个我也懒得贴了直接用公司底层。
删除表:drop table [pkpmbs_gx_new].[dbo].[nncq_TestingReportSearchController];
给表中添加一个字段:alter table [pkpmbs_gx_new].[dbo].[nncq_TestingReportSearchController] add TestingState varchar(50) null;
========================
(JS-----JS)(JS-----JS)(JS-----JS)(JS-----JS)(JS-----JS)(JS-----JS)
$(document).ready(function () {
var personrow;
var table = $("#table-list").uTable({
url: "IAutCollectInfoSearch",
page: {
pageSize: 20,
reqindex: "index",
reqsize: "size"
},
click: function (r) {
personrow = r;
},
heads: [{ key: "AutCISArea", name: "地区" },
{ key: "AutProjectName", name: "工程名称" },
{ key: "AutCompanyName", name: "检测机构" },
{ key: "AutTestProject", name: "检测项目" },
{ key: "AutCollectTime", name: "采集时间" },
{ key: "AutEntrustNum", name: "委托单号" },
{ html: '<a href="javascript:" class="read" data-id="{{ID}}" >查看</a> <a href="javascript:" ', name: "操作" }
]
});
// 人员列表-->点击铅笔按钮
$("#table-list").on("click", ".read", function () {
pid = $(this).attr("data-id");//人员id
Detail(pid);
})
function Detail(pid) {
$.layout.detail("VAutCollectInfoSearch/Detail", function () {
$("#personinfo").detail({
data: personrow
});
$("#form_base").Form({
url: "IAutCollectInfoSearch/getBaseInfo?id=" + pid,
afterCreate: function (d) {
pid = d.ID; //返回的是人员的ID,给全局变量赋值
temp_pid = pid; //全局中间变量 pid
//上传相片
$("#tupianshow").attr("src", "Img?id=" + d.AutMyPhotoAtta + "&m=1&w=400&h=400");
$("#wbasephoto").click(function () {
var id = temp_pid;
UploadMyPhoto(id);
});
}
});
});
}
});
/**
* 上传个人相片
*
*/
function UploadMyPhoto(id) {
$("#modaltemplatebox").modal({
url: "VAutCollectInfoSearch/MyPhoto",
title: "上传个人相片",
buttons: [
{
text: "确定", click: function () {
var fid = $("input[name=MyPhotoAttaFileID]").val();
if (fid != "" && fid != "00000000-0000-0000-0000-000000000000") {
$.get("IAutCollectInfoSearch/SaveMyPhoto", { fid: fid, pid: id }, function (d) {
if (d.error == 0) {
$("#tupianshow").attr("src", "Img?id=" + d.data + "&m=1&w=400&h=400");
$("input[name=AutMyPhotoAtta]").val(d.data);
$("#modaltemplatebox").close();
}
});
} else {
$.msg.alert("文件上传失败!");
}
}
},
{ text: "关闭", click: function () { /*逻辑处理*/$(this).close(); } }
],
afterCreate: function () {
var upphoto = $("#uploadmyphoto").CQUpload({
lable: "个人相片",
fhidid: "MyPhotoAttaFileID",
ahidid: "AutMyPhotoAtta",
name: "MyPhotoAttaName",
allowedExtensions: ["jpg", "jpeg", "gif", "png"],
showlable: false
})
}
});
}
(I控制器--I控制器)(I控制器--I控制器)(I控制器--I控制器)(I控制器--I控制器)(I控制器--I控制器)
using fmtx.Framework.Expend;
using NNCQ.Domain;
using NNCQ.Domain.Common;
using NNCQ.Domain.ViewModels;
using NNCQ.IBLL;
using NNCQ.SqlService;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace NNCQ.Web.Controllers.Api
{
public class IAutCollectInfoSearchController : BaseController
{
private readonly IDBHelper<AutCollectInfoSearch> _ACIService;
private readonly IDBHelper<AccAssociation> _AttaService;
private readonly IDBHelper<BusinessFile> _FileService;
public IAutCollectInfoSearchController(IDBHelper<AutCollectInfoSearch> ACIService,
IDBHelper<AccAssociation> AttaService, IDBHelper<BusinessFile> FileService)
{
_ACIService = ACIService;
_AttaService = AttaService;
_FileService = FileService;
}
// GET: IAutCollectInfoSearch
public ActionResult Index(int index, int size,string projectname, string entrustNum, string autCompanyName)
{
var pron = projectname.Trim();
var entn = entrustNum.Trim();
var CompanyName = autCompanyName.Trim();
int count = 0;
var wherestr = new StringBuilder();
if (!string.IsNullOrEmpty(pron))
wherestr.AppendFormat(" and AutProjectName like'%{0}%'", pron);
if (!string.IsNullOrEmpty(entn))
{
wherestr.AppendFormat(" and AutEntrustNum like'%{0}%' ", entn);
}
if (!string.IsNullOrEmpty(CompanyName))
{
wherestr.AppendFormat(" and AutCompanyName like '%{0}%' ", CompanyName);
}
//if (!string.IsNullOrEmpty(ar))
//{
// wherestr.AppendFormat(" and AutCISArea like '{0}' ", ar);
//}
var list = SqlDBHelper.Query(index, size, "*", "nncq_AutCollectInfoSearch", wherestr.ToString(), "ID asc", out count);
return Table(list, count);
}
/// <summary>
/// 获取照片信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult getBaseInfo(string id)
{
var vmbean = new AutCollectInfoSearchVM();
if (string.IsNullOrEmpty(id))
{
var bean = new AutCollectInfoSearch();
vmbean.CopyModel(bean);
return JsonData(vmbean);
}
else
{
Guid gid = Guid.Parse(id);
string sql = "select *from nncq_AutCollectInfoSearch where ID=@id";
SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@id", gid) };
DataTable persontable = SqlDBHelper.Query(sql, paras);
vmbean.ID = persontable.Rows[0].Field<Guid>("ID");
vmbean.AutCISArea = persontable.Rows[0].Field<string>("AutCISArea");
vmbean.AutProjectName = persontable.Rows[0].Field<string>("AutProjectName");
vmbean.AutTestProject = persontable.Rows[0].Field<string>("AutTestProject");
vmbean.AutCollectTime = persontable.Rows[0].Field<DateTime>("AutCollectTime");
vmbean.AutEntrustNum = persontable.Rows[0].Field<string>("AutEntrustNum");
vmbean.AutEntrustCompany = persontable.Rows[0].Field<string>("AutEntrustCompany");
vmbean.AutCompanyNum = persontable.Rows[0].Field<string>("AutCompanyNum");
vmbean.AutCompanyName = persontable.Rows[0].Field<string>("AutCompanyName");
vmbean.AutMyPhotoAtta = persontable.Rows[0].Field<Guid>("AutMyPhotoAtta");
return JsonData(vmbean);
}
}
/// <summary>
/// 保存上传图片
/// </summary>
/// <param name="vbean"></param>
/// <returns></returns>
public ActionResult SaveMyPhoto(Guid fid, Guid pid)
{
var abean = new AccAssociation();
abean.AnnexID = fid;
_AttaService.Insert(abean);
var bean = _ACIService.Get(pid);
if (bean != null)
{
if (bean.AutMyPhotoAtta != Guid.Empty)
{
var bo = _AttaService.Get(bean.AutMyPhotoAtta);
if (bo != null)
{
_FileService.Delete(bo.AnnexID);
}
_AttaService.Delete(bean.AutMyPhotoAtta);
}
bean.AutMyPhotoAtta = abean.ID;
_ACIService.Update(bean);
}
return Success(abean.ID);
}
}
}
(图片处理的控制器)(图片处理的控制器)(图片处理的控制器)(图片处理的控制器)(图片处理的控制器)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using fmtx.Framework.Img;
using NNCQ.Domain.Common;
using fmtx.Framework.DALFactory;
using NNCQ.IBLL;
using System.IO;
using NNCQ.Domain;
using NNCQ.Web.Models;
namespace NNCQ.Web.Controllers.Common
{
public class ImgController : BaseController
{
private readonly IDBHelper<AccAssociation> _Attaervice;
private readonly IDBHelper<BusinessFile> _BFervice;
private readonly string tempPath = ConfigurationManager.AppSettings["DefaultTempUploadUrl"];
private readonly string SincerityValicode = ConfigurationManager.AppSettings["SincerityValicode"];
public ImgController(
IDBHelper<AccAssociation> Attaervice,
IDBHelper<BusinessFile> BFervice)
{
_Attaervice = Attaervice;
_BFervice = BFervice;
}
// GET: Img
/// <summary>
/// 获取图片缩略图
/// </summary>
/// <param name="id"></param>
/// <param name="m"></param>
/// <param name="w"></param>
/// <param name="h"></param>
/// <returns></returns>
[OutputCache(Duration = 720 * 60)]
public ActionResult Index(string id, ImageFactory.ImgModel m, int w = 100, int h = 100)
{
try
{
var Suffix = "";
var path = PublicCs.GetFile(Guid.Parse(id),out Suffix);
return File(ImageFactory.MakeThumbnail(Server.MapPath(BaseFolder(path)), w, h, m), "image/" + (Suffix.Substring(1)));
}
catch (Exception)
{
}
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
Response.Cache.SetNoStore();
return File(ImageFactory.MakeThumbnail(Server.MapPath("~/") + "Images/FileDefault.jpg", w, h, m), "image/jpg");
}
/// <summary>
/// 输出图片
/// </summary>
/// <param name="f"></param>
/// <param name="m"></param>
/// <param name="w"></param>
/// <param name="h"></param>
/// <returns></returns>
[OutputCache(Duration = 720 * 60)]
public ActionResult Pic(Guid id, ImageFactory.ImgModel m, int w = 100, int h = 100)
{
try
{
var image = PublicCs.GetFileBId(id);
var filepath = Server.MapPath(BaseFolder(image));
if (System.IO.File.Exists(filepath))
{
return File(ImageFactory.MakeThumbnail(filepath, w, h, m), "image/png");
}
}
catch (Exception)
{
}
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
Response.Cache.SetNoStore();
return File(ImageFactory.MakeThumbnail(Server.MapPath("~/") + "Images/FileDefault.jpg", w, h, m), "image/jpg");
}
/// <summary>
/// 输出图片
/// </summary>
/// <param name="f"></param>
/// <param name="m"></param>
/// <param name="w"></param>
/// <param name="h"></param>
/// <returns></returns>
[OutputCache(Duration = 720 * 60)]
public ActionResult word(string path,string id, ImageFactory.ImgModel m, int w = 100, int h = 100)
{
try
{
var image = BaseFolder(tempPath+@"\viewTemp\");
var filepath = Server.MapPath(image+ path+@"\"+id+".png");
if (System.IO.File.Exists(filepath))
{
return File(ImageFactory.MakeThumbnail(filepath, w, h, m), "image/png");
}
}
catch (Exception)
{
}
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
Response.Cache.SetNoStore();
return File(ImageFactory.MakeThumbnail(Server.MapPath("~/") + "Images/FileDefault.jpg", w, h, m), "image/jpg");
}
}
}
(详细页Detail)详细页Detail)详细页Detail)详细页Detail)详细页Detail)详细页Detail)详细页Detail)
<div>
<fieldset>
@*<legend>基本信息</legend>*@
<table id="personinfo" class="table" style="background:rgba(255,255,255,.15);">
<tr>
<td><label>检测项目:</label></td>
<td><span name="AutTestProject"></span></td>
<td><label>采集时间:</label></td>
<td><span name="AutCollectTime"></span></td>
</tr>
</table>
</fieldset>
</div>
<div class="tab-content ">
<div data-name="采集信息">
<form id="form_base" fm-form="ajax" method="post">
<table style="width:100%;text-align:right">
<tr>
<td rowspan="5" style="text-align:center;">
<img id="tupianshow" style="width:80%;" src="" />
<input type="hidden" name="AutMyPhotoAtta" />
</td>
<td></td>
</tr>
<tr>
<td style="text-align:center;">
<a href="javascript:" style="color:blue;" id="wbasephoto">上传相片</a>
</td>
</tr>
</table>
</form>
</div>
</div>
(MyPhoto页)(MyPhoto页)(MyPhoto页)(MyPhoto页)(MyPhoto页)(MyPhoto页)(MyPhoto页)
<div style="width:400px;">
<form id="base-myphoto" action="Api/AutCollectInfoSearch/SaveMyPhoto" fm-form="ajax" method="post" class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-3">相片</label>
<div class="control-label col-sm-9" id="uploadmyphoto"></div>
</div>
<input type="hidden" name="ID" />
</form>
</div>