【PT.SCC实名制管理系统】24.10.01 -30天,考勤打卡小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

182 lines
3.5 KiB

6 months ago
  1. <template>
  2. <view class="page">
  3. <uni-nav-bar dark :fixed="true" shadow background-color="var(--main-color)" status-bar left-icon="left"
  4. title="项目管理" @clickLeft="$utils.navigateBack" />
  5. <view class="list">
  6. <view class="item"
  7. :key="item.id"
  8. v-for="(item, index) in list">
  9. <view class="Work-List">
  10. <view class="label">
  11. 项目名
  12. </view>
  13. <view class="text">
  14. {{ item.name }}
  15. </view>
  16. </view>
  17. <view class="Work-List">
  18. <view class="label">
  19. 当前团队
  20. </view>
  21. <view class="text">
  22. {{ item.teamId_dictText }}
  23. </view>
  24. </view>
  25. <view class="Work-List">
  26. <view class="label">
  27. 打卡地址
  28. </view>
  29. <view class="text">
  30. {{ item.address }}
  31. </view>
  32. </view>
  33. <view class="Work-List">
  34. <view class="label">
  35. 维度
  36. </view>
  37. <view class="text">
  38. {{ item.lat }}
  39. </view>
  40. </view>
  41. <view class="Work-List">
  42. <view class="label">
  43. 经度
  44. </view>
  45. <view class="text">
  46. {{ item.lon }}
  47. </view>
  48. </view>
  49. <view class="btns">
  50. <view class="btn"
  51. @click="openChooseLocation(item)">
  52. 设置打卡地点
  53. </view>
  54. </view>
  55. </view>
  56. </view>
  57. <uv-action-sheet
  58. ref="actionSheet"
  59. :actions="actions"
  60. @select="select"
  61. @close="close">
  62. </uv-action-sheet>
  63. </view>
  64. </template>
  65. <script>
  66. import mixinsList from '@/mixins/list.js'
  67. export default {
  68. mixins: [mixinsList],
  69. data() {
  70. return {
  71. mixinsListApi : 'clockProjectList',
  72. actions : [
  73. // {
  74. // name:'当前位置附近',
  75. // },
  76. {
  77. name:'项目位置附近',
  78. type : 'form'
  79. },
  80. {
  81. name:'印度尼西亚',
  82. lat : -6.1942,
  83. lon : 106.82156,
  84. },
  85. {
  86. name:'美国(纽约)',
  87. lat: 42.6511674,
  88. lon: -73.754968,
  89. },
  90. ],
  91. form : {},
  92. }
  93. },
  94. methods: {
  95. openChooseLocation(item){
  96. this.form = item
  97. this.$refs.actionSheet.open()
  98. },
  99. select(e){
  100. if(e.lat && e.lon){
  101. uni.chooseLocation({
  102. longitude : e.lon, //经度
  103. latitude : e.lat, //纬度
  104. success : res => this.setAddress(res)
  105. })
  106. }else if(e.type == 'form' && this.form.lat && this.form.lon){
  107. uni.chooseLocation({
  108. longitude : this.form.lon, //经度
  109. latitude : this.form.lat, //纬度
  110. success : res => this.setAddress(res)
  111. })
  112. }else{
  113. uni.chooseLocation({
  114. success : res => this.setAddress(res)
  115. })
  116. }
  117. },
  118. setAddress(res){
  119. this.$api('clockProjectLocation', {
  120. id : this.form.id,
  121. lat : res.latitude,
  122. lon : res.longitude,
  123. address : res.address,
  124. },res => {
  125. if(res.code == 200){
  126. this.getData()
  127. uni.showToast({
  128. title: '修改成功',
  129. icon: 'none'
  130. })
  131. }
  132. })
  133. },
  134. close(){},
  135. }
  136. }
  137. </script>
  138. <style scoped lang="scss">
  139. .page{
  140. .list{
  141. .item{
  142. box-shadow: 0 0 10rpx 10rpx #00000009;
  143. border-radius: 25rpx;
  144. padding: 15rpx;
  145. background-color: #fff;
  146. font-size: 28rpx;
  147. position: relative;
  148. margin: 20rpx;
  149. .Work-List{
  150. display: flex;
  151. padding: 20rpx 0rpx;
  152. .label{
  153. width: 150rpx;
  154. flex-shrink: 0;
  155. }
  156. .text{
  157. flex: 1;
  158. }
  159. }
  160. .btns{
  161. display: flex;
  162. align-items: center;
  163. justify-content: flex-end;
  164. .btn{
  165. border-radius: 20rpx;
  166. padding: 20rpx;
  167. margin: 10rpx;
  168. background: $uni-color;
  169. color: #fff;
  170. text-align: center;
  171. font-size: 24rpx;
  172. }
  173. }
  174. }
  175. }
  176. }
  177. </style>