前端页面增删改查

html页面

<!-- 表格查询条件Begin -->
<ng-template #serchArea>
    <div nz-row nzType="flex">
        <div nz-col>
            <nz-form-item nzFlex>
                <nz-form-label>申请日期</nz-form-label>
                <nz-form-control>
                    <nz-range-picker name="date" style="width:250px" [(ngModel)]="selectedDates" (ngModelChange)="onRangerPickerChange($event)"></nz-range-picker>
                </nz-form-control>
            </nz-form-item>
        </div>
        <div nz-col>
            <nz-form-item nzFlex>
                <nz-form-label>部门</nz-form-label>
                <nz-form-control>
                    <nz-select nzPlaceHolder="请选择" [(ngModel)]="reqObj.departmentId" style="width:150px" nzAllowClear (ngModelChange)="getEmploList($event)">
                        <nz-option *ngFor="let department of departmentList" [nzLabel]="department.name" [nzValue]="department.id"></nz-option>
                    </nz-select>
                </nz-form-control>
            </nz-form-item>
        </div>
        <div nz-col>
            <nz-form-item nzFlex>
                <nz-form-label>申请人</nz-form-label>
                <nz-form-control>
                    <input class="form_input" nz-input name="employeeName" id="employeeName" nzPlaceHolder="请选择" style="width:150px" [(ngModel)]="reqObj.applyName" />
                </nz-form-control>
            </nz-form-item>
        </div>
        <div nz-col>
            <nz-form-item nzFlex>
                <nz-form-control>
                    <button nz-button nzType="primary" (click)="updateList(true)" style="margin-left: 10px;">
                        查询
                    </button>
                </nz-form-control>
            </nz-form-item>
        </div>
    </div>
</ng-template>
<!-- 表格查询条件End -->
<ng-template #btnAdd>
    <button nz-button nzType="primary" (click)="add($event)">添加</button>
  <button nz-button nzType="default" style="margin-left: 20px" (click)="out()">导出</button>
</ng-template>
<nz-card nzTitle="采购登记列表" [nzExtra]="btnAdd">
    <nz-table #ajaxTable nzBordered nzShowSizeChanger [nzTitle]="serchArea" [nzFrontPagination]="false" [nzLoading]="isTableLoading" [nzData]="list" [nzTotal]="page.total" [(nzPageIndex)]="page.index" [(nzPageSize)]="page.size" (nzPageIndexChange)="updateList()"
        (nzPageSizeChange)="updateList(true)" [nzShowTotal]="totalTemplate" [nzScroll]="">
        <thead>
            <tr>
              <th class="textCenter" nzShowSort  (click)="changeNum()">采购日期</th>
              <th class="textCenter">物品名称</th>
              <th class="textCenter">规格</th>
              <th class="textCenter">数量</th>
              <th class="textCenter">金额</th>
                <th class="textCenter">申请部门</th>
                <th class="textCenter">申请人</th>
                <th class="textCenter" nzRight="0px">操作</th>
            </tr>
        </thead>
        <tbody>
            <tr *ngFor="let data of ajaxTable.data ;let i =index">
              <td class="textCenter" class="textCenter" >
                <div class="editable-cell">
                  <div class="editable-cell-text-wrapper">
                    <ng-container *ngIf="data.flag==true">
                      {{ data.purchaseDate }}
                    </ng-container>
                    <ng-container *ngIf="data.flag==false">
