addPredetermine.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <template>
  2. <div class="addPredetermine">
  3. <ul class="detailUl">
  4. <li class="detailLi">
  5. <span class="liName">
  6. <span style="color: red;margin-right: 5rpx">*</span>
  7. 项目/企业名称
  8. </span>
  9. <span class="liInfo">{{ companyName }}</span>
  10. </li>
  11. <li class="detailLi2">
  12. <span class="liName" style="margin-bottom: 24rpx">
  13. 项目/企业简介
  14. </span>
  15. <van-field
  16. :value="form.projectInfo"
  17. autosize
  18. type="textarea"
  19. placeholder="请输入文字进行报事报修描述"
  20. class="myField"
  21. maxlength="800"
  22. show-word-limit
  23. @change="changeProjectInfo"
  24. />
  25. </li>
  26. <li class="detailLi2">
  27. <span class="liName" style="margin-bottom: 24rpx">
  28. <span style="color: red;margin-right: 5rpx">*</span>
  29. 企业需求
  30. </span>
  31. <van-field
  32. :value="form.companyNeed"
  33. autosize
  34. type="textarea"
  35. placeholder="请输入文字进行报事报修描述"
  36. class="myField"
  37. maxlength="800"
  38. show-word-limit
  39. @change="changeCompanyNeed"
  40. />
  41. </li>
  42. <li class="detailLi">
  43. <span class="liName">
  44. <span style="color: red;margin-right: 5rpx">*</span>
  45. 项目/企业联系人
  46. </span>
  47. <input class="liInfo" placeholder="请输入" v-model="form.projectManager"></input>
  48. </li>
  49. <li class="detailLi" style="border-bottom: none">
  50. <span class="liName">
  51. <span style="color: red;margin-right: 5rpx">*</span>
  52. 联系电话
  53. </span>
  54. <input class="liInfo" placeholder="请输入" v-model="form.managerPhone"></input>
  55. </li>
  56. </ul>
  57. <div class="whiteBoard">
  58. <div class="boardTitle">关于房源</div>
  59. <div class="boardInfo">
  60. <div class="boardItem">{{ roomInfo.groupName }}</div>
  61. <div class="boardItem">{{ roomInfo.floorDiscName }}</div>
  62. <div class="boardItem">{{ roomInfo.buildName }}</div>
  63. <div class="boardItem">{{ roomInfo.roomNo }}</div>
  64. </div>
  65. </div>
  66. <button @tap="submit()" class="toYy">提交预定</button>
  67. </div>
  68. </template>
  69. <script>
  70. import {getByCodes, getUserLocalStorageInfo, getRoomInfo, parkRoomSlateAdd, getParkRoomSlateInfoById, parkRoomSlateEdit} from "@/js_sdk/http";
  71. export default {
  72. name: "addPredetermine",
  73. onLoad(options) {
  74. this.roomId = options.roomId
  75. this.id = options.id
  76. if(options.id){
  77. uni.setNavigationBarTitle({
  78. title: '编辑预定',
  79. });
  80. this.getById()
  81. }
  82. this.getRoomById()
  83. },
  84. data(){
  85. return{
  86. id: '',
  87. roomId: '',
  88. companyName: getUserLocalStorageInfo().username,
  89. getUserLocalStorageInfo: getUserLocalStorageInfo(),
  90. form:{
  91. },
  92. roomInfo:{
  93. groupName: '',
  94. floorDiscName: '',
  95. buildName: '',
  96. roomNo: ''
  97. }
  98. }
  99. },
  100. methods:{
  101. changeProjectInfo(e){
  102. this.form.projectInfo = e.detail
  103. },
  104. changeCompanyNeed(e){
  105. this.form.companyNeed = e.detail
  106. },
  107. getRoomById(){
  108. getRoomInfo(this.roomId).then(res=>{
  109. if(res){
  110. this.roomInfo = res
  111. }
  112. })
  113. },
  114. submit(){
  115. if(this.id){
  116. this.edit()
  117. }else {
  118. this.add()
  119. }
  120. },
  121. add(){
  122. this.form.projectName = this.companyName
  123. this.form.companyId = getUserLocalStorageInfo().userId
  124. this.form.createdBy = getUserLocalStorageInfo().userId
  125. this.form.userId = getUserLocalStorageInfo().userId
  126. this.form.roomIds= this.roomId
  127. parkRoomSlateAdd(this.form).then((res) => {
  128. if(res.code == '200'){
  129. this.$showToast("填报成功");
  130. uni.navigateBack({});
  131. }else {
  132. this.$showToast(res.msg);
  133. }
  134. }).catch(err=>{
  135. })
  136. },
  137. edit(){
  138. this.form.updatedBy = getUserLocalStorageInfo().userId
  139. this.form.userId = getUserLocalStorageInfo().userId
  140. parkRoomSlateEdit(this.form).then((res) => {
  141. if(res.code == '200'){
  142. this.$showToast("填报成功");
  143. uni.navigateBack({});
  144. }else {
  145. this.$showToast(res.msg);
  146. }
  147. }).catch(err=>{
  148. })
  149. },
  150. getById(){
  151. const data = {
  152. id: this.id
  153. }
  154. getParkRoomSlateInfoById(data).then(res=>{
  155. if(res.code == '200'){
  156. this.form = res.data
  157. }
  158. })
  159. }
  160. }
  161. }
  162. </script>
  163. <style lang="scss">
  164. .addPredetermine{
  165. .detailUl{
  166. margin-top: 20rpx;
  167. background: white;
  168. padding: 24rpx 32rpx;
  169. .liName{
  170. font-size: 32rpx;
  171. color: rgba(51, 51, 51, 1);
  172. white-space: nowrap;
  173. .callNumber{
  174. color: rgba(24, 23, 42, 1);
  175. font-size: 36rpx;
  176. font-weight: 600;
  177. }
  178. .callName{
  179. color: rgba(102, 102, 102, 1);
  180. font-size: 28rpx;
  181. }
  182. }
  183. .phoneIcon{
  184. width: 64rpx;
  185. height: 64rpx;
  186. }
  187. .detailLi{
  188. display: flex;
  189. justify-content: space-between;
  190. align-items: center;
  191. padding: 32rpx 0;
  192. border-bottom: 2rpx solid #E6E6E6;
  193. .liInfo{
  194. display: inline-block;
  195. text-align: right;
  196. max-width: 428rpx;
  197. color: rgba(102, 102, 102, 1);
  198. font-size: 32rpx;
  199. line-height: 38rpx;
  200. overflow: hidden;
  201. word-wrap: break-word;
  202. }
  203. }
  204. .detailLi2{
  205. display: flex;
  206. flex-direction: column;
  207. padding: 32rpx 0;
  208. border-bottom: 2rpx solid #E6E6E6;
  209. .detailLi2BoxTop{
  210. display: flex;
  211. flex-wrap: wrap;
  212. justify-content: space-between;
  213. margin: 12rpx 0;
  214. .checkItem{
  215. width: 160rpx;
  216. height: 64rpx;
  217. font-size: 28rpx;
  218. color: #666666;
  219. display: flex;
  220. align-items: center;
  221. justify-content: center;
  222. background: #F5F7FA;
  223. border-radius: 8rpx;
  224. margin: 12rpx 0;
  225. }
  226. .checked{
  227. background: #0365F9;
  228. color: white;
  229. }
  230. }
  231. }
  232. .van-cell {
  233. background: #F5F7FA !important;
  234. border-radius: 8rpx;
  235. font-size: 28rpx;
  236. }
  237. }
  238. .whiteBoard{
  239. padding: 32rpx;
  240. background: white;
  241. margin-top: 24rpx;
  242. min-height: 260rpx;
  243. box-sizing: border-box;
  244. .boardTitle{
  245. color: rgba(51, 51, 51, 1);
  246. font-size: 32rpx;
  247. margin-bottom: 24rpx;
  248. }
  249. .boardInfo{
  250. display: flex;
  251. flex-wrap: wrap;
  252. color: rgba(51, 51, 51, 1);
  253. font-size: 32rpx;
  254. .boardItem{
  255. margin-right: 24rpx;
  256. }
  257. }
  258. }
  259. .toYy{
  260. width: 654rpx;
  261. height: 96rpx;
  262. background: rgba(3, 101, 249, 1);
  263. margin: 64rpx 48rpx;
  264. display: flex;
  265. align-items: center;
  266. justify-content: center;
  267. font-size: 36rpx;
  268. color: white;
  269. }
  270. }
  271. </style>