my_car_detail.vue 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536
  1. <template>
  2. <view :class="showAutograph?'indexFixed container':'container '" >
  3. <view v-if="tranInfo != undefined" class="introduce-section">
  4. <view class="price-box">
  5. <view class="title">{{tranInfo.tranNo}}</view>
  6. <view class="title-tip">
  7. <text class="price-tip">¥</text>
  8. <text class="price">{{tranInfo.price}}</text>
  9. <text class="price-tip">元/吨</text>
  10. </view>
  11. </view>
  12. <view class="bot-row">
  13. <view class='cu-tag radius line-orange'>{{tranInfo.sender}}</view>
  14. <view class='cu-tag radius line-orange'>{{tranInfo.senderPhone}}</view>
  15. </view>
  16. <view v-if='tranInfo.total' class="bot-row">
  17. <view class='cu-tag radius line-orange'>剩余量: {{numFilter(tranInfo.total - tranInfo.tranCount)}}吨</view>
  18. <view class='cu-tag radius line-orange'>总量: {{tranInfo.total}}吨</view>
  19. </view>
  20. </view>
  21. <view v-if="tranInfo != undefined" class="detail-desc">
  22. <view class="d-header">
  23. <text>货源信息</text>
  24. </view>
  25. <view class="c-list">
  26. <view class="c-row b-b">
  27. <text class="tit">收货人</text>
  28. <view class="con-list">
  29. <text>{{tranInfo.receiver}}</text>
  30. </view>
  31. </view>
  32. <view class="c-row b-b">
  33. <text class="tit">收货人电话</text>
  34. <view class="con-list">
  35. <text>{{tranInfo.receiverPhone}}</text>
  36. </view>
  37. </view>
  38. <view class="c-row b-b">
  39. <text class="tit">货名</text>
  40. <view class="con-list">
  41. <text>{{tranInfo.goodsName}}</text>
  42. </view>
  43. </view>
  44. <view class="c-row b-b">
  45. <text class="tit">起始地</text>
  46. <view class="con-list">
  47. <text>{{tranInfo.startPlace}}</text>
  48. </view>
  49. </view>
  50. <view class="c-row b-b">
  51. <text class="tit">目的地</text>
  52. <view class="con-list">
  53. <text>{{tranInfo.endPlace}}</text>
  54. </view>
  55. </view>
  56. <view v-if='tranInfo.total' class="c-row b-b">
  57. <text class="tit">剩余量</text>
  58. <view class="con-list">
  59. <text>{{numFilter(tranInfo.total - tranInfo.tranCount)}}</text>
  60. </view>
  61. </view>
  62. </view>
  63. <view v-if='car.driver' class="d-header">
  64. <text>承运人:{{car.driver}}</text>
  65. </view>
  66. <view class="c-list">
  67. <view class="c-row b-b">
  68. <text class="tit">车牌号</text>
  69. <view class="con-list">{{car.carNo}}</view>
  70. </view>
  71. <view class="cu-bar bg-white">
  72. <view class="action">
  73. 司机身份证(正、反面)照片
  74. </view>
  75. </view>
  76. <view class="cu-form-group">
  77. <view class="grid col-2 grid-square flex-sub">
  78. <view class="bg-img" v-if="personNoImg != ''" @tap="ViewImage" :data-url="personNoImg">
  79. <image :src="personNoImg" mode="aspectFit"></image>
  80. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="0">
  81. <text class='cuIcon-close'></text>
  82. </view>
  83. </view>
  84. <view class="bg-img" v-if="personNoImg1 != ''" @tap="ViewImage" :data-url="personNoImg1">
  85. <image :src="personNoImg1" mode="aspectFit"></image>
  86. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="1">
  87. <text class='cuIcon-close'></text>
  88. </view>
  89. </view>
  90. <view class="solids" @tap="ChooseImagePerson" v-if="personNoImg == '' || personNoImg1 == ''">
  91. <text class='cuIcon-cameraadd'></text>
  92. </view>
  93. </view>
  94. </view>
  95. <view class="c-row b-b">
  96. <text class="tit">承运人身份证号</text>
  97. <view class="con-list">
  98. <input placeholder="请填写" name="input" v-model="driverNo" @input="driverNoInput"></input>
  99. </view>
  100. </view>
  101. <view class="c-row b-b">
  102. <text class="tit">承运人联系地址</text>
  103. <view class="con-list">
  104. <input placeholder="请填写" name="input" v-model="driverAddress" @input="driverAddressInput"></input>
  105. </view>
  106. </view>
  107. <view class="c-row b-b">
  108. <text class="tit">承运人微信号</text>
  109. <view class="con-list">
  110. <input placeholder="请填写" type="mobile" name="input" v-model="wechatNo" @input="wechatNoInput"></input>
  111. </view>
  112. </view>
  113. <view class="c-row b-b">
  114. <text class="tit">承运人电话</text>
  115. <view class="con-list">{{car.driverPhone}}</view>
  116. </view>
  117. <view class="c-row b-b">
  118. <text class="tit">价格</text>
  119. <view class="con-list">{{car.price}}</view>
  120. </view>
  121. <view class="cu-bar bg-white ">
  122. <view class="action">
  123. 司机驾驶证(主页、副页)照片
  124. </view>
  125. </view>
  126. <view class="cu-form-group">
  127. <view class="grid col-2 grid-square flex-sub">
  128. <view class="bg-img" v-if="driverNoImg != ''" @tap="ViewImage" :data-url="driverNoImg">
  129. <image :src="driverNoImg" mode="aspectFit"></image>
  130. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="2">
  131. <text class='cuIcon-close'></text>
  132. </view>
  133. </view>
  134. <view class="bg-img" v-if="driverNoImg1 != ''" @tap="ViewImage" :data-url="driverNoImg1">
  135. <image :src="driverNoImg1" mode="aspectFit"></image>
  136. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="3">
  137. <text class='cuIcon-close'></text>
  138. </view>
  139. </view>
  140. <view class="solids" @tap="ChooseImageDriver" v-if="driverNoImg == '' || driverNoImg1 == ''">
  141. <text class='cuIcon-cameraadd'></text>
  142. </view>
  143. </view>
  144. </view>
  145. <view class="cu-bar bg-white ">
  146. <view class="action">
  147. 行车证(主页、副页)照片
  148. </view>
  149. </view>
  150. <view class="cu-form-group">
  151. <view class="grid col-2 grid-square flex-sub">
  152. <view class="bg-img" v-if="carNoImg != ''" @tap="ViewImage" :data-url="carNoImg">
  153. <image :src="carNoImg" mode="aspectFit"></image>
  154. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="4">
  155. <text class='cuIcon-close'></text>
  156. </view>
  157. </view>
  158. <view class="bg-img" v-if="carNoImg1 != ''" @tap="ViewImage" :data-url="carNoImg1">
  159. <image :src="carNoImg1" mode="aspectFit"></image>
  160. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="5">
  161. <text class='cuIcon-close'></text>
  162. </view>
  163. </view>
  164. <view class="solids" @tap="ChooseImageCar" v-if="carNoImg == '' || carNoImg1 == ''">
  165. <text class='cuIcon-cameraadd'></text>
  166. </view>
  167. </view>
  168. </view>
  169. </view>
  170. <view class="d-header">
  171. <text>运费结算账户信息</text>
  172. </view>
  173. <view class="c-list">
  174. <view class="cu-bar bg-white">
  175. <view class="action">
  176. 收款人身份证(正、反面)照片
  177. </view>
  178. </view>
  179. <view class="cu-form-group">
  180. <view class="grid col-2 grid-square flex-sub">
  181. <view class="bg-img" v-if="recPersonImg != ''" @tap="ViewImage" :data-url="recPersonImg">
  182. <image :src="recPersonImg" mode="aspectFit"></image>
  183. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="9">
  184. <text class='cuIcon-close'></text>
  185. </view>
  186. </view>
  187. <view class="bg-img" v-if="recPersonImg1 != ''" @tap="ViewImage" :data-url="recPersonImg1">
  188. <image :src="recPersonImg1" mode="aspectFit"></image>
  189. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="10">
  190. <text class='cuIcon-close'></text>
  191. </view>
  192. </view>
  193. <view class="solids" @tap="ChooseImageRecPerson" v-if="recPersonImg == '' || recPersonImg1 == ''">
  194. <text class='cuIcon-cameraadd'></text>
  195. </view>
  196. </view>
  197. </view>
  198. <view class="c-row b-b">
  199. <text class="tit">收款账户名称</text>
  200. <view class="con-list">
  201. <input placeholder="请填写" name="input" v-model="recPerson" @input="recPersonInput"></input>
  202. </view>
  203. <button class='cu-btn bg-green shadow' @click="getHistoryBank">选择银行卡</button>
  204. </view>
  205. <view class="c-row b-b">
  206. <text class="tit">收款人身份证号</text>
  207. <view class="con-list">
  208. <input placeholder="请填写" name="input" v-model="recPersonNo" @input="recPersonNoInput"></input>
  209. </view>
  210. </view>
  211. <view class="cu-bar bg-white">
  212. <view class="action">
  213. 银行卡(正、反面)上传
  214. </view>
  215. </view>
  216. <view class="cu-form-group">
  217. <view class="grid col-2 grid-square flex-sub">
  218. <view class="bg-img" v-if="bankImg != ''" @tap="ViewImage" :data-url="bankImg">
  219. <image :src="bankImg" mode="aspectFit"></image>
  220. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="7">
  221. <text class='cuIcon-close'></text>
  222. </view>
  223. </view>
  224. <view class="bg-img" v-if="bankImg1 != ''" @tap="ViewImage" :data-url="bankImg1">
  225. <image :src="bankImg1" mode="aspectFit"></image>
  226. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="8">
  227. <text class='cuIcon-close'></text>
  228. </view>
  229. </view>
  230. <view class="solids" @tap="ChooseImageBank" v-if="bankImg == '' || bankImg1 == ''">
  231. <text class='cuIcon-cameraadd'></text>
  232. </view>
  233. </view>
  234. </view>
  235. <view class="c-row b-b">
  236. <text class="tit">开户行</text>
  237. <view class="con-list">
  238. <input placeholder="请填写" name="input" v-model="bankAccount" @input="bankAccountInput"></input>
  239. </view>
  240. </view>
  241. <view v-if="bankPhone" class="c-row b-b">
  242. <text class="tit">开户行客服电话</text>
  243. <view class="con-list">
  244. {{bankPhone}}
  245. </view>
  246. </view>
  247. <view class="c-row b-b">
  248. <text class="tit">开户支行</text>
  249. <view v-if="zhihangStatus" class="con-list">
  250. <picker @change="bankNameChange" :value="bankNameIndex" :range="bankNameList">
  251. <view class="picker">
  252. {{bankNameIndex>-1?bankNameList[bankNameIndex]:'点击选择支行'}}
  253. </view>
  254. </picker>
  255. </view>
  256. <view v-else class="con-list">
  257. <input placeholder="请填写" name="input" v-model="bankNameZhihang" @input="bankNameZhihangInput"></input>
  258. </view>
  259. <button v-if="zhihangStatus" class='cu-btn bg-green shadow' @click="changeZhihang">手动填写</button>
  260. <button v-else class='cu-btn bg-green shadow' @click="changeZhihang">自动识别</button>
  261. </view>
  262. <view class="c-row b-b">
  263. <text class="tit">银行卡号</text>
  264. <view class="con-list">
  265. <input placeholder="请填写" name="input" v-model="bankNo" @input="bankNoInput"></input>
  266. </view>
  267. </view>
  268. <view class="c-row b-b">
  269. <text class="tit">合同内容</text>
  270. <view class="con-list">
  271. <button class='cu-btn bg-green shadow' @click="downLoadContract" >查看</button>
  272. </view>
  273. </view>
  274. <view class="cu-bar bg-white ">
  275. <view class="action">
  276. 我的签名
  277. </view>
  278. </view>
  279. <!-- <button class='cu-btn bg-green shadow' @click="showGraph">手写签名</button> -->
  280. <view class="cu-form-group">
  281. <view class="grid col-2 grid-square flex-sub">
  282. <view class="bg-img" v-if="signImg != ''" @tap="ViewImageSign" :data-url="signImg">
  283. <image :src="signImg" mode="aspectFit"></image>
  284. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="6">
  285. <text class='cuIcon-close'></text>
  286. </view>
  287. </view>
  288. <view class="solids" @tap="ChooseSignImage" v-if="signImg == ''">
  289. <text class='cuIcon-cameraadd'></text>
  290. </view>
  291. </view>
  292. </view>
  293. </view>
  294. </view>
  295. <view class="cu-modal" :class="modalName=='MyBankModal'?'show':''" @tap="hideModal">
  296. <scroll-view scroll-y class="cu-dialog" :style="myBankStyle" @tap.stop="">
  297. <view class="cu-list menu text-center" >
  298. <view class="cu-item" v-for="(item,index) in bankInfo" :key="index" @click="myBankClick(item)">
  299. <label class="flex justify-between align-center flex-sub">
  300. <view class="flex-sub">{{item.secondBank+" ****"+item.bankNo4+" "+item.accountName}}</view>
  301. </label>
  302. </view>
  303. </view>
  304. </scroll-view>
  305. </view>
  306. <view class="wrapper" v-if="showAutograph">
  307. <view class="handCenter">
  308. <canvas class="handWriting" disable-scroll="true" @touchstart="uploadScaleStart" @touchmove="uploadScaleMove"
  309. @touchend="uploadScaleEnd" @tap="mouseDown" canvas-id="handWriting">
  310. </canvas>
  311. </view>
  312. <view class="buttons">
  313. <button @click="retDraw" class="delBtn">重写</button>
  314. <button @click="subCanvas" class="subBtn">保存</button>
  315. </view>
  316. </view>
  317. <view v-if="car.status == 25" class="page-bottom">
  318. <view class="action-btn-group">
  319. <button type="primary" class=" action-btn no-border buy-now-btn" @click="wanshan">签订运输合同</button>
  320. </view>
  321. </view>
  322. <view class="cu-modal" :class="modalName=='RadioModal'?'show':''" @tap="hideModal">
  323. <scroll-view scroll-y class="cu-dialog" style="height: 800rpx;" @tap.stop="">
  324. <radio-group class="block" @change="RadioChange">
  325. <view class="cu-list menu text-left">
  326. <view class="cu-item" v-for="(item,index) in tranInfo" :key="index">
  327. <label class="flex justify-between align-center flex-sub">
  328. <view class="flex-sub">{{item.tranNo}}(剩余量:{{item.total-item.tranCount}})</view>
  329. <radio class="round" :class="tranNo==item.tranNo?'checked':''" :checked="tranNo==item.tranNo?true:false"
  330. :value="index"></radio>
  331. </label>
  332. </view>
  333. </view>
  334. </radio-group>
  335. </scroll-view>
  336. </view>
  337. </view>
  338. </template>
  339. <script>
  340. import uploadImage from '@/components/ossutil/uploadFile.js';
  341. import Handwriting from '@/components/ossutil/signature.js';
  342. import {
  343. mapState
  344. } from 'vuex';
  345. export default {
  346. data() {
  347. return {
  348. car: {
  349. id:'',
  350. tranNo:'',
  351. tranCount: 0,
  352. price:0,
  353. driverPhone:'',
  354. },
  355. bankInfo:[],
  356. tranInfo:undefined,
  357. driver:'',
  358. driverPhone:'',
  359. price:0,
  360. carNo:'',
  361. tranCount: 0,
  362. sendText:'获取验证码',
  363. sendDisabled: false,
  364. verifyCode:'',
  365. modalName: null,
  366. tranNo: '请选择货源单号',
  367. exsitCount:0,
  368. personNoImg:'',
  369. personNoImg1:'',
  370. driverNoImg:'',
  371. driverNoImg1:'',
  372. carNoImg:'',
  373. carNoImg1:'',
  374. bankImg:'',
  375. bankImg1:'',
  376. signImg:'',
  377. showAutograph: false, //签名弹框是否显示
  378. ctx: [], //绘图图像
  379. points: [], //路径点集合
  380. signature: '',
  381. bankAccount:'',
  382. bankNo:'',
  383. bankNameZhihang:'',
  384. bankNameList:'',
  385. bankPhone:'',
  386. bankNameIndex:-1,
  387. zhihangStatus:true,
  388. recPersonImg:'',
  389. recPersonImg1:'',
  390. recPerson:'',
  391. recPersonNo:'',
  392. wechatNo:'',
  393. driverNo:'',
  394. driverAddress:'',
  395. myBankStyle:'',
  396. bankNo4:'',
  397. lineColor:'black',
  398. slideValue:50,
  399. handwriting:'',
  400. selectColor:'black',
  401. color:'',
  402. };
  403. },
  404. onShow() {
  405. },
  406. onLoad(options) {
  407. const that = this
  408. uni.showLoading({
  409. title: '正在加载',
  410. mask:true
  411. })
  412. that.$api.request('tran', 'getCarDetailInfo', {
  413. sendCarNo: options.sendCarNo
  414. }, failres => {
  415. that.$api.msg(failres.errmsg)
  416. uni.hideLoading()
  417. }).then(res => {
  418. that.car = res.data
  419. that.personNoImg = that.car.personNoImg
  420. that.personNoImg1 = that.car.personNoImg1
  421. that.driverNoImg = that.car.driverNoImg
  422. that.driverNoImg1 = that.car.driverNoImg1
  423. that.carNoImg = that.car.carNoImg
  424. that.carNoImg1 = that.car.carNoImg1
  425. that.tranInfo = res.data.tranInfo
  426. that.bankNo = res.data.bankNo
  427. that.bankAccount = res.data.bankAccount
  428. that.signImg = res.data.signImg
  429. that.recPersonImg = res.data.recPersonImg
  430. that.recPersonImg1 = res.data.recPersonImg1
  431. that.driverNo = res.data.driverNo
  432. that.driverAddress = res.data.driverAddress
  433. that.wechatNo = res.data.wechatNo
  434. uni.hideLoading()
  435. })
  436. },
  437. computed: {
  438. ...mapState(['hasLogin','userInfo'])
  439. },
  440. methods: {
  441. numFilter (value) {
  442. if(!value){
  443. return 0
  444. }
  445. // 截取当前数据到小数点后两位
  446. let realVal = parseFloat(value).toFixed(2)
  447. return realVal
  448. },
  449. ChooseSignImage() {
  450. this.handwriting = new Handwriting({
  451. lineColor: this.lineColor,
  452. slideValue: this.slideValue, // 0, 25, 50, 75, 100
  453. canvasName: 'handWriting',
  454. })
  455. this.showAutograph = true
  456. },
  457. uploadScaleStart(event){
  458. this.handwriting.uploadScaleStart(event)
  459. },
  460. uploadScaleMove(event){
  461. this.handwriting.uploadScaleMove(event)
  462. },
  463. uploadScaleEnd(event){
  464. this.handwriting.uploadScaleEnd(event)
  465. },
  466. retDraw() {
  467. this.handwriting.retDraw()
  468. },
  469. subCanvas(){
  470. this.handwriting.saveCanvas().then(res=>{
  471. let that = this;
  472. uploadImage(res, 'signImg/',
  473. result => {
  474. that.signImg = result
  475. that.showAutograph = false
  476. uni.hideLoading();
  477. }
  478. )
  479. }).catch(err=>{
  480. console.log(err);
  481. });
  482. },
  483. myBankClick(item){
  484. this.modalName = null
  485. this.bankNo = item.secondAccountNo
  486. this.bankAccount = item.secondBank
  487. this.bankNameZhihang = item.secondBankBranch
  488. this.recPerson = item.accountName
  489. this.recPersonNo = item.recPersonNo
  490. this.recPersonImg = item.recPersonImg
  491. this.recPersonImg1 = item.recPersonImg1
  492. this.bankNo4 = item.bankNo4
  493. this.bankImg = item.bankImg
  494. this.bankImg1 = item.bankImg1
  495. this.zhihangStatus = false
  496. },
  497. hideModal(e) {
  498. this.modalName = null
  499. },
  500. downLoadContract(){
  501. var that = this
  502. uni.showLoading({
  503. title: '正在加载',
  504. mask:true
  505. })
  506. uni.downloadFile({
  507. url: that.car.tranContractPdf,
  508. success: function (res) {
  509. var filePath = res.tempFilePath;
  510. uni.openDocument({
  511. filePath: filePath,
  512. success: function (res) {
  513. uni.hideLoading()
  514. }
  515. });
  516. },
  517. })
  518. },
  519. changeZhihang(){
  520. this.zhihangStatus = !this.zhihangStatus
  521. },
  522. bankNameChange(e) {
  523. this.bankNameIndex = e.detail.value
  524. this.bankNameZhihang = this.bankNameList[this.bankNameIndex]
  525. },
  526. driverAddressInput(e) {
  527. this.driverAddress = e.detail.value
  528. },
  529. driverNoInput(e) {
  530. this.driverNo = e.detail.value
  531. },
  532. wechatNoInput(e) {
  533. this.wechatNo = e.detail.value
  534. },
  535. bankNoInput(e) {
  536. this.bankNo = e.detail.value
  537. },
  538. recPersonNoInput(e) {
  539. this.recPersonNo = e.detail.value
  540. },
  541. recPersonInput(e) {
  542. this.recPerson = e.detail.value
  543. },
  544. bankAccountInput(e) {
  545. this.bankAccount = e.detail.value
  546. },
  547. bankNameZhihangInput(e) {
  548. this.bankNameZhihang = e.detail.value
  549. },
  550. getHistoryBank(){
  551. const that = this
  552. uni.showLoading({
  553. title: '正在加载',
  554. mask:true
  555. })
  556. that.$api.request('tran', 'getHistoryBank', failres => {
  557. that.$api.msg(failres.errmsg)
  558. uni.hideLoading()
  559. }).then(res => {
  560. that.bankInfo = res.data
  561. if(that.bankInfo.length == 0){
  562. that.$api.msg('暂无历史银行卡');
  563. uni.hideLoading()
  564. return
  565. }
  566. var height = that.bankInfo.length * 100
  567. var width = 500
  568. that.myBankStyle = "height:"+height+"rpx;width:" + width+"rpx"
  569. that.modalName = 'MyBankModal'
  570. uni.hideLoading()
  571. })
  572. },
  573. wanshan(){
  574. const that = this
  575. if (!that.personNoImg || !that.personNoImg1) {
  576. that.$api.msg('请上传身份证正、反面照片(2张)');
  577. return
  578. }
  579. if (!that.driverNoImg || !that.driverNoImg1) {
  580. that.$api.msg('请上传驾驶证主、副页照片(2张)');
  581. return
  582. }
  583. if (!that.carNoImg || !that.carNoImg1) {
  584. that.$api.msg('请上传行车证主、副页照片(2张)');
  585. return
  586. }
  587. if (!that.bankImg || !that.bankImg1) {
  588. that.$api.msg('请上传收款人银行卡正、反面照片(2张)');
  589. return
  590. }
  591. if (!that.recPersonImg || !that.recPersonImg1) {
  592. that.$api.msg('请上传收款人身份证正、反面照片(2张)');
  593. return
  594. }
  595. if (!that.signImg) {
  596. that.$api.msg('请手写签名');
  597. return
  598. }
  599. if (!that.bankAccount) {
  600. that.$api.msg('请填写开户行');
  601. return
  602. }
  603. if (!that.bankNameZhihang) {
  604. that.$api.msg('请填写开户支行');
  605. return
  606. }
  607. if (!that.bankNo) {
  608. that.$api.msg('请填写银行卡号');
  609. return
  610. }
  611. if (!that.recPerson) {
  612. that.$api.msg('请填写收款账户名称');
  613. return
  614. }
  615. if (!that.recPersonNo) {
  616. that.$api.msg('请填写收款人身份证号');
  617. return
  618. }
  619. if (!that.driverNo) {
  620. that.$api.msg('请填写承运人身份证号');
  621. return
  622. }
  623. if (!that.driverAddress) {
  624. that.$api.msg('请填写承运人联系地址');
  625. return
  626. }
  627. if (!that.wechatNo) {
  628. that.$api.msg('请填写承运人微信号');
  629. return
  630. }
  631. uni.showLoading({
  632. title: '正在加载',
  633. mask:true
  634. })
  635. that.$api.request('tran', 'wanshan', {
  636. id: that.car.id,
  637. personNoImg:that.personNoImg,
  638. personNoImg1:that.personNoImg1,
  639. driverNoImg:that.driverNoImg,
  640. driverNoImg1:that.driverNoImg1,
  641. carNoImg:that.carNoImg,
  642. carNoImg1:that.carNoImg1,
  643. bankImg:that.bankImg,
  644. bankImg1:that.bankImg1,
  645. bankNo:that.bankNo,
  646. bankAccount:that.bankAccount,
  647. signImg:that.signImg,
  648. bankNameZhihang:that.bankNameZhihang,
  649. recPerson:that.recPerson,
  650. recPersonNo:that.recPersonNo,
  651. recPersonImg:that.recPersonImg,
  652. recPersonImg1:that.recPersonImg1,
  653. driverNo:that.driverNo,
  654. driverAddress:that.driverAddress,
  655. wechatNo:that.wechatNo
  656. }, failres => {
  657. that.$api.msg(failres.errmsg)
  658. uni.hideLoading()
  659. }).then(res => {
  660. that.car.status = 13
  661. that.$api.msg('签订成功')
  662. uni.hideLoading()
  663. })
  664. },
  665. ChooseImageBank() {
  666. var that = this
  667. uni.showLoading({
  668. title: '正在识别',
  669. mask:true
  670. })
  671. uni.chooseImage({
  672. count: 1, //默认9
  673. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  674. sourceType: ['album','camera'], //从相册选择
  675. success: (res) => {
  676. //上传图片
  677. uploadImage(res.tempFilePaths[0], 'bankImg/',
  678. result => {
  679. if(that.bankImg == undefined){
  680. that.bankImg = ''
  681. }
  682. if (that.bankImg.length != 0) {
  683. that.bankImg1 = result
  684. uni.hideLoading()
  685. } else {
  686. that.bankImg = result
  687. that.$api.request('tran', 'bankShibie', {
  688. bankImg: result
  689. }, failres => {
  690. that.$api.msg(failres.errmsg)
  691. uni.hideLoading()
  692. }).then(res => {
  693. that.bankAccount = res.data.bankName
  694. that.bankNo = res.data.bankNo
  695. that.bankNameList = res.data.bankNameZhihang
  696. that.bankPhone = res.data.bankPhone
  697. that.$api.msg('请核对开户行、支行和银行卡号')
  698. uni.hideLoading()
  699. })
  700. }
  701. }
  702. )
  703. }
  704. });
  705. },
  706. ChooseImagePerson() {
  707. const that = this
  708. uni.showLoading({
  709. title: '正在识别',
  710. mask:true
  711. })
  712. uni.chooseImage({
  713. count: 1, //默认9
  714. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  715. sourceType: ['album','camera'], //从相册选择
  716. success: (res) => {
  717. //上传图片
  718. //图片路径可自行修改
  719. uploadImage(res.tempFilePaths[0], 'personNoImg/',
  720. result => {
  721. if (this.personNoImg.length != 0) {
  722. this.personNoImg1 = result
  723. uni.hideLoading()
  724. } else {
  725. this.personNoImg = result
  726. that.$api.request('tran', 'personShibie', {
  727. personImg: result,
  728. type:"driver"
  729. }, failres => {
  730. that.$api.msg(failres.errmsg)
  731. uni.hideLoading()
  732. }).then(res => {
  733. that.driver = res.data.driver
  734. that.driverNo = res.data.driverNo
  735. that.driverAddress = res.data.driverAddress
  736. that.$api.msg('请核对身份信息')
  737. uni.hideLoading()
  738. })
  739. }
  740. }
  741. )
  742. }
  743. });
  744. },
  745. ChooseImageRecPerson() {
  746. var that = this
  747. uni.showLoading({
  748. title: '正在识别',
  749. mask:true
  750. })
  751. uni.chooseImage({
  752. count: 1, //默认9
  753. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  754. sourceType: ['album','camera'], //从相册选择
  755. success: (res) => {
  756. //上传图片
  757. uploadImage(res.tempFilePaths[0], 'recPersonImg/',
  758. result => {
  759. if(that.recPersonImg == undefined){
  760. that.recPersonImg = ''
  761. }
  762. if (that.recPersonImg.length != 0) {
  763. that.recPersonImg1 = result
  764. uni.hideLoading()
  765. } else {
  766. that.recPersonImg = result
  767. that.$api.request('tran', 'personShibie', {
  768. personImg: result,
  769. type:"recPerson"
  770. }, failres => {
  771. that.$api.msg(failres.errmsg)
  772. uni.hideLoading()
  773. }).then(res => {
  774. that.recPerson = res.data.recPerson
  775. that.recPersonNo = res.data.recPersonNo
  776. that.$api.msg('请核对身份信息')
  777. uni.hideLoading()
  778. })
  779. }
  780. }
  781. )
  782. }
  783. });
  784. },
  785. ChooseImageDriver() {
  786. var that = this
  787. uni.chooseImage({
  788. count: 1, //默认9
  789. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  790. sourceType: ['album','camera'], //从相册选择
  791. success: (res) => {
  792. //上传图片
  793. //图片路径可自行修改
  794. uploadImage(res.tempFilePaths[0], 'driverNoImg/',
  795. result => {
  796. if(that.driverNoImg == undefined){
  797. that.driverNoImg = ''
  798. }
  799. if (that.driverNoImg.length != 0) {
  800. that.driverNoImg1 = result
  801. } else {
  802. that.driverNoImg = result
  803. }
  804. uni.hideLoading();
  805. }
  806. )
  807. }
  808. });
  809. },
  810. ChooseImageCar() {
  811. var that = this
  812. uni.chooseImage({
  813. count: 1, //默认9
  814. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  815. sourceType: ['album','camera'], //从相册选择
  816. success: (res) => {
  817. //上传图片
  818. //图片路径可自行修改
  819. uploadImage(res.tempFilePaths[0], 'carNoImg/',
  820. result => {
  821. if(that.carNoImg == undefined){
  822. that.carNoImg = ''
  823. }
  824. if (that.carNoImg.length != 0) {
  825. that.carNoImg1 = result
  826. } else {
  827. that.carNoImg = result
  828. }
  829. uni.hideLoading();
  830. }
  831. )
  832. }
  833. });
  834. },
  835. ViewImage(e) {
  836. var img = [];
  837. img = e.currentTarget.dataset.url.split(' ')
  838. uni.previewImage({
  839. current:0,
  840. urls: img
  841. });
  842. },
  843. ViewImageSign(e) {
  844. let imgsArray = [];
  845. imgsArray[0] = e.currentTarget.dataset.url;
  846. uni.previewImage({
  847. current: 0,
  848. urls: imgsArray,
  849. });
  850. },
  851. DelImg(e) {
  852. uni.showModal({
  853. title: '提示',
  854. content: '确定要删除该照片吗?',
  855. cancelText: '取消',
  856. confirmText: '确定',
  857. success: res => {
  858. if (res.confirm) {
  859. if(e.currentTarget.dataset.index == 0){
  860. this.personNoImg = "";
  861. }
  862. else if(e.currentTarget.dataset.index == 1){
  863. this.personNoImg1 = "";
  864. }
  865. else if(e.currentTarget.dataset.index == 2){
  866. this.driverNoImg = "";
  867. }
  868. else if(e.currentTarget.dataset.index == 3){
  869. this.driverNoImg1 = "";
  870. }
  871. else if(e.currentTarget.dataset.index == 4){
  872. this.carNoImg = "";
  873. }
  874. else if(e.currentTarget.dataset.index == 5){
  875. this.carNoImg1 = "";
  876. }
  877. else if(e.currentTarget.dataset.index == 6){
  878. this.signImg = "";
  879. }
  880. else if(e.currentTarget.dataset.index == 7){
  881. this.bankImg = "";
  882. }
  883. else if(e.currentTarget.dataset.index == 8){
  884. this.bankImg1 = "";
  885. }
  886. else if(e.currentTarget.dataset.index == 9){
  887. this.recPersonImg = "";
  888. }
  889. else if(e.currentTarget.dataset.index == 10){
  890. this.recPersonImg1 = "";
  891. }
  892. }
  893. }
  894. })
  895. },
  896. },
  897. }
  898. </script>
  899. <style lang='scss' scoped>
  900. .container {
  901. background: $page-color-base;
  902. padding-bottom: 160upx;
  903. }
  904. .icon-you {
  905. font-size: $font-base + 2upx;
  906. color: #888;
  907. }
  908. .carousel {
  909. height: 722upx;
  910. position: relative;
  911. swiper {
  912. height: 100%;
  913. }
  914. .image-wrapper {
  915. width: 100%;
  916. height: 100%;
  917. }
  918. .swiper-item {
  919. display: flex;
  920. justify-content: center;
  921. align-content: center;
  922. height: 750upx;
  923. overflow: hidden;
  924. image {
  925. width: 100%;
  926. height: 100%;
  927. }
  928. }
  929. }
  930. .c-list {
  931. font-size: $font-sm + 2upx;
  932. color: $font-color-base;
  933. background: #fff;
  934. .c-row {
  935. display: flex;
  936. align-items: center;
  937. padding: 20upx 30upx;
  938. position: relative;
  939. }
  940. .tit {
  941. width: 220upx;
  942. }
  943. .con {
  944. flex: 1;
  945. color: $font-color-dark;
  946. .selected-text {
  947. margin-right: 10upx;
  948. }
  949. }
  950. .bz-list {
  951. height: 40upx;
  952. font-size: $font-sm+2upx;
  953. color: $font-color-dark;
  954. text {
  955. display: inline-block;
  956. margin-right: 30upx;
  957. }
  958. }
  959. .con-list {
  960. flex: 1;
  961. display: flex;
  962. flex-direction: column;
  963. color: $font-color-dark;
  964. line-height: 40upx;
  965. text-align: right;
  966. padding-right: 20upx;
  967. }
  968. .red {
  969. color: $uni-color-primary;
  970. }
  971. }
  972. /* 评价 */
  973. .eva-section {
  974. display: flex;
  975. flex-direction: column;
  976. padding: 20upx 30upx;
  977. background: #fff;
  978. margin-top: 16upx;
  979. .e-header {
  980. display: flex;
  981. align-items: center;
  982. height: 70upx;
  983. font-size: $font-sm + 2upx;
  984. color: $font-color-light;
  985. .tit {
  986. font-size: $font-base + 2upx;
  987. color: $font-color-dark;
  988. margin-right: 4upx;
  989. }
  990. .tip {
  991. flex: 1;
  992. text-align: right;
  993. }
  994. .icon-you {
  995. margin-left: 10upx;
  996. }
  997. }
  998. }
  999. .eva-box {
  1000. display: flex;
  1001. padding: 20upx 0;
  1002. .portrait {
  1003. flex-shrink: 0;
  1004. width: 80upx;
  1005. height: 80upx;
  1006. border-radius: 100px;
  1007. }
  1008. .right {
  1009. flex: 1;
  1010. display: flex;
  1011. flex-direction: column;
  1012. font-size: $font-base;
  1013. color: $font-color-base;
  1014. padding-left: 26upx;
  1015. .con {
  1016. font-size: $font-base;
  1017. color: $font-color-dark;
  1018. padding: 20upx 0;
  1019. }
  1020. .bot {
  1021. display: flex;
  1022. justify-content: space-between;
  1023. font-size: $font-sm;
  1024. color: $font-color-light;
  1025. }
  1026. }
  1027. }
  1028. /* 详情 */
  1029. .detail-desc {
  1030. background: #fff;
  1031. margin-top: 16upx;
  1032. width: 750upx;
  1033. .d-header {
  1034. display: flex;
  1035. justify-content: center;
  1036. align-items: center;
  1037. height: 80upx;
  1038. font-size: $font-base + 2upx;
  1039. color: $font-color-dark;
  1040. position: relative;
  1041. text {
  1042. padding: 0 20upx;
  1043. background: #fff;
  1044. position: relative;
  1045. z-index: 1;
  1046. }
  1047. &:after {
  1048. position: absolute;
  1049. left: 50%;
  1050. top: 50%;
  1051. transform: translateX(-50%);
  1052. width: 300upx;
  1053. height: 0;
  1054. content: '';
  1055. border-bottom: 1px solid #ccc;
  1056. }
  1057. }
  1058. }
  1059. /* 规格选择弹窗 */
  1060. .attr-content {
  1061. padding: 10upx 30upx;
  1062. .a-t {
  1063. display: flex;
  1064. image {
  1065. width: 170upx;
  1066. height: 170upx;
  1067. flex-shrink: 0;
  1068. margin-top: -40upx;
  1069. border-radius: 8upx;
  1070. ;
  1071. }
  1072. .right {
  1073. display: flex;
  1074. flex-direction: column;
  1075. padding-left: 24upx;
  1076. font-size: $font-sm + 2upx;
  1077. color: $font-color-base;
  1078. line-height: 42upx;
  1079. .price {
  1080. font-size: $font-lg;
  1081. color: $uni-color-primary;
  1082. margin-bottom: 10upx;
  1083. }
  1084. .selected-text {
  1085. margin-right: 10upx;
  1086. }
  1087. }
  1088. }
  1089. .attr-list {
  1090. display: flex;
  1091. flex-direction: column;
  1092. font-size: $font-base + 2upx;
  1093. color: $font-color-base;
  1094. padding-top: 30upx;
  1095. padding-left: 10upx;
  1096. }
  1097. .item-list {
  1098. padding: 30upx 0 0;
  1099. display: flex;
  1100. flex-wrap: wrap;
  1101. text {
  1102. display: flex;
  1103. align-items: center;
  1104. justify-content: center;
  1105. background: #eee;
  1106. margin-right: 20upx;
  1107. margin-bottom: 20upx;
  1108. border-radius: 100upx;
  1109. min-width: 60upx;
  1110. height: 60upx;
  1111. padding: 0 20upx;
  1112. font-size: $font-base;
  1113. color: $font-color-dark;
  1114. }
  1115. .selected {
  1116. background: #fbebee;
  1117. color: $uni-color-primary;
  1118. }
  1119. }
  1120. }
  1121. /* 弹出层 */
  1122. .popup {
  1123. position: fixed;
  1124. left: 0;
  1125. top: 0;
  1126. right: 0;
  1127. bottom: 0;
  1128. z-index: 99;
  1129. &.show {
  1130. display: block;
  1131. .mask {
  1132. animation: showPopup 0.2s linear both;
  1133. }
  1134. .layer {
  1135. animation: showLayer 0.2s linear both;
  1136. }
  1137. }
  1138. &.hide {
  1139. .mask {
  1140. animation: hidePopup 0.2s linear both;
  1141. }
  1142. .layer {
  1143. animation: hideLayer 0.2s linear both;
  1144. }
  1145. }
  1146. &.none {
  1147. display: none;
  1148. }
  1149. .mask {
  1150. position: fixed;
  1151. top: 0;
  1152. width: 100%;
  1153. height: 100%;
  1154. z-index: 1;
  1155. background-color: rgba(0, 0, 0, 0.4);
  1156. }
  1157. .layer {
  1158. position: fixed;
  1159. z-index: 99;
  1160. bottom: 0;
  1161. width: 100%;
  1162. min-height: 40vh;
  1163. border-radius: 10upx 10upx 0 0;
  1164. background-color: #fff;
  1165. .btn {
  1166. height: 66upx;
  1167. line-height: 66upx;
  1168. border-radius: 100upx;
  1169. background: $uni-color-primary;
  1170. font-size: $font-base + 2upx;
  1171. color: #fff;
  1172. margin: 30upx auto 20upx;
  1173. }
  1174. }
  1175. @keyframes showPopup {
  1176. 0% {
  1177. opacity: 0;
  1178. }
  1179. 100% {
  1180. opacity: 1;
  1181. }
  1182. }
  1183. @keyframes hidePopup {
  1184. 0% {
  1185. opacity: 1;
  1186. }
  1187. 100% {
  1188. opacity: 0;
  1189. }
  1190. }
  1191. @keyframes showLayer {
  1192. 0% {
  1193. transform: translateY(120%);
  1194. }
  1195. 100% {
  1196. transform: translateY(0%);
  1197. }
  1198. }
  1199. @keyframes hideLayer {
  1200. 0% {
  1201. transform: translateY(0);
  1202. }
  1203. 100% {
  1204. transform: translateY(120%);
  1205. }
  1206. }
  1207. }
  1208. /* 底部操作菜单 */
  1209. .page-bottom {
  1210. .action-btn-group {
  1211. .action-btn {
  1212. width: 100%;
  1213. }
  1214. }
  1215. }
  1216. .rich-img {
  1217. width: 100%;
  1218. height: auto;
  1219. margin: 0;
  1220. padding: 0;
  1221. line-height: 0px;
  1222. }
  1223. @mixin playcenter {
  1224. display: flex;
  1225. align-items: center;
  1226. justify-content: center;
  1227. }
  1228. .xsh-start {
  1229. width: 105rpx;
  1230. height: 105rpx;
  1231. background: #FFFFFF;
  1232. border-radius: 50%;
  1233. font-size: 29rpx;
  1234. color: #4135EB;
  1235. @include playcenter;
  1236. flex-wrap: wrap;
  1237. }
  1238. .x-modal {
  1239. width: 100%;
  1240. .x-m-title {
  1241. width: 100%;
  1242. height: 90rpx;
  1243. padding: 0 38rpx 0 31rpx;
  1244. box-sizing: border-box;
  1245. font-size: 29rpx;
  1246. color: #333333;
  1247. border-bottom: 1px dashed #999;
  1248. @include playcenter;
  1249. justify-content: space-between;
  1250. .xm-t-clear {
  1251. font-size: 25rpx;
  1252. color: #341DB7;
  1253. @include playcenter;
  1254. >image {
  1255. width: 28rpx;
  1256. height: 28rpx;
  1257. display: block;
  1258. margin-right: 8rpx;
  1259. }
  1260. }
  1261. }
  1262. .x-m-con {
  1263. width: 100%;
  1264. padding: 0 31rpx 18rpx;
  1265. margin-top: 5rpx;
  1266. box-sizing: border-box;
  1267. }
  1268. }
  1269. button::after {
  1270. border: none;
  1271. }
  1272. .wrapper {
  1273. width: 100%;
  1274. height: 100%;
  1275. margin: 30upx 0;
  1276. overflow: hidden;
  1277. display: flex;
  1278. align-content: center;
  1279. flex-direction: column;
  1280. justify-content: center;
  1281. font-size: 28upx;
  1282. }
  1283. .handWriting {
  1284. background: #fff;
  1285. width: 100%;
  1286. height: 350upx;
  1287. }
  1288. .handRight {
  1289. align-items: center;
  1290. }
  1291. .handCenter {
  1292. border: 4upx dashed #e9e9e9;
  1293. flex: 5;
  1294. overflow: hidden;
  1295. box-sizing: border-box;
  1296. width: 90%;
  1297. margin: 0 auto;
  1298. }
  1299. .handTitle {
  1300. flex: 1;
  1301. color: #666;
  1302. justify-content: center;
  1303. font-size: 30upx;
  1304. }
  1305. .handBtn {
  1306. flex-direction: column;
  1307. padding: 40upx 20upx;
  1308. }
  1309. .buttons{
  1310. width: 100%;
  1311. margin-top: 20upx;
  1312. justify-content: space-between;
  1313. }
  1314. .buttons>button{
  1315. font-size: 30upx;
  1316. height: 80upx;
  1317. }
  1318. .delBtn {
  1319. background: #23df02;
  1320. color: #fff;
  1321. }
  1322. .color{
  1323. align-items: center;
  1324. }
  1325. .color>text{
  1326. margin-right: 20upx;
  1327. }
  1328. .subBtn {
  1329. background: #008ef6;
  1330. color: #fff;
  1331. text-align: center;
  1332. justify-content: center;
  1333. }
  1334. .black-select {
  1335. width: 60upx;
  1336. height: 60upx;
  1337. }
  1338. .black-select.color_select {
  1339. width: 90upx;
  1340. height: 90upx;
  1341. }
  1342. .red-select {
  1343. width: 60upx;
  1344. height: 60upx;
  1345. }
  1346. .red-select.color_select {
  1347. width: 90upx;
  1348. height: 90upx;
  1349. }
  1350. .slide-wrapper {
  1351. align-items: center;
  1352. margin-bottom: 20upx;
  1353. }
  1354. .slider{
  1355. width: 400upx;
  1356. padding-left: 20upx;
  1357. }
  1358. .drop {
  1359. width: 50upx;
  1360. height: 50upx;
  1361. border-radius: 50%;
  1362. background: #FFF;
  1363. position: absolute;
  1364. left: 0upx;
  1365. top: -10upx;
  1366. box-shadow: 0px 1px 5px #888888;
  1367. }
  1368. .slide {
  1369. width: 250upx;
  1370. height: 30upx;
  1371. }
  1372. .showimg{
  1373. border: 4upx solid #e9e9e9;
  1374. overflow: hidden;
  1375. width: 90%;
  1376. margin: 0 auto;
  1377. background: #eee;
  1378. height: 350upx;
  1379. margin-top: 40upx;
  1380. align-items: center;
  1381. justify-content: center;
  1382. }
  1383. .showimg>image{
  1384. width: 100%;
  1385. height: 100%;
  1386. }
  1387. .showimg>text{
  1388. font-size: 40upx;
  1389. color: #888;
  1390. }
  1391. .indexFixed{
  1392. position: fixed;
  1393. left:0;
  1394. bottom:0;
  1395. right:0;
  1396. }
  1397. /* 销售信息 */
  1398. .introduce-section {
  1399. background: #fff;
  1400. padding: 20upx 30upx;
  1401. padding-bottom: 100upx;
  1402. .guess-item {
  1403. padding-bottom: 20upx;
  1404. border-bottom: 1px solid #ccc;
  1405. }
  1406. .title {
  1407. font-size: 28upx;
  1408. color: $font-color-dark;
  1409. font-weight:bold;
  1410. height: 50upx;
  1411. line-height: 50upx;
  1412. flex:2.5;
  1413. }
  1414. .title-tip {
  1415. flex:1;
  1416. }
  1417. .price-box {
  1418. display: flex;
  1419. align-items: baseline;
  1420. height: 70upx;
  1421. padding: 10upx 0;
  1422. font-size: 26upx;
  1423. color: $uni-color-primary;
  1424. }
  1425. .price {
  1426. font-size: $font-lg + 2upx;
  1427. }
  1428. .m-price {
  1429. margin: 0 12upx;
  1430. color: $font-color-light;
  1431. text-decoration: line-through;
  1432. }
  1433. .coupon-tip {
  1434. align-items: center;
  1435. padding: 4upx 10upx;
  1436. background: $uni-color-primary;
  1437. font-size: $font-sm;
  1438. color: #fff;
  1439. border-radius: 6upx;
  1440. line-height: 1;
  1441. transform: translateY(-4upx);
  1442. }
  1443. .bot-row {
  1444. display: flex;
  1445. align-items: center;
  1446. height: 50upx;
  1447. font-size: $font-sm;
  1448. color: $font-color-light;
  1449. view {
  1450. flex: 1;
  1451. }
  1452. }
  1453. }
  1454. </style>