123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- import { Component, OnInit, Output, Input, ViewChild, ElementRef } from '@angular/core';
- import { EventEmitter } from '@angular/core';
- import { OverlayScrollbarsComponent } from 'overlayscrollbars-ngx';
- import { FormGroup, FormBuilder, FormControl } from '@angular/forms';
- import { MainService } from 'src/app/services/main.service';
- import { ToolService } from 'src/app/services/tool.service';
- import { Subject } from 'rxjs';
- import { debounceTime } from 'rxjs/operators';
- @Component({
- selector: 'app-build-quick-confirm',
- templateUrl: './build-quick-confirm.component.html',
- styleUrls: ['./build-quick-confirm.component.less']
- })
- export class BuildQuickConfirmComponent implements OnInit {
- @ViewChild("osComponentRef1", {
- read: OverlayScrollbarsComponent,
- static: false,
- })
- osComponentRef1: OverlayScrollbarsComponent;
- @ViewChild("remarksEle", { static: false }) remarksEle: ElementRef;
- @Output() cancelModal = new EventEmitter();
- @Output() confirmModal = new EventEmitter();
- @Input() buildQuickConfirmData: any = {};//数据
- @Input() loading5: boolean = false;//loading
- hosLoading: boolean = false;//确定按钮的loading
- configurationCenterMenus: any[] = [];//配置中心菜单
- searchAccountSubject = new Subject(); //查工号防抖
- constructor(
- private mainService: MainService,
- private fb: FormBuilder,
- public tool: ToolService,
- ) { }
- ngOnInit() {
- this.getPagePermissionConfigById();
- //防抖
- this.getAccountList();
- this.searchAccountSubject.pipe(debounceTime(500)).subscribe((v:any) => {
- this.getAccountList(v);
- });
- }
- activeTabId:any;
- clickTab(data){
- this.activeTabId = data.id;
- this.newShortcutOrder(data, data.associationType.value);
- }
- // 建单条件
- workOrderRemark = ""; //备注
- customRemarks = []; //备注快速输入
- shortcutMsg; //一键发起信息
- buildMsg: any = {}; //一键发起返回信息
- buildType: string = ""; //快捷建单类型
- historyCustomRemarks = []; //历史快捷输入
- workOrderRemarkTips = ""; //备注提示
- nLoading = false;
- isEndFixedType: boolean = false;
- isStartFixedType: boolean = false;
- msgId:any;
- newShortcutOrder(data, type) {
- this.workOrderRemark = "";
- this.customRemarks = [];
- this.historyCustomRemarks = [];
- console.log(data, type);
- this.buildType = type;
- this.shortcutMsg = data;
- this.initForm();
- this.buildMsg = {};
- this.msgId = data.id;
- let postData:any = {
- taskTypeId: data.id,
- };
- if(data.associationType.value === 'specimen'){
- postData.deptId = this.tool.getCurrentUserDept().id;
- }
- this.nLoading = true;
- this.mainService
- .postCustom("nurse", "workOrder/buildTrip", postData)
- .subscribe((result) => {
- this.buildMsg = result;
- if(result.end){
- if(result.end.end.departmentStrategy==202 ||
- result.end.end.departmentStrategy==204 ||
- result.end.end.departmentStrategy==205){
- this.isEndFixedType = true
- }else{
- this.isEndFixedType = false
- }
- }
- if(result.start){
- if(result.start.start.departmentStrategy==202 ||
- result.start.start.departmentStrategy==204 ||
- result.start.start.departmentStrategy==205){
- this.isStartFixedType = true
- }else{
- this.isStartFixedType = false
- }
- }
- if (result.remarksSwitch == 1) {
- if (result.customRemarks === null || result.customRemarks === "") {
- this.customRemarks = [];
- } else {
- this.customRemarks = result.customRemarks.split("$");
- }
- this.workOrderRemarkTips =
- result.remarksPrompts || "请填写工单备注,不超过100个字符";
- let user = JSON.parse(localStorage.getItem("user"));
- this.mainService
- .postCustom("nurse", "workOrder/recentRemarks", {
- deptId: user.user.dept.id,
- taskTypeId: data.id,
- })
- .subscribe((result1) => {
- this.nLoading = false;
- if (result1.state == 200) {
- this.historyCustomRemarks = result1.data;
- }
- });
- } else {
- this.nLoading = false;
- }
- });
- }
- // 初始化form表单
- shortcutForm: FormGroup; //一键发起建单表单
- initForm() {
- // 初始化一键发起建单表单
- this.shortcutForm = this.fb.group({
- targetOffice: [null, [this.targetOfficeShortCutValidator]],
- originOffice: [null, [this.originOfficeShortCutValidator]],
- });
- }
- // 起点科室校验
- originOfficeShortCutValidator = (control: FormControl): { [s: string]: boolean } => {
- if (this.shortcutForm && this.shortcutForm.value && !control.value && (this.buildMsg.status == 100013 || this.buildMsg.status == 100015)) {
- return { required: true };
- }
- };
- // 目标科室校验
- targetOfficeShortCutValidator = (control: FormControl): { [s: string]: boolean } => {
- if (this.shortcutForm && this.shortcutForm.value && !control.value && (this.buildMsg.status == 100014 || this.buildMsg.status == 100015)) {
- return { required: true };
- }
- };
- // 添加备注
- addRemarks(item) {
- this.remarksEle.nativeElement.focus();
- this.workOrderRemark += item;
- }
- // 目标科室输入搜索
- searchDept(type, msg, e) {
- this.getDeptList(type, msg, e);
- }
- // 获取科室
- isLoading:boolean = false;
- getDeptList(type, msg, key?): void {
- // 返回值的status是201 则是默认发起科室
- // 返回值的status是202 则是固定科室范围
- // 返回值的status是203 则是固定科室
- // 返回值的status是204 则是自主填写
- // 返回值的status是205 则是固定科室类型
- if (
- (type == "start" && msg.start.start.departmentStrategy == 202) ||
- (type == "target" && msg.end.end.departmentStrategy == 202)
- ) {
- let data = [];
- let postData = {
- taskTypeId: this.msgId
- };
- if(type == "start"){
- this.mainService
- .postCustom("nurse", "workOrder/buildTrip", postData)
- .subscribe((result) => {
- let arr = result.start.start.list;
- if(key!=''){
- data = arr.filter(i=>i.dept.indexOf(key) !=-1)
- msg.start.start.list = data
- }else{
- msg.start.start.list = arr
- }
- });
- }else{
- this.mainService
- .postCustom("nurse", "workOrder/buildTrip", postData)
- .subscribe((result) => {
- let arr = result.end.end.list;
- if(key!=''){
- data = arr.filter(i=>i.dept.indexOf(key) !=-1)
- msg.end.end.list = data
- }else{
- msg.end.end.list = arr
- }
- });
- }
- return; //固定科室范围禁用搜索
- }
- let postData: any = {
- idx: 0,
- sum: 20,
- department: {
- searchType: 1,
- cascadeHosId: this.tool.getCurrentHospital().id
- },
- };
- if (key) {
- postData.department["keyWord"] = key;
- }
- if (type == "start" && msg.start.start.departmentStrategy == 205) {
- postData.department["type"] = { id: msg.start.start.startTypeId };
- } else if (type == "target" && msg.end.end.departmentStrategy == 205) {
- postData.department["type"] = { id: msg.end.end.endTypeId };
- }
- if (type == "start") {
- postData.department["ids"] = msg.start.deptIds || "";
- } else if (type == "target") {
- postData.department["ids"] = msg.end.deptIds || "";
- }
- postData.department.nurseSign = 1;
- this.isLoading = true;
- this.mainService
- .getFetchDataList("data", "department", postData)
- .subscribe((data) => {
- this.isLoading = false;
- if (type == "target") {
- msg.end.end.list = data.list;
- } else if (type == "start") {
- msg.start.start.list = data.list;
- }
- });
- }
- // 工号输入搜索
- searchAccount(e) {
- this.searchAccountSubject.next(e);
- }
- // 根据工号获取用户
- account = null;
- accountList = [];
- getAccountList(key = ''): void {
- let postData = {
- idx: 0,
- sum: 10,
- user: {
- account: key,
- hospital: {
- id: this.tool.getCurrentHospital().id
- }
- }
- };
- this.isLoading = true;
- this.mainService
- .getFetchDataList("data", "user", postData)
- .subscribe((data) => {
- this.isLoading = false;
- this.accountList = data.list || [];
- });
- }
- // 修改工号
- userAccount = null;
- changeAccount(e){
- this.userAccount =this.accountList.find(v => v.id == e);
- }
- // 根据ID获取快捷配置
- pagePermissionConfig: any = {};
- getPagePermissionConfigById() {
- let data = {
- idx: 0,
- sum: 99999,
- pagePermissionConfig: {
- id: this.buildQuickConfirmData.id,
- taskTypeDeptId: this.tool.getCurrentUserDept().id,
- },
- };
- this.mainService
- .getFetchDataList("simple/data", "pagePermissionConfig", data)
- .subscribe((data) => {
- let pagePermissionConfigList = data.list || [];
- if(pagePermissionConfigList.length){
- this.pagePermissionConfig = pagePermissionConfigList[0];
- // 默认选中第一项
- this.pagePermissionConfig.taskTypeList = this.pagePermissionConfig.taskTypeList || [];
- if(this.pagePermissionConfig.taskTypeList.length > 0){
- this.clickTab(this.pagePermissionConfig.taskTypeList[0]);
- }
- }else{
- this.pagePermissionConfig = {};
- }
- });
- }
- // 取消
- cancel() {
- this.cancelModal.emit(false)
- }
- // 确认
- confirm() {
- let taskType = this.pagePermissionConfig.taskTypeList.find(item => item.id == this.activeTabId);
- this.confirmModal.emit({taskType, shortcutForm: this.shortcutForm, buildMsg: this.buildMsg, workOrderRemark: this.workOrderRemark, userAccount: this.userAccount})
- }
- }
|