editWhite.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. <template>
  2. <view class="container">
  3. <u-form :model="white" ref="uForm" style="background-color: #ffffff;" :label-style="formLabelCss" label-width="180">
  4. <u-form-item label="持有人"><u-input v-model="white.memberName" placeholder="姓名或单位名"/></u-form-item>
  5. <u-form-item label="持有人电话*" prop="memberPhone"><u-input v-model="white.memberPhone" placeholder="联系电话"/></u-form-item>
  6. <u-form-item label="车牌号码*" prop="memberCarNum"><u-input v-model="white.memberCarNum" placeholder="完整车牌号码"/></u-form-item>
  7. <u-form-item label="使用场所*" prop="parkingName">
  8. <u-input v-model="white.parkingName" type="select" @click="parkSelShow = true" placeholder="选择可使用的停车场"/>
  9. </u-form-item>
  10. <u-form-item label="使用期限*">
  11. <!-- <u-input :value="expireDateRange" type="select" @click="showCalendar = true;" placeholder="选择起始截止日期"/> -->
  12. </u-form-item>
  13. <u-form-item prop="memberStartTime">
  14. <u-input type="select" @click="timePickShow = true;timePickFor='memberStartTime';" placeholder="选择起始时间" :value="white.memberStartTime"/>
  15. </u-form-item>
  16. <u-form-item prop="memberEndTime">
  17. <u-input type="select" @click="timePickShow = true;timePickFor='memberEndTime';" placeholder="选择截止时间" :value="white.memberEndTime"/>
  18. </u-form-item>
  19. <u-form-item label="类型">
  20. <text>{{white.memberType==0?'充电附赠':(white.memberType==1?'正式会员':'')}}</text>
  21. </u-form-item>
  22. </u-form>
  23. <u-picker mode="selector" v-model="parkSelShow" :range="myParkSites" range-key="parking_name" @confirm="confirmPark"></u-picker>
  24. <u-picker mode="time" v-model="timePickShow" :params="timePickParams" @confirm="confirmTimePick"></u-picker>
  25. <u-calendar v-model="showCalendar" mode="range" @change="changeCalendar"></u-calendar>
  26. <view class="btn-bar">
  27. <u-button type="primary" style="flex:2;" :disabled="!(white.memberCarNum&&white.parkingName&&white.memberPhone&&white.memberStartTime)" @click="saveData">保存</u-button>
  28. </view>
  29. </view>
  30. </template>
  31. <script>
  32. import * as api from '@/apis/whiteBill.js'
  33. export default {
  34. data() {
  35. return {
  36. formLabelCss:{
  37. 'color':'#7d7d7d'
  38. },
  39. isUpdate:false,
  40. white:{
  41. memberName:'',
  42. memberPhone:'',
  43. memberCarNum:'',
  44. parkingName:'',
  45. memberStartTime:'',
  46. memberEndTime:'',
  47. parkId:'',
  48. memberType:null
  49. },
  50. timePickShow:false,
  51. parkSelShow:false,
  52. myParkSites:[],
  53. showCalendar:false,
  54. timePickFor:'',
  55. timePickParams:{
  56. year: true,
  57. month: true,
  58. day: true,
  59. hour: true,
  60. minute: true,
  61. second: true
  62. },
  63. rules:{
  64. memberPhone:[
  65. {
  66. pattern: /\d{11}/,
  67. message: '请输入有效的持有人电话',
  68. trigger: 'blur'
  69. }
  70. ],
  71. memberCarNum:[
  72. {
  73. required:true,
  74. message: '请输入有效的车牌号码',
  75. trigger: 'blur'
  76. }
  77. ],
  78. parkingName:[
  79. {
  80. required:true,
  81. message: '请选择一个停车场',
  82. trigger: 'blur'
  83. }
  84. ],
  85. memberStartTime:[
  86. {
  87. required:true,
  88. message: '请选择一个起始时间',
  89. trigger: 'blur'
  90. }
  91. ],
  92. memberEndTime:[
  93. {
  94. required:true,
  95. message: '请选择一个截止时间',
  96. trigger: 'blur'
  97. }
  98. ]
  99. }
  100. }
  101. },
  102. onReady() {
  103. this.$refs.uForm.setRules(this.rules);
  104. if(!this.isUpdate){
  105. document.querySelectorAll('.uni-page-head .uni-page-head-ft .uni-page-head-btn')[0].querySelector('.uni-btn-icon').innerText='';
  106. }
  107. },
  108. onLoad(opts){
  109. this.myParkSites=api.getMyParkSites();
  110. if(opts.id!=null){
  111. this.loadDate(opts.id);
  112. this.isUpdate=true;
  113. }
  114. else{
  115. }
  116. },
  117. onNavigationBarButtonTap(e){
  118. //console.log(this.white.id)
  119. if(this.white.id){
  120. this.del(this.white.id);
  121. }
  122. },
  123. methods: {
  124. confirmPark(data){
  125. let sel=this.myParkSites[data[0]];
  126. this.white.parkingName=sel.parking_name;
  127. this.white.parkId=sel.park_id;
  128. },
  129. confirmTimePick(date){
  130. console.log(date)
  131. if(this.timePickFor&&this.timePickFor!=''){
  132. this.white[this.timePickFor]=date.year+"-"+date.month+'-'+date.day+" "+date.hour+":"+date.minute+":"+date.second;
  133. }
  134. },
  135. changeCalendar(e){
  136. this.white.memberStartTime=e.startDate;
  137. this.white.memberEndTime=e.endDate;
  138. },
  139. loadDate(id){
  140. uni.showLoading({
  141. title:'加载中...'
  142. });
  143. api.getOne(id).then(resp => {
  144. console.log(resp)
  145. uni.hideLoading();
  146. if(!resp.success){
  147. return;
  148. }
  149. //this.memberRecord=resp.data;
  150. let {memberName,memberPhone,memberCarNum,parkingName,memberStartTime,memberEndTime,parkId,memberType,id}=resp.data;
  151. this.white={memberName,memberPhone,memberCarNum,parkingName,memberStartTime,memberEndTime,parkId,memberType,id};
  152. console.log(this.white);
  153. }).catch(error => {
  154. uni.hideLoading();
  155. });
  156. },
  157. saveData(){
  158. this.$refs.uForm.validate(valid => {
  159. if(!valid){
  160. console.log('验证失败');
  161. return;
  162. }
  163. });
  164. let apifun=this.isUpdate?api.saveForUpdate:api.saveForAdd;
  165. uni.showLoading({
  166. title:'保存中...'
  167. });
  168. let submitData={...this.white};
  169. delete submitData['memberType'];
  170. console.log(this.isUpdate);
  171. apifun(submitData).then(resp => {
  172. console.log(resp)
  173. uni.hideLoading();
  174. if(!resp.success){
  175. uni.showToast({
  176. title: resp.msg||'操作失败',
  177. icon:'none'
  178. });
  179. }
  180. else{
  181. uni.showToast({
  182. title: '操作成功',
  183. icon:'success'
  184. });
  185. setTimeout(function(){
  186. uni.$emit('reloadWhiteList');
  187. uni.navigateBack();
  188. },1000);
  189. }
  190. }).catch(error => {
  191. uni.hideLoading();
  192. });
  193. },
  194. del(id){
  195. api.del(id).then(resp => {
  196. if(!resp.success){
  197. uni.showToast({
  198. title: resp.msg||'操作失败',
  199. icon:'none'
  200. });
  201. }
  202. else{
  203. uni.showToast({
  204. title: '操作成功',
  205. icon:'success'
  206. });
  207. setTimeout(function(){
  208. uni.$emit('reloadWhiteList');
  209. uni.navigateBack();
  210. },1000);
  211. }
  212. }).catch(error => {
  213. });
  214. }
  215. }
  216. /* computed:{
  217. expireDateRange(){
  218. return this.white.memberStartTime?(this.white.memberStartTime+' 至 '+this.white.memberEndTime):'';
  219. }
  220. } */
  221. }
  222. </script>
  223. <style>
  224. page{
  225. background-color: #f4f4f4;
  226. font-family: '华文行楷';
  227. height: 100%;
  228. }
  229. .u-form-item{
  230. padding:10rpx 20rpx;
  231. }
  232. .btn-bar{
  233. margin:40rpx 0rpx;
  234. padding:0rpx 20rpx;
  235. display: flex;
  236. flex-flow: row nowrap;
  237. justify-content: center;
  238. align-items: center;
  239. }
  240. .custom-btn{
  241. flex:1;
  242. border-top-right-radius: 20rpx !important;
  243. border-bottom-right-radius: 0rpx;
  244. }
  245. </style>