banzhengXinxi.vue 13 KB

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