companyInfo.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <template>
  2. <ion-content>
  3. <div class="user_info_title">
  4. 您好!惠州就业驿站给您推荐《{{jobMgrModel.qzProfessionName}}》的岗位,请查阅!
  5. </div>
  6. <div class="user_panel user_baseinfo">
  7. <div class="user_info_img">
  8. <div class="user_text">
  9. <h4>{{companyInfo.companyName}}</h4>
  10. <p>{{jobMgrModel.zpProfessionName}}</p>
  11. </div>
  12. </div>
  13. <div class="user_info_flex">
  14. <div>
  15. <h6>{{postInfo.minSalary}} ~ {{postInfo.maxSalary}}</h6>
  16. <p>薪资</p>
  17. </div>
  18. <div>
  19. <h6>{{postInfo.cultureLevelName}}</h6>
  20. <p>学历</p>
  21. </div>
  22. </div>
  23. <div class="user_info_text">
  24. <span>{{companyInfo.companyAddress}}</span>
  25. </div>
  26. </div>
  27. <div class="user_panel user_baseinfo">
  28. <div class="user_panel_title">
  29. <h6>联系方式</h6>
  30. </div>
  31. <div class="user_info_label user_info_border">
  32. <ion-label>联系人</ion-label>
  33. <ion-text>{{companyInfo.userName}}</ion-text>
  34. </div>
  35. <div class="user_info_label">
  36. <ion-label>联系电话</ion-label>
  37. <ion-text><a :href="'tel://' + companyInfo.userMobile">{{companyInfo.userMobile}}</a></ion-text>
  38. </div>
  39. </div>
  40. <div class="user_panel user_baseinfo">
  41. <div class="user_panel_title">
  42. <h6>岗位要求</h6>
  43. </div>
  44. <div class="user_info_label2">
  45. <p>{{postInfo.postDesc}}</p>
  46. </div>
  47. </div>
  48. </ion-content>
  49. </template>
  50. <script>
  51. import {defineComponent, ref} from "vue";
  52. import {getListById} from "../../../api/recommendmgt";
  53. import {getUrlParams} from "../../../utils/urlUtils";
  54. import {alertController} from "@ionic/vue";
  55. import dayjs from "dayjs";
  56. import {getCompanyById} from "../../../api/company";
  57. import {getPostByID} from "../../../api/post";
  58. const presentAlert = async (message) => {
  59. const alert = await alertController.create({
  60. header: '错误!',
  61. message: message,
  62. buttons: [
  63. '确定'
  64. ],
  65. });
  66. await alert.present();
  67. }
  68. export default defineComponent({
  69. name: "wxMessage_jobUserInfo",
  70. setup() {
  71. const loading = ref(true);
  72. const urlParams = getUrlParams();
  73. const recommendmgtid = urlParams["recommendmgtid"];
  74. const jobMgrModel = ref({});
  75. const companyInfo = ref({});
  76. const postInfo = ref({});
  77. const getMgrData = async (id) => {
  78. loading.value = true;
  79. getListById(id).then((data) => {
  80. jobMgrModel.value = data;
  81. getCompanyInfo(jobMgrModel.value.companyId);
  82. getPostByInfo(jobMgrModel.value.postID);
  83. })
  84. loading.value = false;
  85. };
  86. const getCompanyInfo = async (id) => {
  87. getCompanyById(id).then((data) => {
  88. companyInfo.value = data;
  89. });
  90. };
  91. const getPostByInfo = async (id) => {
  92. getPostByID(id).then((data) => {
  93. postInfo.value = data;
  94. });
  95. };
  96. if (recommendmgtid) {
  97. getMgrData(recommendmgtid);
  98. } else {
  99. presentAlert("未获取到岗位推荐ID");
  100. }
  101. return {
  102. jobMgrModel,
  103. companyInfo,
  104. postInfo,
  105. dayjs
  106. }
  107. }
  108. });
  109. </script>
  110. <style lang="less">
  111. @border_color: #f1f5f7;
  112. @p_color: #8c8f93;
  113. .user_info_title {
  114. padding: 20px 20px 10px 20px;
  115. text-indent: 2em;
  116. }
  117. .user_panel {
  118. border: 1px solid @border_color;
  119. border-radius: 10px;
  120. margin: 10px;
  121. .user_panel_title {
  122. padding: 12px 10px 10px 10px;
  123. margin: 0 10px;
  124. border-bottom: 1px solid @border_color;
  125. h6 {
  126. margin: 0px;
  127. }
  128. }
  129. }
  130. .user_baseinfo {
  131. .user_info_img {
  132. display: flex;
  133. align-items: center;
  134. padding: 10px;
  135. border-radius: 10px;
  136. .user_text {
  137. padding-left: 10px;
  138. p {
  139. color: @p_color;
  140. font-size: 14px;
  141. }
  142. }
  143. }
  144. .user_info_flex {
  145. display: flex;
  146. justify-content: space-around;
  147. align-items: center;
  148. vertical-align: middle;
  149. padding: 10px;
  150. margin: 0 10px;
  151. border-top: 1px solid @border_color;
  152. border-bottom: 1px solid @border_color;
  153. div {
  154. text-align: center;
  155. h6 {
  156. padding: 5px 0px;
  157. margin: 0px;
  158. }
  159. p {
  160. font-size: 14px;
  161. color: @p_color;
  162. padding: 5px 0px;
  163. margin: 0px;
  164. }
  165. }
  166. }
  167. .user_info_text {
  168. margin: 13px 20px;
  169. color: @p_color;
  170. }
  171. .user_info_label {
  172. display: flex;
  173. justify-content: space-between;
  174. vertical-align: middle;
  175. padding: 10px;
  176. margin: 0 10px;
  177. ion-label {
  178. min-width: 80px;
  179. padding: 0 5px 0 0;
  180. }
  181. ion-text {
  182. color: @p_color;
  183. }
  184. }
  185. .user_info_label2 {
  186. padding: 0 10px;
  187. margin: 0 10px;
  188. p {
  189. color: @p_color;
  190. font-size: 14px;
  191. }
  192. }
  193. .user_info_border {
  194. border-bottom: 1px solid @border_color;
  195. }
  196. }
  197. </style>