banzhengXinxi.vue 15 KB

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