showResearchDlg.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template>
  2. <view class="show_Research_Dlg">
  3. <u-modal
  4. ref="modalResearch"
  5. async-close
  6. v-model="isShow"
  7. :content-style="{ fontSize: '32rpx' }"
  8. @confirm="confirmModal"
  9. :show-cancel-button="!isShowView"
  10. :confirm-text="isShowView ? '知道了' : '确定'"
  11. cancel-text="取消"
  12. @cancel="cancelModal"
  13. :show-title="false"
  14. :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
  15. :confirm-style="{ fontWeight: '700' }"
  16. >
  17. <view class="slot-content">
  18. <block v-if="!checkResearchList.CheckPermission">
  19. 签约研选扣点包才可参与此活动,请联系对口销售
  20. <!-- <rich-text nodes="暂无<b>买方研选</b>权限<br/>点击提交申请,提醒对口销售为你开通试用"></rich-text> -->
  21. </block>
  22. <block v-else-if="!checkResearchList.CheckTime"> <rich-text :nodes="content"></rich-text></block>
  23. <block v-else-if="!checkResearchList.CheckPoints">
  24. <view class="title-box txt-check"> 点数不足,若想报名,<br />请联系对口销售升级套餐 </view>
  25. <view class="content-box">
  26. <text>当前剩余点数:</text>
  27. <text>{{ checkResearchList.CompanyPoints }}</text>
  28. </view>
  29. <view class="content-box">
  30. <text>本次会议扣除点数:</text>
  31. <text>{{ checkResearchList.ActivityPoints }}</text>
  32. </view>
  33. </block>
  34. <block v-else-if="!checkResearchList.CheckEmail">
  35. <text class="title-box">应上市公司要求,该会议报名需 提供邮箱,请填写您的工作邮箱</text>
  36. <view class="content-input">
  37. <input v-model="inputVal" type="text" placeholder="请输入正确的邮箱地址" />
  38. </view>
  39. </block>
  40. <block v-else-if="checkResearchList.CheckPoints">
  41. <view class="title-box"> 确定报名参加吗? </view>
  42. <view class="content-box">
  43. <text>当前剩余点数:</text>
  44. <text>{{ checkResearchList.CompanyPoints }}</text>
  45. </view>
  46. <view class="content-box">
  47. <text>本次会议扣除点数:</text>
  48. <text>{{ checkResearchList.ActivityPoints }}</text>
  49. </view>
  50. <view class="content-box" style="margin-top: 10rpx">
  51. <text>{{ checkResearchList.CancelPopupMsg }}</text>
  52. </view>
  53. </block>
  54. </view>
  55. </u-modal>
  56. <u-modal
  57. v-model="show"
  58. :show-title="false"
  59. confirm-text="知道了"
  60. :content-style="{ fontSize: '32rpx' }"
  61. :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
  62. :confirm-style="{ fontWeight: '700' }"
  63. >
  64. <view class="slot-content slot-content-text">
  65. <rich-text :nodes="TextContent"></rich-text>
  66. </view>
  67. </u-modal>
  68. </view>
  69. </template>
  70. <script>
  71. import { User, activity, FreeButton } from "@/config/api.js";
  72. export default {
  73. data() {
  74. return {
  75. content: "该活动已截止报名<br />若想参加,请联系对口销售",
  76. type: 3,
  77. inputVal: "",
  78. show: false,
  79. TextContent:
  80. "5万/年含无限量调研纪要查阅以及15次公开专家访谈或30次重点公司、专家小范围交流;<br /><br />10万/年含无限量调研纪要查阅以及40次公开专家访谈或80次重点公司、专家小范围交流或20次私享专家一对一",
  81. };
  82. },
  83. props: {
  84. isResearchModalShow: {
  85. default: false,
  86. type: Boolean,
  87. },
  88. checkResearchList: {
  89. default: {},
  90. type: Object,
  91. },
  92. jurisdictionList: {
  93. default: {},
  94. type: Object,
  95. },
  96. },
  97. watch: {},
  98. computed: {
  99. isShowView() {
  100. let list = this.checkResearchList;
  101. let isNum = !list.CheckPermission || !list.CheckPoints ? true : false;
  102. return isNum;
  103. },
  104. isShow: {
  105. get() {
  106. return this.isResearchModalShow;
  107. },
  108. set() {},
  109. },
  110. },
  111. methods: {
  112. cancelModal() {
  113. this.$emit("update:isResearchModalShow", false);
  114. this.$emit("update:checkResearchList", {});
  115. },
  116. promptTextHandler() {
  117. this.cancelModal();
  118. this.$nextTick(() => {
  119. this.show = true;
  120. });
  121. },
  122. async confirmModal() {
  123. if (!this.checkResearchList.CheckPermission || !this.checkResearchList.CheckTime || !this.checkResearchList.CheckPoints) {
  124. this.cancelModal();
  125. return;
  126. } else if (!this.checkResearchList.CheckEmail) {
  127. this.$refs.modalResearch.clearLoading();
  128. if (!this.inputVal)
  129. return uni.showToast({
  130. title: "邮箱不能为空",
  131. icon: "none",
  132. duration: 2000,
  133. });
  134. this.cancelModal();
  135. const res = await activity.activityEmailBinding({
  136. Email: this.inputVal,
  137. });
  138. if (res.Ret === 200) {
  139. this.$parent.researchPointsHandler(this.jurisdictionList.ActivityId, this.checkResearchList.childrenType, this.jurisdictionList);
  140. }
  141. this.inputVal = "";
  142. return;
  143. } else if (this.checkResearchList.CheckPoints) {
  144. this.$parent.myIsApplyHandler(this.jurisdictionList.ActivityId, this.checkResearchList.childrenType);
  145. this.cancelModal();
  146. return;
  147. }
  148. },
  149. },
  150. };
  151. </script>
  152. <style lang="scss">
  153. .show_Research_Dlg {
  154. .title-box {
  155. color: #333333;
  156. font-weight: 600;
  157. font-size: 32rpx;
  158. line-height: 44rpx;
  159. margin-bottom: 35rpx;
  160. }
  161. .content-box {
  162. font-weight: 400;
  163. font-size: 28rpx;
  164. line-height: 44rpx;
  165. color: #333333;
  166. display: flex;
  167. justify-content: center;
  168. text:nth-child(2) {
  169. color: #376cbb;
  170. }
  171. }
  172. .content-input {
  173. display: flex;
  174. input {
  175. width: 100%;
  176. height: 78rpx;
  177. line-height: 78rpx;
  178. background-color: $uni-bg-color;
  179. text-align: left;
  180. padding-left: 30rpx;
  181. }
  182. }
  183. .txt-check {
  184. text {
  185. margin-left: 8rpx;
  186. }
  187. }
  188. }
  189. .slot-content {
  190. width: 100%;
  191. padding: 50rpx;
  192. text-align: center;
  193. font-size: 32rpx;
  194. color: #0f1826;
  195. line-height: 48rpx;
  196. }
  197. .slot-content-text {
  198. text-align: left;
  199. }
  200. .seller-mobile {
  201. display: inline-block;
  202. color: #376cbb;
  203. }
  204. .u-model__footer__button.data-v-3626fcec {
  205. border-right: 1rpx solid #333;
  206. }
  207. </style>