create.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753
  1. <template>
  2. <view class="page">
  3. <view class="form">
  4. <u-form :model="form" ref="uForm">
  5. <u-form-item label-width="150" label="房屋类型" prop="house_type" required>
  6. <u-radio-group v-model="form.house_type" active-color="#2979ff">
  7. <u-radio :name="HT.val" v-for="HT in houseTypeList" :key="HT.val">{{HT.key}}</u-radio>
  8. </u-radio-group>
  9. </u-form-item>
  10. <u-form-item v-if="form.house_type == 2" label-width="150" label="房源人" prop="house_create">
  11. <u-input @click="openRoomPopup" placeholder="请选择" v-model="form.house_create" type="text" disabled></u-input>
  12. </u-form-item>
  13. <u-form-item label-width="150" label="成交楼盘" prop="deal_item" required>
  14. <u-input placeholder="请输入成交楼盘" v-model="form.deal_item" type="text"></u-input>
  15. </u-form-item>
  16. <u-form-item label-width="150" label="成交房号" prop="house_no" required>
  17. <u-input placeholder="请输入成交房号" v-model="form.house_no" type="text"></u-input>
  18. </u-form-item>
  19. <u-form-item label-width="150" label="成交店员" prop="deal_clerk" required>
  20. <u-input placeholder="请输入成交店员" v-model="form.deal_clerk" type="text"></u-input>
  21. </u-form-item>
  22. <u-form-item label-width="150" label="成交类型" prop="deal_type" required>
  23. <u-radio-group v-model="form.deal_type" active-color="#2979ff">
  24. <u-radio :name="DT.val" v-for="DT in dealTypeList" :key="DT.val">{{DT.key}}</u-radio>
  25. </u-radio-group>
  26. </u-form-item>
  27. <u-form-item label-width="150" label="所属门店" prop="store_type" required>
  28. <u-radio-group v-model="form.store_type" active-color="#2979ff">
  29. <u-radio :name="DT.val" v-for="DT in storeTypeList" :key="DT.val">{{DT.key}}</u-radio>
  30. </u-radio-group>
  31. </u-form-item>
  32. <u-form-item label-width="150" label="成交日期" prop="deal_at" @click.native="openDealAtPopoup" required>
  33. <view class="scoped-input-floor" @click.native="openDealAtPopoup"></view>
  34. <u-input placeholder="请选择成交日期" v-model="form.deal_at" disabled type="text"></u-input>
  35. </u-form-item>
  36. <u-form-item label-width="150" label="客户姓名" prop="customer_name" required>
  37. <u-input placeholder="请输入客户姓名" v-model="form.customer_name" type="text"></u-input>
  38. <view class="scoped-input-label-tips" @click="openCustPopup">选择客户</view>
  39. </u-form-item>
  40. <u-form-item label-width="150" label="手机号" prop="customer_phone" required>
  41. <u-input placeholder="请输入手机号" v-model="form.customer_phone" type="number"></u-input>
  42. </u-form-item>
  43. <u-form-item label-width="150" label="面积" prop="area" required>
  44. <u-input placeholder="请输入面积" v-model="form.area" type="text"></u-input>
  45. <template v-slot:right>
  46. </template>
  47. </u-form-item>
  48. <u-form-item label-width="150" label="总价" prop="price" required>
  49. <u-input placeholder="请输入总价" v-model="form.price" type="text"></u-input>
  50. <template v-slot:right>
  51. </template>
  52. </u-form-item>
  53. <u-form-item label-width="150" label="报备渠道" prop="report_dept" required>
  54. <u-input placeholder="请输入报备渠道" v-model="form.report_dept" type="text"></u-input>
  55. </u-form-item>
  56. <u-form-item label-width="150" label="折扣体系" prop="discount" required>
  57. <u-input placeholder="请输入折扣体系" v-model="form.discount" type="text"></u-input>
  58. </u-form-item>
  59. <u-form-item label-width="150" label="佣金" prop="brokerage" required>
  60. <u-input placeholder="请输入佣金" v-model="form.brokerage" type="text"></u-input>
  61. </u-form-item>
  62. <u-form-item label-position="top" label-width="150" label="佣金凭证" prop="brokerage_img">
  63. <view class="id_card" @click="uploadbrokerageImgImage">
  64. <u-icon v-if="form.brokerage_img == null" name="plus" size="32" color="#606266"></u-icon>
  65. <text v-if="form.brokerage_img == null">请先上传佣金凭证照片</text>
  66. <image v-if="form.brokerage_img != null" :src="brokerage_img" mode="aspectFill"></image>
  67. </view>
  68. </u-form-item>
  69. <u-form-item label-width="150" label="返佣" prop="rebate">
  70. <u-input placeholder="请输入返佣" v-model="form.rebate" type="text"></u-input>
  71. </u-form-item>
  72. <u-form-item label-width="150" label="客户生日" prop="birthday" @click.native="openbirthdayPopoup">
  73. <view class="scoped-input-floor" @click.native="openbirthdayPopoup"></view>
  74. <u-input placeholder="请选择客户生日" v-model="form.birthday" disabled type="text"></u-input>
  75. </u-form-item>
  76. <u-form-item label-width="150" label="备注信息" prop="remark" label-position="top">
  77. <u-input placeholder="备注信息" v-model="form.remark" type="textarea"></u-input>
  78. </u-form-item>
  79. </u-form>
  80. <u-gap height="60"></u-gap>
  81. <u-button type="primary" :diabled="submitButtonDisabled" @click="submitHandle">提交</u-button>
  82. </view>
  83. <!-- 列表选择 -->
  84. <u-select mode="single-column" :list="propertySelectList" v-model="propertySelectShow" @confirm="propertySelectConfirm"></u-select>
  85. <u-select mode="single-column" :list="salerSelectList" v-model="salerSelectShow" @confirm="salerSelectConfirm"></u-select>
  86. <!-- modal -->
  87. <u-modal v-model="submitModalShow" content="请务必仔细确认各项信息是否正确" :show-cancel-button="true" @confirm="submit()"></u-modal>
  88. <u-modal v-model="modalShow" :content="modalContent" :show-cancel-button="true" @cancel="modalCancel()" @confirm="modalConfirm()"></u-modal>
  89. <u-calendar v-model="dealAtShow" :mode="calendarMode" @change="dealAtChange"></u-calendar>
  90. <u-calendar v-model="birthdayShow" :mode="calendarMode" @change="birthdayChange"></u-calendar>
  91. <!-- utoast -->
  92. <u-toast ref="uToast" />
  93. <u-popup v-model="curPopupShow" mode="center" width="90%" height="100%">
  94. <view class="bwin-popup scoped-cur-popup">
  95. <view class="scp-header-input">
  96. <u-input class="input" v-model="curPopupKeyword" placeholder="点这输入客户手机号段模糊搜索"></u-input>
  97. <view class="b" @click="getCurDataList">搜索</view>
  98. </view>
  99. <scroll-view :scroll-y="true" class="popup-body">
  100. <view class="scoped-cust-list">
  101. <view v-for="(item, index) in popupDataList" :key="index" :class="form.customer_phone == item.phone ? 'scl-item cur' : 'scl-item'" @click="listItemHandle(item)">
  102. <view class="p1">{{item.name}}
  103. <u-icon
  104. class="u-m-l-5"
  105. :name="item.sex == 'male' ? 'man' : 'woman'"
  106. size="22"
  107. :color="item.sex == 'male' ? '#2080f0' : '#f85f69'"
  108. ></u-icon>
  109. </view>
  110. <view class="p2">{{item.phone}}
  111. <view class="s" v-if="item.realname">
  112. [{{ item.realname }}]
  113. </view>
  114. </view>
  115. <view class="p3">{{item.create_at}}</view>
  116. </view>
  117. </view>
  118. </scroll-view>
  119. <view class="popup-footer" style="position: fixed;bottom: 12rpx;">
  120. <u-button size="medium" @click="curPopupShow = false">关闭</u-button>
  121. <u-button size="medium" type="primary" @click="curPopupShow = false">确定</u-button>
  122. </view>
  123. </view>
  124. </u-popup>
  125. <u-popup v-model="curPopup2Show" mode="center" width="90%" height="100%">
  126. <view class="bwin-popup scoped-cur-popup">
  127. <view class="scp-header-input">
  128. <u-input class="input" type="number" v-model="curPopup2Keyword" placeholder="点这输入房源ID搜索"></u-input>
  129. <view class="b" @click="getCurData2List">搜索</view>
  130. </view>
  131. <scroll-view :scroll-y="true" class="popup-body">
  132. <view class="scoped-cust-list">
  133. <view v-for="(item, index) in popupData2List" :key="index" :class="form.house_id == item.id ? 'scl-item cur' : 'scl-item'" @click="roomHandle(item)">
  134. <view class="p1">[{{item.estate_name}}] {{item.title}}
  135. </view>
  136. <view class="p2">{{item.area}}m²-房号:<View class="red">{{ item.house_no }}</View>
  137. </view>
  138. <view class="p3"><View class="red">{{item.sale_name}}</View>{{item.create_at}}</view>
  139. </view>
  140. </view>
  141. </scroll-view>
  142. <view class="popup-footer" style="position: fixed;bottom: 12rpx;">
  143. <u-button size="medium" @click="curPopup2Show = false">关闭</u-button>
  144. <u-button size="medium" type="primary" @click="curPopup2Show = false">确定</u-button>
  145. </view>
  146. </view>
  147. </u-popup>
  148. </view>
  149. </template>
  150. <script>
  151. export default {
  152. data() {
  153. const userInfo = uni.getStorageSync('MD_userInfo2')
  154. return {
  155. curPopup2Show: false,
  156. curPopupShow: false,
  157. curPopupKeyword: '',
  158. curPopup2Keyword: '',
  159. popupDataList: [],
  160. popupData2List: [],
  161. brokerage_img: '',
  162. dealAtShow: false,
  163. birthdayShow: false,
  164. calendarMode: 'date',
  165. isEdit: false,
  166. form: {
  167. deal_item: '',
  168. house_no: '',
  169. house_type: '1',
  170. deal_clerk: userInfo.nickname,
  171. deal_type: '1',
  172. store_type: '其它',
  173. deal_at: '',
  174. customer_name: '',
  175. house_create: '',
  176. house_id: '',
  177. customer_phone: '',
  178. area: '',
  179. price: '',
  180. report_dept: '',
  181. discount: '',
  182. brokerage: '',
  183. rebate: '',
  184. brokerage_img: null,
  185. remark: null
  186. },
  187. submitButtonDisabled: true,
  188. rules: {
  189. deal_item: [
  190. {
  191. required: true,
  192. message: '成交楼盘不得为空',
  193. trigger: ['change', 'blur']
  194. },
  195. ],
  196. house_no: [
  197. {
  198. required: true,
  199. message: '成交房号不得为空',
  200. trigger: ['change', 'blur']
  201. },
  202. ],
  203. house_type: [
  204. {
  205. required: true,
  206. message: '房屋类型不得为空',
  207. trigger: ['change', 'blur']
  208. },
  209. ],
  210. deal_clerk: [
  211. {
  212. required: true,
  213. message: '成交店员不得为空',
  214. trigger: ['change', 'blur']
  215. },
  216. ],
  217. deal_type: [
  218. {
  219. required: true,
  220. message: '成交类型不得为空',
  221. trigger: ['change', 'blur']
  222. },
  223. ],
  224. store_type: [
  225. {
  226. required: true,
  227. message: '所属门店不得为空',
  228. trigger: ['change', 'blur']
  229. },
  230. ],
  231. deal_at: [
  232. {
  233. required: true,
  234. message: '成交日期不得为空',
  235. trigger: ['change', 'blur']
  236. },
  237. ],
  238. customer_name: [
  239. {
  240. required: true,
  241. message: '客户姓名不得为空',
  242. trigger: ['change', 'blur']
  243. },
  244. ],
  245. customer_phone: [
  246. {
  247. required: true,
  248. message: '客户手机号不得为空',
  249. trigger: ['change', 'blur']
  250. },
  251. // 11个字符判断
  252. {
  253. len: 11,
  254. message: '手机号格式不正确',
  255. trigger: ['change', 'blur']
  256. },
  257. ],
  258. area: [
  259. {
  260. required: true,
  261. message: '面积不得为空',
  262. trigger: ['change', 'blur']
  263. },
  264. ],
  265. price: [
  266. {
  267. required: true,
  268. message: '总价不得为空',
  269. trigger: ['change', 'blur']
  270. },
  271. ],
  272. report_dept: [
  273. {
  274. required: true,
  275. message: '报备渠道不得为空',
  276. trigger: ['change', 'blur']
  277. },
  278. ],
  279. discount: [
  280. {
  281. required: true,
  282. message: '折扣不得为空',
  283. trigger: ['change', 'blur']
  284. },
  285. ],
  286. brokerage: [
  287. {
  288. required: true,
  289. message: '佣金不得为空',
  290. trigger: ['change', 'blur']
  291. },
  292. ],
  293. },
  294. recordLevelList: [],
  295. propertySelectShow: false,
  296. propertySelectList: [],
  297. salerSelectShow: false,
  298. salerSelectList: [],
  299. submitModalShow: false,
  300. modalShow: false,
  301. modalContent: '',
  302. houseTypeList: [],
  303. dealTypeList: [],
  304. storeTypeList: [],
  305. };
  306. },
  307. onLoad(data) {
  308. const that = this
  309. const eventChannel = that.getOpenerEventChannel(); // that 需指向 this
  310. // 监听data事件,获取上一页面通过eventChannel.emit传送到当前页面的数据
  311. if (eventChannel.on) {
  312. eventChannel.on('data', data => {
  313. if (data) {
  314. that.form.deal_item = data.info.deal_item;
  315. that.form.house_no = data.info.house_no;
  316. that.form.house_type = data.info.house_type;
  317. that.form.deal_clerk = data.info.deal_clerk;
  318. that.form.deal_type = data.info.deal_type;
  319. that.form.store_type = data.info.store_type;
  320. that.form.deal_at = data.info.deal_at;
  321. that.form.customer_name = data.info.customer_name;
  322. that.form.house_create = data.info.house_create;
  323. that.form.house_id = data.info.house_id;
  324. that.form.customer_phone = data.info.customer_phone;
  325. that.form.area = String(data.info.area);
  326. that.form.price = String(data.info.price);
  327. that.form.report_dept = data.info.report_dept;
  328. that.form.discount = data.info.discount;
  329. that.form.brokerage = data.info.brokerage;
  330. that.form.rebate = data.info.rebate;
  331. that.brokerage_img = that.form.brokerage_img = data.info.brokerage_img;
  332. that.form.remark = data.info.remark;
  333. that.form.id = data.info.id;
  334. that.isEdit = true
  335. wx.setNavigationBarTitle({
  336. title: `编辑成交单-${data.info.deal_item}(${data.info.house_no})`
  337. })
  338. }
  339. })
  340. }
  341. },
  342. created () {
  343. const dictObj = uni.getStorageSync('MD_dict')
  344. this.houseTypeList = dictObj.trade_house_type || []
  345. this.dealTypeList = dictObj.trade_deal_type || []
  346. this.storeTypeList = dictObj.store_type || []
  347. },
  348. // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
  349. onReady() {
  350. this.$refs.uForm.setRules(this.rules);
  351. },
  352. methods: {
  353. listItemHandle (item) {
  354. let form = this.form
  355. form.customer_name = `${item.name}${item.sex === 'male' ? '女士' : '先生'}`
  356. form.customer_phone = item.phone
  357. this.form = {...form}
  358. },
  359. roomHandle (item) {
  360. let form = this.form
  361. form.house_id = item.id
  362. form.house_create = item.sale_name
  363. form.deal_item = item.estate_name
  364. form.house_no = item.house_no
  365. form.area = item.area
  366. this.form = {...form}
  367. },
  368. getCurDataList () {
  369. uni.api.cust.apicustomerlist({page_size: 100, phone: this.curPopupKeyword}).then(res => {
  370. let list = res.list || []
  371. this.popupDataList = [...list]
  372. })
  373. },
  374. getCurData2List () {
  375. uni.api.cust.apitradehouselist({page_size: 100, house_id: this.curPopup2Keyword}).then(res => {
  376. let list = res.list || []
  377. this.popupData2List = [...list]
  378. })
  379. },
  380. openCustPopup () {
  381. this.curPopupShow = true
  382. this.getCurDataList()
  383. },
  384. openRoomPopup () {
  385. this.curPopup2Show = true
  386. this.getCurData2List()
  387. },
  388. uploadImgHandle (bc) {
  389. uni.chooseImage({
  390. count: 1,
  391. sizeType: ['compressed'],
  392. success: function(res) {
  393. const filePath = res.tempFilePaths[0];
  394. let token = uni.getStorageSync('MD_token') || ''
  395. uni.uploadFile({
  396. url: uni.baseUrl + 'api/upload/cloud',
  397. filePath,
  398. name: 'upload',
  399. formData: {
  400. 'token': token
  401. },
  402. success: (f) => {
  403. const cData = JSON.parse(f.data)
  404. if (cData.errno === 0) {
  405. if (bc && typeof(bc) === 'function') bc(cData.data)
  406. } else {
  407. uni.$msg(cData.errmsg || `未知错误-${cData.errno}`)
  408. }
  409. }
  410. })
  411. }
  412. })
  413. },
  414. // 选择、验证、上传正面照片
  415. uploadbrokerageImgImage() {
  416. this.uploadImgHandle((d) => {
  417. this.form.brokerage_img = d.url
  418. // this.brokerage_img = d.pub_url
  419. this.brokerage_img = d.url
  420. })
  421. },
  422. openDealAtPopoup () {
  423. this.dealAtShow = true
  424. },
  425. dealAtChange (e) {
  426. this.form.deal_at = e.result || ''
  427. },
  428. openbirthdayPopoup () {
  429. this.birthdayShow = true
  430. },
  431. birthdayChange (e) {
  432. this.form.birthday = e.result || ''
  433. },
  434. // 选择所属项目回调
  435. propertySelectConfirm(e) {
  436. e.map((val, index) => {
  437. this.form.estate_id = val.value;
  438. this.form.estate_name = val.label;
  439. });
  440. },
  441. submitHandle() {
  442. const that = this
  443. console.log(that.form)
  444. this.$refs.uForm.validate(valid => {
  445. if (valid) {
  446. // 验证成功
  447. let apiStr = 'apitradeadd'
  448. let params = {
  449. deal_item: that.form.deal_item,
  450. house_no: that.form.house_no,
  451. house_type: that.form.house_type,
  452. deal_clerk: that.form.deal_clerk,
  453. deal_type: that.form.deal_type,
  454. store_type: that.form.store_type,
  455. deal_at: that.form.deal_at,
  456. customer_name: that.form.customer_name,
  457. house_create: that.form.house_create,
  458. house_id: that.form.house_id,
  459. customer_phone: that.form.customer_phone,
  460. price: that.form.price,
  461. area: that.form.area,
  462. report_dept: that.form.report_dept,
  463. discount: that.form.discount,
  464. brokerage: that.form.brokerage,
  465. rebate: that.form.rebate,
  466. brokerage_img: that.form.brokerage_img,
  467. birthday: that.form.birthday,
  468. remark: that.form.remark
  469. }
  470. if (params.house_type == 2) {
  471. if (!params.house_create) {
  472. uni.$msg('请选择房源录入创建人')
  473. return
  474. }
  475. } else {
  476. delete params.house_id
  477. delete params.house_create
  478. }
  479. if(that.isEdit) {
  480. apiStr = 'apitradeedit'
  481. params.id = that.form.id
  482. }
  483. uni.api.cust[apiStr](params).then(res => {
  484. if (that.isEdit) {
  485. uni.$msgConfirm('编辑成功', () => {
  486. uni.reLaunch({
  487. url: '/pages/trade/list'
  488. })
  489. }, () => {
  490. uni.reLaunch({
  491. url: '/pages/trade/list'
  492. })
  493. })
  494. } else {
  495. uni.$msgConfirm('添加成功,是否前往成交单列表?', () => {
  496. uni.reLaunch({
  497. url: '/pages/trade/list'
  498. })
  499. }, () => {
  500. const userInfo = uni.getStorageSync('MD_userInfo2')
  501. this.form = {
  502. deal_item: '',
  503. house_no: '',
  504. house_type: '1',
  505. deal_clerk: userInfo.nickname,
  506. deal_type: '1',
  507. store_type: '其它',
  508. deal_at: '',
  509. birthday: '',
  510. customer_name: '',
  511. house_create: '',
  512. house_id: '',
  513. customer_phone: '',
  514. area: '',
  515. price: '',
  516. report_dept: '',
  517. discount: '',
  518. brokerage: '',
  519. rebate: '',
  520. brokerage_img: null,
  521. remark: null
  522. }
  523. })
  524. }
  525. })
  526. } else {
  527. console.log('验证失败');
  528. }
  529. });
  530. },
  531. // 获取手机号
  532. getPhoneNumber: function(e) {
  533. // 点击获取手机号码按钮
  534. let _that = this;
  535. if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
  536. _that.$refs.uToast.show({
  537. title: '您可以在个人设置中再次绑定',
  538. type: 'warning'
  539. });
  540. setTimeout(() => {
  541. _that.reLunchUser();
  542. }, 1500);
  543. return; // 即用户拒绝授权
  544. }
  545. console.log(e.detail.errMsg);
  546. console.log(e.detail.iv);
  547. console.log(e.detail.encryptedData);
  548. let iv = e.detail.iv;
  549. let encryptedData = e.detail.encryptedData;
  550. // 不是登陆完第一时间授权
  551. wx.login({
  552. success(res) {
  553. if (res.code) {
  554. // 设置用户手机号
  555. _that.setUserPhoneNumber(encryptedData, iv, res.code);
  556. } else {
  557. this.$refs.uToast.show({
  558. title: res.errMsg,
  559. type: 'warning'
  560. });
  561. console.log('登录失败!' + res.errMsg);
  562. }
  563. }
  564. });
  565. },
  566. // 以下是工具函数
  567. // 关闭键盘
  568. hideKeyboard() {
  569. uni.hideKeyboard();
  570. },
  571. // 格式化日期的月份或天数的显示(小于10,在前面增加0)
  572. getFormatDate(value) {
  573. if (value == undefined || value == '') {
  574. return '';
  575. }
  576. var str = value;
  577. if (parseInt(value) < 10) {
  578. str = '0' + value;
  579. }
  580. return str;
  581. }
  582. }
  583. };
  584. </script>
  585. <style lang="scss">
  586. .page {
  587. padding: 20rpx;
  588. background-color: #ffffff;
  589. }
  590. .form {
  591. border-radius: 10rpx;
  592. padding: 0 40rpx;
  593. }
  594. .popup-body {
  595. box-sizing: border-box;
  596. .tips-title {
  597. font-size: $u-p;
  598. margin-bottom: 20rpx;
  599. }
  600. .tips-content {
  601. font-size: $u-p2;
  602. color: $u-tips-color;
  603. margin-bottom: 60rpx;
  604. }
  605. }
  606. .id_card {
  607. color: #606266;
  608. width: 100%;
  609. height: 350rpx;
  610. display: flex;
  611. flex-direction: column;
  612. align-items: center;
  613. justify-content: center;
  614. background-color: #f4f5f6;
  615. font-size: $u-p2;
  616. }
  617. .footer {
  618. position: absolute;
  619. text-align: center;
  620. bottom: 40rpx;
  621. font-size: $u-p2;
  622. .agreement {
  623. color: $u-type-error;
  624. }
  625. }
  626. .slot-content {
  627. font-size: 28rpx;
  628. color: $u-content-color;
  629. padding: 20rpx;
  630. }
  631. .scoped-input-floor {
  632. position: absolute;
  633. left: 0;
  634. top: 0;
  635. width: 100%;
  636. height: 100%;
  637. background: transparent;
  638. z-index: 9;
  639. }
  640. .scoped-input-label-tips {
  641. position: absolute;
  642. left: 0;
  643. bottom: -20rpx;
  644. color: #f00;
  645. }
  646. .scoped-cur-popup {
  647. position: relative;
  648. height: 100%;
  649. padding-bottom: 100rpx;
  650. .popup-body {
  651. box-sizing: border-box;
  652. border-bottom: 1PX solid #dcdcdc;
  653. }
  654. .scp-header-input {
  655. position: fixed;
  656. width: 90%;
  657. display: flex;
  658. border-bottom: 1PX solid #dcdcdc;
  659. .input {
  660. flex: 1;
  661. padding-left: 20rpx;
  662. height: 80rpx;
  663. .u-input__input {
  664. height: 80rpx;
  665. }
  666. }
  667. .b {
  668. width: 200rpx;
  669. height: 80rpx;
  670. line-height: 80rpx;
  671. background: #2d8cf0;
  672. color: #fff;
  673. text-align: center;
  674. margin-left: 20rpx;
  675. }
  676. }
  677. }
  678. .scoped-cust-list {
  679. .scl-item {
  680. border-bottom: 1PX solid #f2f2f2;
  681. padding: 20rpx 0;
  682. &.cur {
  683. background: #369af7;
  684. border-radius: 10rpx;
  685. .p1, .p2, .p3 {
  686. color: #fff;
  687. }
  688. }
  689. .p1 {
  690. font-size: 28rpx;
  691. color: #333;
  692. }
  693. .p2 {
  694. font-size: 28rpx;
  695. color: #666;
  696. .s {
  697. display: inline-block;
  698. }
  699. }
  700. .red {
  701. display: inline-block;
  702. color: #f00;
  703. }
  704. .p3 {
  705. color: #999;
  706. font-size: 24rpx;
  707. }
  708. }
  709. }
  710. </style>