multipleexpress.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833
  1. <template>
  2. <div class="content">
  3. <backindex :title="titlename"></backindex>
  4. <!-- 寄件地址 -->
  5. <div class="jjinfo">
  6. <div>
  7. <div class="jj">
  8. <div class="jjaddress">
  9. <p>寄</p>
  10. <div>
  11. <p v-if="jjname==''||jjname==' '">寄件地址</p>
  12. <p v-else>{{jjname}} {{jjInfo.senderMobile}}</p>
  13. <p v-if="jjadd==''||jjadd==' '" @click="addtype(1)">填写寄件地址</p>
  14. <p v-else @click="addtype(1,1)">{{jjadd}}</p>
  15. </div>
  16. </div>
  17. <div class="dzb" @click="link(1)">
  18. <img src="../assets/images/addlist.png" alt="">
  19. <p>地址簿</p>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. <!-- 收件地址 -->
  25. <div class="sjinfo" v-for="(item,index) in sjList">
  26. <div>
  27. <div class="top"><p>{{index+1}}</p></div>
  28. <div class="sj">
  29. <div class="sjaddress">
  30. <p style="background: #fa9c22;">收</p>
  31. <div>
  32. <p v-if="item.sjname==''||item.sjname==' '">收件地址</p>
  33. <p v-else>{{item.sjname}} {{item.receiveMobile}}</p>
  34. <p v-if="item.sjadd==''||item.sjadd==' '" @click="addtype(2)">填写收件地址</p>
  35. <p v-else @click="addtype(2,index)">{{item.sjadd}}</p>
  36. </div>
  37. </div>
  38. <div class="dzb cz">
  39. <div>
  40. <img src="../assets/images/whrite.png" alt="">
  41. <p @click="addtype(2,index)">编辑</p>
  42. </div>
  43. <div>
  44. <img src="../assets/images/del.png" alt="">
  45. <p @click="del(index)">删除</p>
  46. </div>
  47. </div>
  48. </div>
  49. <div class="sj" style="border-top:.01rem solid #ededed">
  50. <div class="sjaddress">
  51. <van-field v-model="item.wpinfo" name="物品信息" label="物品信息" placeholder="请填写" @click="wpShow(index)" readonly/>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. <!-- 添加收件人 -->
  57. <div class="add_per">
  58. <div>
  59. <div class="add_per_info">
  60. <p style="background: #fa9c22;">收</p>
  61. <p @click="link(2)">+添加收件人</p>
  62. </div>
  63. </div>
  64. </div>
  65. <!-- 快递公司 -->
  66. <div class="kdshow">
  67. <van-field readonly clickable name="picker" :value="expressInfoShow" label="快递公司" placeholder="请选择快递公司" @click="showPicker = true" />
  68. <van-popup v-model="showPicker" position="bottom">
  69. <van-picker
  70. show-toolbar
  71. :columns="columns"
  72. @confirm="onConfirm"
  73. @cancel="showPicker = false"
  74. />
  75. </van-popup>
  76. </div>
  77. <!-- 我同意 -->
  78. <div class="check">
  79. <van-checkbox icon-size=".24rem" v-model="check" shape="">我同意《电子运单契约条款》</van-checkbox>
  80. </div>
  81. <!-- 寄件 -->
  82. <div class="btn-jj">
  83. <van-button type="info" color="#00c4b8" @click="save()">立即寄件</van-button>
  84. </div>
  85. <!-- 填写地址 -->
  86. <van-popup round v-model="addshow" class="whrite_add" closeable @closed="close" :close-on-click-overlay="false">
  87. <div>
  88. <p style="font-size: 16px;text-align: center;margin-bottom: 16px;">{{title}}</p>
  89. <van-form @submit="onSubmit">
  90. <van-field v-model="name" name="姓名" label="姓名" placeholder="请输入姓名" :rules="[{ required: false}]"/>
  91. <van-field v-model="phone" maxlength="11" type="number" name="手机" label="手机" placeholder="请输入手机" :rules="[{ required: false}]"/>
  92. <van-field v-model="telPhone" maxlength="20" type="text" name="座机" label="座机" placeholder="请输入座机" :rules="[{ required: false}]"/>
  93. <van-field readonly clickable name="area" :value="city" label="省市区" placeholder="请选择省市区" @click="areashow = true" :rules="[{ required: false}]"/>
  94. <van-field v-model="address" name="详细地址" maxlength="50" label="详细地址" placeholder="请输入详细地址" :rules="[{ required: false}]"/>
  95. <div style="margin-top: 16px;">
  96. <van-button color="#00c4b8" block type="info" native-type="submit">确定</van-button>
  97. </div>
  98. </van-form>
  99. </div>
  100. </van-popup>
  101. <!-- 城市选择 -->
  102. <van-popup v-model="areashow" position="bottom">
  103. <van-area
  104. :area-list="areaList"
  105. @confirm="onConfirm3"
  106. @cancel="areashow = false"
  107. />
  108. </van-popup>
  109. <!-- 选择物品 -->
  110. <van-popup v-model="wp" round closeable>
  111. <div class="wpinfo">
  112. <div>
  113. <van-field name="radio" label="包裹类型">
  114. <template #input>
  115. <van-radio-group v-model="radio" direction="horizontal">
  116. <van-radio name="物品" shape="square">物品</van-radio>
  117. <van-radio name="文件" shape="square">文件</van-radio>
  118. </van-radio-group>
  119. </template>
  120. </van-field>
  121. <van-field v-if="radio == '物品'" name="stepper" label="预估重量(/KG)">
  122. <template #input>
  123. <van-stepper v-model="kg" />
  124. </template>
  125. </van-field>
  126. <van-field v-if="radio == '文件'" name="stepper" label="文件数量(/件)">
  127. <template #input>
  128. <van-stepper v-model="num" />
  129. </template>
  130. </van-field>
  131. <div style="margin-top: 16px;">
  132. <van-button color="#00c4b8" block type="info" @click="wpconform">确定</van-button>
  133. </div>
  134. </div>
  135. </div>
  136. </van-popup>
  137. </div>
  138. </template>
  139. <script>
  140. import areaList from "@/script/areas.js"
  141. import { Stepper,Toast,Dialog } from 'vant';
  142. export default{
  143. data(){
  144. return {
  145. titlename:"批量寄",
  146. addshow:false,
  147. name:"",
  148. phone:"",
  149. telPhone:"",
  150. city:"",
  151. address:"",
  152. areashow:false,
  153. index:"",
  154. title:"",
  155. jjname:"",
  156. jjadd:"",
  157. sjname:"",
  158. sjadd:"",
  159. check:false,
  160. wpinfo:"",//物品信息
  161. wp:false,
  162. kg:1,
  163. num:1,
  164. radio:"物品",
  165. showPicker:false,//快递
  166. value:"",
  167. expressInfoShow:"",//快递公司展示
  168. expressPhone:"",//快递公司电话传值
  169. expressInfo:"",//快递公司传值
  170. columns:[],
  171. sjList:[],
  172. wpIndex:'',//物品下标
  173. jjInfo:{},//寄件信息
  174. }
  175. },
  176. created:function(){
  177. this.isLogin();
  178. this.userId = localStorage.getItem("userId");
  179. //寄件地址
  180. if(JSON.stringify(this.$store.state.jjInfo)!='{}'){
  181. this.jjname = this.$store.state.jjInfo.jjname
  182. this.jjadd = this.$store.state.jjInfo.jjadd
  183. this.jjInfo = this.$store.state.jjInfo
  184. }else{ //获取默认地址
  185. this.getDefaultAddress()
  186. }
  187. //收件地址
  188. if(JSON.stringify(this.$store.state.sjList)!='[]'){
  189. this.sjList = this.$store.state.sjList
  190. }
  191. //快递公司列表
  192. this.getLogisticsList()
  193. },
  194. methods:{
  195. // 选择快递公司
  196. onConfirm(e){
  197. this.expressInfoShow=e.text
  198. this.expressInfo=e.id
  199. this.expressPhone=e.phone
  200. this.showPicker=false
  201. },
  202. // 选择物品确定
  203. onConfirm1(e){//确定
  204. this.wptype=e
  205. this.wpshow=false
  206. console.log(e)
  207. },
  208. // 选择付款方式确定
  209. onConfirm2(e){//确定
  210. this.pricetype=e
  211. this.priceshow=false
  212. console.log(e)
  213. },
  214. // 填写地址确定
  215. onConfirm3(e){//确定
  216. this.city=e[0].name+' '+e[1].name+' '+e[2].name
  217. this.areashow=false
  218. console.log(e)
  219. },
  220. // 寄件地址1与收件地址2
  221. addtype(obj,index){
  222. this.index=obj
  223. if(obj==1){
  224. this.title="寄件地址"
  225. }
  226. if(obj==2){
  227. this.title="收件地址"
  228. this.wpIndex = index
  229. this.name = this.sjList[index].receiver
  230. this.phone = this.sjList[index].receiverPhone
  231. this.telPhone = this.sjList[index].receiveMobile
  232. this.city = this.sjList[index].receiveAddr
  233. this.address = this.sjList[index].receiveAddress
  234. }
  235. this.addshow=true
  236. },
  237. // 填写地址确定
  238. onSubmit(){
  239. if(this.name == '' || this.name == undefined ){
  240. Toast('请填写姓名')
  241. return
  242. }
  243. // if(this.phone == '' || this.phone == undefined ){
  244. // Toast('请填写手机')
  245. // return
  246. // }
  247. // let regPhone = new RegExp(this.$store.state.regPhone)
  248. // if(!regPhone.test(this.phone)){
  249. // Toast('手机号格式不正确')
  250. // return
  251. // }
  252. if ((this.phone == '' || this.phone == undefined) && (this.telPhone == '' || this.telPhone == undefined)) {
  253. Toast('请填写手机号或者座机号')
  254. return
  255. }
  256. if(this.phone != '' && this.phone != undefined){
  257. let regPhone = new RegExp(this.$store.state.regPhone)
  258. if (!regPhone.test(this.phone)) {
  259. Toast('手机号格式不正确')
  260. return
  261. }
  262. }
  263. if(this.city == '' || this.city == undefined ){
  264. Toast('请选择省市区')
  265. return
  266. }
  267. if(this.address == '' || this.address == undefined ){
  268. Toast('请填写详细地址')
  269. return
  270. }
  271. if(this.index==1){
  272. this.jjname=this.name+' '+this.phone
  273. this.jjadd=this.city+' '+this.address
  274. let jjInfo = {}
  275. jjInfo.jjname = this.jjname
  276. jjInfo.jjadd = this.jjadd
  277. jjInfo.sender = this.name
  278. jjInfo.senderPhone = this.phone
  279. jjInfo.senderMobile = this.telPhone
  280. jjInfo.sendAddr = this.city
  281. jjInfo.sendAddress = this.address
  282. this.$store.commit("getJjInfo",jjInfo)
  283. }
  284. if(this.index==2){
  285. this.sjname=this.name+' '+this.phone
  286. this.sjadd=this.city+' '+this.address
  287. this.$store.state.sjList[this.wpIndex].sjname = this.sjname
  288. this.$store.state.sjList[this.wpIndex].sjadd = this.sjadd
  289. this.$store.state.sjList[this.wpIndex].receiver = this.name
  290. this.$store.state.sjList[this.wpIndex].receiverPhone = this.phone
  291. this.$store.state.sjList[this.wpIndex].receiveMobile = this.telPhone
  292. this.$store.state.sjList[this.wpIndex].receiveAddr = this.city
  293. this.$store.state.sjList[this.wpIndex].receiveAddress = this.address
  294. this.sjList = this.$store.state.sjList
  295. }
  296. this.addshow=false
  297. this.name=""
  298. this.phone=""
  299. this.telPhone=""
  300. this.city=""
  301. this.address=""
  302. },
  303. close(){
  304. this.name=""
  305. this.phone=""
  306. this.telPhone=""
  307. this.city=""
  308. this.address=""
  309. },
  310. // 地址簿跳转
  311. link(obj){
  312. if(this.sjList.length > 19){
  313. Toast('添加收件人最多添加20人')
  314. return
  315. }
  316. this.$router.push({path:'/MultipleAddressbook',query:{active:obj}})
  317. },
  318. // 物品选择
  319. wpconform(){
  320. this.sjList[this.wpIndex].itemType = this.radio
  321. this.sjList[this.wpIndex].weight =this.kg
  322. this.sjList[this.wpIndex].itemNum =this.num
  323. if(this.radio == '物品'){
  324. this.sjList[this.wpIndex].wpinfo=this.radio+'-'+this.kg+'kg'
  325. }
  326. if(this.radio == '文件'){
  327. this.sjList[this.wpIndex].wpinfo=this.radio+'-'+this.num+'件'
  328. }
  329. this.wp=false
  330. },
  331. //添加收件人
  332. // addSj(){
  333. // this.sjList.push({})
  334. // },
  335. //删除收件人
  336. del(index){
  337. Dialog.confirm({ title: '', message: '确定删除吗', })
  338. .then(() => {
  339. this.sjList.splice(index,1)
  340. })
  341. .catch(() => {
  342. // on cancel
  343. })
  344. },
  345. //物品展示
  346. wpShow(index){
  347. this.wp = true
  348. this.wpIndex = index
  349. this.radio = this.sjList[index].itemType
  350. this.kg = this.sjList[index].weight
  351. this.num = this.sjList[index].itemNum
  352. },
  353. save(){
  354. if(this.jjname == '' || this.jjname == undefined ||
  355. this.jjadd == '' || this.jjadd == undefined){
  356. Toast('请填写寄件人信息')
  357. return
  358. }
  359. if(this.sjList== undefined || this.sjList.length <= 0){
  360. Toast('请填写收件人信息')
  361. return
  362. }
  363. if(this.expressInfo == '' || this.expressInfo == undefined){
  364. Toast('请选择快递公司')
  365. return
  366. }
  367. if(this.check == false){
  368. Toast('请点击同意《电子运单契约条款》')
  369. return
  370. }
  371. //循环sjList信息
  372. let receiverMap = []
  373. let receiverPhoneMap = []
  374. let receiveAddrMap = []
  375. let receiveAddressMap = []
  376. let itemTypeMap = []
  377. let weightMap = []
  378. let itemNumMap = []
  379. //暂时无值
  380. let payWayMap = []
  381. let mainTypeMap = []
  382. let expressTypeMap = []
  383. let declaredValueMap = []
  384. let itemRemarkMap = []
  385. for(var i=0;i<this.sjList.length;i++){
  386. receiverMap.push(this.sjList[i].receiver)
  387. receiverPhoneMap.push(this.sjList[i].receiverPhone)
  388. receiveAddrMap.push(this.sjList[i].receiveAddr)
  389. receiveAddressMap.push(this.sjList[i].receiveAddress)
  390. itemTypeMap.push(this.sjList[i].itemType)
  391. weightMap.push(this.sjList[i].weight)
  392. itemNumMap.push(this.sjList[i].itemNum)
  393. //暂时无值
  394. payWayMap.push('月结')
  395. mainTypeMap.push('公司件')
  396. expressTypeMap.push('外部件')
  397. declaredValueMap.push('0')
  398. itemRemarkMap.push(' ')
  399. }
  400. Toast.loading({
  401. message: '保存中...',
  402. forbidClick: true,
  403. duration:0
  404. });
  405. this.$http.post(this.$store.state.host+"/sendMail/saveBatchMail.do",{userId:this.userId,
  406. sender:this.jjInfo.sender,
  407. senderPhone:this.jjInfo.senderPhone,
  408. sendAddr:this.jjInfo.sendAddr,
  409. sendAddress:this.jjInfo.sendAddress,
  410. expressInfo:this.expressInfo,
  411. expressPhone:this.expressPhone,
  412. receiverMap:receiverMap.toString(),
  413. receiverPhoneMap:receiverPhoneMap.toString(),
  414. receiveAddrMap:receiveAddrMap.toString(),
  415. receiveAddressMap:receiveAddressMap.toString(),
  416. itemTypeMap:itemTypeMap.toString(),
  417. weightMap:weightMap.toString(),
  418. itemNumMap:itemNumMap.toString(),
  419. payWayMap:payWayMap.toString(),
  420. mainTypeMap:mainTypeMap.toString(),
  421. expressTypeMap:expressTypeMap.toString(),
  422. declaredValueMap:declaredValueMap.toString(),
  423. itemRemarkMap:itemRemarkMap.toString()
  424. },{emulateJSON:true})
  425. .then(res=>{
  426. //发送成功
  427. if(res.body.msg=='success'){
  428. Toast("下单成功,快递员将尽快上门取件!")
  429. let that = this;
  430. setTimeout(function(){
  431. that.$router.push({path:'/'})
  432. },1000)
  433. }else if(res.body.msg != '' && res.body.msg != 'success'){
  434. Toast(res.body.msg);
  435. }else{
  436. Toast("寄件失败");
  437. }
  438. },res=>{
  439. //发送失败
  440. Toast("网络错误");
  441. })
  442. Toast.clear()
  443. }
  444. },
  445. computed:{
  446. areaList(){
  447. return areaList
  448. }
  449. }
  450. }
  451. </script>
  452. <style scoped lang="less">
  453. .content{
  454. .jjinfo{
  455. font-size: .24rem;
  456. color: #999999;
  457. padding: .33rem;
  458. word-break: break-word;
  459. >div{
  460. background: white;
  461. border-radius: .05rem;
  462. padding: .1rem .2rem;
  463. .jj{
  464. display: flex;
  465. justify-content: space-between;
  466. padding: .15rem 0rem;
  467. .jjaddress{
  468. display: flex;
  469. padding: .1rem 0rem;
  470. >p{
  471. font-size: .24rem;
  472. font-weight: bold;
  473. display: inline-block;
  474. width:.5rem;
  475. height: .5rem;
  476. background: #00c4b8;
  477. text-align: center;
  478. line-height: .5rem;
  479. color: white;
  480. border-radius: 50%;
  481. margin-right: .3rem;
  482. }
  483. div{
  484. //font-weight: bold;
  485. width: 4.2rem;
  486. p:nth-of-type(1){
  487. font-size: .24rem;
  488. color: #333;
  489. margin-bottom: .2rem;
  490. }
  491. p:nth-of-type(2){
  492. font-size: .24rem;
  493. }
  494. }
  495. }
  496. .dzb{
  497. text-align: center;
  498. border-left: .01rem solid #ededed;
  499. min-width: 1.4rem;
  500. img{
  501. width:.39rem;
  502. height: .42rem;
  503. padding-top: .2rem;
  504. }
  505. p{
  506. font-size: .2rem;
  507. }
  508. }
  509. }
  510. }
  511. }
  512. .sjinfo{
  513. font-size: .24rem;
  514. color: #999999;
  515. padding: 0rem .33rem .33rem .33rem;
  516. word-break: break-word; >div{ background: white; border-radius: .05rem; padding: .3rem .2rem .1rem;
  517. position: relative;
  518. .top{
  519. background: url(../assets/images/top.png) no-repeat left top;
  520. background-size: 100% 100%;
  521. position: absolute;
  522. left: 0px;
  523. top: 0px;
  524. width: .6rem;
  525. height: .5rem;
  526. color: white;
  527. text-align: center;
  528. p{
  529. position: relative;
  530. right: .1rem;
  531. top: .01rem;
  532. }
  533. }
  534. .sj{
  535. display: flex;
  536. justify-content: space-between;
  537. padding: .15rem 0rem;
  538. .sjaddress{
  539. width: 100%;
  540. display: flex;
  541. padding: .1rem 0rem;
  542. /deep/.van-field{
  543. padding: 0rem;
  544. .van-field__value{
  545. input{
  546. text-align: right;
  547. padding: 0rem;
  548. }
  549. }
  550. }
  551. >p{
  552. font-size: .24rem;
  553. font-weight: bold;
  554. display: inline-block;
  555. width:.5rem;
  556. height: .5rem;
  557. background: #00c4b8;
  558. text-align: center;
  559. line-height: .5rem;
  560. color: white;
  561. border-radius: 50%;
  562. margin-right: .2rem;
  563. }
  564. div{
  565. //font-weight: bold;
  566. //width: 4.2rem;
  567. p:nth-of-type(1){
  568. font-size: .24rem;
  569. color: #333;
  570. margin-bottom: .2rem;
  571. }
  572. p:nth-of-type(2){
  573. font-size: .24rem;
  574. }
  575. }
  576. }
  577. .dzb{
  578. text-align: center;
  579. border-left: .01rem solid #ededed;
  580. //padding-left: .3rem;
  581. min-width: 1.4rem;
  582. >img{
  583. width:.39rem;
  584. height: .42rem;
  585. padding-top: .2rem;
  586. }
  587. >p{
  588. font-size: .2rem;
  589. }
  590. }
  591. .cz{
  592. display: flex;
  593. justify-content: center;
  594. padding-left: 0rem;
  595. padding-top: .2rem;
  596. div{
  597. text-align: center;
  598. padding: 0rem .05rem 0rem;
  599. img{
  600. width: .26rem;
  601. height: .26rem;
  602. }
  603. p {
  604. font-size:.1rem;
  605. color: #999999;
  606. }
  607. }
  608. }
  609. }
  610. }
  611. }
  612. .add_per{
  613. div{
  614. font-size: .3rem;
  615. color: #999999;
  616. font-weight: bold;
  617. padding: 0rem .33rem;
  618. margin-bottom: .3rem;
  619. border-radius: .05rem;
  620. .add_per_info{
  621. background: white;
  622. display: flex;
  623. color: #333;
  624. padding: .33rem .2rem;
  625. p:nth-of-type(1){
  626. font-size: 0.24rem;
  627. font-weight: bold;
  628. display: inline-block;
  629. width: 0.5rem;
  630. height: 0.5rem;
  631. text-align: center;
  632. line-height: 0.5rem;
  633. color: white;
  634. border-radius: 50%;
  635. margin-right: 0.2rem;
  636. }
  637. }
  638. }
  639. }
  640. .kdshow{
  641. font-size: .3rem;
  642. padding: .3rem 0px;
  643. width: 6.84rem;
  644. background: white;
  645. border-radius: .05rem;
  646. margin: 0rem auto .2rem;
  647. /deep/.van-cell{
  648. padding: 0px .3rem;
  649. overflow: unset;
  650. input{
  651. text-align: right;
  652. height: .5rem;
  653. padding-right: .25rem;
  654. }
  655. }
  656. /deep/.van-cell::after{
  657. content: "";
  658. display: inline-block;
  659. border-right: .01rem solid #b0b0b0;
  660. border-bottom: .01rem solid #b0b0b0;
  661. transform: rotate(-45deg);
  662. left: unset;
  663. position: absolute;
  664. right: .3rem;
  665. bottom: .15rem;
  666. width: .2rem;
  667. height: .2rem;
  668. }
  669. }
  670. .choose{
  671. font-size: .3rem;
  672. color: #999999;
  673. font-weight: bold;
  674. padding: 0rem .33rem;
  675. margin-bottom: .3rem;
  676. >div{
  677. background: white;
  678. padding: .3rem .3rem;
  679. border-radius: .05rem;
  680. .type_wp{
  681. display: flex;
  682. justify-content: center;
  683. div{
  684. flex: 1;
  685. text-align: center;
  686. p:nth-of-type(2){
  687. color: #333;
  688. margin-top: .2rem;
  689. font-size: .36rem;
  690. //position: relative;
  691. }
  692. }
  693. div:nth-of-type(1){
  694. border-right: .01rem solid #ededed;
  695. p:nth-of-type(2):after{
  696. content: "";
  697. display: inline-block;
  698. width: .15rem;
  699. height: .15rem;
  700. border-bottom: .01rem solid #999;
  701. border-right: .01rem solid #999;
  702. transform: rotate(45deg);
  703. margin-left: .15rem;
  704. position: relative;
  705. top: -.08rem;
  706. }
  707. }
  708. }
  709. .type_price{
  710. display: flex;
  711. justify-content: center;
  712. border-top: .01rem solid #ededed;
  713. margin-top: .3rem;
  714. padding-top: .3rem;
  715. div{
  716. flex: 1;
  717. text-align: center;
  718. p:nth-of-type(2){
  719. color: #333;
  720. margin-top: .2rem;
  721. font-size: .36rem;
  722. }
  723. }
  724. div:nth-of-type(1){
  725. border-right: .01rem solid #ededed;
  726. p:nth-of-type(2):after{
  727. content: "";
  728. display: inline-block;
  729. width: .15rem;
  730. height: .15rem;
  731. border-bottom: .01rem solid #999;
  732. border-right: .01rem solid #999;
  733. transform: rotate(45deg);
  734. margin-left: .15rem;
  735. position: relative;
  736. top: -.08rem;
  737. }
  738. }
  739. }
  740. }
  741. }
  742. .bz{
  743. padding: .33rem;
  744. font-size: .3rem;
  745. /deep/.van-field__value{
  746. input{
  747. text-align: right;
  748. }
  749. }
  750. }
  751. .check{
  752. font-size: .24rem;
  753. text-align: center;
  754. /deep/.van-checkbox{
  755. justify-content: center;
  756. .van-checkbox__label{
  757. color: #999;
  758. }
  759. }
  760. }
  761. .btn-jj{
  762. padding: .33rem;
  763. button{
  764. width: 100%;
  765. }
  766. }
  767. }
  768. .whrite_add{
  769. width: 6.6rem;
  770. padding: .4rem .2rem;
  771. /deep/.van-field__value{
  772. input{
  773. text-align: right;
  774. }
  775. }
  776. /deep/.van-popup__close-icon--top-right{
  777. top: 5px;
  778. right: 10px;
  779. }
  780. }
  781. .wpinfo{
  782. width: 6.6rem;
  783. padding: .2rem;
  784. /deep/.van-field{
  785. .van-field__label{
  786. width:2.5rem;
  787. }
  788. .van-field__value{
  789. input{
  790. width:64px
  791. }
  792. }
  793. }
  794. }
  795. </style>