123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 |
- <nz-page-header>
- <nz-page-header-title
- >申报流程
- <br />
- <div class="subtitle">
- 统一管理各类教材推荐流程和限额,设置各个流程开始和结束时间、查看各流程工作进度
- </div>
- </nz-page-header-title>
- <nz-page-header-extra>
- <nz-space>
- <button
- style="background: #3e49b3; border: 1px #3e49b3"
- *nzSpaceItem
- nz-button
- nzType="primary"
- (click)="toUrl('/nav-admin/manage/process/create')"
- >
- 创建流程
- </button>
- </nz-space>
- </nz-page-header-extra>
- </nz-page-header>
- <div class="edit-content">
- <div class="tool">
- <div class="tool-left">
-
- <div class="">
- <nz-input-group style="width: 280px" [nzPrefix]="prefixTemplateUser">
- <input
- type="text"
- nz-input
- placeholder="搜索流程名称 / 流程 code"
- [(ngModel)]="searchValuePro"
- (ngModelChange)="onSearchPro($event)"
- />
- </nz-input-group>
- <ng-template #prefixTemplateUser
- ><span nz-icon nzType="search"></span
- ></ng-template>
- </div>
- </div>
- <div class="tool-right"></div>
- </div>
- <div class="layout" #maxWidth>
- <div class="sider" #sider>
- <ul nz-menu>
- @for (item of nodes; track $index) {
- <li nz-menu-item (click)="changeDepart(item)">{{ item.title }}</li>
- }
- </ul>
- </div>
- <div class="breadcrumb">
- <nz-table
- #tableData
- [nzData]="eduProcessList"
- [nzTotal]="eduProcessLength"
- [nzPageSize]="pageSize"
- [nzPageIndex]="pageIndex"
- style="margin: 10px 0"
- [nzLoading]="loading"
- nzSize="middle"
- [nzNoResult]="emptyResult"
- nzTableLayout="fixed"
- [nzFrontPagination]="false"
- (nzPageIndexChange)="pageIndexChange($event)"
- >
- <thead>
- <tr>
- <th
- nzEllipsis
- nzWidth="50px"
- nzLeft
- [nzChecked]="checkedAll"
- [nzIndeterminate]="indeterminate"
- nzLabel="Select all"
- (nzCheckedChange)="onAllChecked($event)"
- ></th>
- <th nzWidth="120px" nzLeft>流程名称</th>
- <th nzEllipsis nzWidth="120px">流程code</th>
- <th nzEllipsis nzWidth="120px">流程描述</th>
- <th nzEllipsis nzWidth="80px">申报限额</th>
- <th nzEllipsis nzWidth="120px">流程联系人</th>
- <th nzEllipsis nzWidth="80px">流程状态</th>
- <th nzEllipsis nzWidth="50px" nzRight>操作</th>
- </tr>
- </thead>
- <tbody>
- @for (data of tableData.data; track data.id) {
- <tr>
- <td
- nzEllipsis
- nzLeft
- [nzChecked]="setOfCheckedId.has(data.id)"
- (nzCheckedChange)="onItemChecked(data.id, $event)"
- ></td>
- <td
- nzEllipsis
- (click)="
- toUrl('/nav-admin/manage/process/page', {
- id: data?.id
- })
- "
- class="activeTd"
- >
- {{ data?.get("name") || "-" }}
- </td>
- <td nzEllipsis>
- {{ data?.get("code") || "-" }}
- </td>
- <td nzEllipsis nz-popover [nzPopoverContent]="contentTemplate">
- {{ data?.get("desc") || "-" }}
- <ng-template #contentTemplate>
- <div style="max-width: 400px">
- {{ data?.get("desc") }}
- </div>
- </ng-template>
- </td>
- <td nzEllipsis>
- {{
- data?.get("num") || data?.get("num") == 0
- ? data?.get("num")
- : "-"
- }}
- </td>
- <td nzEllipsis>
- {{
- data?.get("profileSubmitted")?.get("user").get("name") || "-"
- }}
- </td>
- <td nzEllipsis>
- <nz-tag [nzColor]="statusMap[data.id].color">
- {{ statusMap[data.id].title }}</nz-tag
- >
- </td>
- <td nzEllipsis nzRight>
- <button
- nz-button
- nz-dropdown
- [nzDropdownMenu]="menu"
- [nzPlacement]="'bottomLeft'"
- >
- <span nz-icon nzType="ellipsis" nzTheme="outline"></span>
- </button>
- <nz-dropdown-menu #menu="nzDropdownMenu">
- <ul nz-menu>
- @if (statusMap[data.id].strat){
- <li nz-menu-item>
- <button
- nz-button
- nzType="link"
- style="color: #231c1f"
- (click)="onStatusChange(data, 'strat', true)"
- >
- <span
- nz-icon
- nzType="caret-right"
- nzTheme="outline"
- ></span
- >开始流程
- </button>
- </li>
- } @if (statusMap[data.id].stop){
- <li nz-menu-item>
- <button
- nz-button
- nzType="link"
- style="color: #231c1f"
- (click)="onStatusChange(data, 'stop', true)"
- >
- <span
- nz-icon
- nzType="pause-circle"
- nzTheme="outline"
- ></span
- >暂停流程
- </button>
- </li>
- }@if (statusMap[data.id].collect){
- <li nz-menu-item>
- <button
- nz-button
- nzType="link"
- style="color: #231c1f"
- (click)="openEditCollect(data)"
- >
- <span
- nz-icon
- nzType="plus-circle"
- nzTheme="outline"
- ></span
- >收集源文件
- </button>
- </li>
- } @if (statusMap[data.id].end){
- <li nz-menu-item>
- <button
- nz-button
- nzType="link"
- style="color: #231c1f"
- (click)="onStatusChange(data, 'end', true)"
- >
- <span nz-icon nzType="stop" nzTheme="outline"></span
- >结束流程
- </button>
- </li>
- } @if (statusMap[data.id].del){
- <li nz-menu-item>
- <button
- nz-button
- nzType="link"
- (click)="onStatusChange(data, 'del', true)"
- style="color: #231c1f"
- >
- <span nz-icon nzType="delete" nzTheme="outline"></span
- >删除流程
- </button>
- </li>
- }
- </ul>
- </nz-dropdown-menu>
- </td>
- </tr>
- }
- </tbody>
- </nz-table>
- <ng-template #emptyResult>
- <nz-empty nzNotFoundImage="/img/group-empty.png"></nz-empty>
- </ng-template>
- </div>
- </div>
- </div>
- <div class="batch-toolbar-modal" *ngIf="setOfCheckedId?.size">
- <div class="batch-toolbar">
- <div class="styles_counter__18S08">
- <span>已选</span>
- <span class="styles_num__178Wa">{{ setOfCheckedId.size }}</span>
- </div>
-
- <div class="styles_cancel__AARoT">
- <button nz-button nzType="text" (click)="statusSelected('strat')">
- <span nz-icon nzType="caret-right" nzTheme="outline"></span>
- 批量开始
- </button>
- </div>
- <div class="styles_cancel__AARoT">
- <button nz-button nzType="text" (click)="statusSelected('stop')">
- <span nz-icon nzType="pause-circle" nzTheme="outline"></span>
- 批量暂停
- </button>
- </div>
- <div class="styles_cancel__AARoT">
- <button nz-button nzType="text" (click)="statusSelected('end')">
- <span nz-icon nzType="stop" nzTheme="outline"></span>
- 批量结束
- </button>
- </div>
- <div class="styles_cancel__AARoT">
- <button nz-button nzType="text" (click)="onAllChecked(false)">
- 取消选中
- </button>
- </div>
- </div>
- </div>
- <nz-modal
- [(nzVisible)]="isVisible"
- nzTitle="新建组织"
- (nzOnCancel)="handleCancel()"
- nzWidth="600px"
- nzCentered
- >
- <ng-container *nzModalContent>
- <div nz-row class="depart-modal">
- <div nz-col nzSpan="12">
- <div class="row">
- <div class="label">
- 组织名称 <span style="color: #e8353e">*</span>
- </div>
- <div class="value">
- <input
- nz-input
- placeholder="请输入组织名称"
- [(ngModel)]="branchObj.name"
- type="text"
- />
- </div>
- </div>
- <div class="row">
- <div class="label">code</div>
- <div class="value">
- <input
- nz-input
- placeholder="请输入code"
- [(ngModel)]="branchObj.code"
- type="text"
- />
- </div>
- </div>
- </div>
- <div nz-col nzSpan="12">
- <div class="row">
- <div class="label">组织描述</div>
- <div class="value">
- <textarea
- [nzAutosize]="{ minRows: 4, maxRows: 4 }"
- placeholder="请输入组织描述"
- nz-input
- [(ngModel)]="branchObj.desc"
- ></textarea>
- </div>
- </div>
- </div>
- </div>
- </ng-container>
- <div *nzModalFooter>
- <button nz-button nzType="default" (click)="handleCancel()">取消</button>
- <button
- nz-button
- nzType="primary"
- style="background: #3e49b3; border: 1px #3e49b3"
- (click)="handleOk()"
- >
- 确定
- </button>
- </div>
- </nz-modal>
- <nz-modal
- [(nzVisible)]="showModal"
- nzTitle="收集教材源文件"
- (nzOnCancel)="handleCancel()"
- nzWidth="600px"
- >
- <ng-container *nzModalContent>
- <div nz-row class="depart-modal">
- <div nz-col nzSpan="24">
- <div class="row">
- <div class="label">
- 开始时间 <span style="color: #e8353e">*</span>
- </div>
- <div class="value">
- <nz-date-picker
- nzFormat="yyyy-MM-dd HH:mm:ss"
- [(ngModel)]="collectStartData"
- [nzShowTime]="{ nzDefaultOpenValue: timeDefaultValue }"
- ></nz-date-picker>
- </div>
- </div>
- <div class="row">
- <div class="label">截止时间 <span style="color: #e8353e">*</span></div>
- <div class="value">
- <nz-date-picker
- nzFormat="yyyy-MM-dd HH:mm:ss"
- [(ngModel)]="collectEndData"
- [nzStatus]="collectEndData < collectStartData ? 'error' : ''"
- [nzShowTime]="{ nzDefaultOpenValue: timeDefaultValue }"
- ></nz-date-picker>
- </div>
- </div>
- <div class="row" style="align-items: start;">
- <div class="label">收集教材</div>
- <div class="value">
- @for (item of textBookList; track $index) {
- <span>{{item?.get('title')}}; </span>
- }
- </div>
- </div>
- </div>
- </div>
- </ng-container>
- <div *nzModalFooter>
- <button nz-button nzType="default" (click)="handleCancel()">取消</button>
- <button
- nz-button
- nzType="primary"
- [disabled]="!this.collectStartData || !this.collectEndData"
- (click)="editCollect()"
- >
- 收集
- </button>
- </div>
- </nz-modal>
|