create.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741
  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. deal_at: '',
  173. customer_name: '',
  174. house_create: '',
  175. house_id: '',
  176. customer_phone: '',
  177. area: '',
  178. price: '',
  179. report_dept: '',
  180. discount: '',
  181. brokerage: '',
  182. rebate: '',
  183. brokerage_img: null,
  184. remark: null
  185. },
  186. submitButtonDisabled: true,
  187. rules: {
  188. deal_item: [
  189. {
  190. required: true,
  191. message: '成交楼盘不得为空',
  192. trigger: ['change', 'blur']
  193. },
  194. ],
  195. house_no: [
  196. {
  197. required: true,
  198. message: '成交房号不得为空',
  199. trigger: ['change', 'blur']
  200. },
  201. ],
  202. house_type: [
  203. {
  204. required: true,
  205. message: '房屋类型不得为空',
  206. trigger: ['change', 'blur']
  207. },
  208. ],
  209. deal_clerk: [
  210. {
  211. required: true,
  212. message: '成交店员不得为空',
  213. trigger: ['change', 'blur']
  214. },
  215. ],
  216. deal_type: [
  217. {
  218. required: true,
  219. message: '成交类型不得为空',
  220. trigger: ['change', 'blur']
  221. },
  222. ],
  223. deal_at: [
  224. {
  225. required: true,
  226. message: '成交日期不得为空',
  227. trigger: ['change', 'blur']
  228. },
  229. ],
  230. customer_name: [
  231. {
  232. required: true,
  233. message: '客户姓名不得为空',
  234. trigger: ['change', 'blur']
  235. },
  236. ],
  237. customer_phone: [
  238. {
  239. required: true,
  240. message: '客户手机号不得为空',
  241. trigger: ['change', 'blur']
  242. },
  243. // 11个字符判断
  244. {
  245. len: 11,
  246. message: '手机号格式不正确',
  247. trigger: ['change', 'blur']
  248. },
  249. ],
  250. area: [
  251. {
  252. required: true,
  253. message: '面积不得为空',
  254. trigger: ['change', 'blur']
  255. },
  256. ],
  257. price: [
  258. {
  259. required: true,
  260. message: '总价不得为空',
  261. trigger: ['change', 'blur']
  262. },
  263. ],
  264. report_dept: [
  265. {
  266. required: true,
  267. message: '报备渠道不得为空',
  268. trigger: ['change', 'blur']
  269. },
  270. ],
  271. discount: [
  272. {
  273. required: true,
  274. message: '折扣不得为空',
  275. trigger: ['change', 'blur']
  276. },
  277. ],
  278. brokerage: [
  279. {
  280. required: true,
  281. message: '佣金不得为空',
  282. trigger: ['change', 'blur']
  283. },
  284. ],
  285. },
  286. recordLevelList: [],
  287. propertySelectShow: false,
  288. propertySelectList: [],
  289. salerSelectShow: false,
  290. salerSelectList: [],
  291. submitModalShow: false,
  292. modalShow: false,
  293. modalContent: '',
  294. houseTypeList: [],
  295. dealTypeList: [],
  296. storeTypeList: [],
  297. };
  298. },
  299. onLoad(data) {
  300. const that = this
  301. const eventChannel = that.getOpenerEventChannel(); // that 需指向 this
  302. // 监听data事件,获取上一页面通过eventChannel.emit传送到当前页面的数据
  303. if (eventChannel.on) {
  304. eventChannel.on('data', data => {
  305. if (data) {
  306. that.form.deal_item = data.info.deal_item;
  307. that.form.house_no = data.info.house_no;
  308. that.form.house_type = data.info.house_type;
  309. that.form.deal_clerk = data.info.deal_clerk;
  310. that.form.deal_type = data.info.deal_type;
  311. that.form.deal_at = data.info.deal_at;
  312. that.form.customer_name = data.info.customer_name;
  313. that.form.house_create = data.info.house_create;
  314. that.form.house_id = data.info.house_id;
  315. that.form.customer_phone = data.info.customer_phone;
  316. that.form.area = String(data.info.area);
  317. that.form.price = String(data.info.price);
  318. that.form.report_dept = data.info.report_dept;
  319. that.form.discount = data.info.discount;
  320. that.form.brokerage = data.info.brokerage;
  321. that.form.rebate = data.info.rebate;
  322. that.brokerage_img = that.form.brokerage_img = data.info.brokerage_img;
  323. that.form.remark = data.info.remark;
  324. that.form.id = data.info.id;
  325. that.isEdit = true
  326. wx.setNavigationBarTitle({
  327. title: `编辑成交单-${data.info.deal_item}(${data.info.house_no})`
  328. })
  329. }
  330. })
  331. }
  332. },
  333. created () {
  334. const dictObj = uni.getStorageSync('MD_dict')
  335. this.houseTypeList = dictObj.trade_house_type || []
  336. this.dealTypeList = dictObj.trade_deal_type || []
  337. },
  338. // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
  339. onReady() {
  340. this.$refs.uForm.setRules(this.rules);
  341. },
  342. methods: {
  343. listItemHandle (item) {
  344. let form = this.form
  345. form.customer_name = `${item.name}${item.sex === 'male' ? '女士' : '先生'}`
  346. form.customer_phone = item.phone
  347. this.form = {...form}
  348. },
  349. roomHandle (item) {
  350. let form = this.form
  351. form.house_id = item.id
  352. form.house_create = item.sale_name
  353. form.deal_item = item.estate_name
  354. form.house_no = item.house_no
  355. form.area = item.area
  356. this.form = {...form}
  357. },
  358. getCurDataList () {
  359. uni.api.cust.apicustomerlist({page_size: 100, phone: this.curPopupKeyword}).then(res => {
  360. let list = res.list || []
  361. this.popupDataList = [...list]
  362. })
  363. },
  364. getCurData2List () {
  365. uni.api.cust.apitradehouselist({page_size: 100, house_id: this.curPopup2Keyword}).then(res => {
  366. let list = res.list || []
  367. this.popupData2List = [...list]
  368. })
  369. },
  370. openCustPopup () {
  371. this.curPopupShow = true
  372. this.getCurDataList()
  373. },
  374. openRoomPopup () {
  375. this.curPopup2Show = true
  376. this.getCurData2List()
  377. },
  378. uploadImgHandle (bc) {
  379. uni.chooseImage({
  380. count: 1,
  381. sizeType: ['compressed'],
  382. success: function(res) {
  383. const filePath = res.tempFilePaths[0];
  384. let token = uni.getStorageSync('MD_token') || ''
  385. uni.uploadFile({
  386. url: uni.baseUrl + 'api/upload/cloud',
  387. filePath,
  388. name: 'upload',
  389. formData: {
  390. 'token': token
  391. },
  392. success: (f) => {
  393. const cData = JSON.parse(f.data)
  394. if (cData.errno === 0) {
  395. if (bc && typeof(bc) === 'function') bc(cData.data)
  396. } else {
  397. uni.$msg(cData.errmsg || `未知错误-${cData.errno}`)
  398. }
  399. }
  400. })
  401. }
  402. })
  403. },
  404. // 选择、验证、上传正面照片
  405. uploadbrokerageImgImage() {
  406. this.uploadImgHandle((d) => {
  407. this.form.brokerage_img = d.url
  408. // this.brokerage_img = d.pub_url
  409. this.brokerage_img = d.url
  410. })
  411. },
  412. openDealAtPopoup () {
  413. this.dealAtShow = true
  414. },
  415. dealAtChange (e) {
  416. this.form.deal_at = e.result || ''
  417. },
  418. openbirthdayPopoup () {
  419. this.birthdayShow = true
  420. },
  421. birthdayChange (e) {
  422. this.form.birthday = e.result || ''
  423. },
  424. // 选择所属项目回调
  425. propertySelectConfirm(e) {
  426. e.map((val, index) => {
  427. this.form.estate_id = val.value;
  428. this.form.estate_name = val.label;
  429. });
  430. },
  431. submitHandle() {
  432. const that = this
  433. console.log(that.form)
  434. this.$refs.uForm.validate(valid => {
  435. if (valid) {
  436. // 验证成功
  437. let apiStr = 'apitradeadd'
  438. let params = {
  439. deal_item: that.form.deal_item,
  440. house_no: that.form.house_no,
  441. house_type: that.form.house_type,
  442. deal_clerk: that.form.deal_clerk,
  443. deal_type: that.form.deal_type,
  444. deal_at: that.form.deal_at,
  445. customer_name: that.form.customer_name,
  446. house_create: that.form.house_create,
  447. house_id: that.form.house_id,
  448. customer_phone: that.form.customer_phone,
  449. price: that.form.price,
  450. area: that.form.area,
  451. report_dept: that.form.report_dept,
  452. discount: that.form.discount,
  453. brokerage: that.form.brokerage,
  454. rebate: that.form.rebate,
  455. brokerage_img: that.form.brokerage_img,
  456. birthday: that.form.birthday,
  457. remark: that.form.remark
  458. }
  459. if (params.house_type == 2) {
  460. if (!params.house_create) {
  461. uni.$msg('请选择房源录入创建人')
  462. return
  463. }
  464. } else {
  465. delete params.house_id
  466. delete params.house_create
  467. }
  468. if(that.isEdit) {
  469. apiStr = 'apitradeedit'
  470. params.id = that.form.id
  471. }
  472. uni.api.cust[apiStr](params).then(res => {
  473. if (that.isEdit) {
  474. uni.$msgConfirm('编辑成功', () => {
  475. uni.reLaunch({
  476. url: '/pages/trade/list'
  477. })
  478. }, () => {
  479. uni.reLaunch({
  480. url: '/pages/trade/list'
  481. })
  482. })
  483. } else {
  484. uni.$msgConfirm('添加成功,是否前往成交单列表?', () => {
  485. uni.reLaunch({
  486. url: '/pages/trade/list'
  487. })
  488. }, () => {
  489. const userInfo = uni.getStorageSync('MD_userInfo2')
  490. this.form = {
  491. deal_item: '',
  492. house_no: '',
  493. house_type: '1',
  494. deal_clerk: userInfo.nickname,
  495. deal_type: '1',
  496. deal_at: '',
  497. birthday: '',
  498. customer_name: '',
  499. house_create: '',
  500. house_id: '',
  501. customer_phone: '',
  502. area: '',
  503. price: '',
  504. report_dept: '',
  505. discount: '',
  506. brokerage: '',
  507. rebate: '',
  508. brokerage_img: null,
  509. remark: null
  510. }
  511. })
  512. }
  513. })
  514. } else {
  515. console.log('验证失败');
  516. }
  517. });
  518. },
  519. // 获取手机号
  520. getPhoneNumber: function(e) {
  521. // 点击获取手机号码按钮
  522. let _that = this;
  523. if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
  524. _that.$refs.uToast.show({
  525. title: '您可以在个人设置中再次绑定',
  526. type: 'warning'
  527. });
  528. setTimeout(() => {
  529. _that.reLunchUser();
  530. }, 1500);
  531. return; // 即用户拒绝授权
  532. }
  533. console.log(e.detail.errMsg);
  534. console.log(e.detail.iv);
  535. console.log(e.detail.encryptedData);
  536. let iv = e.detail.iv;
  537. let encryptedData = e.detail.encryptedData;
  538. // 不是登陆完第一时间授权
  539. wx.login({
  540. success(res) {
  541. if (res.code) {
  542. // 设置用户手机号
  543. _that.setUserPhoneNumber(encryptedData, iv, res.code);
  544. } else {
  545. this.$refs.uToast.show({
  546. title: res.errMsg,
  547. type: 'warning'
  548. });
  549. console.log('登录失败!' + res.errMsg);
  550. }
  551. }
  552. });
  553. },
  554. // 以下是工具函数
  555. // 关闭键盘
  556. hideKeyboard() {
  557. uni.hideKeyboard();
  558. },
  559. // 格式化日期的月份或天数的显示(小于10,在前面增加0)
  560. getFormatDate(value) {
  561. if (value == undefined || value == '') {
  562. return '';
  563. }
  564. var str = value;
  565. if (parseInt(value) < 10) {
  566. str = '0' + value;
  567. }
  568. return str;
  569. }
  570. }
  571. };
  572. </script>
  573. <style lang="scss">
  574. .page {
  575. padding: 20rpx;
  576. background-color: #ffffff;
  577. }
  578. .form {
  579. border-radius: 10rpx;
  580. padding: 0 40rpx;
  581. }
  582. .popup-body {
  583. box-sizing: border-box;
  584. .tips-title {
  585. font-size: $u-p;
  586. margin-bottom: 20rpx;
  587. }
  588. .tips-content {
  589. font-size: $u-p2;
  590. color: $u-tips-color;
  591. margin-bottom: 60rpx;
  592. }
  593. }
  594. .id_card {
  595. color: #606266;
  596. width: 100%;
  597. height: 350rpx;
  598. display: flex;
  599. flex-direction: column;
  600. align-items: center;
  601. justify-content: center;
  602. background-color: #f4f5f6;
  603. font-size: $u-p2;
  604. }
  605. .footer {
  606. position: absolute;
  607. text-align: center;
  608. bottom: 40rpx;
  609. font-size: $u-p2;
  610. .agreement {
  611. color: $u-type-error;
  612. }
  613. }
  614. .slot-content {
  615. font-size: 28rpx;
  616. color: $u-content-color;
  617. padding: 20rpx;
  618. }
  619. .scoped-input-floor {
  620. position: absolute;
  621. left: 0;
  622. top: 0;
  623. width: 100%;
  624. height: 100%;
  625. background: transparent;
  626. z-index: 9;
  627. }
  628. .scoped-input-label-tips {
  629. position: absolute;
  630. left: 0;
  631. bottom: -20rpx;
  632. color: #f00;
  633. }
  634. .scoped-cur-popup {
  635. position: relative;
  636. height: 100%;
  637. padding-bottom: 100rpx;
  638. .popup-body {
  639. box-sizing: border-box;
  640. border-bottom: 1PX solid #dcdcdc;
  641. }
  642. .scp-header-input {
  643. position: fixed;
  644. width: 90%;
  645. display: flex;
  646. border-bottom: 1PX solid #dcdcdc;
  647. .input {
  648. flex: 1;
  649. padding-left: 20rpx;
  650. height: 80rpx;
  651. .u-input__input {
  652. height: 80rpx;
  653. }
  654. }
  655. .b {
  656. width: 200rpx;
  657. height: 80rpx;
  658. line-height: 80rpx;
  659. background: #2d8cf0;
  660. color: #fff;
  661. text-align: center;
  662. margin-left: 20rpx;
  663. }
  664. }
  665. }
  666. .scoped-cust-list {
  667. .scl-item {
  668. border-bottom: 1PX solid #f2f2f2;
  669. padding: 20rpx 0;
  670. &.cur {
  671. background: #369af7;
  672. border-radius: 10rpx;
  673. .p1, .p2, .p3 {
  674. color: #fff;
  675. }
  676. }
  677. .p1 {
  678. font-size: 28rpx;
  679. color: #333;
  680. }
  681. .p2 {
  682. font-size: 28rpx;
  683. color: #666;
  684. .s {
  685. display: inline-block;
  686. }
  687. }
  688. .red {
  689. display: inline-block;
  690. color: #f00;
  691. }
  692. .p3 {
  693. color: #999;
  694. font-size: 24rpx;
  695. }
  696. }
  697. }
  698. </style>