| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031 |
- @using ContractService.Configuration
- @using ContractService.Authorization
- @using ContractService.LegalCase
- @using ContractService.LegalContract
- @using ContractService.Views.Shared.Modals
- @using ContractService.Views.Shared.Query
- @using ContractService.Views.Shared.SearchForm
- @using ContractService.Views.Shared.Table
- @using IwbZero.Runtime.Session
- @{
- ViewBag.Title = "法律服务项目详情";
- string activeMenu = PermissionNames.PagesCaseContractMgCaseMg; //The menu item will be active for this page.
- ViewBag.ActiveMenu = activeMenu;
- string caseNo = ViewBag.CaseNo, caseState = ViewBag.CaseState, contractState = ViewBag.ContractState;
- int noteType = AbpSession.AccountType == AccountTypeDefinition.Lawyer ? NoteTypeDefinition.LawyerNote : NoteTypeDefinition.Note;
- var perm = AbpSession.AccountType == AccountTypeDefinition.Client ? PermissionNames.PagesCaseContractMgContractMg : "";
- var searchList = new List<SearchItem>()
- {
- new SearchItem("code", "合同编号"),
- new SearchItem("name", "合同名称"),
- new SearchItem("contractState", "合同状态", FieldType.I).SetSelectItem(contractState),
- new SearchItem("startDateTime", "启动时间", FieldType.Dn),
- };
- var fields = new List<FieldItem>()
- {
- new FieldItem("code", "合同编号"),
- new FieldItem("name", "合同名称"),
- new FieldItem("contractState", "合同状态", "ContractStateFormatter"),
- };
- if (AbpSession.AccountType == AccountTypeDefinition.System || AbpSession.AccountType == AccountTypeDefinition.Lawyer)
- {
- searchList.AddRange(new List<SearchItem>()
- {
- new SearchItem("companyName", "企业名称")
- });
- fields.AddRange(new List<FieldItem>()
- {
- new FieldItem("companyName", "企业名称")
- });
- }
- else
- {
- fields.AddRange(new List<FieldItem>()
- {
- new FieldItem("startDateTime", "启动时间", "DateFormatter"),
- new FieldItem("endDateTime", "关闭时间", "DateFormatter"),
- new FieldItem("stateLastChangeTime", "状态变更时间", "DateTimeFormatter"),
- new FieldItem("stateLastChangeCause", "状态变更原由"),
- });
- }
- if (AbpSession.AccountType == AccountTypeDefinition.System)
- {
- searchList.Add(new SearchItem("hasLawFirm", "分配律所").SetSelectItem(new List<SelectListItem>()
- {
- new SelectListItem() {Text = @"全部", Value = ""},
- new SelectListItem() {Text = @"未分配", Value = "0"},
- new SelectListItem() {Text = @"已分配", Value = "1"},
- }));
- fields.Add(new FieldItem("lawFirmName", "律所名称", "LawFirmNameFormatter"));
- }
- fields.Add(new FieldItem("", "操作", "ActionsFormatter"));
- var searchForm = new SearchFormViewModel(searchList);
- var table = new TableViewModel(IwbConsts.ApiAppUrl + "LegalContract/GetAll", perm, searchForm)
- .SetFields(fields);
- var inputs = new List<Input>()
- {
- new InputHide("id"),
- new InputHide("caseNo"),
- new Input("code", "合同编号"),
- new Input("name", "合同名称"),
- new InputWangEditor("contentInfo", "合同信息").SetNotRequired(),
- };
- var modalBody = new ModalBodyViewModel()
- .AddTab("base", "合同信息", inputs)
- .AddTab("attach", "合同附件", "<div id=\"attach-box\" class=\"iwb-dynamic-box\"><button class=\"btn btn-sm btn-iwb\" type=\"button\" style=\"position: absolute; top: 8px;right:20px\" onclick=\"AddAttach()\">添加附件</button><div class=\"box-attaches\" style=\"display:none;width:100%;flex-wrap: wrap;\"></div><div class=\"row box-label\"><div class=\"col-md-11\"><label>附件名称</label></div><div class=\"col-md-1\"><label>操作</label></div></div><div class=\"box-body\"></div></div>");
- var modal = new ModalViewModel("合同").SetBody(modalBody);
- var modal_note = new ModalViewModel("添加备注", "", new ModalBodyViewModel(new List<Input>()
- {
- new InputHide("id"),
- new InputHide("caseNo"),
- new InputHide("noteType"),
- new InputTextarea("noteContent", "备注内容")
- }, "form-note"), "modal-note");
- var modal_lawFirm = new ModalViewModel("分配律所", "", new ModalBodyViewModel(new List<Input>()
- {
- new AjaxSelect("lawFirmNo", "律所信息", "LawFirm", "contract", "query_lawFirm", "lawFirmNo")
- }, "form-lawFirm"), "modal-lawFirm", 0, "");
- var body_lawyer = new ModalBodyViewModel(new List<Input>()
- {
- new AjaxSelect("lawyerNo", "关联律师", "Lawyer", caseNo, "query_lawyer").SetSearchClear("lawyerNo"),
- }, "form-lawyer");
- body_lawyer.AddInput((bool)ViewBag.IsLawFirmMaster ? new Input("lawyerMaster", "负责人").SetSelectOptions("<option value=\"0\" selected>辅助律师</option><option value=\"1\">主律师</option>") : new InputHide("lawyerMaster"));
- var modal_lawyer = new ModalViewModel("添加律师", "", body_lawyer, "modal-lawyer", 0, "");
- // var modal_lawyer = new ModalViewModel("添加律师", "", new ModalBodyViewModel(new List<Input>()
- //{
- // new Input("lawyerMaster", "负责人").SetSelectOptions("<option value=\"0\" selected>辅助律师</option><option value=\"1\">主律师</option>"),
- // new AjaxSelect("lawyerNo", "辅助律师", "Lawyer", "contract", "query_lawyer", "lawyerNo")
- // }, "form-lawyer"), "modal-lawyer", 0, "");
- var body_staff = new ModalBodyViewModel(new List<Input>()
- {
- new AjaxSelect("staffNo", "关联员工", "Staff", caseNo, "query_staff").SetSearchClear("staffNo,staffOrgName"),
- new Input("staffOrgName", "员工部门").SetDisabled(),
- }, "form-staff");
- body_staff.AddInput((bool)ViewBag.IsCaseMaster ? new Input("staffMaster", "负责人").SetSelectOptions("<option value=\"0\" selected>普通员工</option><option value=\"1\">负责人</option>") : new InputHide("staffMaster"));
- var modal_staff = new ModalViewModel("添加员工", "", body_staff, "modal-staff", 0, "");
- var modal_attach = new ModalViewModel("添加附件", "", new ModalBodyViewModel(new List<Input>()
- {
- new Input("name", "附件名称"),
- new InputFile("attach", "合同附件").SetFileOption("a-info", "a-name", "a-ext")
- }, "form-attach"), "modal-attach", 0, "");
- }
- @section css{
- <style>
- .iwb-bootstrap-table .table-box-content {
- padding: 10px .5rem 0;
- }
- </style>
- }
- <div class="container-fluid">
- <div class="row">
- <div class="col-md-4" style="padding-top: 10px;">
- <div class="card card-widget">
- <div class="card-header">
- <div class="card-title"><h4 id="case-name" class="mb-0 text-iwb"></h4></div>
- <div class="card-tools">
- <div class="btn-group btn-group-sm" id="note-btn-tool">
- @if (AbpSession.AccountType == AccountTypeDefinition.Client && IsGranted(PermissionNames.PagesCaseContractMgCaseMgNote))
- {
- <button type="button" class="btn btn-iwb fixed" onclick="AddNote()">项目备注</button>
- }
- </div>
- </div>
- </div>
- <div class="card-body">
- <div id="case-desc"></div>
- </div>
- <div class="card-footer card-comments">
- <div id="case-note-tool">
- <label class="iwb-checkbox checkbox-solid"><input name="note-tool" type="checkbox" value="@(AbpSession.AccountType == AccountTypeDefinition.System?NoteTypeDefinition.LawyerNote+","+NoteTypeDefinition.Note:noteType+"")"><span>项目备注</span></label>
- <label class="iwb-checkbox checkbox-solid"><input name="note-tool" type="checkbox" value="@(NoteTypeDefinition.StateChange)"><span>状态变更</span></label>
- </div>
- <div id="case-note"></div>
- </div>
- </div>
- </div>
- <div class="col-md-8">
- @Html.Partial("Table/_Table", table)
- </div>
- </div>
- </div>
- @section modal{
- <!--Modal Start-->
- @Html.Partial("Modals/_Modal", modal)
- @Html.Partial("Modals/_Modal", modal_note)
- <div class="modal fade " id="modal-lawyers" aria-modal="true">
- <div class="modal-dialog modal-dialog-centered modal-lg" style="margin-top: 15px;">
- <div class="modal-content">
- <div class="modal-header" style="cursor: move;">
- <h4 class="modal-title">分配律师 <button class="btn btn-iwb btn-sm ml-2" onclick="AddLawyer()">添加律师</button></h4>
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
- </div>
- <div class="modal-body">
- <form id="form-lawyers" class="iwb-dynamic-box">
- <div class="row box-label">
- <div class="col-md-9"><label>律师姓名</label></div>
- <div class="col-md-2"><label>主律师</label></div>
- <div class="col-md-1"><label>操作</label></div>
- </div>
- <div class="box-body"></div>
- </form>
- </div>
- @Html.Partial("Modals/_ModalFooter", "0")
- </div>
- </div>
- </div>
- <div class="modal fade " id="modal-staffs" aria-modal="true">
- <div class="modal-dialog modal-dialog-centered modal-lg" style="margin-top: 15px;">
- <div class="modal-content">
- <div class="modal-header" style="cursor: move;">
- <h4 class="modal-title">添加合同关联职员 <button class="btn btn-iwb btn-sm ml-2" onclick="AddStaff()">添加关联员工</button></h4>
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
- </div>
- <div class="modal-body">
- <form id="form-staffs" class="iwb-dynamic-box">
- <div class="row box-label">
- <div class="col-md-5"><label>员工</label></div>
- <div class="col-md-4"><label>部门</label></div>
- <div class="col-md-2"><label>负责人</label></div>
- <div class="col-md-1"><label>操作</label></div>
- </div>
- <div class="box-body"></div>
- </form>
- </div>
- @Html.Partial("Modals/_ModalFooter", "0")
- </div>
- </div>
- </div>
- @Html.Partial("Modals/_Modal", modal_staff)
- @Html.Partial("Modals/_Modal", modal_lawFirm)
- @Html.Partial("Modals/_Modal", modal_lawyer)
- @Html.Partial("Modals/_Modal", modal_attach)
- @Html.Partial("Query/_LawFirm", new QuerySearchModel("query_lawFirm", "lawFirmNo").SetOriginField("id").SetAjaxSelectName("name"))
- @Html.Partial("Query/_Staff", new QuerySearchModel("query_staff", "staffNo,name,staffOrgName").SetOriginField("id,name,staffOrgName").SetSearchFun("SetCaseQueryFun()").SetAjaxSelectName("name"))
- @*@Html.Partial("Query/_LawyerWithLaw", new QuerySearchModel("query_lawyer", "lawyerNo|lawyer_no").SetOriginField("id").SetAjaxSelectName("name"))*@
- @if (AbpSession.AccountType == AccountTypeDefinition.Lawyer)
- {
- @Html.Partial("Query/_LawyerWithLaw", new QuerySearchModel("query_lawyer", "lawyerNo|lawyer_no").SetOriginField("id").SetAjaxSelectName("name").SetSearchFun("SetLawyerQueryFun()"))
- }
- <!--Modal End-->
- }
- @section scripts
- {
- <script type="text/javascript">
- var $table;
- $(function() {
- GetCase();
- GetNote();
- $table = LoadTable({
- searchList: [{ "KeyField": "caseNo", "KeyWords": '@(caseNo)', "FieldType": 0, "ExpType": 0 }]
- });
- var funs = window.iwbfuns || { none: function() { console.log("No type"); } };
- funs["btnCreate"] = function() {
- $('#id_base').tab('show');
- $('#attach-box .box-body').empty();
- $('#attach-box .box-attaches').css("display", "none");
- BtnCreate({ data: { id: "", caseNo: '@(caseNo)' }, dataFun: GetSaveData });
- }
- funs["btnUpdate"] = function() {
- var row = $table.bootstrapTable("getSelections")[0];
- if (row) {
- if (row.contractState !== @(LegalCaseStateDefinition.New)) {
- abp.message.warn("只能修改新建的合同!");
- return;
- }
- $('#id_base').tab('show');
- $('#attach-box .box-body').empty();
- GetAttach(row.id);
- $.iwbAjax4({
- url: abp.appUrl + "LegalContract/GetDtoById?id=" + row.id,
- success: function(res) {
- BtnUpdate({ disabled: "", dataFun: GetSaveData }, res);
- }
- });
- }
- };
- funs["btnSetStaff"] = function(url) {
- var row = $table.bootstrapTable("getSelections")[0];
- if (row) {
- var id = row.id;
- OpenModal({
- url: url,
- modal: "modal-staffs",
- shownBefore: function() {
- $.iwbAjax4({
- url: abp.appUrl + "LegalContract/GetContractStaffs?no=" + id,
- success: function(res) {
- $('#form-staffs .box-body').empty();
- if (res && res.length) {
- res.forEach(function(v) {
- //if (v.isMaster) {
- // $('#modal-staff #staffMaster').closest('.row').css("display", "flex");
- //}
- StaffFormatter(v.no, v.name, v.orgName, v.isMaster);
- });
- } else {
- $('#form-staffs .box-body')
- .html('<label class="empty text-danger">暂未分配关联职员</label>');
- }
- }
- });
- },
- dataFun: function() {
- var data = {};
- data.id = id;
- data.list = [];
- data.master = $('#modal-staffs input[name="master"]').val();
- $('#modal-staffs input[name="staff"]').each(function() {
- var v = $(this).val();
- if (v) {
- data.list.push(v);
- }
- });
- return data;
- }
- });
- }
- }
- //funs["btnSetMasterLawyer"] = function(url) {
- // var row = $table.bootstrapTable("getSelections")[0];
- // if (row) {
- // OpenModal({
- // url: url,
- // modal: "modal-master",
- // data: { no: row.id }
- // });
- // }
- //};
- //funs["btnSetLawyer"] = function(url) {
- // var row = $table.bootstrapTable("getSelections")[0];
- // if (row) {
- // var id = row.id;
- // OpenModal({
- // url: url,
- // modal: "modal-lawyers",
- // shownBefore: function() {
- // $.iwbAjax4({
- // url: abp.appUrl + "LegalContract/GetContractLawyers?no=" + id,
- // success: function(res) {
- // $('#form-lawyers .box-body').empty();
- // if (res && res.length) {
- // res.forEach(function(v) {
- // LawyerFormatter(v.no, v.name);
- // });
- // } else {
- // $('#form-lawyers .box-body')
- // .html('<label class="empty text-danger">暂未分配辅助律师</label>');
- // }
- // }
- // });
- // },
- // dataFun: function() {
- // var data = {};
- // data.id = id;
- // data.lawyers = [];
- // $('#modal-lawyers input[name="lawyers"]').each(function() {
- // var v = $(this).val();
- // if (v) {
- // data.lawyers.push(v);
- // }
- // });
- // return data;
- // }
- // });
- // }
- //};
- $('#case-note-tool input[type="checkbox"]').on('change',function() {GetNote();});
- $('#modal-staff #staffNo').on('change',
- function () {
- var no = $('#modal-staff #staffNo').val();
- if (no) {
- $.iwbAjax41({
- url: abp.appUrl + "Query/QueryStaff?no=" + no,
- success: function (res) {
- if (res.organizationName) {
- $('#modal-staff #staffOrgName').val(res.organizationName);
- }
- }
- });
- }
- });
- });
- function GetSaveData() {
- var data = $.formSerialize($('#modal form'));
- data.AttachFiles = [];
- $('#modal .attach-row').each(function() {
- var $this = $(this);
- var v = $this.find('input[name="attach-info"]').val();
- if (v) {
- data.AttachFiles.push({
- FileInfo: v,
- FileTitle: $this.find('input[name="attach-title"]').val(),
- FileName: $this.find('input[name="attach-name"]').val(),
- FileExt: $this.find('input[name="attach-ext"]').val()
- });
- }
- });
- return data;
- }
- function SetCaseQueryFun() {
- return { "KeyField": "caseall", "KeyWords": '@(caseNo)' }
- }
- </script>
- <script id="staff-script">
- //添加职员
- function AddStaff() {
- OpenModal({
- modal: "modal-staff",
- data: { staffMaster: 0 },
- save: function () {
- var v = $('#modal-staff #staffNo').val(),
- n = $('#modal-staff #staffNo option[value="' + v + '"]').text(),
- on = $('#modal-staff #staffOrgName').val(),
- m = $('#modal-staff #staffMaster').val();
- if (!v) {
- abp.message.warn("请选择一名员工!");
- return;
- } else if ($('#modal-staffs input[value="' + v + '"]').length) {
- abp.message.warn("员工已关联,请勿重复添加!");
- return;
- }
- if (m == "1" && $('#modal-staffs input[name="master"]').length) {
- abp.message.warn("已有负责人,请勿重复添加!");
- return;
- }
- StaffFormatter(v, n, on, m == "1");
- $('#modal-staff').modal('hide');
- }
- });
- }
- //职员显示格式化
- function StaffFormatter(v, n, on, m) {
- var str = '<div class="row staff-group"><input name="{3}" type="hidden" value="{0}" /><div class="col-md-5"><input type="text" class="form-control form-control-sm disabled" value="{1}" disabled="" /></div><div class="col-md-4"><input type="text" class="form-control form-control-sm disabled" value="{2}" disabled="" /></div><div class="col-md-2"><input type="text" class="form-control form-control-sm disabled" value="{4}" disabled="" /></div><div class="col-md-1"><button type="button" class="btn btn-sm btn-danger" onclick="DeleteStaff(this)">删除</button></div></div>'
- .format(v, n, on, m ? "master" : "staff", m ? "负责人" : "普通员工");
- $('#modal-staffs .box-body .empty').remove();
- //$('#form-staffs .box-body .empty').fadeOut(500, function () { $(this).remove(); });
- $('#form-staffs .box-body').append(str);
- }
- function DeleteStaff(that) {
- var $that = $(that).closest('.staff-group');
- $that.remove();
- //$that.fadeOut(500, function () {
- // $that.remove();
- //});
- }
- </script>
- <script id="Note-Case-Script">
- function GetCase() {
- $.iwbAjax4({
- url: abp.appUrl + 'LegalCase/GetDtoById?id=@(caseNo)',
- success: function(res) {
- if (res) {
- var name = '<span>{0}</span><small class="text-sm">({1})</small>'.format(res.name,
- CaseStateFormatter(res.caseState));
- $('#case-name').html(name);
- $('#case-desc').html(res.description);
- @if (AbpSession.AccountType == AccountTypeDefinition.Client && IsGranted(PermissionNames.PagesCaseContractMgCaseMgChangeState))
- {
- <text>
- var btnS =
- '<button type="button" class="btn btn-iwb" onclick="MsgConfirm(\'确认要启动项目吗?\',\'开启项目\',function() {ChangeCaseState(@(LegalCaseStateDefinition.Running),\'开启项目\')});">开启项目</button>',
- btnH =
- '<button type="button" class="btn btn-iwb" onclick="ChangeCaseStateWithModal(@LegalCaseStateDefinition.Hang ,\'挂起项目\')">挂起项目</button>',
- btnR =
- '<button type="button" class="btn btn-iwb" onclick="ChangeCaseStateWithModal(@LegalCaseStateDefinition.Running,\'恢复项目\')">恢复项目</button>',
- btnRs =
- '<button type="button" class="btn btn-iwb" onclick="ChangeCaseStateWithModal(@LegalCaseStateDefinition.Running,\'重启项目\')">重启项目</button>',
- btnE =
- '<button type="button" class="btn btn-iwb" onclick="ChangeCaseStateWithModal(@LegalCaseStateDefinition.End ,\'关闭项目\')">关闭项目</button>';
- var str = '';
- switch (res.caseState) {
- case @(LegalCaseStateDefinition.New):
- str += btnS;
- break;
- case @(LegalCaseStateDefinition.Running):
- str += btnH;
- str += btnE;
- break;
- case @(LegalCaseStateDefinition.Hang):
- str += btnR;
- str += btnE;
- break;
- case @(LegalCaseStateDefinition.End):
- default:
- str = '';
- break;
- }
- </text>
- if (IsGranted(PermissionNames.PagesCaseContractMgCaseMgRestart))
- {
- <text>
- if(res.caseState===@(LegalCaseStateDefinition.End)) {
- str += btnRs;
- }
- </text>
- }
- <text>
- $('#note-btn-tool button:not(.fixed)').remove();
- if (str) {
- $('#note-btn-tool').prepend(str);
- }
- </text>
- }
- }
- }
- });
- }
- function GetNote(count) {
- $('.tool-more').remove();
- count = count || 0;
- var skip = count === 0 ? 0 : $('#case-note .card-comment').length, take = (count + 1) * 5;
- var keyword = "";
- $('#case-note-tool input[type="checkbox"]:checked').each(function() {
- keyword += "," + $(this).val();
- });
- if (keyword) {
- keyword = keyword.substr(1);
- }
- $.iwbAjax4({
- url: abp.appUrl + 'LegalCase/QueryNote',
- data: {
- no: '@(caseNo)',
- skip: skip,
- take: take > 30 ? 30 : take,
- keyword: keyword
- },
- success: function(res) {
- NotesFormatter(res.items, count, res.totalCount > skip + res.items.length);
- }
- });
- }
- function NotesFormatter(data, count, hasMore) {
- var str = '';
- $('.no-note').remove();
- if (data && data.length) {
- data.forEach(function(v) {
- str += NoteFormatter(v);
- });
- if (count == 0) {
- $('#case-note').empty();
- }
- $('#case-note').append(str);
- if (hasMore) {
- var more =
- '<div class="tool-more" style="position: absolute;bottom: 0;left: 0;width:100%;height:120px;display:flex;justify-content: center;align-items: center;background: linear-gradient(rgba(255,255,255,.2),rgb(255,255,255))"><button class="btn btn-iwb" style="width: 120px;" onclick="GetNote({0})">查看更多...</button></div>'
- .format(count + 1);
- $('#case-note').append(more);
- } else {
- $('.tool-more').remove();
- }
- } else if (count == 0) {
- $('#case-note')
- .html(
- '<div class="no-note"><span style="text-align: center;width: 100%;display: block;font-size: 1.25rem;font-weight: 600;color: var(--mc);">暂无备注</span></div>');
- $('.tool-more').remove();
- } else {
- $('.tool-more').remove();
- }
- }
- function NoteFormatter(data) {
- var str = '';
- if (data) {
- str +=
- '<div class="card-comment"><img class="img-circle img-sm" src="{1}"><div class="comment-text"><span class="username">{0}<span lass="text-muted" style="float:right">{2}</span></span><span class="text-content">{3}</span></div></div>'
- .format(data.userRealName,
- data.userImage ? data.userImage : '/Content/Image/user.png',
- new Date(data.creationTime).format("yyyy-MM-dd hh:mm:ss"),
- data.noteContent);
- }
- return str;
- }
- function AddNote() {
- OpenModal({
- url: abp.appUrl + "LegalCase/CreateNote",
- modal: "modal-note",
- data: {
- id: "0",
- caseNo: '@caseNo',
- noteType:'@noteType'
- },
- success: GetNote
- });
- }
- </script>
- <script id="Attach-Script">
- function GetAttach(id) {
- $.iwbAjax4({
- url: abp.appUrl + 'AttachFiles/QueryAttaches',
- data: {
- TableName: "Contract",
- ColName: "Contract",
- Key: id
- },
- success: function (res) {
- var str = '';
- if (res) {
- res.forEach(function (v) {
- str += QueryAttachFormatter(v);
- });
- }
- if (str) {
- $('#attach-box .box-attaches').html(str).css("display", "flex");
- } else {
- $('#attach-box .box-attaches').css("display", "none");
- }
- }
- });
- }
- function QueryAttachFormatter(data) {
- var str = "";
- if (data) {
- str =
- '<span class="attach-file ml-3 mb-2" style="border: 1px solid #1e90ff; color: #1e90ff; background: #eee; border-radius:.25rem; padding: 3px 0px 3px 5px; display: block;"><a title="点击查看(下载)附件" href="{1}" target="_blank">{2}</a><span class="pl-2 pr-2" title="删除附件" onclick="DeleteAttach(this,\'{0}\',\'{2}\')" style="cursor: pointer;">X</span></span>'
- .format(data.id, data.filePath, data.fileTitle);
- }
- return str;
- }
- function DeleteAttach(that, id, name) {
- MsgConfirm("您确定要删除附件[" + name + "]吗?",
- "删除附件",
- function () {
- $.iwbAjax1({
- url: abp.appUrl + "AttachFiles/DeleteAttach",
- data: {
- id: id
- },
- success: function () {
- $(that).parent().fadeOut(500,
- function () {
- $(this).remove();
- });
- }
- });
- });
- }
- //添加附件
- function AddAttach() {
- OpenModal({
- modal: "modal-attach",
- save: function () {
- if ($.formValidate($('#modal-attach form'))) {
- var v = $('#modal-attach #a-info').val(),
- t = $('#modal-attach #name').val(),
- n = $('#modal-attach #a-name').val(),
- e = $('#modal-attach #a-ext').val();
- if (!v) {
- abp.message.warn("请选择一个文件!");
- return;
- }
- AttachFormatter(v, t, n, e);
- $('#modal-attach').modal('hide');
- }
- }
- });
- }
- function AttachFormatter(v, t, n, e) {
- var str =
- '<div class="row attach-row"><input name="attach-info" type="hidden" value="{0}" /><input name="attach-title" type="hidden" value="{1}" /><input name="attach-name" type="hidden" value="{2}" /><input name="attach-ext" type="hidden" value="{3}" /><div class="col-md-11"><input type="text" class="form-control form-control-sm disabled" value="{1}({2})" disabled="" /></div><div class="col-md-1"><button class="btn btn-sm btn-danger" onclick="$(this).closest(\'.attach-row\').fadeOut(500,function(){$(this).remove()});">删除</button></div></div>'
- .format(v, t, n, e);
- $('#attach-box .box-body').append(str);
- }
- </script>
- <script id="LawFirm-Script">
- function SetLawFirm(id, name) {
- OpenModal({
- url: abp.appUrl + "LegalContract/SetLawFirm",
- modal: "modal-lawFirm",
- shownBefore: function () {
- $.iwbAjax4({
- url: abp.appUrl + "LegalContract/CheckContractHasLawFirm?no=" + id,
- success: function (res) {
- if (res) {
- abp.message.error("当前合同已分配!").done(function () {
- $("#modal-lawFirm").modal("hide");
- });
- }
- }
- });
- },
- save: function (opt) {
- var lawFirmNo = $("#modal-lawFirm #lawFirmNo").val();
- var lawFirmName = $("#modal-lawFirm #lawFirmNo option[value='" + lawFirmNo + "']").text();
- abp.message.confirm(
- '确认将合同<span class="text-danger">【{0}】</span>分配给律所<span class="text-danger">【{1}】</span>吗?分配后将无法更改!'
- .format(name, lawFirmName),
- "确认律所",
- function (isConfirmed) {
- if (isConfirmed) {
- $.iwbAjax1({
- url: opt.url,
- data: { id: id, lawFirmNo: lawFirmNo },
- success: function () {
- RefreshTable();
- $("#modal-lawFirm").modal("hide");
- }
- });
- }
- },
- true);
- }
- });
- }
- </script>
- @if (AbpSession.AccountType == AccountTypeDefinition.Lawyer)
- {
- <script id="Lawyer-Script">
- function SetLawyerQueryFun() {
- return { "KeyField": "lawFirmNo", "KeyWords": '@(AbpSession.GetClaimValue(IwbConsts.UserCompanyLawFirmClaimType))' }
- }
- //添加辅助律师
- function SetLawyer(id) {
- OpenModal({
- data: { lawyerMaster: 0 },
- url: abp.appUrl +"LegalContract/SetLawyer",
- modal: "modal-lawyers",
- shownBefore: function() {
- $.iwbAjax4({
- url: abp.appUrl + "LegalContract/GetContractLawyers?no=" + id,
- success: function(res) {
- $('#form-lawyers .box-body').empty();
- if (res && res.length) {
- res.forEach(function(v) {
- LawyerFormatter(v.no, v.name,v.isMaster);
- });
- } else {
- $('#form-lawyers .box-body')
- .html('<label class="empty text-danger">暂未分配辅助律师</label>');
- }
- }
- });
- },
- dataFun: function() {
- var data = {};
- data.id = id;
- data.list = [];
- data.master = $('#modal-lawyers input[name="master"]').val();
- $('#modal-lawyers input[name="lawyer"]').each(function() {
- var v = $(this).val();
- if (v) {
- data.list.push(v);
- }
- });
- return data;
- }
- @if ((bool) ViewBag.IsLawFirmMaster)
- {
- <text>
- , save: function (opt) {
- var data = opt.data;
- if (!data) {
- data = opt.dataFun.call();
- }
- if (!data.master) {
- abp.message.warn("请设置一名主律师!");
- return;
- }
- $.iwbAjax1({
- url: opt.url,
- data: data,
- success: function () {
- $('#modal-lawyers').modal('hide');
- }
- });
- }
- </text>
- }
- });
- }
- //添加辅助律师
- function AddLawyer() {
- OpenModal({
- modal: "modal-lawyer",
- data: { lawyerMaster: 0 },
- save: function () {
- var v = $('#modal-lawyer #lawyerNo').val(),
- n = $('#modal-lawyer #lawyerNo option[value="' + v + '"]').text(),
- m = $('#modal-lawyer #lawyerMaster').val();
- if (!v) {
- abp.message.warn("请选择一名律师!");
- return;
- } else if ($('#modal-lawyers input[value="' + v + '"]').length) {
- abp.message.warn("律师已关联,请勿重复添加!");
- return;
- }
- if (m == "1" && $('#modal-lawyers input[name="master"]').length) {
- abp.message.warn("已有主律师,请勿重复添加!");
- return;
- }
- LawyerFormatter(v, n, m == "1");
- $('#modal-lawyer').modal('hide');
- }
- });
- }
- //辅助律师显示格式化
- function LawyerFormatter(v, n,m) {
- var str =
- '<div class="row group"><input name="{2}" type="hidden" value="{0}" /><div class="col-md-9"><input type="text" class="form-control form-control-sm disabled" value="{1}" disabled="" /></div><div class="col-md-2"><input type="text" class="form-control form-control-sm disabled" value="{3}" disabled="" /></div><div class="col-md-1"><button class="btn btn-sm btn-danger" onclick="DeleteGroup(this);">删除</button></div></div>'
- .format(v, n, m ? "master" : "lawyer", m ? "主律师" : "辅助律师");
- $('#modal-lawyers .box-body .empty').remove();
- $('#form-lawyers .box-body').append(str);
- }
- function DeleteGroup(that) {
- var $that = $(that).closest('.group');
- $that.remove();
- //$that.fadeOut(500, function () {
- // $that.remove();
- //});
- }
- </script>
- }
- <script id="ChangeCaseState-Script">
- function ChangeCaseState(state, reason) {
- $.iwbAjax1({
- url: abp.appUrl + 'LegalCase/ChangeState',
- table: $table,
- data: {
- Id: '@(caseNo)',
- State: state,
- Reason: reason
- },
- success: function() {
- GetCase();
- GetNote();
- }
- });
- }
- function ChangeCaseStateWithModal(state, title) {
- $(document).iwbModal('create',
- {
- modal: 'change-state-modal',
- modaltitle: title,
- modalBody:
- '<div class="modal-body"><form class="form-horizontal iwb-form"><div class="form-group row"><label class="col-sm-3 col-md-2 iwb-label iwb-label-sm " for="reason">变更原因</label><div class="col-sm-9 col-md-10"><div class="input-group input-group-sm " style="position: relative"><textarea rows="5" class="form-control" id="reason" name="description" placeholder="请输入变更原因..." value="" style="width:100%"></textarea></div></div></div></form></div>',
- save: function() {
- var v = $('#change-state-modal #reason').val();
- if (v) {
- ChangeCaseState(state, v);
- $('#change-state-modal').modal('hide');
- } else {
- abp.message.warn("请输入变更原因后再提交");
- }
- }
- });
- }
- </script>
- <script id="ChangeContractState-Script">
- function ChangeState(id, state, reason) {
- $.iwbAjax1({
- url: abp.appUrl + 'LegalContract/ChangeState',
- table: $table,
- data: {
- Id: id,
- State: state,
- Reason: reason
- }
- });
- }
- function ChangeStateWithModal(id, state, title) {
- $(document).iwbModal('create',
- {
- modal: 'change-state-modal',
- modaltitle: title,
- modalBody:
- '<div class="modal-body"><form class="form-horizontal iwb-form"><div class="form-group row"><label class="col-sm-3 col-md-2 iwb-label iwb-label-sm " for="reason">变更原因</label><div class="col-sm-9 col-md-10"><div class="input-group input-group-sm " style="position: relative"><textarea rows="5" class="form-control" id="reason" name="description" placeholder="请输入变更原因..." value="" style="width:100%"></textarea></div></div></div></form></div>',
- save: function() {
- var v = $('#change-state-modal #reason').val();
- if (v) {
- ChangeState(id, state, v);
- $('#change-state-modal').modal('hide');
- } else {
- abp.message.warn("请输入变更原因后再提交");
- }
- }
- });
- }
- function GoDetail(id) {
- window.location.href = '@Url.Action("ContractDetail")' + '/' + id;
- }
- </script>
- <!--格式化-->
- <script id="formatter-script" type="text/javascript">
- function TypeFormatter(v) {
- var name = $('#hid-type option[value="' + v + '"]').text();
- switch (v) {
- case 0:
- return '<span class="label sm label-danger">' + name + '</span>';
- default:
- return '<span class="label sm label-info">' + name + '</span>';
- }
- }
- function ContractStateFormatter(v) {
- var name = $('#hid-contract-state option[value="' + v + '"]').text();
- return name;
- }
- function CaseStateFormatter(v) {
- var name = $('#hid-case-state option[value="' + v + '"]').text();
- return name;
- @*switch (v) {
- case @(LegalCaseStateDefinition.New):
- return '<span class="label sm label-iwb">' + name + '</span>';
- case @(LegalCaseStateDefinition.Running):
- return '<span class="label sm label-success">' + name + '</span>';
- case @(LegalCaseStateDefinition.Hang):
- return '<span class="label sm label-warning">' + name + '</span>';
- case @(LegalCaseStateDefinition.End):
- return '<span class="label sm label-danger">' + name + '</span>';
- default:
- return '<span class="label sm label-info">' + name + '</span>';
- }*@
- }
- function LawFirmNameFormatter(v) {
- if (v) {
- return v;
- } else {
- return '<span class="text-danger">未分配</span>';
- }
- }
- function ActionsFormatter(v, r) {
- var str = '', state = r.contractState, id = r.id;
- @if (IsGranted(PermissionNames.PagesCaseContractMgContractMgChangeState) && AbpSession.AccountType == AccountTypeDefinition.Client)
- {
- <text>
- var strS =
- '<span class="table-action" onclick="MsgConfirm(\'确认要启动合同[{2}]吗?\',\'开启合同\',function() {ChangeState(\'{1}\',@(LegalContractStateDefinition.Running),\'开启合同\')});">{0} 开启合同</span>'
- .format(tableActionIcon, id, r.name),
- strH =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalContractStateDefinition.Hang),\'挂起合同\')">{0} 挂起合同</span>'
- .format(tableActionIcon, id),
- strR =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalContractStateDefinition.Running),\'恢复合同\')">{0} 恢复合同</span>'
- .format(tableActionIcon, id),
- strRs =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalContractStateDefinition.Running),\'重启合同\')">{0} 重启合同</span>'
- .format(tableActionIcon, id),
- strE =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalContractStateDefinition.End),\'关闭合同\')">{0} 关闭合同</span>'
- .format(tableActionIcon, id);
- if (state == @(LegalContractStateDefinition.New)) {
- str += strS;
- } else if (state == @(LegalContractStateDefinition.Running)) {
- str += strH;
- str += strE;
- } else if (state == @(LegalContractStateDefinition.Hang)) {
- str += strR;
- str += strE;
- }
- </text>
- if (IsGranted(PermissionNames.PagesCaseContractMgContractMgRestart))
- {
- <text>
- if (state == @(LegalContractStateDefinition.End)) {
- str += strRs;
- }
- </text>
- }
- }
- @if (IsGranted(PermissionNames.PagesCaseContractMgContractMgSetLawFirm) && AbpSession.AccountType == AccountTypeDefinition.System)
- {
- <text>
- if (!r.lawFirmName) {
- str += '<span class="table-action" onclick="SetLawFirm(\'{1}\',\'{2}\')">{0} 分配律所</span>'.format(tableActionIcon, id, r.name);
- }
- </text>
- }
- @if (((bool)ViewBag.IsLawFirmMaster || IsGranted(PermissionNames.PagesCaseContractMgContractMgSetLawyer)) && AbpSession.AccountType == AccountTypeDefinition.Lawyer)
- {
- <text>
- if (r.isMaster) {
- str +=
- '<span class="table-action" onclick="SetLawyer(\'{1}\')">{0} 分配律师</span>'
- .format(tableActionIcon, id);
- }
-
- </text>
- }
- @if (IsGranted(PermissionNames.PagesCaseContractMgContractMgQuery))
- {
- <text>
- str += '<span class="table-action" onclick="GoDetail(\'{1}\')">{0} 合同详情</span>'.format(
- tableActionIcon,
- id);
- </text>
- }
- if (!str) {
- str += '<span class="table-action" >{0} 暂无操作</span>'.format(tableActionIcon);
- }
- return str;
- }
- </script>
- }
- <section style="display: none">
- <select id="hid-contract-state">
- @Html.Raw(contractState)
- </select>
- <select id="hid-case-state">
- @Html.Raw(caseState)
- </select>
- @*@Html.DropDownList("hid-type", type)*@
- </section>
|