You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vehicle-change-cheliangmsg-write.vue 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. <template>
  2. <view class="bg">
  3. <view class="title_wrap"><text class="title">变更基本信息</text></view>
  4. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  5. <u-form-item label="车牌号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  6. borderBottom>
  7. <u-input v-model="state.form.vehiclePlate" input-align='right'disabled/>
  8. </u-form-item>
  9. <u-form-item label="车牌颜色" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  10. borderBottom>
  11. <view class="showworld">{{getCodeName('VEHICLE_COLOR_TYPE',state.form.vehiclePlateColor)}}</view>
  12. </u-form-item>
  13. <view class="picture-wrapper" @click="takePhotoMode('3')">
  14. <view class="bg1">
  15. <view class="">
  16. <view class="name"> 新车牌行驶证主页 </view>
  17. <view class="value"> 上传行驶证的主页 </view>
  18. <view class="tip">
  19. <view class="tip-value"> 拍摄规范 </view>
  20. </view>
  21. </view>
  22. <image v-if="!state.form.vehicleImagesUrl1" class="icon" :src="`${$imgUrl}issuance/xz.png`"
  23. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  24. </image>
  25. <image v-else class="icon" :src="strReplace(state.form.vehicleImagesUrl1)"
  26. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  27. </view>
  28. </view>
  29. <view class="picture-wrapper" @click="takePhotoMode('4')">
  30. <view class="bg1">
  31. <view class="">
  32. <view class="name"> 新车牌行驶证副页 </view>
  33. <view class="value"> 上传行驶证的副页 </view>
  34. <view class="tip">
  35. <view class="tip-value"> 拍摄规范 </view>
  36. </view>
  37. </view>
  38. <image v-if="!state.form.vehicleImagesUrl2" class="icon" :src="`${$imgUrl}issuance/xf.png`"
  39. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  40. </image>
  41. <image v-else class="icon" :src="strReplace(state.form.vehicleImagesUrl2)"
  42. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  43. </view>
  44. </view>
  45. </u-form>
  46. </view>
  47. <view class="bg">
  48. <view class="title_wrap"><text class="title">以下信息选择性修改/填写</text></view>
  49. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  50. <u-form-item label="车辆所有人信息" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  51. borderBottom>
  52. <u-input v-model="state.form.vehiclePlateColorStr" input-align='right'/>
  53. </u-form-item>
  54. <u-form-item label="车辆所有人证件类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  55. borderBottom>
  56. <u-input v-model="state.form.vehiclePlateColorStr" input-align='right'/>
  57. </u-form-item>
  58. <u-form-item label="车辆所有人证件号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  59. borderBottom>
  60. <u-input v-model="state.form.vehiclePlateColorStr" input-align='right'/>
  61. </u-form-item>
  62. <u-form-item label="车辆所有号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  63. borderBottom>
  64. <u-input v-model="state.form.vehiclePlateColorStr" input-align='right'/>
  65. </u-form-item>
  66. <u-form-item label="车辆号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  67. borderBottom>
  68. <u-input v-model="state.form.customerName" inputAlign="right" />
  69. </u-form-item>
  70. <u-form-item label="行驶证车辆类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  71. borderBottom>
  72. <u-input v-model="state.form.customerTel" inputAlign="right"/>
  73. </u-form-item>
  74. <u-form-item label="车辆识别代号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  75. <u-input inputAlign="right" placeholder="请输入车辆识别代号" v-model="state.form.vin"
  76. maxlength="50" />
  77. </u-form-item>
  78. <u-form-item label="发动机号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  79. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.form.engineNum"
  80. maxlength="20" />
  81. </u-form-item>
  82. <u-form-item label="车辆收费车型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  83. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.form.engineNum"
  84. maxlength="20" />
  85. </u-form-item>
  86. <u-form-item label="核定载人数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  87. <u-input inputAlign="right" placeholder="请输入核定载人数" v-model="state.form.engineNum"
  88. maxlength="3" />
  89. </u-form-item>
  90. <u-form-item label="总质量" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  91. <u-input inputAlign="right" placeholder="请输入总质量" v-model="state.form.engineNum"
  92. />
  93. </u-form-item>
  94. <u-form-item label="整备质量" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  95. <u-input inputAlign="right" placeholder="请输入整备质量" v-model="state.form.engineNum"
  96. maxlength="7" />
  97. </u-form-item>
  98. <u-form-item label="核定载质量" v-if="state.form.engineNum" :left-icon='`${$imgUrl}issuance/point-form.png`'
  99. :left-icon-style='leftIcon'>
  100. <u-input inputAlign="right" placeholder="核定载质量" v-model="state.form.engineNum"/>
  101. </u-form-item>
  102. <u-form-item label="外廓尺寸" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  103. <u-input inputAlign="right" placeholder="外廓尺寸" v-model="state.form.engineNum"
  104. maxlength="7" />
  105. </u-form-item>
  106. <u-form-item label="准牵引总质量" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  107. <u-input inputAlign="right" placeholder="准牵引总质量" v-model="state.form.engineNum"
  108. maxlength="7" />
  109. </u-form-item>
  110. <u-form-item label="车轮数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  111. <u-input inputAlign="right" placeholder="请输入车轮数" v-model="state.form.engineNum" type="number"
  112. maxlength="2" />
  113. </u-form-item>
  114. <u-form-item label="车轴数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  115. <u-input inputAlign="right" placeholder="请输入车轴数" v-model="state.form.engineNum" type="number"
  116. maxlength="2" />
  117. </u-form-item>
  118. <u-form-item label="车辆使用性质" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  119. <u-input inputAlign="right" placeholder="请输入车辆使用性质" v-model="state.form.engineNum" type="number"
  120. maxlength="2" />
  121. </u-form-item>
  122. </u-form>
  123. <view class="picture-wrapper" @click="cardFileImageUpdate(1)">
  124. <view class="bg1">
  125. <view class="">
  126. <view class="name"> 车身45°照 </view>
  127. <view class="value"> 上传汽车的45°照 </view>
  128. <view class="tip">
  129. <view class="tip-value"> 拍摄规范 </view>
  130. </view>
  131. </view>
  132. <image v-if="!state.form.vehBodyUrl" class="icon" :src="`${$imgUrl}issuance/chetou.png`"
  133. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  134. </image>
  135. <image v-else class="icon" :src="strReplace(state.form.vehBodyUrl)"
  136. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  137. </view>
  138. </view>
  139. <view class="picture-wrapper" @click="cardFileImageUpdate(1)">
  140. <view class="bg1">
  141. <view class="">
  142. <view class="name"> 车头照 </view>
  143. <view class="value"> 上传车辆车头照 </view>
  144. <view class="tip">
  145. <view class="tip-value"> 拍摄规范 </view>
  146. </view>
  147. </view>
  148. <image v-if="!state.form.vehBodyUrl" class="icon" :src="`${$imgUrl}issuance/chetou45.png`"
  149. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  150. </image>
  151. <image v-else class="icon" :src="strReplace(state.form.vehBodyUrl)"
  152. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  153. </view>
  154. </view>
  155. <view class="picture-wrapper" @click="cardFileImageUpdate(2)">
  156. <view class="bg1">
  157. <view class="">
  158. <view class="name"> 授权书 </view>
  159. <view class="value"> 上传授权书 </view>
  160. <view class="tip">
  161. <view class="tip-value"> 拍摄规范 </view>
  162. </view>
  163. </view>
  164. <image v-if="!state.form.vehBodyUrl" class="icon" :src="`${$imgUrl}issuance/weituo.png`"
  165. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  166. </image>
  167. <image v-else class="icon" :src="strReplace(state.form.vehBodyUrl)"
  168. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  169. </view>
  170. </view>
  171. </view>
  172. <view class="bg">
  173. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  174. <u-form-item label="手机号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  175. borderBottom>
  176. <u-input v-model="state.form.vehiclePlateColorStr" input-align='right'/>
  177. </u-form-item>
  178. <u-form-item label="验证码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  179. borderBottom>
  180. <view style="display: flex;align-items: center;flex-shrink: 0;">
  181. <u-input v-model="state.form.vehiclePlateColorStr" input-align='right'/>
  182. <text @click="getCode" v-if="waitTime==0" class="search">获取验证码</text>
  183. <text class="btn" v-else>{{waitTime}}后重试</text>
  184. </view>
  185. </u-form-item>
  186. </u-form>
  187. </view>
  188. <view class="action">
  189. <button type="default" class="ui-btn" @click="savaHandle()">
  190. 提交
  191. </button>
  192. </view>
  193. <!-- 选择车牌颜色 -->
  194. <u-select v-model="show1" :list="state.colorRange" @confirm="changeColor"></u-select>
  195. <view class="choice-takePhoto-wrap" v-if="state.isTakePhotoModeShow" @click="cancle">
  196. <view class="choice-takePhoto">
  197. <view @click.stop="takePhoto(state.choiceIndex)" style="border-radius: 20rpx 20rpx 0 0;">拍照</view>
  198. <view @click.stop="xiangce(state.choiceIndex)">从手机相册选择</view>
  199. <view @click.stop="cancle">取消</view>
  200. </view>
  201. </view>
  202. <viewfinder v-if="state.phoneType" :phoneType="state.phoneType" :images="state.images" :showStartPhoto="state.showImg"
  203. @confirmReturn="confirmReturn" @camera="camera"></viewfinder>
  204. </template>
  205. <script setup lang="ts">
  206. import { navTo,uploadFile,strReplace,msg,checkStr,chooseImageCompress} from "@/utils/utils";
  207. import { reactive,ref } from "vue";
  208. import carNumberInput from "@/components/car-number-input/car-number-input.vue";
  209. import { onLoad } from "@dcloudio/uni-app";
  210. import { getItem } from "@/utils/storage.ts"
  211. import {newMobileSmsCode,vehicleLicenseOcr} from "@/utils/network/api.js";
  212. import {requestNew} from "@/utils/network/request.js";
  213. import {
  214. getCodeName
  215. } from "@/datas/queryKey.js";
  216. const labelStyle = {
  217. color: "#004576",
  218. fontSize: "28rpx",
  219. }
  220. const leftIcon = {
  221. height: '100%',
  222. width: '8rpx',
  223. display: 'flex',
  224. 'align-items': 'center',
  225. 'margin-right': '4rpx',
  226. }
  227. const show1 = ref(false)
  228. const show2 = ref(false)
  229. const state = reactive({
  230. form: {
  231. customerName: "",
  232. customerTel: "",
  233. vehiclePlate: "",
  234. vehiclePlateColor: "",
  235. vehiclePlateColorStr:"",//车牌颜色中文
  236. questionType:"",
  237. questionTypeStr:"",
  238. etcUser:"",
  239. etcUserStr:"",
  240. eventOccurrenceDate:"",//2016-09-01 00:00:00
  241. supportingMaterialsUrlShow:[],
  242. insertTime:"",
  243. vehicleImagesUrl1:"",
  244. vehicleImagesUrl2:"",
  245. name:"",
  246. part:"",
  247. customerIdNum:"",
  248. customerIdNum1:"",
  249. userImagesUrl1:"",
  250. userImagesUrl2:"",
  251. vin:"",
  252. engineNum:"",
  253. vehBodyUrl:"",
  254. isVehiclePlateChange:"",//是否车牌变更 否_0,是_1
  255. },
  256. colorRange: [],
  257. questionTypeRange:[
  258. {value: 1, label: "工单1"},
  259. {value: 2, label: "工单2"},
  260. ],
  261. etcUserRange:[
  262. {value: 1, label: "是"},
  263. {value: 0, label: "否"},
  264. ],
  265. isTakePhotoModeShow: false, //选择拍照方式是否出来
  266. choiceIndex: 1, // 1 身份证正面 2 身份证反面
  267. ownerInfo:false,//非本人 个人 车主信息true ==== 本人 个人 false
  268. phoneType: 0, // 1 身份证正面 2 身份证反面 3行驶证正面 4行驶证反面
  269. images: '',
  270. showImg: true,
  271. })
  272. onLoad((option : any) => {
  273. state.form.isVehiclePlateChange=option.isVehiclePlateChange
  274. state.form.vehiclePlate=option.vehicleId.split("_")[0]
  275. state.form.vehiclePlateColor=option.vehicleId.split("_")[1]
  276. let getColor = getItem('key')['VEHICLE_COLOR_TYPE'];
  277. for (var k = 0; k < getColor.length; k++) {
  278. let obj = {};
  279. obj['value'] = getColor[k]['code']
  280. obj['label'] = getColor[k]['name']
  281. state.colorRange.push(obj)
  282. }
  283. console.log("state.colorRange",state.colorRange,option)
  284. });
  285. //车牌号输入
  286. const carNumber = (val : any) => {
  287. state.form.vehiclePlate = val.trim();
  288. };
  289. const savaHandle = () => {
  290. }
  291. const changeColor = (item) => {
  292. state.form.vehiclePlateColor = item[0].value
  293. state.form.vehiclePlateColorStr = item[0].label
  294. console.log(item)
  295. }
  296. const takePhotoMode = (index,ownerInfo) => {
  297. console.log("index", index)
  298. state.isTakePhotoModeShow = true
  299. state.choiceIndex = index
  300. state.ownerInfo=ownerInfo
  301. }
  302. //车头照图片上传 val 1 车头照 2 道路运输证
  303. const cardFileImageUpdate = (val) => {
  304. uni.chooseImage({
  305. count: 1, //只能选取一张照片
  306. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  307. sourceType: ["camera", "album"], //从相册选择
  308. success: function (res) {
  309. uploadFile(res.tempFilePaths[0], "", "").then((data) => {
  310. // if (val == 1) {
  311. // state.form.vehBodyUrl = data;
  312. // } else {
  313. // state.form.roadTransportPermitPicUrl = data;
  314. // }
  315. })
  316. },
  317. });
  318. };
  319. let waitTime = ref(0)
  320. //倒计时函数
  321. const codeInterval = () => {
  322. waitTime.value = 60
  323. let timer = setInterval(() => {
  324. if (waitTime.value == 1) {
  325. clearInterval(timer)
  326. }
  327. waitTime.value -= 1
  328. }, 1000)
  329. }
  330. const getCode = () => {
  331. console.log(123);
  332. if (checkStr(state.form.newMobile, "mobile")) {
  333. sendCodeApi()
  334. codeInterval()
  335. } else {
  336. uni.showToast({
  337. title: '请输入正确的手机号',
  338. icon: 'none'
  339. });
  340. }
  341. }
  342. // 发送验证码
  343. const sendCodeApi = () => {
  344. //参数说明
  345. let options = {
  346. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  347. data: {
  348. mobile: ""
  349. }, //请求参数
  350. method: "POST", //提交方式(默认POST)
  351. showLoading: true, //是否显示加载中(默认显示)
  352. };
  353. //调用方式
  354. requestNew(newMobileSmsCode, options)
  355. .then((res) => {
  356. let data = res
  357. console.log(data, "#################");
  358. if (data.info == "成功") {
  359. msg("发送成功")
  360. console.log('######################CCCCCCCCCCCCCCCCC');
  361. }
  362. })
  363. .catch((err) => {
  364. console.log(err);
  365. });
  366. }
  367. const cancle = () => {
  368. state.isTakePhotoModeShow = false
  369. }
  370. const takePhoto = (val) => {
  371. console.log("拍照", val)
  372. state.phoneType = val;
  373. state.showImg = true;
  374. }
  375. const xiangce = (val) => {
  376. console.log("val", val)
  377. if (state.choiceIndex == 3) {
  378. var imageType = 1;
  379. } else {
  380. var imageType = 2;
  381. }
  382. chooseImageCompress((res) => {
  383. state.images = res.tempFilePath ? res.tempFilePath : res.tempFilePaths[0]
  384. state.showImg = false
  385. state.phoneType = state.choiceIndex
  386. state.isTakePhotoModeShow = false
  387. })
  388. }
  389. const confirmReturn = (val) => {
  390. if (state.choiceIndex == 3) {
  391. var imageType = 1;
  392. } else {
  393. var imageType = 2;
  394. }
  395. state.phoneType = 0
  396. state.isTakePhotoModeShow = false
  397. uploadFile(val.tempImagePath, imageType, vehicleLicenseOcr).then((data) => {
  398. console.log('输出内容=====================', state.choiceIndex)
  399. if (state.choiceIndex == "3") {
  400. if (data.plate_a.length > 8) {
  401. state.form.vehiclePlate = data.plate_a.substring(0, 8);
  402. } else {
  403. state.form.vehiclePlate = data.plate_a;
  404. }
  405. state.form.ownerName = data.man;
  406. state.form.vehicleType = data.vehicle;
  407. state.form.character = data.character;
  408. state.form.vin = data.vin;
  409. state.form.engineNum = data.engine;
  410. state.form.registerDate = data.register;
  411. state.form.issueDate = data.issue;
  412. state.form.vehPosImgUrl = data.imageUrl;
  413. state.form.vehicleModel = data.model;
  414. console.log("走不是牵引车的", data.vehicle.indexOf('牵引车'), data.vehicle)
  415. if (data.vehicle.indexOf('牵引车') > 0) {
  416. console.log("是牵引车的")
  417. qian()
  418. } else {
  419. console.log("走不是牵引车的")
  420. notQian()
  421. }
  422. } else {
  423. state.form.approvedCount = data.apc;
  424. state.form.approvedCountShow = data.apc;
  425. state.form.maintenaceMass = data.unladen;
  426. state.form.maintenaceMassShow = data.unladen;
  427. // 91接口差
  428. // // #ifdef MP-WEIXIN
  429. // state.form.vehicleDimensions = data.overall.replaceAll("×", "X");
  430. // // #endif
  431. // // #ifdef MP-ALIPAY
  432. // state.form.vehicleDimensions = data.overall.replace(/×/g, "X");
  433. // // #endif
  434. // let arr = data.overall.split("×");
  435. // #ifdef MP-WEIXIN
  436. state.form.vehicleDimensions = data.overall.replaceAll("x", "X");
  437. // #endif
  438. // #ifdef MP-ALIPAY
  439. state.form.vehicleDimensions = data.overall.replace(/x/g, "X");
  440. // #endif
  441. let arr = state.form.vehicleDimensions.split("X");
  442. state.outlineL = arr[0]; //外廓 长
  443. state.outlineW = arr[1]; //外廓 宽
  444. state.outlineH = arr[2].substring(0, arr[2].length - 2); //外廓 高
  445. state.form.totalMass = data.gross ? data.gross : 0;
  446. state.form.totalMassShow = data.gross ? data.gross : 0;
  447. console.log("state.form.totalMassShow", state.form.totalMassShow)
  448. state.form.vehNegImgUrl = data.imageUrl;
  449. state.form.permittedWeight = data.alc ? data.alc : 0;
  450. state.form.permittedTowWeight = data.towing ? data.towing : 0;
  451. console.log('=====================', state.form.vehNegImgUrl, state)
  452. }
  453. state.isTakePhotoModeShow = false
  454. })
  455. console.log("图片地址val", val.tempImagePath)
  456. }
  457. const camera = () => {
  458. state.phoneType = 0
  459. }
  460. </script>
  461. <style lang="scss" scoped>
  462. .bg {
  463. background-color: white;
  464. width: 90%;
  465. margin: 0 auto;
  466. margin-top: 20rpx;
  467. border-radius: 12px;
  468. border: 1px solid #FFFFFF;
  469. padding: 30rpx 20rpx;
  470. overflow: hidden;
  471. box-sizing: border-box;
  472. .title_wrap {
  473. display: flex;
  474. font-weight: 400;
  475. justify-content: space-between;
  476. .title {
  477. font-size: 30rpx;
  478. color: #01243A;
  479. }
  480. }
  481. .des {
  482. font-weight: 400;
  483. font-size: 28rpx;
  484. color: #01243A;
  485. line-height: 56rpx;
  486. margin-top: 10rpx;
  487. text-indent: 1rem;
  488. }
  489. }
  490. .action {
  491. position: absolute;
  492. left: 0;
  493. height: 160rpx;
  494. background-color: #fff;
  495. border-radius: 30rpx 30rpx 0 0;
  496. width: 100vw;
  497. display: flex;
  498. align-items: center;
  499. justify-content: center;
  500. flex-direction: column;
  501. margin-top: 20rpx;
  502. }
  503. .card{
  504. display: flex;
  505. align-items: center;
  506. image{
  507. width: 120rpx;
  508. height: 120rpx;
  509. margin-right: 20rpx;
  510. }
  511. .details view:first-child{
  512. margin-bottom: 10rpx;
  513. }
  514. }
  515. .picture-wrapper {
  516. margin-top: 30rpx;
  517. .bg1 {
  518. background: #F5F9FB;
  519. border-radius: 10rpx;
  520. padding: 40rpx 30rpx;
  521. display: flex;
  522. justify-content: space-between;
  523. .name {
  524. padding-top: 30rpx;
  525. font-size: 32rpx;
  526. font-family: SourceHanSansSC, SourceHanSansSC;
  527. font-weight: 500;
  528. color: #111;
  529. line-height: 34rpx;
  530. }
  531. .value {
  532. margin-top: 20rpx;
  533. font-size: 22rpx;
  534. font-family: SourceHanSansSC, SourceHanSansSC;
  535. font-weight: 400;
  536. color: #999999;
  537. line-height: 24rpx;
  538. }
  539. .tip {
  540. margin-top: 20rpx;
  541. text-align: center;
  542. width: 100rpx;
  543. height: 30rpx;
  544. border-radius: 6rpx;
  545. border: 1rpx solid #CCB375;
  546. .tip-value {
  547. font-size: 20rpx;
  548. font-family: Microsoft YaHei;
  549. font-weight: 400;
  550. color: #CCB375;
  551. line-height: 30rpx;
  552. opacity: 1;
  553. }
  554. }
  555. }
  556. .icon {
  557. width: 304rpx;
  558. height: 190rpx;
  559. background-image: var(--bgimg);
  560. background-size: 100% 100%;
  561. background-repeat: no-repeat;
  562. }
  563. }
  564. .search{
  565. background: #F8F4E7;
  566. border-radius: 10rpx;
  567. border: 1px solid #CCB375;
  568. font-size: 24rpx;
  569. color: #CCB375;
  570. padding: 0rpx 14rpx;
  571. flex-shrink: 0;
  572. height: 60rpx;
  573. line-height: 60rpx;
  574. margin-left: 20rpx;
  575. }
  576. .showworld{
  577. display: flex;
  578. justify-content: flex-end;
  579. }
  580. .choice-takePhoto-wrap {
  581. width: 100%;
  582. height: 100vh;
  583. background-color: rgba(127, 127, 127, 0.2);
  584. position: fixed;
  585. left: 0;
  586. top: 0;
  587. z-index: 11111;
  588. .choice-takePhoto {
  589. position: absolute;
  590. bottom: 0;
  591. background-color: white;
  592. width: 100%;
  593. border-radius: 20rpx 20rpx 0 0;
  594. }
  595. .choice-takePhoto>view:first-child {
  596. text-align: center;
  597. height: 80rpx;
  598. line-height: 80rpx;
  599. border-bottom: 1rpx solid rgba(127, 127, 127, 0.3);
  600. background-color: white;
  601. }
  602. .choice-takePhoto>view:last-child {
  603. text-align: center;
  604. height: 80rpx;
  605. line-height: 80rpx;
  606. border-top: 6rpx solid rgba(127, 127, 127, 0.1);
  607. background-color: white;
  608. }
  609. .choice-takePhoto>view {
  610. text-align: center;
  611. height: 80rpx;
  612. line-height: 80rpx;
  613. background-color: white;
  614. }
  615. }
  616. </style>