123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- import { Component, OnInit } from '@angular/core';
- import { ToolService } from 'src/app/services/tool.service';
- import { MainService } from 'src/app/services/main.service';
- import { ActivatedRoute } from '@angular/router';
- import { KeyValue } from '@angular/common';
- @Component({
- selector: 'app-operation-notice',
- templateUrl: './operation-notice.component.html',
- styleUrls: ['./operation-notice.component.less']
- })
- export class OperationNoticeComponent implements OnInit {
- hosId; //当前院区
- allTaskType = []; //通知类型列表
- allTaskTypeShow; //通知类型列表选择标识
- taskTypeLoading = false; //通知类型加载中
- tabModalName = ""; //详情tab字段
- // 初始化增删改按钮
- coopBtns: any = {};
- variableNames = ['[$患者姓名$]', '[$主刀医生姓名$]', '[$麻醉医师姓名$]', '[$护士姓名$]', '[$助理医生姓名$]', '[$科室名称$]', '[$手术名称$]', '[$手术时间$]', '[$手术间名称$]'];
- tabs:any[] = [];
- tabsDefault:any[] = [
- {
- role: 'doctor',
- phoneFlag: false,
- phoneContent: '',
- wechatFlag: false,
- wechatContent: '',
- orders: 1,
- },
- {
- role: 'docAssistant',
- phoneFlag: false,
- phoneContent: '',
- wechatFlag: false,
- wechatContent: '',
- orders: 2,
- },
- {
- role: 'anesthetist',
- phoneFlag: false,
- phoneContent: '',
- wechatFlag: false,
- wechatContent: '',
- orders: 3,
- },
- {
- role: 'patient',
- phoneFlag: false,
- phoneContent: '',
- wechatFlag: false,
- wechatContent: '',
- orders: 4,
- },
- ];
- tabNames = {
- doctor: '主刀医生',
- docAssistant: '助理医生',
- anesthetist: '临床',
- patient: '手术患者',
- }
- constructor(
- private tool: ToolService,
- private mainService: MainService,
- private route: ActivatedRoute,
- ) { }
- ngOnInit() {
- this.hosId = this.tool.getCurrentHospital().id;
- this.coopBtns = this.tool.initCoopBtns(this.route);
- this.getAllTaskType(); //通知类型列表
- }
- originalOrder = (a: KeyValue<number,string>, b: KeyValue<number,string>): number => {
- return 0;
- }
- //通知类型列表
- getAllTaskType() {
- this.allTaskType = [{
- id: 1,
- taskName: '手术即将开始通知',
- code: 'surgery_begin',
- }];
- if (this.allTaskType.length) {
- this.itemChoice(this.allTaskType[0]);
- }
- }
- // 选中通知类型
- currentChoice;
- itemChoice(data){
- this.currentChoice = data;
- this.allTaskTypeShow = data.taskName;
- console.log(data);
- let postData = {
- idx: 0,
- sum: 9999,
- transportMessage: {
- hosId: this.hosId,
- code: data.code,
- },
- };
- this.taskTypeLoading = true;
- this.mainService
- .getFetchDataList("simple/data", "transportMessage", postData)
- .subscribe((result) => {
- this.taskTypeLoading = false;
- if (result.status == 200) {
- result.list = result.list || [];
- result.list.forEach(v => {
- v.phoneFlag = v.phoneFlag === 1;
- v.wechatFlag = v.wechatFlag === 1;
- })
- let tabs = result.list || [];
- if(tabs.length){
- this.tabs = tabs;
- }else{
- this.tabs = this.tabsDefault.map(v => ({...v, code: data.code, hosId: this.hosId}));
- }
- // 没有选中则默认第一项
- !this.tabModalName && this.tabModal(this.tabs[0].role);
- }
- });
- }
- //详情tab
- tabModal(name) {
- if (!this.allTaskType.length) {
- return;
- }
- this.tabModalName = name;
- }
- // 写入
- writeIn(tab, content, event, type){
- var element = event.target.parentElement.parentElement.previousElementSibling;
- if (element.selectionStart || element.selectionStart == '0') {
- var startPos = element.selectionStart;
- var endPos = element.selectionEnd;
- tab[type] = element.value.substring(0, startPos) + content + element.value.substring(endPos);
- element.focus();
- setTimeout(() => {
- element.setSelectionRange(startPos + content.length, startPos + content.length);
- },0)
- } else {
- var val = element.value + content;
- tab[type] = val;
- element.focus();
- }
- }
- // 展示信息提示框
- promptContent: string; //操作提示框提示信息
- ifSuccess: boolean; //操作成功/失败
- errorInfo: string; //操作失败原因提示信息
- promptModalShow: boolean; //操作提示框是否展示
- showPromptModal(con, success, errorInfo?) {
- this.promptModalShow = false;
- this.promptContent = con;
- this.ifSuccess = success;
- if (errorInfo !== undefined) {
- this.errorInfo = errorInfo;
- }
- setTimeout(() => {
- this.promptModalShow = true;
- }, 100);
- }
- //提交数据
- loading5 = false; //保存按钮loading
- submitForm() {
- this.loading5 = true;
- this.tabs.forEach(v => {
- v.phoneFlag = v.phoneFlag ? 1 : 0;
- v.wechatFlag = v.wechatFlag ? 1 : 0;
- })
- this.mainService
- .simplePost("addListData", "transportMessage", this.tabs)
- .subscribe((data) => {
- this.loading5 = false;
- if (data.status == 200) {
- this.showPromptModal("保存", true, "成功");
- this.itemChoice(this.currentChoice);
- } else {
- this.showPromptModal("保存", false, data.msg);
- }
- });
- }
- }
|