<!--                      <input type="text" nz-input [(ngModel)]="data.purchaseDate">-->
                      <nz-date-picker
                        nzShowTime
                        nzFormat="yyyy-MM-dd HH:mm:ss"
                        (ngModelChange)="onChange($event,i)"
                        [(ngModel)]="data.date"
                      ></nz-date-picker>
                    </ng-container>
                  </div>
                </div>
              </td>
              <td class="textCenter" class="textCenter" >
                <div class="editable-cell">
                  <div class="editable-cell-text-wrapper">
                    <ng-container *ngIf="data.flag==true">
                      {{ data.goodsNo }}
                    </ng-container>
                    <ng-container *ngIf="data.flag==false">
                      <input type="text" nz-input [(ngModel)]="data.goodsNo">
                    </ng-container>
                  </div>
                </div>
              </td>
              <td class="textCenter" class="textCenter" >
                <div class="editable-cell">
                  <div class="editable-cell-text-wrapper">
                    <ng-container *ngIf="data.flag==true">
                      {{ data.specifications }}
                    </ng-container>
                    <ng-container *ngIf="data.flag==false">
                      <input type="text" nz-input [(ngModel)]="data.specifications">
                    </ng-container>
                  </div>
                </div>
              </td>
              <td class="textCenter" class="textCenter" >
                <div class="editable-cell">
                  <div class="editable-cell-text-wrapper">
                    <ng-container *ngIf="data.flag==true">
                      {{ data.quantity }}
                    </ng-container>
                    <ng-container *ngIf="data.flag==false">
                      <input type="text" nz-input [(ngModel)]="data.quantity">
                    </ng-container>
                  </div>
                </div>
              </td>
              <td class="textCenter" class="textCenter" >
                <div class="editable-cell">
                  <div class="editable-cell-text-wrapper">
                    <ng-container *ngIf="data.flag==true">
                      {{ data.amount }}
                    </ng-container>
                    <ng-container *ngIf="data.flag==false">
                      <input type="text" nz-input [(ngModel)]="data.amount">
                    </ng-container>
                  </div>
                </div>
              </td>
                <td class="textCenter" class="textCenter" >
                  <div class="editable-cell">
                    <div class="editable-cell-text-wrapper">
                      <ng-container *ngIf="data.flag==true">
                        {{ data.departmentName }}
                      </ng-container>
                      <ng-container *ngIf="data.flag==false">
                        <nz-select nzPlaceHolder="请选择" [(ngModel)]="data.departmentId" style="width:150px" nzAllowClear (ngModelChange)="getEmploList($event)">
                          <nz-option *ngFor="let department of departmentList" [nzLabel]="department.name" [nzValue]="department.id"></nz-option>
                        </nz-select>
                      </ng-container>
                    </div>
                  </div>
                </td>
                <td class="textCenter">
                  <div class="editable-cell">
                    <div class="editable-cell-text-wrapper">
                      <ng-container *ngIf="data.flag==true">
                        {{ data.applyName }}
                      </ng-container>
                      <ng-container *ngIf="data.flag==false">
                        <input type="text" nz-input [(ngModel)]="data.applyName">
                      </ng-container>
                    </div>
                  </div>
                </td>
                <td class="textCenter"  nzRight="0px">
                  <ng-container *ngIf="data.flag==true">
                    <a href="javascript:void(0)" (click)="startEdit(i)">编辑</a>
                  </ng-container>
                  <ng-container *ngIf="data.flag==false">
                    <a href="javascript:void(0)" (click)="saveEdit(i)">保存</a>
                  </ng-container>
                    <nz-divider nzType="vertical"></nz-divider>
                  <ng-container *ngIf="data.flag==true">
                    <a href="javascript:void(0)" style="color: #f81d22 !important;" (click)="delete(data.id)">删除</a>
                  </ng-container>
                  <ng-container *ngIf="data.flag==false" >
                    <a href="javascript:void(0)" (click)="cancelEdit(i)">取消</a>
                  </ng-container>

                </td>
            </tr>
        </tbody>
    </nz-table>
</nz-card>
<ng-template #totalTemplate let-total>共 {{ total }} 条</ng-template>

js部分代码

import { Component, OnInit } from "@angular/core";
import { Router, ActivatedRoute } from "@angular/router";
import { HttpReqService } from "../../../common/service/HttpUtils.Service";
import { JsUtilsService } from "../../../common/service/JsUtils.Service";
import { Utils } from "../../../common/utils/utils";
import { GlobalService } from "../../../common/service/GlobalService";
import { NzMessageService } from "ng-zorro-antd";
import {Validators} from "@angular/forms";
@Component({
  selector: "app-articlePurchaseRegistration",
  templateUrl: "./articlePurchaseRegistration.component.html",
  styleUrls: ["./articlePurchaseRegistration.component.css"],
})
export class ArticlePurchaseRegistrationComponent implements OnInit {
  departmentList = [];
  list = [];

  page = {
    total: 0,
    size: 10,
    index: 1,
  };
  i = 1;
  reqObj = {
    page: 1,
    size: 10,
    departmentId: "",
    applyName: "",
    beginTime: "",
    endTime: "",
    sortFlag:true,
  };
  editCache = {};

  goodsClassificationNodes;
  selectedDates = [];
  isTableLoading = false;
  emplList = []; //申请人列表
  constructor(
    private router: Router,
    private route: ActivatedRoute,
    private httpReq: HttpReqService,
    private jsUtil: JsUtilsService,
    private globalService: GlobalService,
    private message: NzMessageService
  ) {}

