my_car_detail.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524
  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', 'getCarDetailInfoBySendCarNo', {
  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.chooseImage({
  668. count: 1, //默认9
  669. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  670. sourceType: ['album','camera'], //从相册选择
  671. success: (res) => {
  672. //上传图片
  673. uploadImage(res.tempFilePaths[0], 'bankImg/',
  674. result => {
  675. if(that.bankImg == undefined){
  676. that.bankImg = ''
  677. }
  678. if (that.bankImg.length != 0) {
  679. that.bankImg1 = result
  680. uni.hideLoading()
  681. } else {
  682. that.bankImg = result
  683. that.$api.request('tran', 'bankShibie', {
  684. bankImg: result
  685. }, failres => {
  686. that.$api.msg(failres.errmsg)
  687. uni.hideLoading()
  688. }).then(res => {
  689. that.bankAccount = res.data.bankName
  690. that.bankNo = res.data.bankNo
  691. that.bankNameList = res.data.bankNameZhihang
  692. that.bankPhone = res.data.bankPhone
  693. that.$api.msg('请核对开户行、支行和银行卡号')
  694. uni.hideLoading()
  695. })
  696. }
  697. }
  698. )
  699. }
  700. });
  701. },
  702. ChooseImagePerson() {
  703. const that = this
  704. uni.chooseImage({
  705. count: 1, //默认9
  706. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  707. sourceType: ['album','camera'], //从相册选择
  708. success: (res) => {
  709. //上传图片
  710. //图片路径可自行修改
  711. uploadImage(res.tempFilePaths[0], 'personNoImg/',
  712. result => {
  713. if (this.personNoImg.length != 0) {
  714. this.personNoImg1 = result
  715. uni.hideLoading()
  716. } else {
  717. this.personNoImg = result
  718. that.$api.request('tran', 'personShibie', {
  719. personImg: result,
  720. type:"driver"
  721. }, failres => {
  722. that.$api.msg(failres.errmsg)
  723. uni.hideLoading()
  724. }).then(res => {
  725. that.driver = res.data.driver
  726. that.driverNo = res.data.driverNo
  727. that.driverAddress = res.data.driverAddress
  728. that.$api.msg('请核对身份信息')
  729. uni.hideLoading()
  730. })
  731. }
  732. }
  733. )
  734. }
  735. });
  736. },
  737. ChooseImageRecPerson() {
  738. var that = this
  739. uni.chooseImage({
  740. count: 1, //默认9
  741. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  742. sourceType: ['album','camera'], //从相册选择
  743. success: (res) => {
  744. //上传图片
  745. uploadImage(res.tempFilePaths[0], 'recPersonImg/',
  746. result => {
  747. if(that.recPersonImg == undefined){
  748. that.recPersonImg = ''
  749. }
  750. if (that.recPersonImg.length != 0) {
  751. that.recPersonImg1 = result
  752. uni.hideLoading()
  753. } else {
  754. that.recPersonImg = result
  755. that.$api.request('tran', 'personShibie', {
  756. personImg: result,
  757. type:"recPerson"
  758. }, failres => {
  759. that.$api.msg(failres.errmsg)
  760. uni.hideLoading()
  761. }).then(res => {
  762. that.recPerson = res.data.recPerson
  763. that.recPersonNo = res.data.recPersonNo
  764. that.$api.msg('请核对身份信息')
  765. uni.hideLoading()
  766. })
  767. }
  768. }
  769. )
  770. }
  771. });
  772. },
  773. ChooseImageDriver() {
  774. var that = this
  775. uni.chooseImage({
  776. count: 1, //默认9
  777. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  778. sourceType: ['album','camera'], //从相册选择
  779. success: (res) => {
  780. //上传图片
  781. //图片路径可自行修改
  782. uploadImage(res.tempFilePaths[0], 'driverNoImg/',
  783. result => {
  784. if(that.driverNoImg == undefined){
  785. that.driverNoImg = ''
  786. }
  787. if (that.driverNoImg.length != 0) {
  788. that.driverNoImg1 = result
  789. } else {
  790. that.driverNoImg = result
  791. }
  792. uni.hideLoading();
  793. }
  794. )
  795. }
  796. });
  797. },
  798. ChooseImageCar() {
  799. var that = this
  800. uni.chooseImage({
  801. count: 1, //默认9
  802. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  803. sourceType: ['album','camera'], //从相册选择
  804. success: (res) => {
  805. //上传图片
  806. //图片路径可自行修改
  807. uploadImage(res.tempFilePaths[0], 'carNoImg/',
  808. result => {
  809. if(that.carNoImg == undefined){
  810. that.carNoImg = ''
  811. }
  812. if (that.carNoImg.length != 0) {
  813. that.carNoImg1 = result
  814. } else {
  815. that.carNoImg = result
  816. }
  817. uni.hideLoading();
  818. }
  819. )
  820. }
  821. });
  822. },
  823. ViewImage(e) {
  824. var img = [];
  825. img = e.currentTarget.dataset.url.split(' ')
  826. uni.previewImage({
  827. current:0,
  828. urls: img
  829. });
  830. },
  831. ViewImageSign(e) {
  832. let imgsArray = [];
  833. imgsArray[0] = e.currentTarget.dataset.url;
  834. uni.previewImage({
  835. current: 0,
  836. urls: imgsArray,
  837. });
  838. },
  839. DelImg(e) {
  840. uni.showModal({
  841. title: '提示',
  842. content: '确定要删除该照片吗?',
  843. cancelText: '取消',
  844. confirmText: '确定',
  845. success: res => {
  846. if (res.confirm) {
  847. if(e.currentTarget.dataset.index == 0){
  848. this.personNoImg = "";
  849. }
  850. else if(e.currentTarget.dataset.index == 1){
  851. this.personNoImg1 = "";
  852. }
  853. else if(e.currentTarget.dataset.index == 2){
  854. this.driverNoImg = "";
  855. }
  856. else if(e.currentTarget.dataset.index == 3){
  857. this.driverNoImg1 = "";
  858. }
  859. else if(e.currentTarget.dataset.index == 4){
  860. this.carNoImg = "";
  861. }
  862. else if(e.currentTarget.dataset.index == 5){
  863. this.carNoImg1 = "";
  864. }
  865. else if(e.currentTarget.dataset.index == 6){
  866. this.signImg = "";
  867. }
  868. else if(e.currentTarget.dataset.index == 7){
  869. this.bankImg = "";
  870. }
  871. else if(e.currentTarget.dataset.index == 8){
  872. this.bankImg1 = "";
  873. }
  874. else if(e.currentTarget.dataset.index == 9){
  875. this.recPersonImg = "";
  876. }
  877. else if(e.currentTarget.dataset.index == 10){
  878. this.recPersonImg1 = "";
  879. }
  880. }
  881. }
  882. })
  883. },
  884. },
  885. }
  886. </script>
  887. <style lang='scss' scoped>
  888. .container {
  889. background: $page-color-base;
  890. padding-bottom: 160upx;
  891. }
  892. .icon-you {
  893. font-size: $font-base + 2upx;
  894. color: #888;
  895. }
  896. .carousel {
  897. height: 722upx;
  898. position: relative;
  899. swiper {
  900. height: 100%;
  901. }
  902. .image-wrapper {
  903. width: 100%;
  904. height: 100%;
  905. }
  906. .swiper-item {
  907. display: flex;
  908. justify-content: center;
  909. align-content: center;
  910. height: 750upx;
  911. overflow: hidden;
  912. image {
  913. width: 100%;
  914. height: 100%;
  915. }
  916. }
  917. }
  918. .c-list {
  919. font-size: $font-sm + 2upx;
  920. color: $font-color-base;
  921. background: #fff;
  922. .c-row {
  923. display: flex;
  924. align-items: center;
  925. padding: 20upx 30upx;
  926. position: relative;
  927. }
  928. .tit {
  929. width: 220upx;
  930. }
  931. .con {
  932. flex: 1;
  933. color: $font-color-dark;
  934. .selected-text {
  935. margin-right: 10upx;
  936. }
  937. }
  938. .bz-list {
  939. height: 40upx;
  940. font-size: $font-sm+2upx;
  941. color: $font-color-dark;
  942. text {
  943. display: inline-block;
  944. margin-right: 30upx;
  945. }
  946. }
  947. .con-list {
  948. flex: 1;
  949. display: flex;
  950. flex-direction: column;
  951. color: $font-color-dark;
  952. line-height: 40upx;
  953. text-align: right;
  954. padding-right: 20upx;
  955. }
  956. .red {
  957. color: $uni-color-primary;
  958. }
  959. }
  960. /* 评价 */
  961. .eva-section {
  962. display: flex;
  963. flex-direction: column;
  964. padding: 20upx 30upx;
  965. background: #fff;
  966. margin-top: 16upx;
  967. .e-header {
  968. display: flex;
  969. align-items: center;
  970. height: 70upx;
  971. font-size: $font-sm + 2upx;
  972. color: $font-color-light;
  973. .tit {
  974. font-size: $font-base + 2upx;
  975. color: $font-color-dark;
  976. margin-right: 4upx;
  977. }
  978. .tip {
  979. flex: 1;
  980. text-align: right;
  981. }
  982. .icon-you {
  983. margin-left: 10upx;
  984. }
  985. }
  986. }
  987. .eva-box {
  988. display: flex;
  989. padding: 20upx 0;
  990. .portrait {
  991. flex-shrink: 0;
  992. width: 80upx;
  993. height: 80upx;
  994. border-radius: 100px;
  995. }
  996. .right {
  997. flex: 1;
  998. display: flex;
  999. flex-direction: column;
  1000. font-size: $font-base;
  1001. color: $font-color-base;
  1002. padding-left: 26upx;
  1003. .con {
  1004. font-size: $font-base;
  1005. color: $font-color-dark;
  1006. padding: 20upx 0;
  1007. }
  1008. .bot {
  1009. display: flex;
  1010. justify-content: space-between;
  1011. font-size: $font-sm;
  1012. color: $font-color-light;
  1013. }
  1014. }
  1015. }
  1016. /* 详情 */
  1017. .detail-desc {
  1018. background: #fff;
  1019. margin-top: 16upx;
  1020. width: 750upx;
  1021. .d-header {
  1022. display: flex;
  1023. justify-content: center;
  1024. align-items: center;
  1025. height: 80upx;
  1026. font-size: $font-base + 2upx;
  1027. color: $font-color-dark;
  1028. position: relative;
  1029. text {
  1030. padding: 0 20upx;
  1031. background: #fff;
  1032. position: relative;
  1033. z-index: 1;
  1034. }
  1035. &:after {
  1036. position: absolute;
  1037. left: 50%;
  1038. top: 50%;
  1039. transform: translateX(-50%);
  1040. width: 300upx;
  1041. height: 0;
  1042. content: '';
  1043. border-bottom: 1px solid #ccc;
  1044. }
  1045. }
  1046. }
  1047. /* 规格选择弹窗 */
  1048. .attr-content {
  1049. padding: 10upx 30upx;
  1050. .a-t {
  1051. display: flex;
  1052. image {
  1053. width: 170upx;
  1054. height: 170upx;
  1055. flex-shrink: 0;
  1056. margin-top: -40upx;
  1057. border-radius: 8upx;
  1058. ;
  1059. }
  1060. .right {
  1061. display: flex;
  1062. flex-direction: column;
  1063. padding-left: 24upx;
  1064. font-size: $font-sm + 2upx;
  1065. color: $font-color-base;
  1066. line-height: 42upx;
  1067. .price {
  1068. font-size: $font-lg;
  1069. color: $uni-color-primary;
  1070. margin-bottom: 10upx;
  1071. }
  1072. .selected-text {
  1073. margin-right: 10upx;
  1074. }
  1075. }
  1076. }
  1077. .attr-list {
  1078. display: flex;
  1079. flex-direction: column;
  1080. font-size: $font-base + 2upx;
  1081. color: $font-color-base;
  1082. padding-top: 30upx;
  1083. padding-left: 10upx;
  1084. }
  1085. .item-list {
  1086. padding: 30upx 0 0;
  1087. display: flex;
  1088. flex-wrap: wrap;
  1089. text {
  1090. display: flex;
  1091. align-items: center;
  1092. justify-content: center;
  1093. background: #eee;
  1094. margin-right: 20upx;
  1095. margin-bottom: 20upx;
  1096. border-radius: 100upx;
  1097. min-width: 60upx;
  1098. height: 60upx;
  1099. padding: 0 20upx;
  1100. font-size: $font-base;
  1101. color: $font-color-dark;
  1102. }
  1103. .selected {
  1104. background: #fbebee;
  1105. color: $uni-color-primary;
  1106. }
  1107. }
  1108. }
  1109. /* 弹出层 */
  1110. .popup {
  1111. position: fixed;
  1112. left: 0;
  1113. top: 0;
  1114. right: 0;
  1115. bottom: 0;
  1116. z-index: 99;
  1117. &.show {
  1118. display: block;
  1119. .mask {
  1120. animation: showPopup 0.2s linear both;
  1121. }
  1122. .layer {
  1123. animation: showLayer 0.2s linear both;
  1124. }
  1125. }
  1126. &.hide {
  1127. .mask {
  1128. animation: hidePopup 0.2s linear both;
  1129. }
  1130. .layer {
  1131. animation: hideLayer 0.2s linear both;
  1132. }
  1133. }
  1134. &.none {
  1135. display: none;
  1136. }
  1137. .mask {
  1138. position: fixed;
  1139. top: 0;
  1140. width: 100%;
  1141. height: 100%;
  1142. z-index: 1;
  1143. background-color: rgba(0, 0, 0, 0.4);
  1144. }
  1145. .layer {
  1146. position: fixed;
  1147. z-index: 99;
  1148. bottom: 0;
  1149. width: 100%;
  1150. min-height: 40vh;
  1151. border-radius: 10upx 10upx 0 0;
  1152. background-color: #fff;
  1153. .btn {
  1154. height: 66upx;
  1155. line-height: 66upx;
  1156. border-radius: 100upx;
  1157. background: $uni-color-primary;
  1158. font-size: $font-base + 2upx;
  1159. color: #fff;
  1160. margin: 30upx auto 20upx;
  1161. }
  1162. }
  1163. @keyframes showPopup {
  1164. 0% {
  1165. opacity: 0;
  1166. }
  1167. 100% {
  1168. opacity: 1;
  1169. }
  1170. }
  1171. @keyframes hidePopup {
  1172. 0% {
  1173. opacity: 1;
  1174. }
  1175. 100% {
  1176. opacity: 0;
  1177. }
  1178. }
  1179. @keyframes showLayer {
  1180. 0% {
  1181. transform: translateY(120%);
  1182. }
  1183. 100% {
  1184. transform: translateY(0%);
  1185. }
  1186. }
  1187. @keyframes hideLayer {
  1188. 0% {
  1189. transform: translateY(0);
  1190. }
  1191. 100% {
  1192. transform: translateY(120%);
  1193. }
  1194. }
  1195. }
  1196. /* 底部操作菜单 */
  1197. .page-bottom {
  1198. .action-btn-group {
  1199. .action-btn {
  1200. width: 100%;
  1201. }
  1202. }
  1203. }
  1204. .rich-img {
  1205. width: 100%;
  1206. height: auto;
  1207. margin: 0;
  1208. padding: 0;
  1209. line-height: 0px;
  1210. }
  1211. @mixin playcenter {
  1212. display: flex;
  1213. align-items: center;
  1214. justify-content: center;
  1215. }
  1216. .xsh-start {
  1217. width: 105rpx;
  1218. height: 105rpx;
  1219. background: #FFFFFF;
  1220. border-radius: 50%;
  1221. font-size: 29rpx;
  1222. color: #4135EB;
  1223. @include playcenter;
  1224. flex-wrap: wrap;
  1225. }
  1226. .x-modal {
  1227. width: 100%;
  1228. .x-m-title {
  1229. width: 100%;
  1230. height: 90rpx;
  1231. padding: 0 38rpx 0 31rpx;
  1232. box-sizing: border-box;
  1233. font-size: 29rpx;
  1234. color: #333333;
  1235. border-bottom: 1px dashed #999;
  1236. @include playcenter;
  1237. justify-content: space-between;
  1238. .xm-t-clear {
  1239. font-size: 25rpx;
  1240. color: #341DB7;
  1241. @include playcenter;
  1242. >image {
  1243. width: 28rpx;
  1244. height: 28rpx;
  1245. display: block;
  1246. margin-right: 8rpx;
  1247. }
  1248. }
  1249. }
  1250. .x-m-con {
  1251. width: 100%;
  1252. padding: 0 31rpx 18rpx;
  1253. margin-top: 5rpx;
  1254. box-sizing: border-box;
  1255. }
  1256. }
  1257. button::after {
  1258. border: none;
  1259. }
  1260. .wrapper {
  1261. width: 100%;
  1262. height: 100%;
  1263. margin: 30upx 0;
  1264. overflow: hidden;
  1265. display: flex;
  1266. align-content: center;
  1267. flex-direction: column;
  1268. justify-content: center;
  1269. font-size: 28upx;
  1270. }
  1271. .handWriting {
  1272. background: #fff;
  1273. width: 100%;
  1274. height: 350upx;
  1275. }
  1276. .handRight {
  1277. align-items: center;
  1278. }
  1279. .handCenter {
  1280. border: 4upx dashed #e9e9e9;
  1281. flex: 5;
  1282. overflow: hidden;
  1283. box-sizing: border-box;
  1284. width: 90%;
  1285. margin: 0 auto;
  1286. }
  1287. .handTitle {
  1288. flex: 1;
  1289. color: #666;
  1290. justify-content: center;
  1291. font-size: 30upx;
  1292. }
  1293. .handBtn {
  1294. flex-direction: column;
  1295. padding: 40upx 20upx;
  1296. }
  1297. .buttons{
  1298. width: 100%;
  1299. margin-top: 20upx;
  1300. justify-content: space-between;
  1301. }
  1302. .buttons>button{
  1303. font-size: 30upx;
  1304. height: 80upx;
  1305. }
  1306. .delBtn {
  1307. background: #23df02;
  1308. color: #fff;
  1309. }
  1310. .color{
  1311. align-items: center;
  1312. }
  1313. .color>text{
  1314. margin-right: 20upx;
  1315. }
  1316. .subBtn {
  1317. background: #008ef6;
  1318. color: #fff;
  1319. text-align: center;
  1320. justify-content: center;
  1321. }
  1322. .black-select {
  1323. width: 60upx;
  1324. height: 60upx;
  1325. }
  1326. .black-select.color_select {
  1327. width: 90upx;
  1328. height: 90upx;
  1329. }
  1330. .red-select {
  1331. width: 60upx;
  1332. height: 60upx;
  1333. }
  1334. .red-select.color_select {
  1335. width: 90upx;
  1336. height: 90upx;
  1337. }
  1338. .slide-wrapper {
  1339. align-items: center;
  1340. margin-bottom: 20upx;
  1341. }
  1342. .slider{
  1343. width: 400upx;
  1344. padding-left: 20upx;
  1345. }
  1346. .drop {
  1347. width: 50upx;
  1348. height: 50upx;
  1349. border-radius: 50%;
  1350. background: #FFF;
  1351. position: absolute;
  1352. left: 0upx;
  1353. top: -10upx;
  1354. box-shadow: 0px 1px 5px #888888;
  1355. }
  1356. .slide {
  1357. width: 250upx;
  1358. height: 30upx;
  1359. }
  1360. .showimg{
  1361. border: 4upx solid #e9e9e9;
  1362. overflow: hidden;
  1363. width: 90%;
  1364. margin: 0 auto;
  1365. background: #eee;
  1366. height: 350upx;
  1367. margin-top: 40upx;
  1368. align-items: center;
  1369. justify-content: center;
  1370. }
  1371. .showimg>image{
  1372. width: 100%;
  1373. height: 100%;
  1374. }
  1375. .showimg>text{
  1376. font-size: 40upx;
  1377. color: #888;
  1378. }
  1379. .indexFixed{
  1380. position: fixed;
  1381. left:0;
  1382. bottom:0;
  1383. right:0;
  1384. }
  1385. /* 销售信息 */
  1386. .introduce-section {
  1387. background: #fff;
  1388. padding: 20upx 30upx;
  1389. padding-bottom: 100upx;
  1390. .guess-item {
  1391. padding-bottom: 20upx;
  1392. border-bottom: 1px solid #ccc;
  1393. }
  1394. .title {
  1395. font-size: 28upx;
  1396. color: $font-color-dark;
  1397. font-weight:bold;
  1398. height: 50upx;
  1399. line-height: 50upx;
  1400. flex:2.5;
  1401. }
  1402. .title-tip {
  1403. flex:1;
  1404. }
  1405. .price-box {
  1406. display: flex;
  1407. align-items: baseline;
  1408. height: 70upx;
  1409. padding: 10upx 0;
  1410. font-size: 26upx;
  1411. color: $uni-color-primary;
  1412. }
  1413. .price {
  1414. font-size: $font-lg + 2upx;
  1415. }
  1416. .m-price {
  1417. margin: 0 12upx;
  1418. color: $font-color-light;
  1419. text-decoration: line-through;
  1420. }
  1421. .coupon-tip {
  1422. align-items: center;
  1423. padding: 4upx 10upx;
  1424. background: $uni-color-primary;
  1425. font-size: $font-sm;
  1426. color: #fff;
  1427. border-radius: 6upx;
  1428. line-height: 1;
  1429. transform: translateY(-4upx);
  1430. }
  1431. .bot-row {
  1432. display: flex;
  1433. align-items: center;
  1434. height: 50upx;
  1435. font-size: $font-sm;
  1436. color: $font-color-light;
  1437. view {
  1438. flex: 1;
  1439. }
  1440. }
  1441. }
  1442. </style>