banzhengXinxi.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  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>
  9. <icon></icon>
  10. </view>
  11. </picker>
  12. </view>
  13. <!-- 职业名称(picker 实现下拉选择) -->
  14. <view class="form-label-select">
  15. <view class="phone-form-label"><text class="form-label-require">*</text>职业名称</view>
  16. <picker mode="selector" :range="zhiyeNames" range-key="name" @change="zhiyeChange">
  17. <view class="form-radio-select">
  18. <view>{{ formData.zhiyeName || '请选择职业名称' }}</view>
  19. <icon></icon>
  20. </view>
  21. </picker>
  22. </view>
  23. <!-- 职业等级(picker 实现下拉选择) -->
  24. <view class="form-label-select">
  25. <view class="phone-form-label"><text class="form-label-require">*</text>职业等级</view>
  26. <picker mode="selector" :range="zhiyeLevels" @change="levelChange">
  27. <view class="form-radio-select">
  28. <view>{{ formData.zhiyeLevelName || '请选择等级' }}</view>
  29. <icon></icon>
  30. </view>
  31. </picker>
  32. </view>
  33. <view v-if="formData.banzhengInfoFlag" class="form-label-select">
  34. <view class="phone-form-label"><text class="form-label-require"></text>参训时间</view>
  35. <uni-datetime-picker class="form-radio-picker" v-model="formData.canxunShijian" type="date"
  36. @change="canxunShijianChange">
  37. <view class="form-radio-select">
  38. <view>{{formData.canxunShijian}}</view>
  39. <icon></icon>
  40. </view>
  41. </uni-datetime-picker>
  42. </view>
  43. <view v-if="formData.banzhengInfoFlag" class="form-label-input">
  44. <view class="phone-form-label"><text class="form-label-require">*</text>实操成绩</view>
  45. <input v-model="formData.shicaochengji" placeholder="请填写实操成绩" />
  46. </view>
  47. <view v-if="formData.banzhengInfoFlag" class="form-label-input">
  48. <view class="phone-form-label"><text class="form-label-require">*</text>总课时</view>
  49. <input v-model="formData.zongkeshi" placeholder="请填写总课时" />
  50. </view>
  51. <view v-if="formData.needFlag" class="form-label-select">
  52. <view class="phone-form-label"><text class="form-label-require"></text>需要课程</view>
  53. <radio-group @change="kechengChange">
  54. <label class="radio-label">
  55. <radio :value="'true'" :disabled=" formData.kcDisabled" :checked="formData.needKecheng == 'true'"
  56. color="#3fd2a1" style="transform:scale(0.65)" />
  57. <text>是</text>
  58. </label>
  59. <label class="radio-label">
  60. <radio :value="'false'" :checked="formData.needKecheng == 'false'" color="#3fd2a1"
  61. style="transform:scale(0.65)" />
  62. <text>否</text>
  63. </label>
  64. </radio-group>
  65. </view>
  66. <view v-if="formData.needFlag" class="form-label-select">
  67. <view class="phone-form-label"><text class="form-label-require"></text>需要考试</view>
  68. <radio-group @change="kaoshiChange">
  69. <label class="radio-label">
  70. <radio :value="'true'" :checked="formData.needKaoshi == 'true'" color="#3fd2a1"
  71. style="transform:scale(0.65)" />
  72. <text>是</text>
  73. </label>
  74. <label class="radio-label">
  75. <radio :value="'false'" :checked="formData.needKaoshi == 'false'" color="#3fd2a1"
  76. style="transform:scale(0.65)" />
  77. <text>否</text>
  78. </label>
  79. </radio-group>
  80. </view>
  81. <view class="page-btn-box">
  82. <button type="default" @click="addSaveForm" class="phone-green-btn">保存</button>
  83. </view>
  84. <!-- 提交按钮 -->
  85. <!-- <button class="submit-btn" @click="submitForm">提交</button> -->
  86. </view>
  87. </template>
  88. <script>
  89. import {
  90. getBaozhengJigou,
  91. getJiazhengLevel,
  92. getJiazhengZhiye,
  93. getJiazhengBanzhengCheckKc
  94. } from "@/api/jiazheng.js"
  95. export default {
  96. data() {
  97. return {
  98. formData: {
  99. baozhengJigouId: '',
  100. baozhengJigouName: '',
  101. baozhengJigouType: '',
  102. banzhengInfoFlag: false,
  103. zhiyeName: '',
  104. zhiyeId: '',
  105. zhiyeLevelName: '',
  106. zhiyeLevelId: '',
  107. canxunShijian: '',
  108. shicaochengji: '',
  109. zongkeshi: '',
  110. needKecheng: 'false', // 默认选中"是"
  111. needKaoshi: 'false', // 默认选中"是"
  112. kcDisabled: false,
  113. needFlag: false
  114. },
  115. baozhengJigouOpt: [
  116. ],
  117. zhiyelevelsOpt: [],
  118. zhiyeNameOpt: [
  119. ]
  120. };
  121. },
  122. computed: {
  123. jigouNames() {
  124. return this.baozhengJigouOpt.map(item => item.name);
  125. },
  126. zhiyeNames() {
  127. return this.zhiyeNameOpt.map(item => item.name);
  128. },
  129. zhiyeLevels() {
  130. return this.zhiyelevelsOpt.map(item => item.name);
  131. },
  132. },
  133. created() {
  134. this.getJigou()
  135. },
  136. methods: {
  137. editinfo(data) {
  138. this.$nextTick(() => {
  139. console.log('datssssa', data);
  140. this.formData.baozhengJigouName = data.jgName;
  141. this.formData.baozhengJigouId = data.jgId;
  142. this.formData.baozhengJigouType = data.jgType;
  143. this.formData.banzhengInfoFlag = data.jgType == 1;
  144. this.formData.zhiyeName = data.zyName;
  145. this.formData.zhiyeId = data.zyId;
  146. this.formData.zhiyeLevelName = data.zyLevelName;
  147. this.formData.zhiyeLevelId = data.zyLevel;
  148. if (this.formData.baozhengJigouId) {
  149. getJiazhengZhiye({
  150. id: this.formData.baozhengJigouId
  151. }).then(res => {
  152. console.log('res', res);
  153. this.zhiyeNameOpt = res.data
  154. })
  155. }
  156. if (this.formData.baozhengJigouId && this.formData.zhiyeId) {
  157. let req = {
  158. jgId: this.formData.baozhengJigouId,
  159. zyId: this.formData.zhiyeId,
  160. }
  161. getJiazhengLevel(req).then(res => {
  162. console.log('res', res);
  163. this.zhiyelevelsOpt = res.data
  164. })
  165. }
  166. this.formData.canxunShijian = data.canxunShijian;
  167. this.formData.shicaochengji = data.shicaochengji;
  168. this.formData.needKecheng = data.needKecheng.toString();
  169. this.formData.needKecheng = data.needKaoshi.toString();
  170. if (this.formData.banzhengInfoFlag) {
  171. this.formData.needFlag = false
  172. } else {
  173. this.formData.needFlag = true
  174. }
  175. })
  176. },
  177. getJigou() {
  178. getBaozhengJigou({}).then(res => {
  179. console.log('res', res);
  180. this.baozhengJigouOpt = res.data
  181. })
  182. },
  183. getZhiye() {
  184. this.zhiyeNameOpt = []
  185. this.formData.zhiyeName = ''
  186. this.formData.zhiyeId = ''
  187. getJiazhengZhiye({
  188. id: this.formData.baozhengJigouId
  189. }).then(res => {
  190. console.log('res', res);
  191. this.zhiyeNameOpt = res.data
  192. })
  193. },
  194. getZhiyeLevel() {
  195. this.zhiyelevelsOpt = []
  196. this.formData.zhiyeLevelName = ''
  197. this.formData.zhiyeLevelId = ''
  198. let req = {
  199. jgId: this.formData.baozhengJigouId,
  200. zyId: this.formData.zhiyeId,
  201. }
  202. getJiazhengLevel(req).then(res => {
  203. console.log('res', res);
  204. this.zhiyelevelsOpt = res.data
  205. })
  206. },
  207. resetFun() {
  208. this.formData.zhiyeName = ''
  209. this.formData.zhiyeId = ''
  210. this.formData.zhiyeLevelName = ''
  211. this.formData.zhiyeLevelId = ''
  212. this.formData.canxunShijian = ''
  213. this.formData.shicaochengji = ''
  214. this.formData.zongkeshi = ''
  215. },
  216. // 报证机构选择
  217. jigouChange(e) {
  218. this.formData.baozhengJigouName = this.baozhengJigouOpt[e.detail.value].name;
  219. this.formData.baozhengJigouId = this.baozhengJigouOpt[e.detail.value].jgId;
  220. this.formData.baozhengJigouType = this.baozhengJigouOpt[e.detail.value].jgType;
  221. this.formData.banzhengInfoFlag = this.baozhengJigouOpt[e.detail.value].jgType == 1;
  222. // 每一次都重置
  223. this.resetFun()
  224. console.log('this.formData.banzhengInfoFlag', this.formData.banzhengInfoFlag);
  225. if (this.formData.banzhengInfoFlag) {
  226. this.formData.needFlag = false
  227. this.formData.needKaoshi = 'false'
  228. this.formData.needKecheng = 'false'
  229. } else {
  230. this.formData.needFlag = true
  231. this.formData.needKaoshi = 'true'
  232. this.formData.needKecheng = 'false'
  233. }
  234. this.getZhiye()
  235. },
  236. // 职业等级选择
  237. levelChange(e) {
  238. this.formData.zhiyeLevelId = this.zhiyelevelsOpt[e.detail.value].id;
  239. this.formData.zhiyeLevelName = this.zhiyelevelsOpt[e.detail.value].name;
  240. },
  241. checkKc() {
  242. let req = {
  243. zyId: this.formData.zhiyeId,
  244. zyLevel: this.formData.zhiyeLevelId
  245. }
  246. getJiazhengBanzhengCheckKc(req).then(res => {
  247. console.log('res', res);
  248. if (res.data.pass.toString() == 'true') {
  249. this.formData.kcDisabled = false
  250. this.formData.needKecheng = 'true'
  251. } else {
  252. uni.showToast({
  253. title: res.data.msg,
  254. icon: 'none'
  255. });
  256. this.formData.needKecheng = 'false'
  257. this.formData.kcDisabled = true
  258. }
  259. // this.zhiyelevelsOpt = res.data
  260. })
  261. },
  262. // 职业名称选择
  263. zhiyeChange(e) {
  264. this.formData.zhiyeName = this.zhiyeNameOpt[e.detail.value].name;
  265. this.formData.zhiyeId = this.zhiyeNameOpt[e.detail.value].id;
  266. this.getZhiyeLevel()
  267. },
  268. canxunShijianChange(e) {
  269. console.log('e', e);
  270. this.formData.canxunShijian = e
  271. },
  272. // 需要课程选择
  273. kechengChange(e) {
  274. this.formData.needKecheng = e.detail.value.toString();
  275. console.log('this.formData.needKecheng', this.formData.needKecheng);
  276. if (this.formData.needKecheng == 'true') {
  277. if (this.formData.zhiyeId && this.formData.zhiyeLevelId) {
  278. this.checkKc()
  279. } else {
  280. uni.showToast({
  281. title: '请选择职业以及职业等级',
  282. icon: 'none'
  283. });
  284. setTimeout(() => {
  285. this.formData.needKecheng = 'false'
  286. }, 1000)
  287. return false
  288. }
  289. }
  290. },
  291. // 需要考试选择
  292. kaoshiChange(e) {
  293. this.formData.needKaoshi = e.detail.value.toString();
  294. },
  295. // 提交表单
  296. addSaveForm() {
  297. // "kaozhengList": [
  298. // {
  299. // "canxunshijian": "string",
  300. // "jgId": 0,
  301. // "needKaoshi": false,
  302. // "needKecheng": false,
  303. // "shicaochengji": "string",
  304. // "zongkeshi": "string",
  305. // "zyId": 0,
  306. // "zyLevel": 0
  307. // }
  308. // ],
  309. let req = {
  310. canxunshijian: this.formData.canxunshijian,
  311. jgId: this.formData.baozhengJigouId,
  312. needKaoshi: this.formData.needKaoshi,
  313. needKecheng: this.formData.needKecheng,
  314. shicaochengji: this.formData.shicaochengji,
  315. zongkeshi: this.formData.zongkeshi,
  316. zyId: this.formData.zhiyeId,
  317. zyLevel: this.formData.zhiyeLevelId,
  318. }
  319. console.log('req', req);
  320. this.$emit('addSave', req);
  321. // // 表单验证
  322. // if (!this.formData.institution) {
  323. // uni.showToast({
  324. // title: '请选择报证机构',
  325. // icon: 'none'
  326. // });
  327. // return;
  328. // }
  329. // if (!this.formData.selectedLevel) {
  330. // uni.showToast({
  331. // title: '请选择职业等级',
  332. // icon: 'none'
  333. // });
  334. // return;
  335. // }
  336. // if (!this.formData.selectedOccupation) {
  337. // uni.showToast({
  338. // title: '请选择职业名称',
  339. // icon: 'none'
  340. // });
  341. // return;
  342. // }
  343. // // 提交数据(示例)
  344. // console.log('提交数据:', this.formData);
  345. // uni.showToast({
  346. // title: '提交成功'
  347. // });
  348. }
  349. }
  350. };
  351. </script>