  ngOnInit() {
    if (sessionStorage.getItem(this.router.url + "1") !== null) {
      this.reqObj = JSON.parse(sessionStorage.getItem(this.router.url + "1"));
      if (
        !Utils.isEmpty(this.reqObj.beginTime) &&
        !Utils.isEmpty(this.reqObj.endTime)
      ) {
        this.selectedDates.push(new Date(this.reqObj.beginTime));
        this.selectedDates.push(new Date(this.reqObj.endTime));
      }
    }

    this.httpReq.post("department/listAll", null, {}, (data) => {
      if (data["status"] == 200) {
        this.departmentList = data["data"];
      }
    });

    this.updateList();
  }

  add(e?: MouseEvent): void {
    if (e) {
      e.preventDefault();
    }
    const id =
      this.list.length > 0
        ? this.list[this.list.length - 1].id +
        1
        : 0;
    const jiatingchengyuan = {
      purchaseDate:'',//采购日期
      goodsNo:'',//物品名称
      specifications:'',// 规格
      quantity:'',// 数量
      amount:'',// 金额
      departmentId:'',// 部门Id
      applyName:'',
      flag:false
    };
    // const index = this.interviewContactsList.push(jiatingchengyuan);

    this.list = [
      jiatingchengyuan,
      ...this.list,
    ];
  }
  //编辑
  startEdit(e): void {
    this.list[e].date=new Date(this.list[e].purchaseDate)
    this.list[e].flag=false

  }
  //保存
  saveEdit(e): void {
    this.list[e].flag=true
    this.list[e].purchaseDate= this.jsUtil.dateFormat2( this.list[e].purchaseDate)
    this.httpReq.post("purchaseRegister/saveOrUpdateNew",null,this.list[e], (data) => {
      if (data["code"] == 0) {
        this.message.success("保存成功!");
        this.updateList();
      }
    });
  }
  //取消
  cancelEdit(e): void {
    this.list[e].flag=true
    this.updateList();
  }
  onChange(result: Date[],e): void {
    this.list[e].purchaseDate= this.jsUtil.dateFormat2(result)
    console.log(  '',this.list[e].purchaseDate)
  }
  onOk(result: Date): void {
    console.log('onOk', result);
  }
  //排序
  changeNum(){
    if(this.reqObj.sortFlag==true){
      this.reqObj.sortFlag=false
    }else  if(this.reqObj.sortFlag==false){
      this.reqObj.sortFlag=true
    }
    this.updateList();
  }
  out(){
    // let obj = {
    //   departmentId: this.reqObj.departmentId,
    //   applyName: this.reqObj.applyName,
    //   beginTime:this.reqObj.beginTime,
    //   endTime: this.reqObj.endTime,
    // };
    this.httpReq.get(
      "purchaseRegister/export",
      {},
      (res) => {
        if (res.code == 0) {

        }
      }
    );
  }
  updateList(reset: boolean = false): void {
    if (reset) {
      this.page.index = 1;
    }
    this.reqObj.page = this.page.index - 1;
    this.reqObj.size = this.page.size;

    if (this.reqObj.departmentId == null) {
      this.reqObj.departmentId = "";
    }

    if (this.reqObj.applyName == null) {
      this.reqObj.applyName = "";
    }
    sessionStorage.setItem(this.router.url, JSON.stringify(this.reqObj));
    this.isTableLoading = true;
    this.httpReq.get("purchaseRegister/getPage", this.reqObj, (data) => {
      this.isTableLoading = false;
      if (data["code"] == 0) {
        this.list = data["data"]["content"];
        for (let i = 0; i < this.list.length; i++) {
          // this.list[i].purchaseDate=new Date(this.list[i].purchaseDate)
         this.list[i].flag=true
        }
        this.page.total = data["data"]["totalElements"];
      }
    });
  }

  onRangerPickerChange(dateArr: Date[]) {
    if (dateArr[0]) {
      this.reqObj.beginTime = this.jsUtil.dateFormat(dateArr[0]) + " 00:00:00";
    } else {
      this.reqObj.beginTime = "";
    }
    if (dateArr[1]) {
      this.reqObj.endTime = this.jsUtil.dateFormat(dateArr[1]) + " 23:59:59";
    } else {
      this.reqObj.endTime = "";
    }
  }
  delete(id) {
    this.globalService.delModal(() => {
      this.httpReq.post("purchaseRegister/del", null, { id: id }, (data) => {
        if (data["code"] == 0) {
          this.message.success("删除成功!");
          this.updateList();
        }
      });
    });
  }

  // 通过部门获得人员
  getEmploList(event) {
    // this.validateForm.get("departmentId").value
    this.httpReq.get("employees/getByDepartment", { id: event }, (data) => {
      if (data["status"] == 200 && data["code"] == 0) {
        this.emplList = data["data"];
      }
    });
  }
}

最后实现的效果

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值