123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- import { ActivatedRoute, Router } from "@angular/router";
- import { Component, OnInit } from "@angular/core";
- import { MainService } from "../../services/main.service";
- import { ToolService } from "../../services/tool.service";
- import { Subject } from "rxjs";
- import { debounceTime } from "rxjs/operators";
- @Component({
- selector: "app-advice-management",
- templateUrl: "./advice-management.component.html",
- styleUrls: ["./advice-management.component.less"],
- })
- export class AdviceManagementComponent implements OnInit {
- constructor(
- private route: ActivatedRoute,
- private router: Router,
- private mainService: MainService,
- private tool: ToolService
- ) {}
- changeInpSubject = new Subject();
- ngOnInit() {
- this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
- this.getDeparts(v);
- });
- this.coopBtns = this.tool.initCoopBtns(this.route);
- this.getAllHos();
- this.getReplyTypes();
- }
- listOfData: any[] = []; //表格数据
- modal: boolean = false; //回复模态框
- coopId: number; //表格中执行操作的id
- department: any; //所属科室
- num; //工号
- name; //姓名
- replyType: any; //选择状态
- alldepart: any = []; //所有所属科室
- replyTypes: any; //所有状态
- pageIndex: number = 1; //页码
- listLength: number = 10; //总条数
- pageSize: number = 10; //每页条数
- promptContent: string; //操作提示框提示信息
- ifSuccess: boolean; //操作成功/失败
- promptInfo: string; //操作结果提示信息
- promptModalShow: boolean; //操作提示框是否展示
- btnLoading: boolean = false; //提交按钮loading状态
- // 初始化增删改按钮
- coopBtns: any = {};
- // 获取院区
- hospital: string; //选中院区
- getAllHos() {
- this.hospital = this.tool.getCurrentHospital().id + "";
- this.changeHos();
- this.getList();
- }
- // 修改院区获取对应科室
- changeHos() {
- this.department = null;
- this.getDeparts();
- }
- // 搜索
- search() {
- this.pageIndex = 1;
- this.getList();
- }
- // 重置
- reset() {
- this.pageIndex = 1;
- this.replyType = null;
- this.department = null;
- this.getList();
- }
- // 表格数据
- loading1 = false;
- getList() {
- var that = this;
- let data = {
- idx: that.pageIndex - 1,
- sum: that.pageSize,
- advice: {
- replaceFlag: that.replyType || "",
- hosId: that.hospital,
- creatDepartment: {
- id: that.department || "",
- },
- },
- };
- if (!data.advice.replaceFlag) {
- delete data.advice.replaceFlag;
- }
- if (!data.advice.creatDepartment || !data.advice.creatDepartment.id) {
- delete data.advice.creatDepartment;
- }
- this.loading1 = true;
- that.mainService
- .getFetchDataList("adviceCollection", "advice", data)
- .subscribe((data) => {
- this.loading1 = false;
- that.listOfData = data.list;
- that.listLength = data.totalNum;
- });
- }
- // 获取所有科室
- timerNum = 0; //边输入边搜索的定时器
- getDeparts(dept?) {
- var that = this;
- let data = {
- department: {
- hospital: { id: that.hospital },
- dept: dept || "",
- },
- idx: 0,
- sum: 20,
- };
- this.timerNum++;
- that.mainService
- .getFetchDataList("data", "department", data)
- .subscribe((data) => {
- console.log(data);
- that.alldepart = data.list;
- this.timerNum--;
- if (this.timerNum === 0) {
- that.isLoading = false;
- }
- });
- }
- // 获取所属组
- getReplyTypes() {
- var that = this;
- that.replyTypes = [
- {
- value: 0,
- label: "未回复",
- },
- {
- value: 1,
- label: "已回复",
- },
- ];
- }
- // 新增弹框
- replyCon: any; //意见内容
- reply(data) {
- this.modal = true;
- this.replyCon = data;
- }
- hideModal() {
- this.modal = false;
- }
- // 回复
- adviceSubContent: string; //回复内容
- submitForm() {
- console.log(this.adviceSubContent);
- let that = this;
- if (!that.adviceSubContent) return;
- that.btnLoading = true;
- let postData = {
- advice: {
- id: that.replyCon.id,
- replyUser: { id: that.replyCon.createUser.id },
- replyContent: that.adviceSubContent,
- },
- };
- that.mainService
- .postCustom("adviceCollection", "updData/advice", postData)
- .subscribe((data) => {
- that.btnLoading = false;
- that.adviceSubContent = "";
- if (data.status == 200) {
- that.showPromptModal("回复", true, "");
- that.getList();
- that.hideModal();
- } else {
- that.showPromptModal("回复", false, data.msg);
- }
- });
- }
- // 展示信息提示框(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();
- }
- // 查看
- detail(id) {
- this.router.navigateByUrl("/main/adviceManagement/adviceDetail/" + id);
- }
- // 边输边搜节流阀
- isLoading = false;
- changeInp(e) {
- this.isLoading = true;
- this.changeInpSubject.next(e);
- }
- // 截取意见内容(ie内核截取)
- spliceContent(con) {
- if (con.length >= 41 && navigator.userAgent.indexOf("Trident") > -1) {
- return con.slice(0, 20) + "...";
- } else {
- return con;
- }
- }
- }
|