banzhengXinxi.vue 18 KB

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