my-requiredetail.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. <template>
  2. <view class="contain">
  3. <uni-row>
  4. <view style="height: 20rpx;"></view>
  5. </uni-row>
  6. <uni-row>
  7. <uni-col :push="1">
  8. <view class="contain-item"><text class="contain-text">需求号:</text>{{item.requireId}}</view>
  9. </uni-col>
  10. </uni-row>
  11. <uni-row>
  12. <uni-col :push="1">
  13. <view class="contain-item"><text class="contain-text">学员ID:</text>{{item.uid}}</view>
  14. </uni-col>
  15. </uni-row>
  16. <uni-row>
  17. <uni-col :span="12" :push="1">
  18. <view class="contain-item"><text class="contain-text">学员:</text>{{item.name}}</view>
  19. </uni-col>
  20. <uni-col :span="12">
  21. <view><text class="contain-text">学员性别:</text>{{item.sex}}</view>
  22. </uni-col>
  23. </uni-row>
  24. <uni-row>
  25. <uni-col :push="1" :span="18">
  26. <view class="contain-item"><text class="contain-text">需求科目:</text>{{item.subjectBig}}/{{item.subjectSmall}}</view>
  27. </uni-col>
  28. <uni-col :span="6" v-if="isShowCollect">
  29. <uni-fav :checked="collect" class="favBtn" :circle="true" bg-color="#dd524d"
  30. bg-color-checked="#007aff" fg-color="#ffffff" fg-color-checked="#ffffff" @click="collecting" />
  31. </uni-col>
  32. </uni-row>
  33. <uni-row>
  34. <view class="contain-item">
  35. <map :longitude="location[1]" :latitude="location[0]" :markers="marker" class="map"></map>
  36. </view>
  37. </uni-row>
  38. <uni-row>
  39. <uni-col :push="1">
  40. <view class="contain-item"><text class="contain-text">学员地址:</text>{{item.locationStr}}</view>
  41. </uni-col>
  42. </uni-row>
  43. <uni-row>
  44. <uni-col :push="1">
  45. <text class="contain-text">课程时间:</text>
  46. </uni-col>
  47. </uni-row>
  48. <view class="tr-container">
  49. <view class="tr_1">
  50. <text class="th_0" decode="true">&ensp;&ensp;&ensp;&ensp;</text>
  51. <text class="th_1">周一</text>
  52. <text class="th_1">周二</text>
  53. <text class="th_1">周三</text>
  54. <text class="th_1">周四</text>
  55. <text class="th_1">周五</text>
  56. <text class="th_1">周六</text>
  57. <text class="th_1">周日</text>
  58. </view>
  59. <view class="tr_2">
  60. <checkbox-group>
  61. <view class="th2_0">上午</view>
  62. <label v-for="item in timeAM" :key="item.value">
  63. <checkbox class="th2_1" :value="item.value" :checked="item.checked" disabled></checkbox>
  64. </label>
  65. </checkbox-group>
  66. </view>
  67. <view class="tr_2">
  68. <checkbox-group>
  69. <view class="th2_0">下午</view>
  70. <label v-for="item in timePM" :key="item.value">
  71. <checkbox class="th2_1" :value="item.value" :checked="item.checked" disabled></checkbox>
  72. </label>
  73. </checkbox-group>
  74. </view>
  75. <view class="tr_2">
  76. <checkbox-group>
  77. <view class="th2_0">晚上</view>
  78. <label v-for="item in timeEvening" :key="item.value">
  79. <checkbox class="th2_1" :value="item.value" :checked="item.checked" disabled></checkbox>
  80. </label>
  81. </checkbox-group>
  82. </view>
  83. </view>
  84. <uni-row>
  85. <uni-col :span="12" :push="1">
  86. <view class="contain-item"><text class="contain-text">教员类型:</text>{{item.teacherType}}</view>
  87. </uni-col>
  88. <uni-col :span="12">
  89. <view><text class="contain-text">教员学历:</text>{{item.teacherEdu}}</view>
  90. </uni-col>
  91. </uni-row>
  92. <uni-row>
  93. <uni-col :span="12" :push="1">
  94. <view class="contain-item"><text class="contain-text">教员性别:</text>{{item.teacherGender}}</view>
  95. </uni-col>
  96. <uni-col :span="12">
  97. <view><text class="contain-text">上课方式:</text>{{item.mode}}</view>
  98. </uni-col>
  99. </uni-row>
  100. <uni-row>
  101. <uni-col :span="12" :push="1">
  102. <view class="contain-item"><text class="contain-text">教员头像:</text>{{item.teacherProfilePhoto}}</view>
  103. </uni-col>
  104. <uni-col :span="12">
  105. <view><text class="contain-text">需求金额:</text>{{item.salary}}元</view>
  106. </uni-col>
  107. </uni-row>
  108. <uni-row>
  109. <uni-col :push="1">
  110. <view class="contain-item"><text class="contain-text">期望目标:</text>{{item.goal}}</view>
  111. </uni-col>
  112. </uni-row>
  113. <uni-row>
  114. <uni-col :push="1">
  115. <view class="contain-item"><text class="contain-text">额外要求:</text>{{item.teacherDemanded}}</view>
  116. </uni-col>
  117. </uni-row>
  118. <view v-if="isShowPrivate">
  119. <uni-row>
  120. <uni-col :push="1">
  121. <view class="contain-item"><text class="contain-text">审核不通过原因:</text>{{item.verifyRefuseReason || '暂无'}}</view>
  122. </uni-col>
  123. </uni-row>
  124. <uni-row>
  125. <uni-col :push="1">
  126. <view class="contain-item"><text class="contain-text">本需求发布日期:</text>{{item.datetime}}</view>
  127. </uni-col>
  128. </uni-row>
  129. <uni-row>
  130. <uni-col :push="1">
  131. <view class="contain-item"><text class="contain-text">手机号:</text>{{item.phone}}</view>
  132. </uni-col>
  133. </uni-row>
  134. <uni-row>
  135. <uni-col :push="1">
  136. <view class="contain-item"><text class="contain-text">微信号:</text>{{item.wxid}}</view>
  137. </uni-col>
  138. </uni-row>
  139. </view>
  140. <button class="publish-button" @click="publishButton">{{buttonMessage}}</button>
  141. </view>
  142. </template>
  143. <script>
  144. import { mapState } from 'vuex';
  145. export default {
  146. name: 'my-requiredetail',
  147. data() {
  148. return {
  149. };
  150. },
  151. props: {
  152. item: {
  153. type: Object
  154. },
  155. location: {
  156. type: Array
  157. },
  158. marker: {
  159. type: Array
  160. },
  161. timeAM: {
  162. type: Array
  163. },
  164. timePM: {
  165. type: Array
  166. },
  167. timeEvening: {
  168. type: Array
  169. },
  170. collect: {
  171. type: Boolean,
  172. default: false
  173. },
  174. isShowCollect: {
  175. type: Boolean,
  176. default: false
  177. },
  178. isShowPrivate: {
  179. type: Boolean,
  180. default: false
  181. },
  182. buttonMessage: {
  183. type: String
  184. }
  185. },
  186. methods: {
  187. // 点击收藏
  188. collecting() {
  189. // 触发外界通过 @click 绑定的 click 事件处理函数
  190. this.$emit('collecting')
  191. },
  192. publishButton() {
  193. this.$emit('publishButton')
  194. }
  195. },
  196. }
  197. </script>
  198. <style lang="scss" scoped>
  199. .contain {
  200. background-color: #FFF2CC;
  201. border-radius: 10%;
  202. height: 100%;
  203. .contain-item {
  204. margin-bottom: 20rpx;
  205. }
  206. .contain-text {
  207. font-weight: 700;
  208. color: #bbb;
  209. }
  210. .map {
  211. width: 100%;
  212. }
  213. }
  214. .tr-container{
  215. display: flex;
  216. position: relative;
  217. width: 96%;
  218. flex-direction: column;
  219. font-size: 26rpx;
  220. /* border: 1rpx solid gray; */
  221. margin: -10px 20rpx;
  222. margin-bottom: 20px;
  223. }
  224. .tr_1 {
  225. display: flex;
  226. position: relative;
  227. height: 80rpx;
  228. line-height: 80rpx;
  229. }
  230. .tr_2{
  231. display: block;
  232. height: 80rpx;
  233. line-height: 80rpx;
  234. }
  235. .th_0,
  236. .th_1,
  237. .th_2,
  238. .th2_0,
  239. .th2_1,
  240. .th2_2{
  241. width: 12%;
  242. height: 80rpx;
  243. line-height: 80rpx;
  244. border-right: 1rpx solid gray;
  245. border-bottom: 1rpx solid gray;
  246. text-align: center;
  247. }
  248. .th_0,
  249. .th_1,
  250. .th_2{
  251. border-top: 1rpx solid gray;
  252. }
  253. .th_0,
  254. .th2_0{
  255. border-left: 1rpx solid gray;
  256. }
  257. .th2_0{
  258. float: left;
  259. width: 12%;
  260. height: 80rpx;
  261. line-height: 80rpx;
  262. text-align: center;
  263. /* background-color: greenyellow; */
  264. }
  265. .publish-button {
  266. background-color: #E2F0D9;
  267. width: 100%;
  268. border-radius: 25%;
  269. }
  270. </style>