banzhengXinxi.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <template>
  2. <view class="jz-content-box">
  3. <!-- 报证机构(picker 实现下拉选择) -->
  4. <view class="form-label-select form-top-margin">
  5. <view class="phone-form-label"><text class="form-label-require">*</text>报证机构</view>
  6. <picker mode="selector" :range="jigouNames" @change="jigouChange">
  7. <view class="form-radio-select">
  8. <view>{{ formData.baozhengJigouName || '请选择报证机构' }}</view><icon></icon>
  9. </view>
  10. </picker>
  11. </view>
  12. <!-- 职业名称(picker 实现下拉选择) -->
  13. <view class="form-label-select">
  14. <view class="phone-form-label"><text class="form-label-require">*</text>职业名称</view>
  15. <picker mode="selector" :range="zhiyeNames" range-key="name" @change="zhiyeChange">
  16. <view class="form-radio-select">
  17. <view>{{ formData.zhiyeName || '请选择职业名称' }}</view><icon></icon>
  18. </view>
  19. </picker>
  20. </view>
  21. <!-- 职业等级(picker 实现下拉选择) -->
  22. <view class="form-label-select">
  23. <view class="phone-form-label"><text class="form-label-require">*</text>职业等级</view>
  24. <picker mode="selector" :range="zhiyeLevels" @change="levelChange">
  25. <view class="form-radio-select">
  26. <view>{{ formData.zhiyeLevelName || '请选择等级' }}</view><icon></icon>
  27. </view>
  28. </picker>
  29. </view>
  30. <view v-if="formData.banzhengInfoFlag" class="form-label-select">
  31. <view class="phone-form-label"><text class="form-label-require"></text>参训时间</view>
  32. <uni-datetime-picker class="form-radio-picker" v-model="formData.canxunShijian" type="date" @change="canxunShijianChange">
  33. <view class="form-radio-select">
  34. <view>{{formData.canxunShijian}}</view><icon></icon>
  35. </view>
  36. </uni-datetime-picker>
  37. </view>
  38. <view v-if="formData.banzhengInfoFlag" class="form-label-input">
  39. <view class="phone-form-label"><text class="form-label-require">*</text>实操成绩</view>
  40. <input v-model="formData.shicaochengji" placeholder="请填写实操成绩" />
  41. </view>
  42. <view v-if="formData.banzhengInfoFlag" class="form-label-input">
  43. <view class="phone-form-label"><text class="form-label-require">*</text>总课时</view>
  44. <input v-model="formData.zongkeshi" placeholder="请填写总课时" />
  45. </view>
  46. <view v-if="!formData.banzhengInfoFlag" class="form-label-select">
  47. <view class="phone-form-label"><text class="form-label-require"></text>需要课程</view>
  48. <radio-group @change="kechengChange">
  49. <label class="radio-label">
  50. <radio :value="'true'" :checked="formData.needKecheng == 'true'" color="#3fd2a1" style="transform:scale(0.65)"/>
  51. <text>是</text>
  52. </label>
  53. <label class="radio-label">
  54. <radio :value="'false'" :checked="formData.needKecheng == 'false'" color="#3fd2a1" style="transform:scale(0.65)"/>
  55. <text>否</text>
  56. </label>
  57. </radio-group>
  58. </view>
  59. <view v-if="!formData.banzhengInfoFlag" class="form-label-select">
  60. <view class="phone-form-label"><text class="form-label-require"></text>需要考试</view>
  61. <radio-group @change="kaoshiChange">
  62. <label class="radio-label">
  63. <radio :value="'true'" :checked="formData.needKaoshi == 'true'" color="#3fd2a1" style="transform:scale(0.65)"/>
  64. <text>是</text>
  65. </label>
  66. <label class="radio-label">
  67. <radio :value="'false'" :checked="formData.needKaoshi == 'false'" color="#3fd2a1" style="transform:scale(0.65)"/>
  68. <text>否</text>
  69. </label>
  70. </radio-group>
  71. </view>
  72. <view class="page-btn-box">
  73. <button type="default" class="phone-white-btn">上一步</button>
  74. <button type="default" class="phone-green-btn">完成</button>
  75. </view>
  76. <!-- 提交按钮 -->
  77. <!-- <button class="submit-btn" @click="submitForm">提交</button> -->
  78. </view>
  79. </template>
  80. <script>
  81. import {
  82. getBaozhengJigou,
  83. getJiazhengLevel,
  84. getJiazhengZhiye
  85. } from "@/api/jiazheng.js"
  86. export default {
  87. data() {
  88. return {
  89. formData: {
  90. baozhengJigouId: '',
  91. baozhengJigouName: '',
  92. baozhengJigouType: '',
  93. banzhengInfoFlag: false,
  94. zhiyeName: '',
  95. zhiyeId: '',
  96. zhiyeLevelName: '',
  97. zhiyeLevelId: '',
  98. canxunShijian: '',
  99. shicaochengji: '',
  100. zongkeshi: '',
  101. needKecheng: 'false', // 默认选中"是"
  102. needKaoshi: 'false' // 默认选中"是"
  103. },
  104. baozhengJigouOpt: [
  105. ],
  106. zhiyelevelsOpt: [],
  107. zhiyeNameOpt: [
  108. ]
  109. };
  110. },
  111. computed: {
  112. jigouNames() {
  113. return this.baozhengJigouOpt.map(item => item.name);
  114. },
  115. zhiyeNames() {
  116. return this.zhiyeNameOpt.map(item => item.name);
  117. },
  118. zhiyeLevels() {
  119. return this.zhiyelevelsOpt.map(item => item.name);
  120. },
  121. },
  122. created() {
  123. this.getJigou()
  124. },
  125. methods: {
  126. getJigou() {
  127. getBaozhengJigou({}).then(res => {
  128. console.log('res', res);
  129. this.baozhengJigouOpt = res.data
  130. })
  131. },
  132. getZhiye() {
  133. this.zhiyeNameOpt = []
  134. this.formData.zhiyeName = ''
  135. this.formData.zhiyeId = ''
  136. getJiazhengZhiye({
  137. id: this.formData.baozhengJigouId
  138. }).then(res => {
  139. console.log('res', res);
  140. this.zhiyeNameOpt = res.data
  141. })
  142. },
  143. getZhiyeLevel() {
  144. this.zhiyelevelsOpt = []
  145. this.formData.zhiyeLevelName = ''
  146. this.formData.zhiyeLevelId = ''
  147. let req = {
  148. jgId: this.formData.baozhengJigouId,
  149. zyId: this.formData.zhiyeId
  150. }
  151. getJiazhengLevel(req).then(res => {
  152. console.log('res', res);
  153. this.zhiyelevelsOpt = res.data
  154. })
  155. },
  156. // 报证机构选择
  157. jigouChange(e) {
  158. this.formData.baozhengJigouName = this.baozhengJigouOpt[e.detail.value].name;
  159. this.formData.baozhengJigouId = this.baozhengJigouOpt[e.detail.value].jgId;
  160. this.formData.baozhengJigouType = this.baozhengJigouOpt[e.detail.value].jgType;
  161. this.formData.banzhengInfoFlag = this.baozhengJigouOpt[e.detail.value].jgType == 1;
  162. if (this.formData.banzhengInfoFlag) {
  163. this.formData.needKaoshi = 'false'
  164. this.formData.needKecheng = 'false'
  165. } else {
  166. this.formData.needKaoshi = 'true'
  167. this.formData.needKecheng = 'false'
  168. }
  169. this.getZhiye()
  170. },
  171. // 职业等级选择
  172. levelChange(e) {
  173. this.formData.zhiyeLevelId = this.zhiyelevelsOpt[e.detail.value].id;
  174. this.formData.zhiyeLevelName = this.zhiyelevelsOpt[e.detail.value].name;
  175. },
  176. // 职业名称选择
  177. zhiyeChange(e) {
  178. this.formData.zhiyeName = this.zhiyeNameOpt[e.detail.value].name;
  179. this.formData.zhiyeId = this.zhiyeNameOpt[e.detail.value].id;
  180. this.getZhiyeLevel()
  181. },
  182. canxunShijianChange(e) {
  183. console.log('e', e);
  184. this.formData.canxunShijian = e
  185. },
  186. // 需要课程选择
  187. kechengChange(e) {
  188. console.log('e', e);
  189. this.formData.needKecheng = e.detail.value.toString();
  190. },
  191. // 需要考试选择
  192. kaoshiChange(e) {
  193. this.formData.needKaoshi = e.detail.value.toString();
  194. },
  195. // 提交表单
  196. submitForm() {
  197. // 表单验证
  198. if (!this.formData.institution) {
  199. uni.showToast({
  200. title: '请选择报证机构',
  201. icon: 'none'
  202. });
  203. return;
  204. }
  205. if (!this.formData.selectedLevel) {
  206. uni.showToast({
  207. title: '请选择职业等级',
  208. icon: 'none'
  209. });
  210. return;
  211. }
  212. if (!this.formData.selectedOccupation) {
  213. uni.showToast({
  214. title: '请选择职业名称',
  215. icon: 'none'
  216. });
  217. return;
  218. }
  219. // 提交数据(示例)
  220. console.log('提交数据:', this.formData);
  221. uni.showToast({
  222. title: '提交成功'
  223. });
  224. }
  225. }
  226. };
  227. </script>