123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 |
- import { Component, OnInit, ViewChild } from "@angular/core";
- import { ActivatedRoute } from "@angular/router";
- import { FormBuilder, Validators, FormGroup } from "@angular/forms";
- import { MainService } from "../../services/main.service";
- import { OverlayScrollbarsComponent } from "overlayscrollbars-ngx";
- import { ToolService } from "../../services/tool.service";
- @Component({
- selector: "app-data-dictionary",
- templateUrl: "./data-dictionary.component.html",
- styleUrls: ["./data-dictionary.component.less"],
- })
- export class DataDictionaryComponent implements OnInit {
- tableHeight;
- validateForm: FormGroup;
- allDataList: any[] = []; //数据字典下的数据列表
- mapOfCheckedId: { [key: string]: boolean } = {};
- checkedDictionary: any = {}; //选中
- dictionaryList: Array<any> = []; //数据字典信息
- parentList: Array<any> = []; //父级数据字典信息
- hosId: any; //当前选择的院区id
- promptContent: string; //操作提示框提示信息
- ifSuccess: boolean; //操作成功/失败
- promptInfo: string; //操作结果提示信息
- promptModalShow: boolean; //是否展示提示框
- btnLoading: boolean = false; //确认按钮loading状态
- coopBtns: any = {}; // 初始化增删改按钮
- dictionaryLoading = false; //loading
- positionY = 0; //记录Y轴滚动距离
- selectedDictionary = []; //选中的
- add: boolean = true; //新增的标识,true:新增;false:编辑
- dictionaryModal: boolean = false; //模态框是否展示
- dataEdit; //正在编辑的
- delModal: boolean = false; //删除,模态框是否显示
- delDictionaryModal: boolean = false; //删除,模态框是否显示
- isDelSingle: boolean = false; //是否单个删除
- isAllDisplayDataChecked = false; //当前页是否全选
- constructor(
- private fb: FormBuilder,
- private route: ActivatedRoute,
- private mainService: MainService,
- private tool: ToolService
- ) {}
- @ViewChild("osComponentRef1", {
- read: OverlayScrollbarsComponent,
- static: true,
- })
- osComponentRef1: OverlayScrollbarsComponent;
- ngOnInit() {
- this.coopBtns = this.tool.initCoopBtns(this.route);
- this.hosId = this.tool.getCurrentHospital().id;
- this.getDictionaryList();
- this.tableHeight = document.body.clientHeight - 312;
- }
- // 数据字典列表
- getDictionaryList() {
- this.dictionaryList = [
- {
- id: -1,
- dictionaryName: '被服种类',
- key: 'clothes_type',
- type: 'dictionaryTree',
- },
- {
- id: -2,
- dictionaryName: '统计分类',
- key: 'statistics_date_type',
- type: 'dictionary',
- },
- {
- id: -3,
- dictionaryName: '大扫描提示',
- key: 'bigScan_special_msg',
- type: 'dictionary',
- },
- ];
- if (Object.keys(this.checkedDictionary).length) {
- this.dictionaryList.forEach((item) => {
- if (item.id == this.checkedDictionary.id) {
- this.checkDictionary(item);
- }
- });
- } else {
- this.checkDictionary(this.dictionaryList[0]);
- }
- }
- searchDto:any = {
- parent: null,
- }
- // 获取父级分类
- getParentList() {
- let postData = {
- idx: 0,
- sum: 9999,
- dictionaryTree: {
- hosId: this.hosId,
- level: 1,
- key: 'clothes_type',
- deleted: 0,
- },
- };
- this.mainService
- .getFetchDataList("simple/data", "dictionaryTree", postData)
- .subscribe((result) => {
- if(result.status == 200){
- this.parentList = result.list || [];
- }
- });
- }
- // 获取选中数据字典列表
- getAll() {
- this.dictionaryLoading = true;
- let postData = {};
- if(this.checkedDictionary.type === 'dictionary'){
- postData = {
- idx: 0,
- sum: 9999,
- dictionary: {
- key: this.checkedDictionary.key,
- deleted: 0,
- },
- }
- }else if(this.checkedDictionary.type === 'dictionaryTree'){
- postData = {
- idx: 0,
- sum: 9999,
- dictionaryTree: {
- hosId: this.hosId,
- level: 2,
- parent: this.searchDto.parent || undefined,
- key: this.checkedDictionary.key,
- deleted: 0,
- },
- }
- }
- this.mainService
- .getFetchDataList("simple/data", this.checkedDictionary.type, postData)
- .subscribe((result) => {
- this.dictionaryLoading = false;
- if (result.status == 200) {
- this.allDataList = result.list;
- this.refreshStatus();
- }
- });
- }
- // 选中数据字典
- checkDictionary(data) {
- this.positionY = this.osComponentRef1.osInstance() ? this.osComponentRef1.osInstance().scroll().position.y : 0; //内容滚动的距离
- this.checkedDictionary = data ? data : {};
- this.mapOfCheckedId = {};
- this.getAll();
- this.checkedDictionary.type === 'dictionaryTree' && this.getParentList();
- }
- selectedUser(data) {
- this.mapOfCheckedId[data.id] = !this.mapOfCheckedId[data.id];
- this.refreshStatus();
- }
- // 选中列表中
- refreshStatus(): void {
- let arr = [];
- if (this.allDataList.length) {
- this.isAllDisplayDataChecked = this.allDataList.every(
- (item) => this.mapOfCheckedId[item.id]
- );
- } else {
- this.isAllDisplayDataChecked = false;
- }
- for (var m in this.mapOfCheckedId) {
- if (this.mapOfCheckedId[m]) {
- arr.push({ id: m });
- }
- }
- this.selectedDictionary = arr;
- }
- // 新增/编辑模态框
- showModal(e, type, data?) {
- e.stopPropagation();
- this.dictionaryModal = true;
- this.add = type == "add";
- if (type == "edit") {
- this.initForm();
- this.dataEdit = data;
- if(this.checkedDictionary.type === 'dictionaryTree'){
- this.validateForm.controls.key.setValue(data.key);
- this.validateForm.controls.parent.setValue(data.parent);
- this.validateForm.controls.name.setValue(data.name);
- this.validateForm.controls.value.setValue(data.value);
- this.validateForm.controls.orders.setValue(data.orders);
- this.validateForm.controls.extra3.setValue(data.extra3);
- this.validateForm.controls.desc.setValue(data.desc);
- } else if(this.checkedDictionary.type === 'dictionary'){
- this.validateForm.controls.key.setValue(data.key);
- this.validateForm.controls.name.setValue(data.name);
- this.validateForm.controls.value.setValue(data.value);
- this.validateForm.controls.orders.setValue(data.orders);
- this.validateForm.controls.desc.setValue(data.desc);
- }
- } else {
- this.initForm();
- }
- }
- // 隐藏模态框
- hideModal() {
- this.dictionaryModal = false;
- }
- // 初始化新增form表单dictionary
- initForm() {
- if(this.checkedDictionary.type === 'dictionaryTree'){
- this.validateForm = this.fb.group({
- key: [this.checkedDictionary.key, [Validators.required]],
- parent: [null, [Validators.required]],
- name: [null, [Validators.required]],
- value: [null, [Validators.required]],
- orders: [0, [Validators.required]],
- extra3: [0, [Validators.required]],
- desc: [null, [Validators.required]],
- });
- } else if(this.checkedDictionary.type === 'dictionary'){
- this.validateForm = this.fb.group({
- key: [this.checkedDictionary.key, [Validators.required]],
- name: [null, [Validators.required]],
- value: [null, [Validators.required]],
- orders: [0, [Validators.required]],
- desc: [null, [Validators.required]],
- });
- }
- }
- // 数据字典修改name,value自动变化,且value禁止修改
- changeValue(e){
- if(this.checkedDictionary.type === 'dictionary'){
- this.validateForm.controls.value.setValue(e.target.value);
- }
- }
- // 新增/编辑提交
- submitForm(): void {
- for (const i in this.validateForm.controls) {
- this.validateForm.controls[i].markAsDirty();
- this.validateForm.controls[i].updateValueAndValidity();
- }
- if (this.validateForm.invalid) return;
- this.btnLoading = true;
- let postData;
- if(this.checkedDictionary.type === 'dictionaryTree'){
- if (this.add) {
- postData = {
- hosId: this.hosId,
- key: this.validateForm.value.key,
- parent: this.validateForm.value.parent,
- name: this.validateForm.value.name,
- value: this.validateForm.value.value,
- orders: this.validateForm.value.orders,
- extra3: this.validateForm.value.extra3,
- desc: this.validateForm.value.desc,
- level: 2,
- system: 0,
- };
- } else {
- postData = {
- hosId: this.hosId,
- key: this.validateForm.value.key,
- parent: this.validateForm.value.parent,
- name: this.validateForm.value.name,
- value: this.validateForm.value.value,
- orders: this.validateForm.value.orders,
- extra3: this.validateForm.value.extra3,
- desc: this.validateForm.value.desc,
- id: this.dataEdit.id,
- level: 2,
- system: 0,
- };
- }
- }else if(this.checkedDictionary.type === 'dictionary'){
- if (this.add) {
- postData = {
- key: this.validateForm.value.key,
- name: this.validateForm.value.name,
- value: this.validateForm.value.value,
- orders: this.validateForm.value.orders,
- desc: this.validateForm.value.desc,
- system: 0,
- };
- } else {
- postData = {
- key: this.validateForm.value.key,
- name: this.validateForm.value.name,
- value: this.validateForm.value.value,
- orders: this.validateForm.value.orders,
- desc: this.validateForm.value.desc,
- system: 0,
- id: this.dataEdit.id,
- };
- }
- }
- this.addHandler(postData);
- }
- //新增/编辑
- addHandler(postData) {
- this.mainService
- .simplePost("addData", this.checkedDictionary.type, postData)
- .subscribe((result) => {
- this.hideModal();
- this.btnLoading = false;
- if (result["status"] == 200) {
- if(this.checkedDictionary.type === 'dictionary'){
- this.mainService.clearDictionary();
- }
- this.showPromptModal(this.add ? "新增" : "编辑", true, "");
- } else {
- this.showPromptModal(
- this.add ? "新增" : "编辑",
- false,
- result["msg"]
- );
- }
- });
- }
- /**
- * 删除
- * @param e 事件对象
- * @param data 有值就是单个删除,无值就是批量删除
- */
- showDelDictionaryModal(e, data?) {
- if (data) {
- this.isDelSingle = true;
- this.dataEdit = data;
- } else {
- this.isDelSingle = false;
- }
- this.delDictionaryModal = true;
- e.stopPropagation();
- }
- hideDelDictionaryModal() {
- this.delDictionaryModal = false;
- }
- // 确认删除
- confirmDictionaryDel() {
- this.btnLoading = true;
- let selectedDictionary = this.selectedDictionary.map((item) => item.id);
- let postData = this.isDelSingle ? [this.dataEdit.id] : selectedDictionary;
- this.mainService.simplePost("rmvData", this.checkedDictionary.type, postData).subscribe((result) => {
- this.hideDelDictionaryModal();
- this.btnLoading = false;
- if (result.status == 200) {
- if(this.checkedDictionary.type === 'dictionary'){
- this.mainService.clearDictionary();
- }
- this.showPromptModal("删除", true, "");
- } else {
- this.showPromptModal("删除", false, result.msg);
- }
- });
- }
- // 全选
- checkAll(value: boolean): void {
- console.log(this.allDataList);
- this.allDataList.forEach((item) => {
- this.mapOfCheckedId[item.id] = value;
- });
- this.refreshStatus();
- }
- // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
- showPromptModal(con, success, promptInfo) {
- this.promptModalShow = false;
- this.promptContent = con;
- this.ifSuccess = success;
- this.promptInfo = promptInfo;
- this.osComponentRef1.osInstance().scroll({ x: 0, y: this.positionY });
- if (success) {
- setTimeout(() => {
- this.promptModalShow = true;
- this.getDictionaryList();
- }, 100);
- } else {
- setTimeout(() => {
- this.promptModalShow = true;
- }, 100);
- }
- }
- }
|