achievementCertificate.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <!-- 成绩和证书 -->
  2. <template>
  3. <view class="achievement">
  4. <!-- 导航栏 -->
  5. <u-navbar back-icon-color="#fff" title="成绩与证书" title-color="#fff" :background="{ backgroundColor: '#3D5D4C' }">
  6. <view class="navbar-right" slot="right"
  7. @click="jumpPage('/pages/skillsTraining/addAchievementCertificate/addAchievementCertificate', { id })">
  8. <u-icon name="plus" color="#fff"></u-icon>
  9. <text>录入</text>
  10. </view>
  11. </u-navbar>
  12. <!-- 证书列表 -->
  13. <view class="achievement-content">
  14. <view class="achievement-content-list" v-if="certificateList.length">
  15. <view class="achievement-content-list-item" v-for="(item, index) in certificateList" :key="index"
  16. :class="index % 2 === 0 ? 'bg1' : 'bg2'"
  17. @click="viewItem(item)">
  18. <view class="title">
  19. <view>{{ item.examName }}</view>
  20. <view class="delete-btn" @click.stop="deleteItem(item)">删除</view>
  21. </view>
  22. <view class="result">
  23. 成绩 <text>{{ item.score }}分</text>(满分{{ item.fullScore }}分)
  24. </view>
  25. <view class="time">
  26. 通过时间:{{ item.passDate }}
  27. </view>
  28. <view class="con">
  29. 证书名称:{{ item.certificateName }}
  30. </view>
  31. </view>
  32. </view>
  33. <view v-else>
  34. <u-empty text="暂无证书" mode="list" margin-top="300"></u-empty>
  35. </view>
  36. </view>
  37. <!-- 删除提示弹框 -->
  38. <u-modal v-model="deleteTips" content="您确认要删除该证书吗?" :show-cancel-button="true" @confirm="deleteConfirm">
  39. </u-modal>
  40. <u-toast ref="uToast" />
  41. </view>
  42. </template>
  43. <script>
  44. export default {
  45. data() {
  46. return {
  47. id: '',
  48. certificateList: [],
  49. deleteTips: false,
  50. curItem: ''
  51. }
  52. },
  53. onLoad(page) {
  54. if (page.id) {
  55. this.id = page.id;
  56. }
  57. },
  58. onShow() {
  59. if (this.id) {
  60. this.getCertificateList(this.id);
  61. }
  62. },
  63. methods: {
  64. /**
  65. * 获取证书列表
  66. */
  67. getCertificateList(id) {
  68. this.$u.api.skillTraining.getCertificateListApi({
  69. id
  70. }).then(res => {
  71. if (res.code === 200) {
  72. this.certificateList = res.data;
  73. } else {
  74. this.$refs.uToast.show({
  75. title: res.msg,
  76. type: 'error'
  77. })
  78. }
  79. })
  80. },
  81. /**
  82. * 删除证书
  83. * @param {Object} item
  84. */
  85. deleteItem(item) {
  86. this.deleteTips = true;
  87. this.curItem = item;
  88. },
  89. viewItem(item) {
  90. if (item.imgUrl) {
  91. uni.previewImage({
  92. current: 0,
  93. urls: item.imgUrl.split(','),
  94. indicator: 'number'
  95. })
  96. } else {
  97. this.$refs.uToast.show({
  98. title: '该证书无相片!',
  99. type: 'info'
  100. })
  101. }
  102. },
  103. /**
  104. * 删除确认
  105. */
  106. deleteConfirm() {
  107. this.deleteTips = false
  108. this.$u.api.skillTraining.deleteCertificateApi({
  109. id: this.curItem.id
  110. }).then(res => {
  111. if (res.code === 200) {
  112. this.$refs.uToast.show({
  113. title: '删除成功!',
  114. type: 'success'
  115. })
  116. this.getCertificateList(this.id);
  117. } else {
  118. this.$refs.uToast.show({
  119. title: res.msg,
  120. type: 'error'
  121. })
  122. }
  123. })
  124. },
  125. /**
  126. * 跳转到指定页面
  127. * @param {Object} url
  128. * @param {Object} params
  129. */
  130. jumpPage(url, params) {
  131. this.$u.route({
  132. url,
  133. params
  134. });
  135. }
  136. }
  137. }
  138. </script>
  139. <style lang="scss" scoped>
  140. @import './achievementCertificate.scss';
  141. </style>