showResearchDlg.vue 6.0 KB

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