textbook-pertain.component.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <div class="entry">
  2. <form nz-form [formGroup]="validateForm" class="login-form" (ngSubmit)="submitForm()">
  3. <div class="first-head">
  4. <div nz-row>
  5. <div nz-col nzSpan="12">
  6. <nz-form-item class="row" style="margin-bottom: 16px">
  7. <nz-form-label class="label" [nzNoColon]="true" [nzSm]="16" [nzXs]="16"
  8. nzRequired>适用专业代码(六位)及名称</nz-form-label>
  9. <nz-form-control class="val" nzErrorTip="适用专业代码(六位)及名称" style="width: 100%">
  10. <nz-select style="width: 80%" nzShowSearch nzAllowClear nzPlaceHolder="填写 6 位专业代码选择"
  11. formControlName="major" (ngModelChange)="changeCode()" (nzOnSearch)="getCode($event)">
  12. @for(major of selectList; track major.code;let index = $index){
  13. <nz-option nzCustomContent [nzValue]="major.code" [nzLabel]="major.name">{{ major.name }}</nz-option>
  14. }
  15. </nz-select>
  16. </nz-form-control>
  17. </nz-form-item>
  18. <nz-form-item class="row" style="margin-bottom: 16px">
  19. <nz-form-label class="label" [nzNoColon]="true" [nzSm]="8" [nzXs]="8" nzRequired>课程学时</nz-form-label>
  20. <nz-form-control class="val" nzErrorTip="请填写课程学时" style="width: 100%">
  21. <nz-input-group style="width: 80%" [nzSuffix]="suffixTemplateInfo">
  22. <input type="number" formControlName="period" nz-input placeholder="填写学时数" />
  23. </nz-input-group>
  24. <ng-template #suffixTemplateInfo> 学时 </ng-template>
  25. </nz-form-control>
  26. </nz-form-item>
  27. </div>
  28. <div nz-col nzSpan="12">
  29. <nz-form-item class="row" style="margin-bottom: 16px">
  30. <nz-form-label class="label" [nzNoColon]="true" [nzSm]="6" [nzXs]="6" nzRequired>适用课程</nz-form-label>
  31. <nz-form-control class="val" nzErrorTip="请填写适用课程" style="width: 100%">
  32. <input type="text" formControlName="lessons" nz-input placeholder="填写适用课程名称,多门课程名称使用“;”分隔" />
  33. </nz-form-control>
  34. </nz-form-item>
  35. <nz-form-item class="row" style="margin-bottom: 16px">
  36. <nz-form-label class="label" [nzNoColon]="true" [nzSm]="6" [nzXs]="6" nzRequired>适用课程性质</nz-form-label>
  37. <nz-form-control class="val" nzErrorTip="请填写适用课程性质" style="width: 100%">
  38. <nz-checkbox-group [(ngModel)]="checkOptionsOne" formControlName="characteristic"></nz-checkbox-group>
  39. </nz-form-control>
  40. </nz-form-item>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="author-content">
  45. <div class="nav">作者信息</div>
  46. <nz-form-label class="title" [nzNoColon]="true" [nzSm]="24" [nzXs]="24" nzRequired>
  47. <span style="font-size: 16px">
  48. 作者(含主编,不超过 6 人,教材中明确出现姓名)
  49. </span>
  50. </nz-form-label>
  51. <nz-table #basicTable [nzData]="authorList" [nzScroll]="{ x: (maxWidth || '1200') + 'px' }">
  52. <thead>
  53. <tr>
  54. <th nzWidth="80px" nzLeft nzAlign="right">序号</th>
  55. <th nzWidth="160px" nzLeft>姓名</th>
  56. <th nzWidth="160px">单位</th>
  57. <th nzWidth="160px">出生年月</th>
  58. <th nzWidth="160px">国籍</th>
  59. <th nzWidth="160px">职务</th>
  60. <th nzWidth="160px">职称</th>
  61. <th nzWidth="300px">手机号码</th>
  62. <th nzWidth="160px">电子邮箱</th>
  63. <th nzWidth="160px">分工</th>
  64. <th nzWidth="100px" nzRight>
  65. 作者诚信承诺签名
  66. <span style="color: red;">*</span>
  67. </th>
  68. <th nzWidth="100px" nzRight>
  69. 作者政治审查表
  70. <span style="color: red;">*</span>
  71. </th>
  72. <th nzWidth="100px" nzRight>操作</th>
  73. </tr>
  74. </thead>
  75. <tbody>
  76. @for (data of authorList; track data.mobile;let index = $index) {
  77. <tr>
  78. <td nzLeft nzAlign="right">{{ index + 1 }}</td>
  79. <td nzLeft>
  80. <input nz-input placeholder="请输入作者姓名" [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.name"
  81. nzStatus="" />
  82. </td>
  83. <td>
  84. <input nz-input placeholder="请输入作者单位" [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.unit"
  85. nzStatus="" />
  86. </td>
  87. <td>
  88. <nz-date-picker nzMode="month" [ngModelOptions]="{ standalone: true }"
  89. [(ngModel)]="data.birth"></nz-date-picker>
  90. </td>
  91. <td>
  92. <input nz-input placeholder="请输入作者国籍" [ngModelOptions]="{ standalone: true }"
  93. [(ngModel)]="data.nationality" nzStatus="" />
  94. </td>
  95. <td>
  96. <input nz-input placeholder="请输入作者职务" [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.job"
  97. nzStatus="" />
  98. </td>
  99. <td>
  100. <input nz-input placeholder="请输入作者职称" [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.title"
  101. nzStatus="" />
  102. </td>
  103. <td>
  104. <nz-input-group nzCompact>
  105. <nz-select style="width: 90px;" [ngModel]="'+86'">
  106. <nz-option [nzLabel]="'+0000'" [nzValue]="'+0000'"></nz-option>
  107. <nz-option [nzLabel]="'+86'" [nzValue]="'+86'"></nz-option>
  108. </nz-select>
  109. <input type="number" nz-input placeholder="请输入作者手机号码" [ngModelOptions]="{ standalone: true }"
  110. [(ngModel)]="data.mobile" nzStatus="" style="width: 160px;"/>
  111. </nz-input-group>
  112. </td>
  113. <td>
  114. <input nz-input placeholder="请输入作者邮箱" [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.email"
  115. nzStatus="" />
  116. </td>
  117. <td>
  118. <nz-select style="width: 80%" nzShowSearch nzAllowClear nzPlaceHolder="请选择分工"
  119. [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.work">
  120. @for(work of workOptions; track work){
  121. <nz-option nzCustomContent [nzValue]="work" [nzLabel]="work">{{
  122. work
  123. }}</nz-option>
  124. }
  125. </nz-select>
  126. </td>
  127. <td nzRight>
  128. 未上传
  129. <app-comp-upload [width]="320" (change)="upload($event, 'signature',index)"
  130. title="上传"></app-comp-upload>
  131. </td>
  132. <td nzRight>
  133. 未上传
  134. <app-comp-upload [width]="320" (change)="upload($event, 'examine',index)"
  135. title="上传"></app-comp-upload>
  136. </td>
  137. <td nzRight>
  138. <a (click)="onPush('authorList', index)"><span nz-icon style="font-size: 20px; margin-right: 10px"
  139. nzType="plus-circle" nzTheme="outline"></span></a>
  140. <a (click)="onDel('authorList', index)"><span nz-icon style="font-size: 20px" nzType="delete"
  141. nzTheme="outline"></span></a>
  142. </td>
  143. </tr>
  144. }
  145. </tbody>
  146. </nz-table>
  147. <p>输入诚信承诺:本人自愿参加此次申报,已认真填写并检查以上材料,保证内容真实。</p>
  148. <input formControlName="accept" nz-input placeholder="请输入承诺内容" />
  149. </div>
  150. <div class="author-content">
  151. <div class="nav">第一主编(作者)情况</div>
  152. <nz-form-item class="row" style="margin-bottom: 16px">
  153. <nz-form-label class="title" [nzNoColon]="true" [nzSm]="24" [nzXs]="24" nzRequired>
  154. <span style="font-size: 16px"> 相关教学经历 </span>
  155. </nz-form-label>
  156. <nz-form-control class="val" nzErrorTip="请输入第一主编(作者)承担学校教学任务、开展教学研究情况、教材编写情况以及取得的教学成果" style="width: 100%">
  157. <textarea rows="4" formControlName="authorDetails" placeholder="请输入第一主编(作者)承担学校教学任务、开展教学研究情况、教材编写情况以及取得的教学成果"
  158. nz-input></textarea>
  159. </nz-form-control>
  160. </nz-form-item>
  161. </div>
  162. <div class="author-content">
  163. <nz-form-label class="title" [nzNoColon]="true" [nzSm]="24" [nzXs]="24" nzRequired>
  164. <span style="font-size: 16px">
  165. 相关科学研究项目、成果或论文专著(限5项)
  166. </span>
  167. </nz-form-label>
  168. <nz-table #basicTable [nzData]="achievementOptions" [nzScroll]="{ x: (maxWidth || '1200') + 'px' }">
  169. <thead>
  170. <tr>
  171. <th nzWidth="80px" nzLeft nzAlign="right">序号</th>
  172. <th nzWidth="220px" nzLeft>名称</th>
  173. <th nzWidth="180px">来源/出版单位</th>
  174. <th nzWidth="120px">时间</th>
  175. <th nzWidth="80px" nzRight>操作</th>
  176. </tr>
  177. </thead>
  178. <tbody>
  179. @for (data of achievementOptions; track data.name;let index = $index)
  180. {
  181. <tr>
  182. <td nzLeft nzAlign="right">{{ index + 1 }}</td>
  183. <td nzLeft>
  184. <input nz-input placeholder="请输入项目/成果/论文名称" [ngModelOptions]="{ standalone: true }"
  185. [(ngModel)]="data.name" nzStatus="" />
  186. </td>
  187. <td>
  188. <input nz-input placeholder="请输入单位名称" [ngModelOptions]="{ standalone: true }" [(ngModel)]="data.unit"
  189. nzStatus="" />
  190. </td>
  191. <td>
  192. <nz-date-picker nzMode="month" [ngModelOptions]="{ standalone: true }"
  193. [(ngModel)]="data.date"></nz-date-picker>
  194. </td>
  195. <td nzRight>
  196. <a (click)="onPush('achievementOptions', index)"><span nz-icon style="font-size: 20px; margin-right: 10px"
  197. nzType="plus-circle" nzTheme="outline"></span></a>
  198. <a (click)="onDel('achievementOptions', index)"><span nz-icon style="font-size: 20px" nzType="delete"
  199. nzTheme="outline"></span></a>
  200. </td>
  201. </tr>
  202. }
  203. </tbody>
  204. </nz-table>
  205. </div>
  206. </form>
  207. <a>
  208. <span nz-icon nzType="download" nzTheme="outline"></span>
  209. 下载本页所有附件模板
  210. </a>
  211. </div>
  212. <div class="footer">
  213. <button nz-button nzType="default" style="margin-right: 20px" (click)="submitForm('save')">
  214. 保存本页
  215. </button>
  216. <button nz-button nzType="default" style="margin-right: 20px" (click)="submitForm('pre')">
  217. 上一页
  218. </button>
  219. <button nz-button nzType="primary" style="background: #3e49b3; border: 1px #3e49b3" (click)="submitForm('next')">
  220. 下一页
  221. </button>
  222. </div>