123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- import { Component, OnInit, ViewChild } from "@angular/core";
- import { ActivatedRoute, Router } from "@angular/router";
- import { FormBuilder, Validators, FormGroup, FormControl } from "@angular/forms";
- import { MainService } from "../../services/main.service";
- import { OverlayScrollbarsComponent } from "overlayscrollbars-ngx";
- import { ToolService } from "../../services/tool.service";
- import { forkJoin, Subject } from "rxjs";
- import { debounceTime } from "rxjs/operators";
- import { NzMessageService } from "ng-zorro-antd";
- @Component({
- selector: "app-task-list",
- templateUrl: "./task-list.component.html",
- styleUrls: ["./task-list.component.less"],
- })
- export class TaskListComponent implements OnInit {
- @ViewChild("osComponentRef1", {
- read: OverlayScrollbarsComponent,
- static: false,
- })
- osComponentRef1: OverlayScrollbarsComponent;
- constructor(
- private message: NzMessageService,
- private fb: FormBuilder,
- private route: ActivatedRoute,
- private router: Router,
- private mainService: MainService,
- private tool: ToolService
- ) {}
- listOfData: any[] = []; //表格数据
- modal: boolean = false; //新增/编辑模态框
- add: boolean; //true:新增;false:编辑
- validateForm: FormGroup; //新增/编辑表单
- validateAllocationForm: FormGroup; //新增/编辑表单
- coopId: number; //表格中执行操作的id
- dept: any; //所属科室
- drugCode; //编号
- name; //名称
- userType: any; //用户类型
- hosId: any; //院区(搜索)
- userGroup; //所属组
- userGroup1; //所属组(搜索)
- userTypes: Array<any>; //所有用户类型
- alldepart: any = []; //所有所属科室
- alldepart1: any = []; //所有所属科室(搜索)
- hospitals1: any = []; //院区列表(搜索)
- drugTypeData: any = []; //药品类型
- allUserGroup: Array<any>; //所有用户组
- allUserGroup1: Array<any>; //用户组(搜索)
- allUserRole: Array<any>; //所有角色
- pageIndex: number = 1; //页码
- listLength: number = 10; //总条数
- pageSize: number = 10; //每页条数
- promptContent: string; //操作提示框提示信息
- ifSuccess: boolean; //操作成功/失败
- promptInfo: string; //操作结果提示信息
- promptModalShow: boolean; //操作提示框是否展示
- btnLoading: boolean = false; //提交按钮loading状态
- wxRequired = false; //新增或编辑用户的时候,微信号是否必填
- searchTaskSubject = new Subject(); //防抖
- searchParentDeptSubject = new Subject();
- specimenName:any = null;
- containPosition:any = null;
- placeList:any = [];
- systemList:any = [];
- apparatusList:any = [];
- specimenNameList:any = [];
- addressLoading:any = false;
- month:any = [];
- userId:any;
-
- ngOnInit() {
- for(let i=1; i<13; i++){
- this.month.push({
- name:i + '月'
- })
- }
- this.coopBtns = this.tool.initCoopBtns(this.route);
- this.hosId = this.tool.getCurrentHospital().id;
- this.userId = this.tool.getCurrentUserId();
- this.searchParentDeptSubject.pipe(debounceTime(500)).subscribe((e) => {
- this.isLoading = true;
- this.getAllUser(e[0])
- });
- this.searchTaskSubject.pipe(debounceTime(500)).subscribe((e) => {
- this.isLoading = true;
- this.getmonthlyData(e[0])
- });
-
- this.getList();
- this.getAllUser('');
- this.getStateDic();
- this.getPriorityData();
- this.getmonthlyData('');
- }
-
- // 选择月份
- selectIndex:any;
- itemData:any;
- itemClick(data, index){
- this.selectIndex = index;
- this.itemData = data;
- }
-
- // 初始化增删改按钮
- coopBtns: any = {};
- // 搜索
- search() {
- this.pageIndex = 1;
- this.getList();
- }
-
- // 重置
- reset() {
- this.pageIndex = 1;
- this.state = null;
- this.priority = null;
- this.monthTask = null;
- this.executor = null;
- this.getList();
- }
-
- // 表格数据
- loading1 = false;
- state:any;
- priority:any;
- monthTask:any;
- executor:any;
- getList() {
- let data = {
- idx: this.pageIndex - 1,
- sum: this.pageSize,
- monthTaskList: {
- priority: {
- id: '',
- },
- state: {
- id: '',
- },
- monthTask:this.monthTask || undefined,
- executor: this.userId,
- },
- };
- if(this.priority){
- data.monthTaskList.priority.id = this.priority
- }else{
- delete data.monthTaskList.priority
- }
- if(this.state){
- data.monthTaskList.state.id = this.state
- }else{
- delete data.monthTaskList.state
- }
- this.loading1 = true;
- this.mainService
- .getFetchDataList("data", "monthTaskList", data)
- .subscribe((data) => {
- this.loading1 = false;
- this.listOfData = data.list;
- this.listLength = data.totalNum;
- });
- }
-
- // 获取月度任务
- monthlyData:any=[];
- getmonthlyData(name){
- let data = {
- idx: 0,
- sum: 20,
- monthTask: {
- taskTitle: name || undefined,
- },
- };
- this.mainService
- .getFetchDataList("data", "monthTask", data)
- .subscribe((data) => {
- this.isLoading = false;
- this.monthlyData = data.list;
- });
- }
-
- // 获取责任人
- dutyUser:any= [];
- getAllUser(name) {
- let data:any = {
- user: {
- name,
- hosIds: this.hosId,
- },
- idx: 0,
- sum: 20,
- };
- this.mainService
- .getFetchDataList("data", "user", data)
- .subscribe((data) => {
- this.isLoading = false
- this.dutyUser = data.list
- });
- }
-
- // 搜索责任人
- isLoading = false;
- changeUser(e) {
- this.searchParentDeptSubject.next([e]);
- }
-
- // 搜索月度任务
- changeTask(e,type) {
- this.searchTaskSubject.next([e,type]);
- }
-
- // 获取优先级
- priorityData:any = [];
- getPriorityData(){
- let postData = {
- idx: 0,
- sum: 9999,
- priority: {},
- };
- this.isLoading = true;
- this.mainService
- .getFetchDataList("simple/data", "priority", postData)
- .subscribe((data) => {
- this.isLoading = false;
- if (data.status == 200) {
- this.priorityData = data.list;
- }
- });
- }
-
- // 获取状态
- stateList:any = [];
- getStateDic(){
- this.mainService.getDictionary("list", "month_task_list_state").subscribe((res) => {
- this.stateList = res
- });
- }
-
- // 开始任务
- startModal:boolean = false
- startTask(data){
- this.coopId = data.id;
- this.startModal = true
- }
-
- hideStartModal(){
- this.startModal = false
- }
-
- // 确认开始任务
- confirmStart() {
- let that = this;
- let query = {
- monthTaskList:{
- id: this.coopId,
- operationType: 'start'
- }
- }
- that.btnLoading = true;
- that.mainService
- .apiPublicData('updData', 'monthTaskList', query)
- .subscribe((data) => {
- that.btnLoading = false;
- that.hideStartModal();
- if (data["status"] == 200) {
- that.showPromptModal("操作", true, "");
- } else {
- that.showPromptModal("操作", false, data["msg"]);
- }
- });
- }
-
- // 任务记录
- allocationModal:boolean = false;
- record(data){
- this.coopId = data.id;
- this.initAllocationForm();
- this.allocationModal = true
- }
-
- hideAllocationModal() {
- this.allocationModal = false;
- this.initAllocationForm();
- }
-
- // 初始化新增form表单
- initAllocationForm() {
- this.validateAllocationForm = this.fb.group({
- taskConclusion: [null, [Validators.required]],
- manHour: [null, [Validators.required]],
- });
- }
-
- // 任务记录提交
- submitAllocationForm(): void {
- var that = this;
- for (const i in that.validateAllocationForm.controls) {
- that.validateAllocationForm.controls[i].markAsDirty();
- that.validateAllocationForm.controls[i].updateValueAndValidity();
- }
- if (that.validateAllocationForm.invalid) return;
- let data = {
- monthTaskList:{
- taskConclusion: this.validateAllocationForm.value.taskConclusion,
- manHour: this.validateAllocationForm.value.manHour,
- id:this.coopId,
- operationType: 'record'
- }
- };
-
- that.btnLoading = true;
- that.mainService
- .dataPost("updData", "monthTaskList", data)
- .subscribe((data) => {
- that.btnLoading = false;
- that.hideAllocationModal();
- if (data.status == 200) {
- that.showPromptModal("记录", true, "");
- } else {
- that.showPromptModal("记录", false, data.msg);
- }
- });
- }
-
- // 任务完成
- accomplishModal:boolean = false;
- taskConclusion:any;
- manHour:any;
- accomplish(data){
- this.coopId = data.id;
- this.taskConclusion = null;
- this.accomplishModal = true
- }
-
- // 任务完成提交
- submitAccomplishForm(){
- if(!this.taskConclusion){
- this.message.error('任务总结不能为空!')
- return
- }
- if(!this.manHour){
- this.message.error('总工时不能为空!')
- return
- }
- let data = {
- monthTaskList:{
- taskConclusion: this.taskConclusion,
- manHour: this.manHour,
- operationType: 'done',
- id:this.coopId
- }
- };
- this.btnLoading = true;
- this.mainService
- .dataPost("updData", "monthTaskList", data)
- .subscribe((data) => {
- this.btnLoading = false;
- this.hideAccomplishModal();
- if (data.status == 200) {
- this.showPromptModal("操作", true, "");
- } else {
- this.showPromptModal("操作", false, data.msg);
- }
- });
- }
-
- hideAccomplishModal(){
- this.accomplishModal = false
- }
-
- // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
- showPromptModal(con, success, promptInfo?) {
- this.promptModalShow = false;
- this.promptContent = con;
- this.ifSuccess = success;
- this.promptInfo = promptInfo;
- setTimeout(() => {
- this.promptModalShow = true;
- }, 100);
- this.getList();
- }
- }
|