123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528 |
- import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ViewEncapsulation } from '@angular/core';
- import { MainService } from '../../../services/main.service';
- import { Router } from '@angular/router';
- import { NzMessageService } from 'ng-zorro-antd';
- import { FormGroup, Validators, FormBuilder } from '@angular/forms';
- import { ToolService } from 'src/app/services/tool.service';
- import { Subject } from 'rxjs';
- import { debounceTime } from 'rxjs/operators';
- @Component({
- selector: 'app-incident-handle-order',
- templateUrl: './incident-handle-order.component.html',
- styleUrls: ['./incident-handle-order.component.less'],
- })
- export class IncidentHandleOrderComponent implements OnInit {
- @Input() id: any;
- constructor(
- private mainService: MainService,
- private router: Router,
- private message: NzMessageService,
- private tool: ToolService,
- private fb: FormBuilder,
- ) { }
- hosId:any;
- changeInpSubject = new Subject(); //防抖
- ngOnInit() {
- //防抖
- this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
- if(v[0] === 'consumable'){
- this.getConsumableList(v[1]);
- }
- });
- this.hosId = this.tool.getCurrentHospital().id;
- this.getSummaryList();
- this.getHospitalConfig();
- this.getWorkHourManagementList();
- }
-
- // 工时日志列表
- listLogOfData: any[] = []; //日志数据
- pageLogIndex: number = 1; //日志当前页码
- pageLogSize: number = 10; //日志每页展示条数
- listLogLength: number = 10; //日志总数据量
- loading2:boolean = false;
- getHourLogList() {
- let data = {
- idx: 0,
- sum: 99999,
- workHourManagementLog: {
- workHourId: this.itemData.id,
- repairSummaryId: this.summaryId
- },
- };
- this.loading2 = true;
- this.mainService
- .getFetchDataList("simple/data", "workHourManagementLog", data)
- .subscribe((data) => {
- this.loading2 = false;
- if (data.status == 200) {
- this.logModal = true
- this.listLogOfData = data.list;
- // this.listLogLength = data.totalNum;
- }else{
- this.message.error(data.msg || "请求数据失败");
- }
- });
- }
-
- // 耗材日志列表
- getConsumableLogList() {
- let data = {
- idx: 0,
- sum: 99999,
- assetConsumablesHistory: {
- assetConsumablesId: this.itemData.consumableId,
- repairSummaryId: this.summaryId
- },
- };
- this.loading2 = true;
- this.mainService
- .getFetchDataList("simple/data", "assetConsumablesHistory", data)
- .subscribe((data) => {
- this.loading2 = false;
- if (data.status == 200) {
- this.logModal = true
- this.listLogOfData = data.list;
- // this.listLogLength = data.totalNum;
- }else{
- this.message.error(data.msg || "请求数据失败");
- }
- });
- }
-
- // 查看日志
- itemData:any = {};
- logModal:boolean = false;
- operationType:any;
- logView(type, data){
- this.operationType = type;
- this.itemData = data;
- if(type==1){ //耗材
- this.getConsumableLogList()
- }else{ //日志
- this.getHourLogList()
- }
- }
-
- // 关闭日志
- hideModal() {
- this.logModal = false;
- }
-
- // ============耗材start=================
- // 新增耗材/工时弹框
- modelName = ""; //模态框名称
- modalConsumable: boolean = false; //新增/编辑模态框
- add: boolean; //true:新增;false:编辑
- addConsumable() {
- this.modelName = "新增";
- this.add = true; //新增
- this.modalConsumable = true;
- this.initConsumableForm();
- }
- //关闭新增/编辑弹框
- hideConsumableModal() {
- this.modalConsumable = false;
- }
- // 编辑
- coopData: any = {}; //当前操作列
- editConsumable(data) {
- console.log(data);
- this.modelName = "编辑";
- this.add = false;
- this.modalConsumable = true;
- this.initConsumableForm();
- this.coopData = data;
- this.validateConsumableForm.controls.consumablesId.setValue(data.consumableId);
- this.validateConsumableForm.controls.consumablesNum.setValue(data.consumablesNum);
- }
- // 新增/编辑表单提交
- btnLoading: boolean = false; //提交按钮loading状态
- submitConsumableForm(): void {
- for (const i in this.validateConsumableForm.controls) {
- this.validateConsumableForm.controls[i].markAsDirty();
- this.validateConsumableForm.controls[i].updateValueAndValidity();
- }
- if (this.validateConsumableForm.invalid) {
- return;
- }
- console.log(this.validateConsumableForm.value);
- this.btnLoading = true;
- let postData:any = {};
- if (this.add) {
- //增加
- postData = {
- "consumableList": [
- {
- "consumablesId": this.validateConsumableForm.value.consumablesId,
- "consumablesNum": this.validateConsumableForm.value.consumablesNum,
- }
- ],
- "summaryId": this.summaryId,
- };
- } else {
- //编辑
- postData = {
- "consumableList": [
- {
- "consumablesId": this.validateConsumableForm.value.consumablesId,
- "consumablesNum": this.validateConsumableForm.value.consumablesNum,
- }
- ],
- "modifyNum": "edit",
- "summaryId": this.summaryId,
- };
- }
- this.mainService
- .addSummaryDoc(postData)
- .subscribe((result) => {
- this.btnLoading = false;
- this.hideConsumableModal();
- let msg = "";
- if (this.add) {
- msg = "新增";
- } else {
- msg = "修改";
- }
- if (result.status == 200) {
- this.showPromptModal(msg, true, '');
- } else {
- this.showPromptModal(msg, false, result.msg);
- }
- });
- }
- // 初始化新增form表单
- validateConsumableForm: FormGroup; //新增/编辑表单
- initConsumableForm() {
- this.validateConsumableForm = this.fb.group({
- consumablesId: [null, [Validators.required]],
- consumablesNum: [1, [Validators.required]],
- });
- console.log(this.validateConsumableForm.controls)
- }
- // 边输边搜节流阀
- isLoading = false;
- changeInp(model, e) {
- this.isLoading = true;
- this.changeInpSubject.next([model, e]);
- }
- // 获取院区配置信息
- itsmZeroStock:any = {};//是否支持零库存
- itsmParentConsumable:any = {};//是否支持父级科室耗材
- getHospitalConfig() {
- let postData = {
- idx: 0,
- sum: 9999,
- hospitalConfig: {
- model: "itsm",
- hosId: this.hosId,
- },
- }
- this.mainService
- .getFetchDataList("simple/data", "hospitalConfig", postData)
- .subscribe((result) => {
- let list = result.list || [];
- this.itsmZeroStock = list.find(v => v.key == 'itsmZeroStock') || {};
- this.itsmParentConsumable = list.find(v => v.key == 'itsmParentConsumable') || {};
- this.getConsumableList();
- });
- }
- // 获取耗材
- consumableList: any = [];
- getConsumableList(keyword = '', isShowValue = false) {
- let postData:any = {
- consumable: {
- name: keyword,
- showZero: true,
- },
- idx: 0,
- sum: 20,
- };
- if(this.itsmParentConsumable.value == 1){
- postData.consumable.upHosId = this.hosId;
- }else{
- postData.consumable.hosId = this.hosId;
- }
- this.mainService
- .getFetchDataList("simple/data", "consumable", postData)
- .subscribe((data) => {
- this.isLoading = false;
- let consumableList = data.list || [];
- if(isShowValue && this.coopData && this.coopData.groupId){
- consumableList = consumableList.filter(v => v.id !== this.coopData.id)
- consumableList.unshift(this.coopData);
- }
- this.consumableList = consumableList;
- });
- }
- // ============耗材end=================
- // ============工时start=================
- // 新增耗材/工时弹框
- modalWorkHourManagement: boolean = false; //新增/编辑模态框
- addWorkHourManagement() {
- this.modelName = "新增";
- this.add = true; //新增
- this.modalWorkHourManagement = true;
- this.initWorkHourManagementForm();
- }
- //关闭新增/编辑弹框
- hideWorkHourManagementModal() {
- this.modalWorkHourManagement = false;
- }
- // 编辑
- editWorkHourManagement(data) {
- console.log(data);
- this.modelName = "编辑";
- this.add = false;
- this.modalWorkHourManagement = true;
- this.initWorkHourManagementForm();
- this.coopData = data;
- this.validateWorkHourManagementForm.controls.workHourId.setValue(data.id);
- this.validateWorkHourManagementForm.controls.workHourNum.setValue(data.workHourNum2);
- }
- // 新增/编辑表单提交
- submitWorkHourManagementForm(): void {
- for (const i in this.validateWorkHourManagementForm.controls) {
- this.validateWorkHourManagementForm.controls[i].markAsDirty();
- this.validateWorkHourManagementForm.controls[i].updateValueAndValidity();
- }
- if (this.validateWorkHourManagementForm.invalid) {
- return;
- }
- console.log(this.validateWorkHourManagementForm.value);
- this.btnLoading = true;
- let postData:any = {};
- if (this.add) {
- //增加
- // let workHourManagementList = this.summaryObj.workHourManagementList || [];
- // postData = {
- // "workHourManagementList": workHourManagementList.map(v => ({workHourId: v.id, workHourNum: v.workHourNum2 || 1})),
- // "summaryId": this.summaryId,
- // };
- // let index = postData.workHourManagementList.findIndex(v => v.workHourId == this.validateWorkHourManagementForm.value.workHourId.slice(-1)[0]);
- // if(index > -1){
- // postData.workHourManagementList[index].workHourNum += this.validateWorkHourManagementForm.value.workHourNum;
- // }else{
- // postData.workHourManagementList.push(
- // {
- // "workHourId": this.validateWorkHourManagementForm.value.workHourId.slice(-1)[0],
- // "workHourNum": this.validateWorkHourManagementForm.value.workHourNum,
- // }
- // );
- // }
- postData ={
- "workHourManagementList": [
- {
- "workHourId": this.validateWorkHourManagementForm.value.workHourId.slice(-1)[0],
- "workHourNum": this.validateWorkHourManagementForm.value.workHourNum,
- }
- ],
- "summaryId": this.summaryId,
- }
- } else {
- //编辑
- postData = {
- "workHourManagementList": [
- {
- "workHourId": this.coopData.id,
- "workHourNum": this.validateWorkHourManagementForm.value.workHourNum,
- }
- ],
- "modifyNum": "edit",
- "summaryId": this.summaryId,
- };
- }
- this.mainService
- .addSummaryDoc(postData)
- .subscribe((result) => {
- this.btnLoading = false;
- this.hideWorkHourManagementModal();
- let msg = "";
- if (this.add) {
- msg = "新增";
- } else {
- msg = "修改";
- }
- if (result.status == 200) {
- this.showPromptModal(msg, true, '');
- } else {
- this.showPromptModal(msg, false, result.msg);
- }
- });
- }
- // 初始化新增form表单
- validateWorkHourManagementForm: FormGroup; //新增/编辑表单
- initWorkHourManagementForm() {
- this.validateWorkHourManagementForm = this.fb.group({
- workHourId: [null, [Validators.required]],
- workHourNum: [1, [Validators.required]],
- });
- console.log(this.validateWorkHourManagementForm.controls)
- }
- // 获取工时
- workHourManagementList: any = [];
- getWorkHourManagementList() {
- let postData = {
- workHourManagement: {
- hosId: this.hosId,
- showSecond: 1,
- disableType:1
- },
- idx: 0,
- sum: 9999,
- };
- this.mainService
- .getFetchDataList("simple/data", "workHourManagement", postData)
- .subscribe((res) => {
- this.isLoading = false;
- let workHourManagementList = res.list || [];
- workHourManagementList = workHourManagementList.map(v => ({...v, parentId: v.parent ? v.parent.id : undefined, label: v.workName, value: v.id}));
- this.workHourManagementList = this.tool.tranListToTreeDataLeaf(workHourManagementList, undefined, "parentId");
- console.log(this.workHourManagementList);
- });
- }
- // ============工时end=================
- // 获取汇总单信息
- summaryObj:any = {
- consumableList: [],//耗材列表
- workHourManagementList: [],//工时列表
- };
- summaryId = undefined;//汇总单Id
- summaryLoading:boolean = false;
- getSummaryList() {
- this.summaryLoading = true;
- let postData = {
- "incidentId": this.id,
- };
- this.mainService
- .querySummaryDocNew(postData)
- .subscribe((res:any) => {
- this.summaryLoading = false;
- if(res.status == 200){
- this.summaryObj = {...{consumableList:[], workHourManagementList: []}, ...res };
- console.log(this.summaryObj)
- this.summaryId = res.summaryId;
- }else if(res.status == 201){
- // 事件第一次绑定汇总单
- this.summaryId = res.summaryId;
- }else{
- this.message.error(res.msg || '请求数据失败!');
- }
- });
- }
- delModal: boolean = false; //删除模态框
- tipsMsg1: string; //提示框信息
- tipsMsg2: string; //操作后信息
- confirmDelType: string; //确认的类型(启用/停用,删除)
- showDelModal(
- data,
- tipsMsg1: string,
- tipsMsg2: string,
- type: string,
- ) {
- this.confirmDelType = type;
- this.delModal = true;
- this.coopData = data;
- this.tipsMsg1 = tipsMsg1;
- this.tipsMsg2 = tipsMsg2;
- }
- // 隐藏删除框
- hideDelModal() {
- this.delModal = false;
- }
- // 确认删除
- confirmDel() {
- this.btnLoading = true;
- if (this.confirmDelType === "delConsumable") {
- //删除-耗材
- let postData = {
- "consumableList": [
- {
- "consumablesId": this.coopData.consumableId,
- "consumablesNum": this.coopData.consumablesNum,
- }
- ],
- "remove": "remove",
- "summaryId": this.summaryId,
- };
- this.mainService
- .addSummaryDoc(postData)
- .subscribe((data) => {
- this.btnLoading = false;
- this.delModal = false;
- if (data.status == 200) {
- this.showPromptModal(this.tipsMsg2, true, "");
- } else {
- this.showPromptModal(this.tipsMsg2, false, data.msg);
- }
- });
- }else if (this.confirmDelType === "delWorkHourManagement") {
- //删除-工时
- let postData = {
- "workHourManagementList": [
- {
- "workHourId": this.coopData.id,
- "workHourNum": this.coopData.workHourNum2,
- }
- ],
- "remove": "remove",
- "summaryId": this.summaryId,
- };
- this.mainService
- .addSummaryDoc(postData)
- .subscribe((data) => {
- this.btnLoading = false;
- this.delModal = false;
- if (data.status == 200) {
- this.showPromptModal(this.tipsMsg2, true, "");
- } else {
- this.showPromptModal(this.tipsMsg2, false, data.msg);
- }
- });
- }
- }
- // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
- promptContent: string; //操作提示框提示信息
- ifSuccess: boolean; //操作成功/失败
- promptInfo: string; //操作结果提示信息
- promptModalShow: boolean; //操作提示框是否展示
- showPromptModal(con, success, promptInfo?) {
- this.promptModalShow = false;
- this.promptContent = con;
- this.ifSuccess = success;
- this.promptInfo = promptInfo;
- setTimeout(() => {
- this.promptModalShow = true;
- }, 100);
- this.getSummaryList();
- }
- }
|