banzhengXinxi.vue 12 KB

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