banzhengXinxi.vue 17 KB

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