123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- import { Component, OnInit, ViewChild, Input } from "@angular/core";
- import { ActivatedRoute } from "@angular/router";
- import { MainService } from "../../../services/main.service";
- import { Validators, FormGroup, FormBuilder, FormControl } from '@angular/forms';
- import { ToolService } from 'src/app/services/tool.service';
- import { OverlayScrollbarsComponent } from 'overlayscrollbars-ngx';
- import { NzMessageService } from 'ng-zorro-antd';
- import { v4 as uuidv4, validate as uuidValidate } from 'uuid';
- import { addDays, startOfMinute, endOfMinute, set, getYear, getMonth, getDate, format } from 'date-fns';
- @Component({
- selector: "app-configuration-inspect",
- templateUrl: "./configuration-inspect.component.html",
- styleUrls: ["./configuration-inspect.component.less"],
- })
- export class ConfigurationInspectComponent implements OnInit {
- constructor(
- private route: ActivatedRoute,
- private mainService: MainService,
- private fb: FormBuilder,
- private tool: ToolService,
- private message: NzMessageService,
- ) {}
- @ViewChild("osComponentRef1", {
- read: OverlayScrollbarsComponent,
- static: false,
- })
- osComponentRef1: OverlayScrollbarsComponent;
- @ViewChild("osComponentRef2", {
- read: OverlayScrollbarsComponent,
- static: false,
- })
- osComponentRef2: OverlayScrollbarsComponent;
- ngOnInit() {
- this.activeDictionaryKey = this.dictionaryKeyList[0];
- this.getDictionaryList();
- this.initDictionaryForm();
- }
- // 数据字典key列表
- dictionaryKeyList:any[] = [
- { id: 1, name: '注意事项', key: "inspect_notes"},
- { id: 2, name: '批量建单配置', key: "", postData: {
- ibActiveStartTime1: undefined,
- ibActiveEndTime1: undefined,
- ibActiveStartTime2: undefined,
- ibActiveEndTime2: undefined,
- ibDefaultStartTime: undefined,
- ibDefaultEndTime: undefined,
- ibDefaultDayStart: [{ label:'+1天', value: 0 }],
- ibDefaultDayEnd: [{ label:'+1天', value: 0 }],
- ib2ActiveStartTime1: undefined,
- ib2ActiveEndTime1: undefined,
- ib2ActiveStartTime2: undefined,
- ib2ActiveEndTime2: undefined,
- ib2DefaultStartTime: undefined,
- ib2DefaultEndTime: undefined,
- ib2DefaultDayStart: [{ label:'+1天', value: 0 }],
- ib2DefaultDayEnd: [{ label:'+1天', value: 0 }],
- }},
- { id: 3, name: '检查项目', key: ""},
- ]
- // 点击数据字典key
- activeDictionaryKey:any;
- clickDictionaryKey(item){
- this.activeDictionaryKey = item;
- if(this.activeDictionaryKey.id == 1){
- this.getDictionaryList();
- this.initDictionaryForm();
- }
- }
- btnLoading: boolean = false; //提交按钮loading状态
- // ------------------------------
- // 展示信息提示框(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.getDictionaryList();
- }
- coopData: any = {}; //当前操作列
- 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 === "delDictionary") {
- //删除-数据字典
- this.mainService
- .simplePost("rmvData", "dictionary", [this.coopData.id])
- .subscribe((data) => {
- this.btnLoading = false;
- this.delModal = false;
- if (data.status == 200) {
- this.mainService.clearDictionary();
- this.showPromptModal(this.tipsMsg2, true, "");
- } else {
- this.showPromptModal(this.tipsMsg2, false, data.msg);
- }
- });
- }
- }
- // 初始化数据字典新增form表单
- validateDictionaryForm: FormGroup; //新增/编辑表单
- dictionaryList: any = [];
- initDictionaryForm() {
- this.validateDictionaryForm = this.fb.group({
- // name: [null, [Validators.required]],//键
- // value: [null, [Validators.required]],//值
- // orders: [null, [Validators.required]],//排序号
- });
- console.log(this.validateDictionaryForm.controls)
- }
- // 获取数据字典数据
- maskFlag: any = false;
- getDictionaryList() {
- let postData = {
- idx: 0,
- sum: 9999,
- dictionary: {
- key: this.activeDictionaryKey.key,
- }
- }
- this.maskFlag = this.message.loading("正在加载中..", {
- nzDuration: 0,
- }).messageId;
- this.mainService.getFetchDataList('simple/data','dictionary',postData).subscribe(data => {
- this.message.remove(this.maskFlag);
- this.maskFlag = false;
- let list = data.list || [];
- if(list.length){
- this.dictionaryList = list.map(v => {
- return {
- id: v.id,
- name: v.name || null,
- value: v.value || null,
- orders: v.orders || null,
- system: v.system || false,
- }
- });
- }else{
- this.dictionaryList = [
- {
- id: uuidv4(),
- name: null,
- value: null,
- orders: null,
- system: false,
- }
- ];
- }
- console.log(this.dictionaryList);
- // 动态添加表单
- this.dictionaryList.forEach((obj, i) => {
- for (const key in obj) {
- if(key !== 'id' && key !== 'system'){
- if(this.activeDictionaryKey.key === 'incident_status' || this.activeDictionaryKey.key === 'incident_degree'){
- this.validateDictionaryForm.addControl(key + '_' + obj.id, new FormControl({value: obj[key], disabled: true}, [Validators.required]))
- }else{
- this.validateDictionaryForm.addControl(key + '_' + obj.id, new FormControl({value: obj[key], disabled: key === 'value' ? obj.system : false}, [Validators.required]))
- }
- }
- }
- })
- console.log(this.validateDictionaryForm.controls)
- })
- }
- // 添加数据字典
- addField(i:number): void{
- let obj = {
- id: uuidv4(),
- name: null,
- value: null,
- orders: null,
- system: false,
- };
- // 动态添加表单
- for (const key in obj) {
- console.log(key + '_' + obj.id)
- if(key !== 'id' && key !== 'system'){
- this.validateDictionaryForm.addControl(key + '_' + obj.id, new FormControl(null, [Validators.required]))
- }
- }
- this.dictionaryList.splice(i + 1, 0, obj);
- }
- // 删除
- removeField(obj, i:number): void {
- if(uuidValidate(obj.id)){
- this.dictionaryList.splice(i, 1);
- this.dictionaryList = [...this.dictionaryList];
- // 动态删除表单
- for (const key in obj) {
- this.validateDictionaryForm.removeControl(key + '_' + obj.id);
- }
- }else{
- this.showDelModal(obj,'您确认要删除吗?','删除','delDictionary')
- }
- }
- // 保存数据字典
- saveDictionary(): void {
- console.log(this.coopData)
- for (const i in this.validateDictionaryForm.controls) {
- this.validateDictionaryForm.controls[i].markAsDirty();
- this.validateDictionaryForm.controls[i].updateValueAndValidity();
- }
- if (this.validateDictionaryForm.invalid) {
- return;
- }
- console.log(this.validateDictionaryForm.value);
- let postData:any = {};
- //增加
- postData = [];
- let rawValueObj = this.validateDictionaryForm.getRawValue();
- for (let i = 0; i < this.dictionaryList.length; i++) {
- postData.push({
- id: uuidValidate(this.dictionaryList[i].id) ? undefined : this.dictionaryList[i].id,
- name: rawValueObj['name_' + this.dictionaryList[i].id],
- value: rawValueObj['value_' + this.dictionaryList[i].id],
- orders: rawValueObj['orders_' + this.dictionaryList[i].id],
- system: uuidValidate(this.dictionaryList[i].id) ? false : this.dictionaryList[i].system,
- key: this.activeDictionaryKey.key,
- })
- }
- console.log(postData);
- this.btnLoading = true;
- this.mainService
- .simplePost("addListData", "dictionary", postData)
- .subscribe((result) => {
- this.btnLoading = false;
- if (result.status == 200) {
- this.mainService.clearDictionary();
- this.showPromptModal('保存', true, '');
- } else {
- this.showPromptModal('保存', false, result.msg || '');
- }
- });
- }
- }
|