textbook-pertain.component.html 12 KB

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