history_details_bottom_leg.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773
  1. <template>
  2. <scroll-view>
  3. <view class="uni-media-list" v-for="(value, key) in dataJson.zEngineeringNodeBo.zEngineeringInfoBoList"
  4. :key="key" v-if="isEdit(value)">
  5. <view class="uni-media-list-body">
  6. <view>
  7. <view class="uni-media-list-text-top">
  8. <view class="tit-text">施工时间:</view>{{value.updateTime}}
  9. </view>
  10. <view class="uni-media-list-text-top">
  11. <view class="uni-common-mt" style="width: 100%;">
  12. <text class="tit-text">施工内容:</text>
  13. <view style="width: 100%;box-sizing: border-box;">
  14. <textarea class="textarea" maxlength="255" placeholder-style="padding: 10rpx;"
  15. style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
  16. auto-height :value="value.zEngineeringMaterialBo[0].remark"
  17. @blur="bindTextAreaBlur($event.target.value,key)"></textarea>
  18. </view>
  19. </view>
  20. </view>
  21. <view class="uni-media-list-text-top" style="border-bottom: 1px solid #f8f8f8;">
  22. <view class="tit-text">
  23. 施工位置
  24. </view>
  25. <view style="display: flex; align-items: center; justify-content: right; width: 70%;">
  26. <view v-if="isEmpty(value.constructAddre)" @click="pickerShow('position')"
  27. style="margin-right: 20rpx;">
  28. <span style="color: darkgray;">请选择施工位置</span>
  29. </view>
  30. <view v-else @click="pickerShow('position',key)" style="margin-right: 20rpx;">
  31. <span style="color: black;">{{value.constructAddre}}</span>
  32. </view>
  33. <input class="uni-input" type="number" v-model="value.zEngineeringMaterialBo[0].number"
  34. style="text-align: center; border: 1px solid #cccccc; border-radius: 20rpx;width: 60px; margin-left: 10rpx;margin-right: 10rpx;"></input>
  35. </view>
  36. </view>
  37. <view class="uni-media-list-text-top">
  38. <view class="uni-common-mt" style="width: 100%;">
  39. <text class="tit-text">沟上部分照片:</text>
  40. <view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; ">
  41. <image :src="loadImgSrc('updateimg.png')" mode=""
  42. style="width: 200rpx; height: 150rpx; margin: 0 12rpx;; "
  43. @click="chooseimage(0,key)">
  44. </image>
  45. <view v-for="(item,index) in value.onTheDitch" :key="index"
  46. style="position: relative;">
  47. <view
  48. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg'||item.substring(item.length-4)=='jpeg' ">
  49. <image :src="item" mode=""
  50. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
  51. @click="showPhoto(index,value.onTheDitch)">
  52. </image>
  53. </view>
  54. <view v-else>
  55. <video :src="item"
  56. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
  57. </view>
  58. <view @click="removeht(index,key,0)"
  59. style="position: absolute; top: 0; right: 14rpx; border-radius: 50%;">
  60. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  61. </image>
  62. </view>
  63. </view>
  64. </view>
  65. </view>
  66. </view>
  67. <view class="uni-media-list-text-top">
  68. <view class="uni-common-mt" style="width: 100%;">
  69. <text class="tit-text">开挖前照片:</text>
  70. <view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; ">
  71. <image :src="loadImgSrc('updateimg.png')" mode=""
  72. style="width: 200rpx; height: 150rpx; margin: 0 12rpx;; " @click="chooseimage(1,key)">
  73. </image>
  74. <view v-for="(item,index) in value.beforeBottom" :key="index" style="position: relative;">
  75. <view
  76. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg'||item.substring(item.length-4)=='jpeg' ">
  77. <image :src="item" mode="" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
  78. @click="showPhoto(index,value.beforeBottom)">
  79. </image>
  80. </view>
  81. <view v-else>
  82. <video :src="item" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
  83. </view>
  84. <view @click="removeht(index,key,1)"
  85. style="position: absolute; top: 0; right: 14rpx; border-radius: 50%;">
  86. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  87. </image>
  88. </view>
  89. </view>
  90. </view>
  91. </view>
  92. </view>
  93. <view class="uni-media-list-text-top">
  94. <view class="uni-common-mt" style="width: 100%;">
  95. <text class="tit-text" style=" font-size: 13px;color:
  96. #000;margin-top: 5px;">下沟照片:</text>
  97. <view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; ">
  98. <image :src="loadImgSrc('updateimg.png')" mode=""
  99. style="width: 200rpx; height: 150rpx; margin: 0 12rpx;; " @click="chooseimage(2,key)">
  100. </image>
  101. <view v-for="(item,index) in value.legBackfilling" :key="index" style="position: relative;">
  102. <view
  103. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg'||item.substring(item.length-4)=='jpeg' ">
  104. <image :src="item" mode="" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
  105. @click="showPhoto(index,value.legBackfilling)">
  106. </image>
  107. </view>
  108. <view v-else>
  109. <video :src="item" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
  110. </view>
  111. <view @click="removeht(index,key,2)"
  112. style="position: absolute; top: 0; right: 14rpx; border-radius: 50%;">
  113. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  114. </image>
  115. </view>
  116. </view>
  117. </view>
  118. </view>
  119. </view>
  120. <view class="uni-media-list-text-top">
  121. <view class="uni-common-mt" style="width: 100%;">
  122. <text class="tit-text" style=" font-size: 13px;color:
  123. #000;margin-top: 5px;">回填照片:</text>
  124. <view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; ">
  125. <image :src="loadImgSrc('updateimg.png')" mode=""
  126. style="width: 200rpx; height: 150rpx; margin: 0 12rpx;; " @click="chooseimage(3,key)">
  127. </image>
  128. <view v-for="(item,index) in value.inferiorSulcus" :key="index" style="position: relative;">
  129. <view
  130. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg'||item.substring(item.length-4)=='jpeg' ">
  131. <image :src="item" mode="" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
  132. @click="showPhoto(index,value.inferiorSulcus)">
  133. </image>
  134. </view>
  135. <view v-else>
  136. <video :src="item" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
  137. </view>
  138. <view @click="removeht(index,key,3)"
  139. style="position: absolute; top: 0; right: 14rpx; border-radius: 50%;">
  140. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  141. </image>
  142. </view>
  143. </view>
  144. </view>
  145. </view>
  146. </view>
  147. </view>
  148. </view>
  149. </view>
  150. <SelectPicker :list="selectList" @change="changeSelect" v-if="open" @close="close" titleKey="name"
  151. subtitleKey="id">
  152. </SelectPicker>
  153. <SelectPicker :list="dictOptions" @change="changeSelectDict" v-if="openDict" @close="closeDict"
  154. titleKey="dictLabel" subtitleKey="dictValue" v-model="name"></SelectPicker>
  155. <view class="action-btn" v-if="hideButton==false">
  156. <button @click="submit" class="btn cu-btn block bg-blue lg round">确认</button>
  157. </view>
  158. </scroll-view>
  159. </template>
  160. <script>
  161. import SelectPicker from '../../components/selectPicker/select_picker.vue'
  162. import {
  163. getDicts
  164. } from "@/api/system/dict/data";
  165. import {
  166. getToken
  167. } from '../../utils/auth';
  168. import user from '@/store/modules/user'
  169. import {
  170. getHistoryDetails,
  171. getEnginMaterialQualityList,
  172. putHistory,
  173. getEnginSpecificationsList
  174. } from '@/api/common'
  175. export default {
  176. components: {
  177. SelectPicker,
  178. },
  179. data() {
  180. return {
  181. // playVideo: false,//视频播放放大
  182. // playVideoSrc:'',
  183. selectZbfList: [],
  184. dictOptions: [],
  185. openDict: false,
  186. dataIndex: 0, //数据用第几条
  187. dataType: '', //数据用第几条
  188. selectIndex: 0, //材质规格用的第几条
  189. imageIndex: 0,
  190. headers: {
  191. Authorization: "Bearer " + getToken()
  192. },
  193. nodeId: '',
  194. type: '',
  195. title: '',
  196. dataJson: '',
  197. enginClassification: '',
  198. enginType: '',
  199. enginClassValue: '',
  200. selectList: [],
  201. open: false,
  202. selectType: '',
  203. hideButton: false,
  204. }
  205. },
  206. onLoad(options) {
  207. if ('params' in options) {
  208. let e = JSON.parse(decodeURIComponent(options.params));
  209. this.nodeId = e.id;
  210. this.type = '底腿';
  211. getHistoryDetails(this.nodeId, this.type).then(response => {
  212. if (response.data.zEngineeringNodeBo != null) {
  213. this.hideButton = false;
  214. this.dataJson = response.data;
  215. this.title = response.data.zEngineeringNodeBo.type;
  216. this.enginType = response.data.enginType;
  217. this.enginClassification = response.data.enginClassification;
  218. } else {
  219. this.hideButton = true;
  220. this.$modal.msg("暂无历史信息")
  221. }
  222. });
  223. }
  224. },
  225. methods: {
  226. //关闭弹窗
  227. close(e) {
  228. this.open = false
  229. },
  230. pickerShow(type, index) {
  231. this.dataIndex = index;
  232. this.dataType = type;
  233. if (type == 'position') {
  234. this.openDict = true;
  235. getDicts("construct_addre").then(response => {
  236. this.dictOptions = response.data;
  237. });
  238. }
  239. },
  240. bindTextAreaBlur(e, index) {
  241. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList[index].zEngineeringMaterialBo[0].remark = e;
  242. },
  243. changeSelectDict(item, index) {
  244. this.openDict = false;
  245. if (this.dataType == 'position') {
  246. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList[this.dataIndex].constructAddre = item
  247. .dictValue;
  248. }
  249. },
  250. removeht(index, key, type) {
  251. uni.showModal({
  252. title: '提示',
  253. content: '是否删除该图片或视频?',
  254. success: (res) => {
  255. if (res.confirm) {
  256. if (type == 0) {
  257. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList[key].onTheDitch
  258. .splice(index, 1)
  259. } else if (type == 1) {
  260. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList[key].beforeBottom
  261. .splice(index, 1)
  262. } else if (type == 2) {
  263. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList[key].legBackfilling
  264. .splice(index, 1)
  265. } else if (type == 3) {
  266. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList[key].inferiorSulcus
  267. .splice(index, 1)
  268. }
  269. }
  270. }
  271. })
  272. },
  273. remove(index, key) {
  274. uni.showModal({
  275. title: '提示',
  276. content: '是否删除该图片或视频?',
  277. success: (res) => {
  278. if (res.confirm) {
  279. this.dataJson.zEngineeringNodeBo
  280. .zEngineeringInfoBoList[key]
  281. .zEngiineeringPhotoBoList.splice(index, 1)
  282. }
  283. }
  284. })
  285. },
  286. chooseimage(type, index) {
  287. this.dataIndex = index;
  288. let _this = this;
  289. uni.chooseImage({
  290. sizeType: ['album', 'camera'],
  291. success(resp) {
  292. resp.tempFiles.forEach((item, index) => {
  293. const task = uni.uploadFile({
  294. url: _this.$HTTP + `/obs`,
  295. filePath: item.path,
  296. name: 'file',
  297. formData: {},
  298. header: _this.headers,
  299. success: res => {
  300. let data = JSON.parse(res.data);
  301. if (![200].includes(data.code)) {
  302. _this.$modal.msg(data.msg)
  303. } else {
  304. if (_this.progress === 100) {
  305. if (type == 0) {
  306. _this.dataJson.zEngineeringNodeBo
  307. .zEngineeringInfoBoList[_this.dataIndex]
  308. .onTheDitch.push(data.data
  309. .url);
  310. } else if (type == 1) {
  311. _this.dataJson.zEngineeringNodeBo
  312. .zEngineeringInfoBoList[_this.dataIndex]
  313. .beforeBottom.push(data.data
  314. .url);
  315. } else if (type == 2) {
  316. _this.dataJson.zEngineeringNodeBo
  317. .zEngineeringInfoBoList[_this.dataIndex]
  318. .legBackfilling.push(data.data
  319. .url);
  320. } else if (type == 3) {
  321. _this.dataJson.zEngineeringNodeBo
  322. .zEngineeringInfoBoList[_this.dataIndex]
  323. .inferiorSulcus.push(data.data
  324. .url);
  325. }
  326. _this.$modal.msg('上传成功!')
  327. }
  328. }
  329. },
  330. fail: e => {
  331. _this.$modal.msg('上传失败!')
  332. },
  333. complete: res => {
  334. uni.hideLoading();
  335. _this.uploading = false;
  336. }
  337. });
  338. task.onProgressUpdate(res => {
  339. _this.progress = res.progress;
  340. uni.showLoading({
  341. title: '上传中'
  342. })
  343. if (_this.progress != 100) {
  344. _this.loading = false
  345. } else {
  346. _this.loading = true
  347. }
  348. });
  349. })
  350. },
  351. })
  352. },
  353. choosevideo(e) {
  354. let _this = this;
  355. uni.chooseVideo({
  356. sourceType: ['album', 'camera'],
  357. maxDuration: 30,
  358. success(resp) {
  359. const task = uni.uploadFile({
  360. url: _this.$HTTP + `/obs`,
  361. filePath: resp.tempFilePath,
  362. name: 'file',
  363. formData: {},
  364. header: _this.headers,
  365. success: res => {
  366. let data = JSON.parse(res.data);
  367. if (![200].includes(res.statusCode)) {
  368. this.uploadError(index, data);
  369. } else {
  370. //上传成功
  371. if (_this.progress === 100) {
  372. if (e == 'other') {
  373. _this.dataJson.zEngineeringNodeBo
  374. .zEngineeringInfoBoList[_this.dataIndex]
  375. .zEngiineeringPhotoBoList.push(data.data.url);
  376. } else if (e == 'sfht') {
  377. _this.dataJson.zEngineeringNodeBo
  378. .zEngineeringInfoBoList[_this.dataIndex]
  379. .stonePowder.push(data.data.url);
  380. } else if (e == 'jsdps') {
  381. _this.dataJson.zEngineeringNodeBo
  382. .zEngineeringInfoBoList[_this.dataIndex]
  383. .warningtTape.push(data.data.url);
  384. } else if (e == 'hth') {
  385. _this.dataJson.zEngineeringNodeBo
  386. .zEngineeringInfoBoList[_this.dataIndex]
  387. .photosAfter.push(data.data.url);
  388. } else if (e == 'video') {
  389. _this.dataJson.zEngineeringNodeBo
  390. .zEngineeringInfoBoList[_this.dataIndex]
  391. .video.push(data.data.url);
  392. }
  393. _this.$modal.msg('上传成功!')
  394. }
  395. }
  396. },
  397. fail: e => {
  398. _this.$modal.msg('上传失败!')
  399. this.uploadError(index, e);
  400. },
  401. complete: res => {
  402. uni.hideLoading();
  403. _this.uploading = false;
  404. }
  405. });
  406. task.onProgressUpdate(res => {
  407. _this.progress = res.progress;
  408. uni.showLoading({
  409. title: '上传中'
  410. })
  411. if (_this.progress != 100) {
  412. _this.loading = false
  413. } else {
  414. _this.loading = true
  415. }
  416. });
  417. },
  418. })
  419. },
  420. showPhoto(index, arr) {
  421. let newArr = [];
  422. arr.forEach((item, index) => {
  423. if (item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' ||
  424. item.substring(item.length - 4) == 'jpeg') {
  425. newArr.push(item)
  426. }
  427. });
  428. uni.previewImage({
  429. current: index,
  430. urls: newArr,
  431. })
  432. },
  433. isEmpty(str) {
  434. return (!str || 0 === str.length);
  435. },
  436. isEdit(item) {
  437. var isShow = item.createBy == this.$user.state.name;
  438. return isShow;
  439. },
  440. submit() {
  441. let isSubmit = true;
  442. if (this.title == '底腿') {
  443. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList.forEach((res) => {
  444. if (this.isEmpty(res.constructAddre)) {
  445. this.$modal.msg("请施工位置");
  446. isSubmit = false;
  447. }
  448. if (this.isEmpty(res.zEngineeringMaterialBo[0].number)) {
  449. this.$modal.msg("请施工位置");
  450. isSubmit = false;
  451. }
  452. if (res.onTheDitch.length == 0) {
  453. this.$modal.msg("请上传沟上部分照片");
  454. isSubmit = false;
  455. }
  456. if (res.beforeBottom.length == 0) {
  457. this.$modal.msg("请上传开挖前照片");
  458. isSubmit = false;
  459. }
  460. if (res.legBackfilling.length == 0) {
  461. this.$modal.msg("请上传下沟照片");
  462. isSubmit = false;
  463. }
  464. if (res.inferiorSulcus.length == 0) {
  465. this.$modal.msg("请上传回填照片");
  466. isSubmit = false;
  467. }
  468. })
  469. } else if (this.title == '下沟') {
  470. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList.forEach((res) => {
  471. res.zEngineeringMaterialBo.forEach((itme) => {
  472. if (itme.specifications == '') {
  473. this.$modal.msg("请选择规格");
  474. isSubmit = false;
  475. }
  476. if (itme.number == '') {
  477. this.$modal.msg("请输入米数");
  478. isSubmit = false;
  479. }
  480. })
  481. if (res.constructionRecords.length <= 0) {
  482. this.$modal.msg('请上传管道施工记录照片')
  483. isSubmit = false;
  484. }
  485. if (res.ductalEpithelium.length <= 0) {
  486. this.$modal.msg('请上传管上皮深度测量照片')
  487. isSubmit = false;
  488. }
  489. if (res.trenchProspect.length <= 0) {
  490. this.$modal.msg('请上传管沟远景照片')
  491. isSubmit = false;
  492. }
  493. if (res.video.length <= 0) {
  494. this.$modal.msg('请上传视频')
  495. isSubmit = false;
  496. }
  497. })
  498. } else {
  499. this.dataJson.zEngineeringNodeBo.zEngineeringInfoBoList.forEach((res) => {
  500. if (res.zEngiineeringPhotoBoList.length == 0) {
  501. this.$modal.msg("请上传照片");
  502. isSubmit = false;
  503. }
  504. })
  505. }
  506. if (!isSubmit) {
  507. return
  508. }
  509. putHistory(this.dataJson).then(
  510. response => {
  511. if (response.code == '200') {
  512. uni.hideLoading()
  513. uni.showToast({
  514. title: response.msg,
  515. icon: 'none',
  516. duration: 2000
  517. });
  518. setTimeout(function() {
  519. uni.navigateBack();
  520. }, 1000)
  521. }
  522. });
  523. }
  524. }
  525. }
  526. </script>
  527. <style lang="scss">
  528. .uni-media-list-body {
  529. background: #fff;
  530. border: 1px solid #eee;
  531. border-radius: 40rpx;
  532. margin: 20rpx;
  533. padding: 10rpx 0 40rpx;
  534. box-shadow: 0 0 5px #eee;
  535. }
  536. .uni-media-list-text-top {
  537. display: flex;
  538. align-items: center;
  539. justify-content: space-between;
  540. padding: 10px;
  541. position: relative;
  542. }
  543. .to-right-icon {
  544. width: 15px;
  545. height: 15px;
  546. position: absolute;
  547. top: 50%;
  548. transform: translateY(-50%);
  549. }
  550. .share {
  551. width: 100%;
  552. height: 100%;
  553. }
  554. .tit-text {
  555. color: #4f535a;
  556. margin-right: 20rpx;
  557. }
  558. .normal-text {}
  559. .cz-style {
  560. background: #e8f4f9;
  561. margin: 20rpx;
  562. padding: 10rpx;
  563. border-radius: 20rpx;
  564. border: 1px solid #d4e3f0;
  565. }
  566. .uni-media-list-text-top {
  567. font-size: 14px;
  568. color: #696969;
  569. padding: 20rpx 20rpx;
  570. border-bottom: 1px solid #eee;
  571. display: flex;
  572. align-items: center;
  573. }
  574. .share-box {
  575. width: 100%;
  576. height: 100%;
  577. position: fixed;
  578. top: 0rpx;
  579. left: 0rpx;
  580. bottom: 0rpx;
  581. right: 0rpx;
  582. background-color: rgba(0, 0, 0, 0.4);
  583. transition: .3s;
  584. z-index: 999;
  585. }
  586. // 进入分享动画
  587. .share-show {
  588. transition: all 0.3s ease;
  589. transform: translateY(0%) !important;
  590. border-radius: 20px 20px 0px 0px;
  591. }
  592. .scroll-Y {
  593. height: 58vh;
  594. }
  595. // 离开分享动画
  596. .share-item {
  597. position: fixed;
  598. left: 0;
  599. bottom: 0;
  600. width: 100%;
  601. height: 70%;
  602. background-color: #FFFFFF;
  603. transition: all 0.3s ease;
  604. transform: translateY(100%);
  605. z-index: 1999;
  606. .share-to {
  607. width: 100%;
  608. height: 30px;
  609. display: flex;
  610. justify-content: left;
  611. margin: 30rpx 35rpx;
  612. align-items: center;
  613. }
  614. .content {
  615. width: 100%;
  616. height: auto;
  617. display: flex;
  618. flex-wrap: wrap;
  619. .block {
  620. width: 100%;
  621. display: flex;
  622. flex-direction: column;
  623. justify-content: center;
  624. align-items: left;
  625. height: auto;
  626. image {
  627. width: 80rpx;
  628. height: 80rpx;
  629. }
  630. text {
  631. margin-top: 16rpx;
  632. font-size: 28rpx;
  633. color: #606266;
  634. }
  635. }
  636. }
  637. .cancel {
  638. width: 100%;
  639. height: 3rem;
  640. display: flex;
  641. justify-content: center;
  642. align-items: center;
  643. border-top: 1rpx solid #E4E7ED;
  644. }
  645. }
  646. .uni-media-list-text-top {
  647. display: flex;
  648. align-items: center;
  649. justify-content: space-between;
  650. padding: 10px;
  651. position: relative;
  652. }
  653. .uni-list {
  654. border: 1xp solid #eee;
  655. }
  656. .to-right-icon {
  657. width: 15px;
  658. height: 15px;
  659. position: absolute;
  660. top: 50%;
  661. transform: translateY(-50%);
  662. }
  663. .text {
  664. font-size: 16px;
  665. color: #333;
  666. }
  667. .tj-btn {
  668. height: 69rpx;
  669. background: #3184f0;
  670. border-radius: 6rpx;
  671. font-size: 25rpx;
  672. font-weight: 400;
  673. color: #FFFFFF;
  674. line-height: 69rpx;
  675. margin: 40rpx 70rpx;
  676. }
  677. .sc-btn {
  678. height: 69rpx;
  679. background: #f0686b;
  680. border-radius: 6rpx;
  681. font-size: 25rpx;
  682. font-weight: 400;
  683. color: #FFFFFF;
  684. line-height: 69rpx;
  685. margin: 40rpx;
  686. }
  687. // .gesture-area {
  688. // //加浮动弹窗
  689. // width: 100%;
  690. // height: 100%;
  691. // }
  692. </style>