省级指派放开+级位考试优化+考点申请同步pc
Showing
5 changed files
with
320 additions
and
89 deletions
| 1 | // dev | 1 | // dev |
| 2 | // const baseUrl_api = 'http://192.168.1.222:8787' | 2 | const baseUrl_api = 'http://192.168.1.222:8787' |
| 3 | // const baseUrl_api = 'http://47.98.186.233:8787' | 3 | // const baseUrl_api = 'http://47.98.186.233:8787' |
| 4 | const baseUrl_api = 'https://tk001.wxjylt.com/stage-api/' | 4 | // const baseUrl_api = 'https://tk001.wxjylt.com/stage-api/' |
| 5 | const loginImage_api = 'https://tk001.wxjylt.com/stage-api' | 5 | const loginImage_api = 'https://tk001.wxjylt.com/stage-api' |
| 6 | const payUrl = 'https://wxpay.cmbc.com.cn/mobilePlatform/appserver/lcbpPay.do' | 6 | const payUrl = 'https://wxpay.cmbc.com.cn/mobilePlatform/appserver/lcbpPay.do' |
| 7 | 7 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <view class="add-apply-page"> | 2 | <view class="add-apply-page"> |
| 3 | <view v-if="activeSelectKey" class="level-dropdown-mask" @click="closeLevelDropdown"></view> | ||
| 3 | <!-- 顶部步骤条 --> | 4 | <!-- 顶部步骤条 --> |
| 4 | <view class="steps-bar"> | 5 | <view class="steps-bar"> |
| 5 | <view :class="{ active: active >= 0, current: active == 0 }" class="step-item"> | 6 | <view :class="{ active: active >= 0, current: active == 0 }" class="step-item"> |
| ... | @@ -101,8 +102,13 @@ | ... | @@ -101,8 +102,13 @@ |
| 101 | </view> | 102 | </view> |
| 102 | 103 | ||
| 103 | <!-- 考生列表(红框主体) --> | 104 | <!-- 考生列表(红框主体) --> |
| 104 | <view class="student-list"> | 105 | <view :class="{ 'dropdown-open': activeSelectKey }" class="student-list"> |
| 105 | <view v-for="(n,index) in infoList" :key="index" class="student-card"> | 106 | <view |
| 107 | v-for="(n,index) in infoList" | ||
| 108 | :key="n.id || n.perId || n.idcCode || index" | ||
| 109 | :class="{ 'select-open': activeSelectKey === getRowKey(n, index) }" | ||
| 110 | class="student-card" | ||
| 111 | > | ||
| 106 | <!-- 左侧:头像+考生信息 --> | 112 | <!-- 左侧:头像+考生信息 --> |
| 107 | <view class="card-left"> | 113 | <view class="card-left"> |
| 108 | <view class="avatar"> | 114 | <view class="avatar"> |
| ... | @@ -128,8 +134,27 @@ | ... | @@ -128,8 +134,27 @@ |
| 128 | </view> | 134 | </view> |
| 129 | <view class="level-item"> | 135 | <view class="level-item"> |
| 130 | <text class="level-label">考试级别</text> | 136 | <text class="level-label">考试级别</text> |
| 131 | <view class="select-wrapper exam-level-select" @click="changeLevelfather(n)"> | 137 | <view class="select-wrapper exam-level-select"> |
| 132 | <uni-data-select v-model="n.levelNew" :clear="false" :localdata="levelArr" @change="changeLevel"/> | 138 | <view class="exam-level-trigger" @click="toggleLevelDropdown(n, index)"> |
| 139 | <text>{{ getLevelText(n.levelNew) || '请选择' }}</text> | ||
| 140 | <uni-icons color="#999" size="14" type="top"></uni-icons> | ||
| 141 | </view> | ||
| 142 | <view | ||
| 143 | v-if="activeSelectKey === getRowKey(n, index)" | ||
| 144 | class="level-dropdown-up" | ||
| 145 | > | ||
| 146 | <view class="level-dropdown-inner"> | ||
| 147 | <view | ||
| 148 | v-for="item in getLevelOptions(n)" | ||
| 149 | :key="item.value" | ||
| 150 | :class="{ active: n.levelNew === item.value }" | ||
| 151 | class="level-dropdown-item" | ||
| 152 | @click.stop="chooseLevel(n, item)" | ||
| 153 | > | ||
| 154 | {{ item.text }} | ||
| 155 | </view> | ||
| 156 | </view> | ||
| 157 | </view> | ||
| 133 | </view> | 158 | </view> |
| 134 | </view> | 159 | </view> |
| 135 | <view class="level-item"> | 160 | <view class="level-item"> |
| ... | @@ -218,6 +243,17 @@ | ... | @@ -218,6 +243,17 @@ |
| 218 | </view> | 243 | </view> |
| 219 | </uni-popup> | 244 | </uni-popup> |
| 220 | 245 | ||
| 246 | <custom-modal | ||
| 247 | ref="confirmModalRef" | ||
| 248 | :title="confirmModal.title" | ||
| 249 | :content="confirmModal.content" | ||
| 250 | :cancel-text="confirmModal.cancelText" | ||
| 251 | :confirm-text="confirmModal.confirmText" | ||
| 252 | :show-cancel="confirmModal.showCancel" | ||
| 253 | @cancel="handleConfirmCancel" | ||
| 254 | @confirm="handleConfirmOk" | ||
| 255 | /> | ||
| 256 | |||
| 221 | </view> | 257 | </view> |
| 222 | </template> | 258 | </template> |
| 223 | 259 | ||
| ... | @@ -228,6 +264,7 @@ import {onLoad, onShow} from '@dcloudio/uni-app'; | ... | @@ -228,6 +264,7 @@ import {onLoad, onShow} from '@dcloudio/uni-app'; |
| 228 | import config from '@/config.js' | 264 | import config from '@/config.js' |
| 229 | import dayjs from 'dayjs' | 265 | import dayjs from 'dayjs' |
| 230 | import _ from 'underscore' | 266 | import _ from 'underscore' |
| 267 | import customModal from '@/components/custom-modal.vue' | ||
| 231 | 268 | ||
| 232 | const app = getApp(); | 269 | const app = getApp(); |
| 233 | const memberInfo = app.globalData.memberInfo | 270 | const memberInfo = app.globalData.memberInfo |
| ... | @@ -242,8 +279,19 @@ const active = ref(0) | ... | @@ -242,8 +279,19 @@ const active = ref(0) |
| 242 | const infoList = ref([]) | 279 | const infoList = ref([]) |
| 243 | const tablePersonInfo = ref({}) | 280 | const tablePersonInfo = ref({}) |
| 244 | const transcript = ref([]) // 补全缺失变量 | 281 | const transcript = ref([]) // 补全缺失变量 |
| 282 | const activeSelectKey = ref('') | ||
| 283 | const confirmModalRef = ref(null) | ||
| 284 | const confirmModal = ref({ | ||
| 285 | title: '提示', | ||
| 286 | content: '', | ||
| 287 | cancelText: '取消', | ||
| 288 | confirmText: '确定', | ||
| 289 | showCancel: true | ||
| 290 | }) | ||
| 291 | let confirmOkAction = null | ||
| 292 | let confirmCancelAction = null | ||
| 245 | 293 | ||
| 246 | const levelArr = ref([{ | 294 | const defaultLevelArr = [{ |
| 247 | value: '10', | 295 | value: '10', |
| 248 | text: '十级' | 296 | text: '十级' |
| 249 | }, { | 297 | }, { |
| ... | @@ -273,7 +321,8 @@ const levelArr = ref([{ | ... | @@ -273,7 +321,8 @@ const levelArr = ref([{ |
| 273 | }, { | 321 | }, { |
| 274 | value: '1', | 322 | value: '1', |
| 275 | text: '一级' | 323 | text: '一级' |
| 276 | }]) | 324 | }] |
| 325 | const levelArr = ref(defaultLevelArr.map(item => ({ ...item }))) | ||
| 277 | 326 | ||
| 278 | const range = ref([{ | 327 | const range = ref([{ |
| 279 | value: '1', | 328 | value: '1', |
| ... | @@ -300,6 +349,103 @@ const idcTypeIndex = ref(0) | ... | @@ -300,6 +349,103 @@ const idcTypeIndex = ref(0) |
| 300 | 349 | ||
| 301 | let examId | 350 | let examId |
| 302 | 351 | ||
| 352 | function openConfirmModal(options = {}) { | ||
| 353 | confirmModal.value = { | ||
| 354 | title: options.title || '提示', | ||
| 355 | content: options.content || '', | ||
| 356 | cancelText: options.cancelText || '取消', | ||
| 357 | confirmText: options.confirmText || '确定', | ||
| 358 | showCancel: options.showCancel !== false | ||
| 359 | } | ||
| 360 | confirmOkAction = typeof options.onConfirm === 'function' ? options.onConfirm : null | ||
| 361 | confirmCancelAction = typeof options.onCancel === 'function' ? options.onCancel : null | ||
| 362 | confirmModalRef.value?.open() | ||
| 363 | } | ||
| 364 | |||
| 365 | function handleConfirmOk() { | ||
| 366 | const action = confirmOkAction | ||
| 367 | confirmOkAction = null | ||
| 368 | confirmCancelAction = null | ||
| 369 | if (action) action() | ||
| 370 | } | ||
| 371 | |||
| 372 | function handleConfirmCancel() { | ||
| 373 | const action = confirmCancelAction | ||
| 374 | confirmOkAction = null | ||
| 375 | confirmCancelAction = null | ||
| 376 | if (action) action() | ||
| 377 | } | ||
| 378 | |||
| 379 | function getRowKey(row, index = 0) { | ||
| 380 | return String(row.id || row.perId || row.personId || row.idcCode || index) | ||
| 381 | } | ||
| 382 | |||
| 383 | function cloneLevelOptions(list = defaultLevelArr) { | ||
| 384 | return list.map(item => ({ ...item })) | ||
| 385 | } | ||
| 386 | |||
| 387 | function normalizeLevelOptions(list) { | ||
| 388 | if (!Array.isArray(list) || list.length === 0) { | ||
| 389 | return cloneLevelOptions() | ||
| 390 | } | ||
| 391 | const remoteList = list.map(item => ({ | ||
| 392 | ...item, | ||
| 393 | value: String(item.value ?? item.level ?? item.id ?? '') | ||
| 394 | })) | ||
| 395 | return defaultLevelArr.map(defaultItem => { | ||
| 396 | const remoteItem = _.find(remoteList, item => { | ||
| 397 | return item.value === String(defaultItem.value) || item.name === defaultItem.text || item.text === defaultItem.text | ||
| 398 | }) | ||
| 399 | const source = remoteItem || defaultItem | ||
| 400 | const disabled = source.status === undefined ? (source.disabled || source.disable || false) : !source.status | ||
| 401 | return { | ||
| 402 | ...source, | ||
| 403 | value: String(defaultItem.value), | ||
| 404 | text: source.text || source.name || defaultItem.text, | ||
| 405 | disabled, | ||
| 406 | disable: disabled | ||
| 407 | } | ||
| 408 | }) | ||
| 409 | } | ||
| 410 | |||
| 411 | function getLevelOptions(row) { | ||
| 412 | if (!row.levelOptions || row.levelOptions.length === 0) { | ||
| 413 | row.levelOptions = cloneLevelOptions() | ||
| 414 | } | ||
| 415 | return row.levelOptions | ||
| 416 | } | ||
| 417 | |||
| 418 | function getLevelText(value) { | ||
| 419 | if (!value) return '' | ||
| 420 | const allOptions = [...defaultLevelArr, ...levelArr.value] | ||
| 421 | const option = _.find(allOptions, item => String(item.value) === String(value)) | ||
| 422 | return option?.text || `${szToHz(value)}级` | ||
| 423 | } | ||
| 424 | |||
| 425 | function setDefaultLevel(row) { | ||
| 426 | row.levelOld = row.levelOld ? String(row.levelOld) : '' | ||
| 427 | row.levelNew = row.levelNew ? String(row.levelNew) : '' | ||
| 428 | if (row.levelOld) { | ||
| 429 | row.levelRecommend = String(parseInt(row.levelOld) - 1) | ||
| 430 | if (row.levelRecommend === '0') { | ||
| 431 | row.levelRecommend = '1' | ||
| 432 | } | ||
| 433 | } else { | ||
| 434 | row.levelRecommend = '9' | ||
| 435 | } | ||
| 436 | |||
| 437 | // 原级别是一级时不能默认推荐,其他情况按推荐级别回填,保证二次添加后列表能显示考试级别。 | ||
| 438 | if (row.levelOld === '1') { | ||
| 439 | row.levelNew = '' | ||
| 440 | } else if (!row.levelNew) { | ||
| 441 | row.levelNew = row.levelRecommend | ||
| 442 | } | ||
| 443 | |||
| 444 | if (!row.isPass) { | ||
| 445 | row.isPass = '1' | ||
| 446 | } | ||
| 447 | } | ||
| 448 | |||
| 303 | onLoad(option => { | 449 | onLoad(option => { |
| 304 | if (app.globalData.isLogin) { | 450 | if (app.globalData.isLogin) { |
| 305 | initData(option) | 451 | initData(option) |
| ... | @@ -586,25 +732,8 @@ function getChosedStudentList() { | ... | @@ -586,25 +732,8 @@ function getChosedStudentList() { |
| 586 | } | 732 | } |
| 587 | api.getStudentList(obj).then(res => { | 733 | api.getStudentList(obj).then(res => { |
| 588 | _.each(res.rows, (d) => { | 734 | _.each(res.rows, (d) => { |
| 589 | if (d.levelOld) { | 735 | setDefaultLevel(d) |
| 590 | d.levelRecommend = (parseInt(d.levelOld) - 1) + '' | 736 | d.levelOptions = cloneLevelOptions() |
| 591 | if (d.levelRecommend === '0') { | ||
| 592 | d.levelRecommend = '1' | ||
| 593 | } | ||
| 594 | } else { | ||
| 595 | d.levelRecommend = '9' | ||
| 596 | } | ||
| 597 | |||
| 598 | // 原级别是一级时,levelNew 默认为空,不使用推荐值 | ||
| 599 | if (d.levelOld === '1') { | ||
| 600 | d.levelNew = '' | ||
| 601 | } else if (!d.levelNew) { | ||
| 602 | d.levelNew = d.levelRecommend | ||
| 603 | } | ||
| 604 | |||
| 605 | if (!d.isPass) { | ||
| 606 | d.isPass = '1' | ||
| 607 | } | ||
| 608 | if (d.photo && d.photo.indexOf('http') == -1) { | 737 | if (d.photo && d.photo.indexOf('http') == -1) { |
| 609 | d.photo = config.baseUrl_api + d.photo | 738 | d.photo = config.baseUrl_api + d.photo |
| 610 | } | 739 | } |
| ... | @@ -646,7 +775,25 @@ function szToHz(num) { | ... | @@ -646,7 +775,25 @@ function szToHz(num) { |
| 646 | 775 | ||
| 647 | let nowRow | 776 | let nowRow |
| 648 | 777 | ||
| 649 | function changeLevelfather(row, flag = 0) { | 778 | function toggleLevelDropdown(row, index = 0) { |
| 779 | const rowKey = getRowKey(row, index) | ||
| 780 | if (activeSelectKey.value === rowKey) { | ||
| 781 | closeLevelDropdown() | ||
| 782 | return | ||
| 783 | } | ||
| 784 | nowRow = row | ||
| 785 | activeSelectKey.value = rowKey | ||
| 786 | getLevelOptions(row) | ||
| 787 | changeLevelfather(row, index) | ||
| 788 | } | ||
| 789 | |||
| 790 | function closeLevelDropdown() { | ||
| 791 | activeSelectKey.value = '' | ||
| 792 | } | ||
| 793 | |||
| 794 | function changeLevelfather(row, index = 0, flag = 0) { | ||
| 795 | nowRow = row | ||
| 796 | activeSelectKey.value = getRowKey(row, index) | ||
| 650 | const data = _.map(infoList.value, (d) => { | 797 | const data = _.map(infoList.value, (d) => { |
| 651 | return { | 798 | return { |
| 652 | id: d.id, | 799 | id: d.id, |
| ... | @@ -662,45 +809,49 @@ function changeLevelfather(row, flag = 0) { | ... | @@ -662,45 +809,49 @@ function changeLevelfather(row, flag = 0) { |
| 662 | // perId: row.perId, | 809 | // perId: row.perId, |
| 663 | status: flag | 810 | status: flag |
| 664 | }).then(res => { | 811 | }).then(res => { |
| 665 | levelArr.value = res.data | 812 | const options = normalizeLevelOptions(res.data) |
| 666 | for (let l of levelArr.value) { | 813 | row.levelOptions = options |
| 667 | l.text = l.name | 814 | levelArr.value = options |
| 668 | l.disabled = !(l.status) | ||
| 669 | } | ||
| 670 | }) | 815 | }) |
| 671 | } | 816 | } |
| 672 | 817 | ||
| 673 | function changeLevel(e) { | 818 | function chooseLevel(row, item) { |
| 674 | // 切换考试级别时弹出确认框 | 819 | if (!row) return |
| 675 | uni.showModal({ | 820 | const oldLevel = row.levelNew |
| 821 | row.levelNew = String(item.value) | ||
| 822 | changeLevel(row, oldLevel) | ||
| 823 | } | ||
| 824 | |||
| 825 | function changeLevel(row, oldLevel) { | ||
| 826 | nowRow = row || nowRow | ||
| 827 | openConfirmModal({ | ||
| 676 | title: '提示', | 828 | title: '提示', |
| 677 | content: '请仔细核实本次等级申报是否正确!', | 829 | content: '请仔细核实本次等级申报是否正确!', |
| 678 | success: function (res) { | 830 | onConfirm: function () { |
| 679 | if (res.confirm) { | 831 | // 保存当前行数据 |
| 680 | // 保存当前行数据 | 832 | const data = _.map(infoList.value, (d) => { |
| 681 | const data = _.map(infoList.value, (d) => { | 833 | return { |
| 682 | return { | 834 | id: d.id, |
| 683 | id: d.id, | 835 | levelNew: d.levelNew, |
| 684 | levelNew: d.levelNew, | 836 | isPass: d.isPass |
| 685 | isPass: d.isPass | 837 | } |
| 686 | } | 838 | }) |
| 687 | }) | 839 | api.editLevel({ |
| 688 | api.editLevel({ | 840 | examId: form.value.examId, |
| 689 | examId: form.value.examId, | 841 | personInfo: JSON.stringify(data), |
| 690 | personInfo: JSON.stringify(data), | 842 | transcript: form.value.transcript, |
| 691 | transcript: form.value.transcript, | 843 | status: 0 |
| 692 | status: 0 | 844 | }).then(() => { |
| 693 | }).then(() => { | 845 | closeLevelDropdown() |
| 694 | // 保存成功后更新统计 | 846 | // 保存成功后更新统计 |
| 695 | getTablePersonInfo() | 847 | getTablePersonInfo() |
| 696 | }) | 848 | }) |
| 697 | } else { | ||
| 698 | // 取消时恢复为推荐级别 | ||
| 699 | nowRow.levelNew = nowRow.levelRecommend != 0 ? nowRow.levelRecommend : '' | ||
| 700 | } | ||
| 701 | }, | 849 | }, |
| 702 | fail: function (res) { | 850 | onCancel: function () { |
| 703 | nowRow.levelNew = nowRow.levelRecommend != 0 ? nowRow.levelRecommend : '' | 851 | if (nowRow) { |
| 852 | nowRow.levelNew = oldLevel !== undefined ? oldLevel : (nowRow.levelRecommend != 0 ? nowRow.levelRecommend : '') | ||
| 853 | } | ||
| 854 | closeLevelDropdown() | ||
| 704 | } | 855 | } |
| 705 | }) | 856 | }) |
| 706 | } | 857 | } |
| ... | @@ -719,20 +870,18 @@ function submitForm2(flag) { | ... | @@ -719,20 +870,18 @@ function submitForm2(flag) { |
| 719 | return | 870 | return |
| 720 | } | 871 | } |
| 721 | 872 | ||
| 722 | uni.showModal({ | 873 | openConfirmModal({ |
| 723 | title: '提示', | 874 | title: '提示', |
| 724 | content: `请确认人员照片是否已更新?`, | 875 | content: `请确认人员照片是否已更新?`, |
| 725 | success: function (res) { | 876 | onConfirm: function () { |
| 726 | if (res.confirm) { | 877 | // saveStep2(flag).then(() => { |
| 727 | // saveStep2(flag).then(() => { | 878 | // uni.navigateTo({ |
| 728 | // uni.navigateTo({ | 879 | // url: `/level/paymentDetail?examId=${form.value.examId}` |
| 729 | // url: `/level/paymentDetail?examId=${form.value.examId}` | 880 | // }) |
| 730 | // }) | 881 | // }) |
| 731 | // }) | 882 | uni.navigateTo({ |
| 732 | uni.navigateTo({ | 883 | url: `/level/paymentDetail?examId=${form.value.examId}` |
| 733 | url: `/level/paymentDetail?examId=${form.value.examId}` | 884 | }) |
| 734 | }) | ||
| 735 | } | ||
| 736 | } | 885 | } |
| 737 | }) | 886 | }) |
| 738 | } else { | 887 | } else { |
| ... | @@ -759,16 +908,14 @@ function saveStep2(flag) { | ... | @@ -759,16 +908,14 @@ function saveStep2(flag) { |
| 759 | } | 908 | } |
| 760 | 909 | ||
| 761 | function handleDelete(row) { | 910 | function handleDelete(row) { |
| 762 | uni.showModal({ | 911 | openConfirmModal({ |
| 763 | title: '提示', | 912 | title: '提示', |
| 764 | content: `确定删除${row.realName}?`, | 913 | content: `确定删除${row.realName}?`, |
| 765 | success: function (res) { | 914 | onConfirm: function () { |
| 766 | if (res.confirm) { | 915 | api.dellevelPerson(row.id).then(() => { |
| 767 | api.dellevelPerson(row.id).then(() => { | 916 | uni.showToast({title: '操作成功', icon: 'none'}) |
| 768 | uni.showToast({title: '操作成功', icon: 'none'}) | 917 | getChosedStudentList() |
| 769 | getChosedStudentList() | 918 | }) |
| 770 | }) | ||
| 771 | } | ||
| 772 | } | 919 | } |
| 773 | }) | 920 | }) |
| 774 | } | 921 | } |
| ... | @@ -780,6 +927,16 @@ function handleDelete(row) { | ... | @@ -780,6 +927,16 @@ function handleDelete(row) { |
| 780 | padding-bottom: 120rpx; | 927 | padding-bottom: 120rpx; |
| 781 | } | 928 | } |
| 782 | 929 | ||
| 930 | .level-dropdown-mask { | ||
| 931 | position: fixed; | ||
| 932 | top: 0; | ||
| 933 | left: 0; | ||
| 934 | right: 0; | ||
| 935 | bottom: 0; | ||
| 936 | z-index: 90; | ||
| 937 | background: transparent; | ||
| 938 | } | ||
| 939 | |||
| 783 | /* 顶部步骤条 */ | 940 | /* 顶部步骤条 */ |
| 784 | .steps-bar { | 941 | .steps-bar { |
| 785 | display: flex; | 942 | display: flex; |
| ... | @@ -986,9 +1143,14 @@ function handleDelete(row) { | ... | @@ -986,9 +1143,14 @@ function handleDelete(row) { |
| 986 | position: relative; | 1143 | position: relative; |
| 987 | z-index: 1; | 1144 | z-index: 1; |
| 988 | 1145 | ||
| 1146 | &.dropdown-open { | ||
| 1147 | z-index: 110; | ||
| 1148 | } | ||
| 1149 | |||
| 989 | .student-card { | 1150 | .student-card { |
| 990 | position: relative; | 1151 | position: relative; |
| 991 | z-index: 1; | 1152 | z-index: 1; |
| 1153 | overflow: visible; | ||
| 992 | // display: flex; | 1154 | // display: flex; |
| 993 | 1155 | ||
| 994 | // align-items: center; | 1156 | // align-items: center; |
| ... | @@ -998,6 +1160,10 @@ function handleDelete(row) { | ... | @@ -998,6 +1160,10 @@ function handleDelete(row) { |
| 998 | border-radius: 16rpx; | 1160 | border-radius: 16rpx; |
| 999 | margin-bottom: 20rpx; | 1161 | margin-bottom: 20rpx; |
| 1000 | box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04); | 1162 | box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04); |
| 1163 | |||
| 1164 | &.select-open { | ||
| 1165 | z-index: 120; | ||
| 1166 | } | ||
| 1001 | 1167 | ||
| 1002 | /* 左侧:头像+考生信息 */ | 1168 | /* 左侧:头像+考生信息 */ |
| 1003 | .card-left { | 1169 | .card-left { |
| ... | @@ -1084,7 +1250,64 @@ function handleDelete(row) { | ... | @@ -1084,7 +1250,64 @@ function handleDelete(row) { |
| 1084 | .select-wrapper { | 1250 | .select-wrapper { |
| 1085 | width: 160rpx; | 1251 | width: 160rpx; |
| 1086 | position: relative; | 1252 | position: relative; |
| 1087 | z-index: 1; | 1253 | z-index: 2; |
| 1254 | overflow: visible; | ||
| 1255 | } | ||
| 1256 | |||
| 1257 | .exam-level-select { | ||
| 1258 | z-index: 130; | ||
| 1259 | |||
| 1260 | .exam-level-trigger { | ||
| 1261 | display: flex; | ||
| 1262 | align-items: center; | ||
| 1263 | justify-content: space-between; | ||
| 1264 | height: 70rpx; | ||
| 1265 | padding: 0 20rpx; | ||
| 1266 | box-sizing: border-box; | ||
| 1267 | border: 1rpx solid #e5e5e5; | ||
| 1268 | border-radius: 8rpx; | ||
| 1269 | background: #fff; | ||
| 1270 | font-size: 28rpx; | ||
| 1271 | color: #333; | ||
| 1272 | } | ||
| 1273 | |||
| 1274 | .level-dropdown-up { | ||
| 1275 | position: absolute; | ||
| 1276 | left: 0; | ||
| 1277 | bottom: 78rpx; | ||
| 1278 | width: 180rpx; | ||
| 1279 | background: #fff; | ||
| 1280 | border-radius: 12rpx; | ||
| 1281 | box-shadow: 0 8rpx 28rpx rgba(0, 0, 0, 0.14); | ||
| 1282 | z-index: 180; | ||
| 1283 | padding: 8rpx 0; | ||
| 1284 | box-sizing: border-box; | ||
| 1285 | |||
| 1286 | } | ||
| 1287 | |||
| 1288 | .level-dropdown-inner { | ||
| 1289 | height: auto; | ||
| 1290 | } | ||
| 1291 | |||
| 1292 | .level-dropdown-item { | ||
| 1293 | height: 68rpx; | ||
| 1294 | line-height: 68rpx; | ||
| 1295 | padding: 0 24rpx; | ||
| 1296 | font-size: 28rpx; | ||
| 1297 | color: #333; | ||
| 1298 | text-align: left; | ||
| 1299 | |||
| 1300 | &.active { | ||
| 1301 | color: #AD181F; | ||
| 1302 | font-weight: 600; | ||
| 1303 | background: #FFF5F5; | ||
| 1304 | } | ||
| 1305 | |||
| 1306 | &.disabled { | ||
| 1307 | color: #c8c9cc; | ||
| 1308 | background: #fafafa; | ||
| 1309 | } | ||
| 1310 | } | ||
| 1088 | } | 1311 | } |
| 1089 | } | 1312 | } |
| 1090 | } | 1313 | } |
| ... | @@ -1278,4 +1501,5 @@ function handleDelete(row) { | ... | @@ -1278,4 +1501,5 @@ function handleDelete(row) { |
| 1278 | font-size: 28rpx; | 1501 | font-size: 28rpx; |
| 1279 | margin-top: 16rpx; | 1502 | margin-top: 16rpx; |
| 1280 | } | 1503 | } |
| 1504 | |||
| 1281 | </style> | 1505 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <view> | 2 | <view class="apply-detail-page"> |
| 3 | <view class="wBox"> | 3 | <view class="wBox"> |
| 4 | <view class="tt">考级基本信息</view> | 4 | <view class="tt">考级基本信息</view> |
| 5 | <view class="ddd"> | 5 | <view class="ddd"> |
| ... | @@ -228,6 +228,12 @@ | ... | @@ -228,6 +228,12 @@ |
| 228 | </script> | 228 | </script> |
| 229 | 229 | ||
| 230 | <style scoped lang="scss"> | 230 | <style scoped lang="scss"> |
| 231 | .apply-detail-page { | ||
| 232 | min-height: 100vh; | ||
| 233 | padding-bottom: calc(60rpx + env(safe-area-inset-bottom)); | ||
| 234 | box-sizing: border-box; | ||
| 235 | } | ||
| 236 | |||
| 231 | .wBox { | 237 | .wBox { |
| 232 | width: 700rpx; | 238 | width: 700rpx; |
| 233 | padding: 30rpx; | 239 | padding: 30rpx; |
| ... | @@ -246,4 +252,4 @@ | ... | @@ -246,4 +252,4 @@ |
| 246 | } | 252 | } |
| 247 | } | 253 | } |
| 248 | 254 | ||
| 249 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 255 | </style> | ... | ... |
| ... | @@ -12,7 +12,7 @@ | ... | @@ -12,7 +12,7 @@ |
| 12 | <radio :checked="form.selfSelect == '1'" class="custom-radio" value="1"/> | 12 | <radio :checked="form.selfSelect == '1'" class="custom-radio" value="1"/> |
| 13 | <text class="radio-text">自行录入考官(级位考官)</text> | 13 | <text class="radio-text">自行录入考官(级位考官)</text> |
| 14 | </label> | 14 | </label> |
| 15 | <label v-if="shenForm.memberEpAudit==1" class="radio-item"> | 15 | <label class="radio-item"> |
| 16 | <radio :checked="form.selfSelect == '0'" class="custom-radio" value="0"/> | 16 | <radio :checked="form.selfSelect == '0'" class="custom-radio" value="0"/> |
| 17 | <text class="radio-text">省跆协指派考官</text> | 17 | <text class="radio-text">省跆协指派考官</text> |
| 18 | </label> | 18 | </label> | ... | ... |
| ... | @@ -405,10 +405,11 @@ function checkDialogs() { | ... | @@ -405,10 +405,11 @@ function checkDialogs() { |
| 405 | 405 | ||
| 406 | async function checkExamPointDialog() { | 406 | async function checkExamPointDialog() { |
| 407 | console.log('checkExamPointDialog', app.globalData.userInfo.hintFlag ) | 407 | console.log('checkExamPointDialog', app.globalData.userInfo.hintFlag ) |
| 408 | const [err, res] = await to(api.getMyRecentExam()) | 408 | // const [err, res] = await to(api.getMyRecentExam()) |
| 409 | if (err || !res?.data) return | 409 | // if (err || !res?.data) return |
| 410 | const status = res.data?.auditStatus | 410 | // const status = res.data?.auditStatus |
| 411 | if ((status == 0 || status == 3) && | 411 | // (status == 0 || status == 3) && |
| 412 | if ( | ||
| 412 | app.globalData.memberInfo?.activeStatus == 1 && | 413 | app.globalData.memberInfo?.activeStatus == 1 && |
| 413 | app.globalData.authenticationStatus == 2 && | 414 | app.globalData.authenticationStatus == 2 && |
| 414 | app.globalData.deptType == 6 && | 415 | app.globalData.deptType == 6 && | ... | ... |
-
Please register or sign in to post a comment