@model sbcLabSystem.Models.Backstage.QCDistributionPageViewModel
|
@{
|
ViewBag.Title = "管理实验室";
|
Layout = "~/Views/Shared/Master.cshtml";
|
}
|
|
<link href="@Url.Content("~/Content/PrintArea.css")" rel="stylesheet" />
|
<script src="@Url.Content("~/Scripts/jquery.PrintArea.js")"></script>
|
<script>
|
var viewModel;
|
$(function () {
|
viewModel = new myViewModel_Page(@Html.Raw(Json.Encode(Model)));
|
ko.applyBindings(viewModel, $(".container")[0]);
|
InitDateTimePicker();
|
viewModel.isLoadingOver(true);
|
});
|
function myViewModel_Page(data) {
|
var self = this;
|
self.imageHtml = ko.observable("");
|
self.isLoadingOver = ko.observable(false);
|
self.isShowModel = ko.observable(false);
|
self.Projects = ko.observableArray([
|
{ Id: 1, Text: "I类项目" },
|
{ Id: 2, Text: "II类项目" },
|
{ Id: 3, Text: "III类项目" },
|
{ Id: 4, Text: "IV类项目" },
|
]);
|
self.AllProjects = ko.observableArray([
|
{ Id: 0, Text: "全部" },
|
{ Id: 1, Text: "I类项目" },
|
{ Id: 2, Text: "II类项目" },
|
{ Id: 3, Text: "III类项目" },
|
{ Id: 4, Text: "IV类项目" },
|
]);
|
self.selectedProjectId = ko.observable(0);
|
self.doSearch = function () {
|
DoAjaxPost("@Url.Action("QCDistributionLabs", "Backstage")",
|
"{\"qcDistId\":{0},\"keyWord\":\"{1}\"}"
|
.format(self.CurrentQCDistribution.Id(), self.KeyWord2()), function (json) {
|
ko.mapping.fromJS(json, mapping, viewModel);
|
});
|
}
|
self.KeyWord2 = ko.observable("");
|
self.saveQCDistRegInfo = function () {
|
$.bootstrapLoading.start();
|
DoAjaxPost("@Url.Action("SaveLabList", "Backstage")",
|
JSON.stringify(ko.mapping.toJS(viewModel.CurrentQCDistribution)), function () {
|
$.bootstrapLoading.end();
|
$.messager.popup("保存成功!");
|
});
|
}
|
self.switchPage = function (pageIndex) {
|
if (viewModel.isLoadingOver() == false) {
|
return;
|
}
|
window.location.href = "@Url.Action("QCDistributionLabs", "Backstage")"
|
+ "?qcDistId={0}&pageIndex={1}".format(viewModel.CurrentQCDistribution.Id(), pageIndex);
|
}
|
self.sendBatchEmail = function () {
|
viewModel.isShowModel(true);
|
$("#sendBatchEmail").dialog(
|
{
|
title: "批量发送邮件",
|
backdrop: "static",
|
onClose: function () {
|
// your handler
|
$(this).dialog("destroy");
|
viewModel.isShowModel(false);
|
}
|
});
|
}
|
self.DosendBatchEmail = function () {
|
$.bootstrapLoading.start();
|
DoAjaxPost("@Url.Action("DosendBatchEmail", "Backstage")",
|
'{"type":12,"qcDistributionId":{0},projectId:{1}}'.format(self.CurrentQCDistribution.Id(), self.selectedProjectId()),
|
function (json) {
|
$.bootstrapLoading.end();
|
if (json.toLowerCase() == "nolab".toLowerCase()) {
|
$.messager.alert("未找到实验室!");
|
}
|
else {
|
$.messager.popup("发送批量邮件完成!");
|
}
|
$("#sendBatchEmail").dialog("destroy");
|
viewModel.isShowModel(false);
|
});
|
}
|
self.openFeeWindow = function () {
|
viewModel.isShowModel(true);
|
ko.mapping.fromJS(new QCDistRegisterInfo(
|
JSON.parse('{"LabCode":"","LetterNo":"","ChargeRemark":"","QCDistributionId":"{0}","IsCharged":false}'
|
.format(viewModel.CurrentQCDistribution.Id()))),
|
mapping, viewModel.CurrentQCDistRegisterInfo);
|
$("#confirmFee").dialog(
|
{
|
title: "收费确认",
|
backdrop: "static",
|
onClose: function () {
|
// your handler
|
$(this).dialog("destroy");
|
viewModel.isShowModel(false);
|
}
|
});
|
}
|
self.openEMSWindow = function () {
|
viewModel.isShowModel(true);
|
ko.mapping.fromJS(new QCDistRegisterInfo(
|
JSON.parse('{"LabCode":"","EMSNo":"","Remark":"","QCDistributionId":"{0}","IsSendEmail":{1}}'
|
.format(viewModel.CurrentQCDistribution.Id(),true))),
|
mapping, viewModel.CurrentQCDistRegisterInfo);
|
$("#confirmEMS").dialog(
|
{
|
title: "标本寄出确认",
|
backdrop: "static",
|
onClose: function () {
|
// your handler
|
$(this).dialog("destroy");
|
viewModel.isShowModel(false);
|
}
|
});
|
}
|
self.importLab = function () {
|
viewModel.isShowModel(true);
|
$("#ImportLabs").dialog(
|
{
|
title: "导入实验室",
|
backdrop: "static",
|
onClose: function () {
|
// your handler
|
$(this).dialog("destroy");
|
viewModel.isShowModel(false);
|
}
|
});
|
}
|
self.ImportLabAction = function () {
|
$.messager.confirm("确认", "确认要导入选择的质控发布实验室信息吗?", function () {
|
$("#ImportLabs").dialog("destroy");
|
viewModel.isShowModel(false);
|
$.bootstrapLoading.start();
|
DoAjaxPost("@Url.Action("ImportLabs", "Backstage")",
|
'{"oriDistId":{0},"TargetDistId":{1}}'
|
.format(viewModel.ImportQCDistId(), viewModel.CurrentQCDistribution.Id()),
|
function (json) {
|
$.bootstrapLoading.end();
|
ko.mapping.fromJS(json, mapping, viewModel);
|
$.messager.popup("导入成功!");
|
}, function () {
|
$.bootstrapLoading.end();
|
});
|
});
|
}
|
self.output = function () {
|
location.href = "@Url.Action("OutputUnderTakenLabs", "Backstage")"
|
+ "?qcDistId=" + self.CurrentQCDistribution.Id()
|
}
|
ko.mapping.fromJS(data, mapping, self);
|
}
|
mapping = {
|
CurrentQCDistribution: {
|
create: function (options) {
|
return new QCDistributionInfo(options.data);
|
}
|
},
|
CurrentQCDistRegisterInfo: {
|
create: function (options) {
|
return new QCDistRegisterInfo(options.data);
|
}
|
}
|
}
|
function QCDistributionInfo(data) {
|
var self = this;
|
ko.mapping.fromJS(data, QCDistributionInfo.mapping, self);
|
}
|
QCDistributionInfo.mapping = {
|
LabList: {
|
create: function (options) {
|
return new QCDistRegisterInfo(options.data);
|
}
|
}
|
}
|
function QCDistRegisterInfo(data) {
|
var self = this;
|
|
self.QCDistributionId = ko.observable(data.QCDistributionId);
|
self.LabCode = ko.observable(data.LabCode);
|
self.EMSNo = ko.observable(data.EMSNo);
|
self.Remark = ko.observable(data.Remark);
|
self.InputElement = ko.observable(1);
|
self.confirmFee = function () {
|
DoAjaxPost("@Url.Action("ConfigrmFee", "Backstage")",
|
JSON.stringify(ko.mapping.toJS(viewModel.CurrentQCDistRegisterInfo)),
|
function (json) {
|
viewModel.CurrentQCDistRegisterInfo.isShowNextStep(true);
|
ko.mapping.fromJS(json, {}, viewModel.CurrentQCDistRegisterInfo);
|
});
|
}
|
self.printEMS = function () {
|
//打印快递单
|
$.messager.confirm("确认", "确认要打印快递单吗?", function () {
|
DoAjaxPost("@Url.Action("PrintLabInfo", "Backstage")",
|
'{"rdlcName":"EmsInfo.rdlc","labInfoId":{0},"qcDistributionId":{1}}'
|
.format(self.LabId(), self.QCDistributionId()),
|
function (json) {
|
viewModel.imageHtml("http://{0}".format(json));
|
$(".PrintArea").css("display", "");
|
$(".PrintArea").printArea();
|
$(".PrintArea").css("display", "none");
|
});
|
});
|
}
|
self.printLetter = function () {
|
//打印信封
|
$.messager.confirm("确认", "确认要打印信封吗?", function () {
|
DoAjaxPost("@Url.Action("PrintLabInfo", "Backstage")",
|
'{"rdlcName":"EnvelopeInfo.rdlc","labInfoId":{0},"qcDistributionId":{1}}'
|
.format(self.LabId(), self.QCDistributionId()),
|
function (json) {
|
viewModel.imageHtml("http://{0}".format(json));
|
$(".PrintArea").css("display", "");
|
$(".PrintArea").printArea();
|
$(".PrintArea").css("display", "none");
|
});
|
});
|
}
|
self.confirmEMS = function () {
|
DoAjaxPost("@Url.Action("ConfigrmEMS", "Backstage")",
|
JSON.stringify(ko.mapping.toJS(viewModel.CurrentQCDistRegisterInfo)),
|
function (json) {
|
viewModel.CurrentQCDistRegisterInfo.isShowNextStep(true);
|
ko.mapping.fromJS(json, {}, viewModel.CurrentQCDistRegisterInfo);
|
});
|
}
|
self.switchNextOne = function () {
|
console.log("下一步");
|
DoAjaxPost("@Url.Action("switchNextOne", "Backstage")",
|
JSON.stringify(ko.mapping.toJS(viewModel.CurrentQCDistRegisterInfo)),
|
function (json) {
|
viewModel.CurrentQCDistRegisterInfo.isShowNextStep(true);
|
$("#EMSNo").focus();
|
ko.mapping.fromJS(json, {}, viewModel.CurrentQCDistRegisterInfo);
|
});
|
}
|
self.sendEmail = function () {
|
$.messager.confirm("确认", "确认要发送邮件吗?", function () {
|
DoAjaxPost("@Url.Action("SendEmail", "Backstage")",
|
'{"type":12,"qcDistRegInfoId":{0}}'.format(self.Id()),
|
function (json) {
|
$.messager.popup("发送成功");
|
});
|
});
|
}
|
self.isShowNextStep = ko.observable(false);
|
ko.mapping.fromJS(data, {}, self);
|
}
|
</script>
|
|
<style>
|
.buttonarea button {
|
color: #3535b8;
|
}
|
</style>
|
|
<div class="container" style="width:1600px;">
|
<div class="row">
|
<div class="col-xs-12">
|
<ol class="breadcrumb">
|
<li><a href="@Url.Action("QCDistribution", "Backstage")">质评发布</a></li>
|
<li class="active">实验室管理</li>
|
</ol>
|
</div>
|
</div>
|
<div class="row">
|
<div class="col-xs-12 text-center">
|
<h3 data-bind="text:CurrentQCDistribution.DistNo"></h3>
|
</div>
|
</div>
|
<div class="row buttonarea">
|
<div class="col-xs-6">
|
<div class="btn-group" role="group">
|
<button class="btn btn-default" data-bind="click:importLab">导入实验室</button>
|
<button class="btn btn-default" data-bind="click:sendBatchEmail">发送邮件</button>
|
<button class="btn btn-default" data-bind="click:openFeeWindow">收费确认</button>
|
<button class="btn btn-default" data-bind="click:openEMSWindow">标本寄出确认</button>
|
<button class="btn btn-default" data-bind="click:output">导出</button>
|
</div>
|
</div>
|
</div>
|
<div style="overflow: auto;">
|
<div style="width: 1800px; overflow: hidden;">
|
<table class="table table-responsive table-hover table-bordered" data-bind="with:CurrentQCDistribution">
|
<caption>
|
<form class="form-inline" data-bind="submit:$parent.doSearch">
|
<div class="form-group">
|
<label class="control-label">搜索参与质评的实验室</label>
|
<input type="text" class="form-control" data-bind="textInput:$parent.KeyWord2" />
|
<button class="btn btn-default" type="submit">查询</button>
|
</div>
|
</form>
|
</caption>
|
<thead>
|
<tr>
|
<th>操作</th>
|
<th>选择</th>
|
<th>实验室代码</th>
|
<th>实验室名称</th>
|
<th>单位名称</th>
|
<th>省份</th>
|
<th>质评项目</th>
|
<th>已收费</th>
|
<th>挂号信号码</th>
|
<th>已发快递</th>
|
<th>快递单号</th>
|
<th>快递包内容</th>
|
<th>操作</th>
|
</tr>
|
</thead>
|
<tbody data-bind="foreach:LabList">
|
<tr>
|
<td>
|
<p>
|
<a href="javascript:void(0);" data-bind="click:sendEmail,visible:Id()>0">发送邮件</a>
|
<a href="javascript:void(0);" data-bind="click:printEMS,visible:Id()>0">打印快递单</a>
|
</p>
|
<p>
|
<a href="javascript:void(0);" data-bind="click:printLetter,visible:Id()>0">打印信封</a>
|
</p>
|
|
</td>
|
<td>
|
<input type="checkbox" class="form-control" data-bind="checked:IsSelected" />
|
</td>
|
<td data-bind="text:LabCode"></td>
|
<td data-bind="text:LabName"></td>
|
<td data-bind="text:CompanyName"></td>
|
<td data-bind="text:Province"></td>
|
<td>
|
<select data-bind="options:$root.Projects,optionsText:'Text',optionsValue:'Id',value:ProjectId"></select>
|
</td>
|
<td>
|
<input type="checkbox" class="form-control" data-bind="checked:IsCharged" />
|
</td>
|
<td>
|
<input type="text" class="form-control" data-bind="textInput:LetterNo" />
|
</td>
|
<td>
|
<input type="checkbox" class="form-control" data-bind="checked:IsSendEMS" />
|
</td>
|
<td>
|
<input type="text" class="form-control" data-bind="textInput:EMSNo" />
|
</td>
|
<td>
|
<input type="text" class="form-control" data-bind="textInput:PacketContent" />
|
</td>
|
<td></td>
|
</tr>
|
</tbody>
|
</table>
|
<nav aria-label="Page navigation" data-bind="with:PageNavInfo">
|
<ul class="pagination" data-bind="foreach:Pages">
|
<li data-bind="if:$data==1">
|
<a href="javascript:void(0);" aria-label="Previous" data-bind="click:$root.switchPage(1)">
|
<span aria-hidden="true">«</span>'
|
|
</a>
|
</li>
|
<li data-bind="css:{active:$data==$parent.PageIndex()}"><a href="javascript:void(0);" data-bind="click:$root.switchPage($data),text:$data"></a></li>
|
<li data-bind="if:$data==$parent.LastPageIndex()">
|
<a href="javascript:void(0);" aria-label="Next" data-bind="click:$root.switchPage($parent.LastPageIndex())">
|
<span aria-hidden="true">»</span>'
|
</a>
|
</li>
|
</ul>
|
</nav>
|
<div class="row" style="margin-top:20px;">
|
<div class="col-xs-12">
|
<button class="btn btn-primary center-block" data-bind="click:$root.saveQCDistRegInfo">保存</button>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="PrintArea">
|
<img data-bind="attr:{src:imageHtml}" />
|
</div>
|
<div id="confirmFee" data-bind="visible:isShowModel()==true">
|
<div data-bind="with:CurrentQCDistRegisterInfo">
|
<form data-bind="submit:confirmFee">
|
<div class="form-group">
|
<label class="control-label">实验室代码:</label>
|
<input type="text" class="form-control" data-bind="textInput:LabCode,hasFocus:InputElement()==1" required />
|
</div>
|
<div class="form-group">
|
<label class="control-label">挂号信号码:</label>
|
<input type="text" class="form-control" data-bind="textInput:LetterNo,hasFocus:InputElement()==2" required />
|
</div>
|
<div class="form-group">
|
<label class="control-label">收费备注:</label>
|
<input type="text" class="form-control" data-bind="textInput:ChargeRemark" />
|
</div>
|
<div class="row">
|
<div class="col-xs-12 text-center">
|
<div class="btn-group">
|
<button class="btn btn-default">打印</button>
|
<button type="submit" class="btn btn-primary">确认</button>
|
</div>
|
</div>
|
</div>
|
<div class="row" style="margin-top:20px;" data-bind="visible:isShowNextStep">
|
<div class="col-xs-12 text-center">
|
<div class="btn-group">
|
<button class="btn btn-primary" data-bind="click:switchNextOne">下一个</button>
|
</div>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
<div id="confirmEMS" data-bind="visible:isShowModel()==true">
|
<div data-bind="with:CurrentQCDistRegisterInfo">
|
<form data-bind="submit:confirmEMS">
|
<div class="form-group">
|
<label class="control-label">实验室代码:</label>
|
<input type="text" class="form-control" data-bind="textInput:LabCode,hasFocus:InputElement()==1" required />
|
</div>
|
<div class="form-group">
|
<label class="control-label">快递单号码:</label>
|
<input id="EMSNo" type="text" class="form-control" data-bind="textInput:EMSNo,hasFocus:InputElement()==2" required />
|
</div>
|
<div class="form-group">
|
<label class="control-label">是否发送邮件:</label>
|
<input id="IsSendEmail" type="checkbox" data-bind="checked:IsSendEmail" />
|
</div>
|
<div class="row">
|
<div class="col-xs-12 text-center">
|
<div class="btn-group">
|
<button class="btn btn-default">打印</button>
|
<button type="submit" class="btn btn-primary">确认</button>
|
<button class="btn btn-default">取消</button>
|
</div>
|
</div>
|
</div>
|
<div class="row" style="margin-top:20px;" data-bind="visible:isShowNextStep">
|
<div class="col-xs-12 text-center">
|
<div class="btn-group">
|
<button class="btn btn-primary" data-bind="click:switchNextOne">下一个</button>
|
</div>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
<div id="ImportLabs" data-bind="visible:isShowModel()==true">
|
<form class="form-inline" data-bind="submit:ImportLabAction">
|
<div class="form-group">
|
<label class="control-label">请选择质评</label>
|
<select data-bind="options:QCDistributionSampleList,optionsValue:'Id',optionsText:'DistNo',value:ImportQCDistId"></select>
|
<button type="submit" class="btn btn-primary">导入</button>
|
</div>
|
</form>
|
</div>
|
<div id="sendBatchEmail" data-bind="visible:isShowModel()==true">
|
<form class="form-inline" data-bind="submit:DosendBatchEmail">
|
<div class="form-group">
|
<label class="control-label">请选择质评类别</label>
|
<select data-bind="options:AllProjects,optionsValue:'Id',optionsText:'Text',value:selectedProjectId"></select>
|
<button type="submit" class="btn btn-primary">批量发送</button>
|
</div>
|
</form>
|
</div>
|
</div>
|