| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382 |
-
- @using ContractService.Configuration
- @using ContractService.Authorization
- @using ContractService.LegalCase
- @using ContractService.Views.Shared.Modals
- @using ContractService.Views.Shared.Query
- @using ContractService.Views.Shared.SearchForm
- @using ContractService.Views.Shared.Table
- @using IwbZero.ToolCommon.StringModel
- @{
- ViewBag.Title = "法律服务项目维护";
- string activeMenu = PermissionNames.PagesCaseContractMgCaseMg; //The menu item will be active for this page.
- string level = ViewBag.Level, state = ViewBag.State, serviceType = ViewBag.ServiceType, companyNo = ViewBag.CompanyNo ?? "";
- ViewBag.ActiveMenu = activeMenu;
- var searchList = new List<SearchItem>();
- var fields = new List<FieldItem>()
- {
- new FieldItem("code", "项目编码"),
- new FieldItem("name", "项目名称"),
- new FieldItem("caseLevel", "项目等级", "LevelFormatter"),
- new FieldItem("caseState", "项目状态", "StateFormatter"),
- new FieldItem("serviceType", "项目类型", "ServiceTypeFormatter"),
- };
- 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", "状态变更原由"),
- });
- }
- searchList.AddRange(new List<SearchItem>()
- {
- new SearchItem("code", "项目编码"),
- new SearchItem("name", "项目名称"),
- new SearchItem("caseLevel", "项目等级", FieldType.I).SetSelectItem(level),
- new SearchItem("caseState", "项目状态", FieldType.I).SetSelectItem(state),
- new SearchItem("serviceType", "项目类型").SetSelectItem(serviceType),
- });
- var searchForm = new SearchFormViewModel(searchList);
- fields.Add(new FieldItem("", "操作", "ActionsFormatter"));
- var table = new TableViewModel(IwbConsts.ApiAppUrl + "LegalCase/GetAll", companyNo.Empty() ? "" : activeMenu, searchForm)
- .SetFields(fields);
- var inputs = new List<Input>()
- {
- new InputHide("id"),
- new Input("code", "项目编码"),
- new Input("name", "项目名称"),
- new InputNumber("caseLevel", "项目等级").SetSelectOptions(level),
- new Input("serviceType", "项目类型").SetSelectOptions(serviceType),
- new InputTextarea("description", "项目描述").SetNotRequired(),
- };
- var modalBody = new ModalBodyViewModel().AddInputs(inputs);
- var modal = new ModalViewModel("服务项目").SetBody(modalBody);
- var body_staff = new ModalBodyViewModel(new List<Input>()
- {
- new AjaxSelect("staffNo", "关联员工", "Staff", companyNo, "query_staff").SetSearchClear("staffNo,staffOrgName"),
- new Input("staffOrgName", "员工部门").SetDisabled(),
- }, "form-staff");
- body_staff.AddInput((bool)ViewBag.IsCompanyMaster ? 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, "");
- }
- @section css{
- }
- @Html.Partial("Table/_Table", table)
- @section modal{
- <!--Modal Start-->
- @Html.Partial("Modals/_Modal", modal)
- @*@Html.Partial("Modals/_Modal", modal_master)*@
- <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("Query/_Staff", new QuerySearchModel("query_staff", "staffNo,name,staffOrgName").SetOriginField("id,name,organizationName").SetSearchFun("SetCompanyQueryFun()").SetAjaxSelectName("name"))
- <!--Modal End-->
- }
- @section scripts
- {
- <script type="text/javascript">
- var $table;
- $(function() {
- $table = LoadTable();
- var funs = window.iwbfuns || { none: function() { console.log("No type"); } };
- funs["btnCreate"] = function() { BtnCreate({ data: { id: "" } }); }
- funs["btnUpdate"] = function() {
- var row = $table.bootstrapTable("getSelections")[0];
- if (row) {
- if (row.caseState !== @(LegalCaseStateDefinition.New)) {
- abp.message.warn("只能修改新建的项目!");
- return;
- }
- BtnUpdate({ disabled: "" }, row);
- }
- };
- 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 + "LegalCase/GetCaseStaffs?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;
- }
- });
- }
- };
- $('#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 SetCompanyQueryFun() {
- return { "KeyField": "company", "KeyWords": '@(companyNo)' }
- }
- //添加职员
- 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 class="btn btn-sm btn-danger" onclick="DeleteStaff(this)">删除</button></div></div>'
- .format(v, n,on, m ? "master" : "staff", m ? "负责人" : "普通员工");
- $('#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>
- function ChangeState(id, state, reason) {
- $.iwbAjax1({
- url: abp.appUrl + 'LegalCase/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("CaseDetail")' + '/' + 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 ServiceTypeFormatter(v) {
- var name = $('#hid-service-type option[value="' + v + '"]').text();
- return name;
- }
- function StateFormatter(v) {
- var name = $('#hid-state option[value="' + v + '"]').text();
- return name;
- //switch (v) {
- // case 0:
- // return '<span class="label sm label-danger">' + name + '</span>';
- // default:
- // return '<span class="label sm label-info">' + name + '</span>';
- //}
- }
- function LevelFormatter(v) {
- var name = $('#hid-level option[value="' + v + '"]').text();
- return name;
- //switch (v) {
- // case 0:
- // return '<span class="label sm label-danger">' + name + '</span>';
- // default:
- // return '<span class="label sm label-info">' + name + '</span>';
- //}
- }
- function ActionsFormatter(v, r) {
- var str = '', state = r.caseState, id = r.id;
- @if (AbpSession.AccountType == AccountTypeDefinition.Client && IsGranted(PermissionNames.PagesCaseContractMgCaseMgChangeState))
- {
- <text>
- var strS =
- '<span class="table-action" onclick="MsgConfirm(\'确认要启动项目[{2}]吗?\',\'开启项目\',function() {ChangeState(\'{1}\',@(LegalCaseStateDefinition.Running),\'开启项目\')});">{0} 开启项目</span>'
- .format(tableActionIcon, id, r.name),
- strH =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalCaseStateDefinition.Hang),\'挂起项目\')">{0} 挂起项目</span>'
- .format(tableActionIcon, id),
- strR =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalCaseStateDefinition.Running),\'恢复项目\')">{0} 恢复项目</span>'
- .format(tableActionIcon, id),
- strRs =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalCaseStateDefinition.Running),\'重启项目\')">{0} 重启项目</span>'
- .format(tableActionIcon, id),
- strE =
- '<span class="table-action" onclick="ChangeStateWithModal(\'{1}\',@(LegalCaseStateDefinition.End),\'关闭项目\')">{0} 关闭项目</span>'
- .format(tableActionIcon, id);
- if (state == @(LegalCaseStateDefinition.New)) {
- str += strS;
- } else if (state == @(LegalCaseStateDefinition.Running)) {
- str += strH;
- str += strE;
- } else if (state == @(LegalCaseStateDefinition.Hang)) {
- str += strR;
- str += strE;
- }
- </text>
- if (IsGranted(PermissionNames.PagesCaseContractMgCaseMgRestart))
- {
- <text>
- if (state == @(LegalCaseStateDefinition.End)) {
- str += strRs;
- }
- </text>
- }
- }
- str += '<span class="table-action" onclick="GoDetail(\'{1}\')">{0} 项目详情</span>'.format(tableActionIcon, id);
- return str;
- }
- </script>
- }
- <section style="display: none">
- <select id="hid-level">
- @Html.Raw(level)
- </select>
- <select id="hid-state">
- @Html.Raw(state)
- </select>
- <select id="hid-service-type">
- @Html.Raw(serviceType)
- </select>
- @*@Html.DropDownList("hid-type", type)*@
- </section>
|