addInspection.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. <template>
  2. <view class="bg-white">
  3. <cu-custom bgColor="bg-blue" :isBack="true">
  4. <block slot="backText"></block>
  5. <block slot="content">新增巡检</block>
  6. <block slot="right">
  7. <text style="margin-right: 10rpx" @click="submitForm">保存</text>
  8. </block>
  9. </cu-custom>
  10. <view class="hc-tab-bar">
  11. <scroll-view scroll-x class="bg-white nav">
  12. <view class="flex text-center">
  13. <block v-for="item in engineeringType">
  14. <view class="cu-item flex-sub" :class="item.id === addform.engineeringType?'text-blue cur':''"
  15. @tap="engineeringTypeChange(item)">
  16. {{ item.label }}
  17. </view>
  18. </block>
  19. </view>
  20. </scroll-view>
  21. </view>
  22. <view style="padding: 15px;">
  23. <uni-forms ref="formRef" :rules="formRules" label-width="110px" :modelValue="addform">
  24. <uni-forms-item label="检查日期" required name="startDate">
  25. <uni-datetime-picker type="date" return-type="string" v-model="addform.startDate"/>
  26. </uni-forms-item>
  27. <uni-forms-item label="工程名称" required name="unitName">
  28. <uni-easyinput v-model="addform.unitName" placeholder="请输入工程名称"/>
  29. </uni-forms-item>
  30. <uni-forms-item label="关联部位" required name="relation">
  31. <view class="hc-fj-form-item-s">
  32. <view class="title text-cut">{{addform.relation ? '已选择关联' : '请点击右边按钮选择' }}</view>
  33. <button class="cu-btn bg-blue" @click="relationStringClick">+选择关联</button>
  34. </view>
  35. </uni-forms-item>
  36. <uni-forms-item label="左/右幅" required name="aroundPicture">
  37. <uni-data-select v-model="addform.aroundPicture" :localdata="aroundPictureData"/>
  38. </uni-forms-item>
  39. <uni-forms-item label="分部工程类别" required name="segmentName">
  40. <uni-easyinput v-model="addform.segmentName" placeholder="请输入分部工程类别"/>
  41. </uni-forms-item>
  42. <!-- 桥梁工程 -->
  43. <block v-if="addform.engineeringType === 2">
  44. <uni-forms-item label="分项工程名称" required name="subitemName">
  45. <uni-easyinput v-model="addform.subitemName" placeholder="请输入分项工程名称"/>
  46. </uni-forms-item>
  47. <uni-forms-item label="缺陷所处位置" required name="startStopStake">
  48. <uni-easyinput v-model="addform.startStopStake" placeholder="请输入"/>
  49. </uni-forms-item>
  50. <uni-forms-item label="构建编号" required name="buildNumber">
  51. <uni-easyinput v-model="addform.buildNumber" placeholder="请输入"/>
  52. </uni-forms-item>
  53. </block>
  54. <!-- 隧道工程 -->
  55. <block v-if="addform.engineeringType === 1">
  56. <uni-forms-item label="分项工程桩号" required name="subitemStake">
  57. <uni-easyinput v-model="addform.subitemStake" placeholder="请输入分项工程桩号"/>
  58. </uni-forms-item>
  59. <uni-forms-item label="缺陷起点桩号" required name="startStopStake">
  60. <uni-easyinput v-model="addform.startStopStake" placeholder="请输入"/>
  61. </uni-forms-item>
  62. <uni-forms-item label="横坐标" required name="abscissa_1">
  63. <uni-easyinput v-model="addform.abscissa_1" placeholder="请输入"/>
  64. </uni-forms-item>
  65. <uni-forms-item label="缺陷止点桩号" required name="stopStake">
  66. <uni-easyinput v-model="addform.stopStake" placeholder="请输入"/>
  67. </uni-forms-item>
  68. <uni-forms-item label="横坐标" required name="abscissa_2">
  69. <uni-easyinput v-model="addform.abscissa_2" placeholder="请输入"/>
  70. </uni-forms-item>
  71. <uni-forms-item label="长(m)" required name="dataLength">
  72. <uni-easyinput v-model="addform.dataLength" placeholder="请输入"/>
  73. </uni-forms-item>
  74. <uni-forms-item label="宽(m)" required name="dataWidth">
  75. <uni-easyinput v-model="addform.dataWidth" placeholder="请输入"/>
  76. </uni-forms-item>
  77. <uni-forms-item label="面积" required name="dataArea">
  78. <uni-easyinput v-model="addform.dataArea" placeholder="请输入面积"/>
  79. </uni-forms-item>
  80. </block>
  81. <uni-forms-item label="病害类型" required name="diseaseType" v-if="addform.engineeringType === 1">
  82. <uni-data-select v-model="addform.diseaseType" :clear="false" :localdata="diseaseTypeData" @change="diseaseTypeChange"/>
  83. </uni-forms-item>
  84. <uni-forms-item label="病害类型" required name="diseaseType" v-if="addform.engineeringType === 2">
  85. <uni-data-select v-model="addform.diseaseType" :clear="false" :localdata="diseaseTypeData1" @change="diseaseTypeChange"/>
  86. </uni-forms-item>
  87. <uni-forms-item label="严重程度" required name="severity">
  88. <uni-data-select v-model="addform.severity" :localdata="severityData"/>
  89. </uni-forms-item>
  90. <uni-forms-item label="限制性缺陷" required name="defectType">
  91. <uni-data-select v-model="addform.defectType" :localdata="defectTypeData"/>
  92. </uni-forms-item>
  93. <uni-forms-item label="病害描述" required name="hiddenDanger">
  94. <uni-easyinput type="textarea" v-model="addform.hiddenDanger" :disabled="!addform.diseaseType" placeholder="请先选择病害类型"/>
  95. </uni-forms-item>
  96. <uni-forms-item label="上传照片" required name="images">
  97. <view class="hc-form-up-img-box">
  98. <block v-for="(item, index) in photoImages" :key="index">
  99. <view class="bg-img" @click="viewImage(index)">
  100. <image :src="item" mode="aspectFill"/>
  101. <view class="cu-tag bg-red" @click.stop="delImg(index)">
  102. <text class='cuIcon-close'/>
  103. </view>
  104. </view>
  105. </block>
  106. <view class="solids-add" @click="chooseImageTap">
  107. <text class='cuIcon-add'/>
  108. </view>
  109. <view class="tip-text">支持JPG/JPEG/PNG</view>
  110. </view>
  111. </uni-forms-item>
  112. <uni-forms-item label="是否限期整改" required name="deadline">
  113. <uni-data-checkbox v-model="addform.deadline" :localdata="[{text: '是',value: 1}, {text: '否',value: 0}]"/>
  114. </uni-forms-item>
  115. <uni-forms-item label="限期整改日期" required name="endDate">
  116. <uni-datetime-picker type="date" return-type="string" v-model="addform.endDate"/>
  117. </uni-forms-item>
  118. <uni-forms-item label="施工方检查人" required name="checkName">
  119. <uni-easyinput v-model="addform.checkName" placeholder="请输入施工方检查人员"/>
  120. </uni-forms-item>
  121. <uni-forms-item label="监理方检查人" required name="superCheckName">
  122. <uni-easyinput v-model="addform.superCheckName" placeholder="请输入监理方检查人员"/>
  123. </uni-forms-item>
  124. <uni-forms-item label="整改人员" required name="taskflowUser">
  125. <view class="flex">
  126. <uni-easyinput :value="taskflowUserStr" disabled/>
  127. <view class="name-btn" @click="userChange">选择+</view>
  128. </view>
  129. </uni-forms-item>
  130. <uni-forms-item label="备注" name="remark">
  131. <uni-easyinput v-model="addform.remark" type="textarea" placeholder="请输入备注"/>
  132. </uni-forms-item>
  133. </uni-forms>
  134. </view>
  135. </view>
  136. </template>
  137. <script>
  138. import config from "../../core/api.js"
  139. import {deepCopy} from "@/uni_modules/uni-forms/components/uni-forms/utils";
  140. export default {
  141. data() {
  142. return {
  143. engineeringType: [
  144. {id: 1, label: '隧道工程'},
  145. {id: 2, label: '桥梁工程'}
  146. ],
  147. diseaseTypeData: [
  148. {value: 1, text: '蜂窝麻面', data: '面积小于该面总面积0.5%,深度小于10mm'},
  149. {value: 2, text: '错台', data: '加宽带端头错台'},
  150. {value: 3, text: '洞门端墙、挡土墙表面裂缝', data: '洞门挡土墙存在裂缝,裂缝宽度大于0.2mm'},
  151. {value: 4, text: '裂缝', data: '砼表面裂缝,环向/纵向'},
  152. {value: 5, text: '渗漏水', data: '洞内存在渗漏点'},
  153. ],
  154. diseaseTypeData1: [
  155. {value: 1, text: '蜂窝麻面', data: '面积为 m2,蜂窝总面积为所在面面积的 %。'},
  156. {value: 2, text: '裂缝', data: '裂缝长度L= m,最大宽度δ= mm,裂缝方向为 向。'},
  157. {value: 3, text: '模板接缝高差', data: '模板接缝处高差为 mm。'},
  158. {value: 4, text: '漏浆', data: '混凝土表面有 处漏浆现象。'},
  159. {value: 5, text: '空洞', data: '面积为 m2,深度为 mm。'},
  160. {value: 6, text: '钢筋外露', data: '面积为 m2。'},
  161. {value: 7, text: '建筑垃圾', data: '有 处未清除处理。'},
  162. {value: 8, text: '预埋件', data: '有 处未清除处理。'},
  163. {value: 9, text: '预制构件安装', data: '不平整度为 mm。'},
  164. {value: 10, text: '梁段间接缝', data: '高差为 mm。'},
  165. {value: 11, text: '梁段间色泽', data: ' 处存在差异。'},
  166. {value: 12, text: '梁段间错台', data: '长度为 m,高差为 mm。'},
  167. {value: 13, text: '主体钢结构外露涂装', data: '破损面积为 m2。'},
  168. {value: 14, text: '钢缆防蚀层', data: '破损面积为 m2。'},
  169. {value: 15, text: '湿接缝渗漏水', data: '长度为 m。'},
  170. {value: 16, text: '疏松', data: '面积为 m2,占所在面面积的 %,深度为 mm。'},
  171. {value: 17, text: '夹渣', data: '面积为 mm2。'},
  172. {value: 18, text: '掉皮、起砂', data: '面积为 mm2,占所在面面积的 %。'},
  173. {value: 19, text: '锥坡沉陷', data: '长度为 m,深度为 mm。'},
  174. {value: 20, text: '护坡沉陷', data: '长度为 m,深度为 mm。'},
  175. {value: 21, text: '内外轮廓线', data: '处不顺滑清晰。'},
  176. {value: 22, text: '栏杆、护栏', data: '处不牢固, 处不直顺。'},
  177. {value: 23, text: '沥青混凝土表面', data: '不平整密实,面积为 m2。'},
  178. {value: 24, text: '沥青混凝土泛油', data: '面积为 m2,占受检面面积的 %。'},
  179. {value: 25, text: '沥青混凝土松散', data: '面积为 m2,占受检面面积的 %。'},
  180. {value: 26, text: '沥青混凝土裂缝', data: '长度为 m,占受检面面积的 %。'},
  181. {value: 27, text: '沥青混凝土离析', data: '面积为 m2,占受检面面积的 %。'},
  182. {value: 28, text: '伸缩缝堵塞', data: '有 处堵塞。'},
  183. {value: 29, text: '伸缩缝变形', data: '有 处,长度为 m。'},
  184. {value: 30, text: '伸缩缝开裂', data: '有 处,长度为 m。'},
  185. {value: 31, text: '桥头跳车', data: '桥面与伸缩缝高差为 mm。'},
  186. {value: 32, text: '桥面排水不良', data: '有 处,面积为 m2。'},
  187. {value: 33, text: '支座安装偏歪', data: '横桥向左侧距梁中心 mm,横桥向右侧距梁中心 mm。'},
  188. {value: 34, text: '支座不均匀受力', data: '侧存在不均匀受力。'},
  189. {value: 35, text: '支座脱空', data: '面积为 / ,高度为 mm。'},
  190. {value: 36, text: '支座非正常变形', data: '存在 处非正常变形。'},
  191. {value: 37, text: '支座未按图纸布置', data: '存在 处支座未按图纸布置'},
  192. ],
  193. aroundPictureData: [
  194. { value: 1, text: "左" },
  195. { value: 2, text: "右" },
  196. { value: 3, text: "全部" },
  197. ],
  198. severityData: [
  199. { value: 0, text: "一般" },
  200. { value: 1, text: "严重" },
  201. { value: 2, text: "轻微" },
  202. ],
  203. defectTypeData: [
  204. { value: 1, text: "限制性缺陷" },
  205. { value: 2, text: "非限制性缺陷" },
  206. ],
  207. photoFiles: [],
  208. photoImages: [],
  209. addform: {
  210. engineeringType: 1,
  211. startDate: '',
  212. deadline: 1,
  213. },
  214. // 校验规则
  215. formRules: {
  216. startDate: {
  217. rules: [{
  218. required: true,
  219. errorMessage: '请选择检查日期'
  220. }]
  221. },
  222. unitName: {
  223. rules: [{
  224. required: true,
  225. errorMessage: '请输入工程名称'
  226. }]
  227. },
  228. relation: {
  229. rules: [{
  230. required: true,
  231. errorMessage: '请选择关联工程部位'
  232. }]
  233. },
  234. aroundPicture: {
  235. rules: [{
  236. required: true,
  237. errorMessage: '请选择左/右幅'
  238. }]
  239. },
  240. segmentName: {
  241. rules: [{
  242. required: true,
  243. errorMessage: '请输入分部工程类别'
  244. }]
  245. },
  246. subitemName: {
  247. rules: [{
  248. required: true,
  249. errorMessage: '请输入分项工程名称'
  250. }]
  251. },
  252. startStopStake: {
  253. rules: [{
  254. required: true,
  255. errorMessage: '请输入相关数据'
  256. }]
  257. },
  258. buildNumber: {
  259. rules: [{
  260. required: true,
  261. errorMessage: '请输入构建编号'
  262. }]
  263. },
  264. subitemStake: {
  265. rules: [{
  266. required: true,
  267. errorMessage: '请输入分项工程桩号'
  268. }]
  269. },
  270. abscissa_1: {
  271. rules: [{
  272. required: true,
  273. errorMessage: '请输入横坐标'
  274. }]
  275. },
  276. stopStake: {
  277. rules: [{
  278. required: true,
  279. errorMessage: '请输入缺陷止点桩号'
  280. }]
  281. },
  282. abscissa_2: {
  283. rules: [{
  284. required: true,
  285. errorMessage: '请输入横坐标'
  286. }]
  287. },
  288. dataLength: {
  289. rules: [{
  290. required: true,
  291. errorMessage: '请输入长(m)'
  292. }]
  293. },
  294. dataWidth: {
  295. rules: [{
  296. required: true,
  297. errorMessage: '请输入宽(m)'
  298. }]
  299. },
  300. dataArea: {
  301. rules: [{
  302. required: true,
  303. errorMessage: '请输入面积'
  304. }]
  305. },
  306. diseaseType: {
  307. rules: [{
  308. required: true,
  309. errorMessage: '请选择病害类型'
  310. }]
  311. },
  312. severity: {
  313. rules: [{
  314. required: true,
  315. errorMessage: '请选择严重程度'
  316. }]
  317. },
  318. defectType: {
  319. rules: [{
  320. required: true,
  321. errorMessage: '请选择限制性缺陷'
  322. }]
  323. },
  324. hiddenDanger: {
  325. rules: [{
  326. required: true,
  327. errorMessage: '请输入病害描述'
  328. }]
  329. },
  330. images: {
  331. rules: [{
  332. required: true,
  333. errorMessage: '请上传照片'
  334. }]
  335. },
  336. deadline: {
  337. rules: [{
  338. required: true,
  339. errorMessage: '请选择是否限期整改'
  340. }]
  341. },
  342. endDate: {
  343. rules: [{
  344. required: true,
  345. errorMessage: '请选择限期整改日期'
  346. }]
  347. },
  348. checkName: {
  349. rules: [{
  350. required: true,
  351. errorMessage: '请输入施工方检查人'
  352. }]
  353. },
  354. superCheckName: {
  355. rules: [{
  356. required: true,
  357. errorMessage: '请输入监理方检查人'
  358. }]
  359. },
  360. taskflowUser: {
  361. rules: [{
  362. required: true,
  363. errorMessage: '请选择整改人员'
  364. }]
  365. },
  366. }
  367. }
  368. },
  369. computed: {
  370. taskflowUserStr() {
  371. const users = this.addform.taskflowUser
  372. if (users && users.length) {
  373. let str = '';
  374. for (let i = 0; i < users.length; i++) {
  375. str += users[i].user_name;
  376. if (i < users.length - 1) {
  377. str += ','
  378. }
  379. }
  380. return str;
  381. } else {
  382. return '请选择整改人员';
  383. }
  384. },
  385. },
  386. onLoad(e) {
  387. this.userid = uni.getStorageSync("userInfo").id;
  388. this.project = uni.getStorageSync("porject" + "_" + uni.getStorageSync("userInfo").id);
  389. this.addform.startDate = this.$dayjs().format('YYYY-MM-DD');
  390. },
  391. onShow() {
  392. //选择整改人员
  393. uni.$on("principal", res => {
  394. this.$set(this.addform, 'taskflowUser', res);
  395. })
  396. //选择关联工程部位
  397. uni.$on("relation", ({relation, relationId}) => {
  398. this.$set(this.addform, 'relation', relation);
  399. this.$set(this.addform, 'relationId', relationId);
  400. })
  401. },
  402. onReady() {
  403. // 设置自定义表单校验规则,必须在节点渲染完毕后执行
  404. this.$refs.formRef.setRules(this.formRules)
  405. },
  406. methods: {
  407. engineeringTypeChange({id}) {
  408. let startDate = this.$dayjs().format('YYYY-MM-DD');
  409. this.addform = {
  410. engineeringType: id,
  411. startDate: startDate,
  412. photoImages: [],
  413. deadline: 1,
  414. }
  415. },
  416. //上传照片
  417. chooseImageTap() {
  418. let photo_files = this.photoFiles, photo_images = this.photoImages;
  419. uni.chooseFile({
  420. count: 3,
  421. extension: ['.jpg', '.png', '.jpeg'],
  422. success: ({tempFiles, tempFilePaths}) => {
  423. tempFiles.forEach(item => {
  424. photo_files.push(item)
  425. })
  426. tempFilePaths.forEach(item => {
  427. photo_images.push(item)
  428. })
  429. //设置数据
  430. this.photoFiles = photo_files
  431. this.photoImages = photo_images
  432. this.addform.images = photo_files
  433. }
  434. });
  435. },
  436. //预览照片
  437. viewImage(index) {
  438. uni.previewImage({
  439. urls: this.photoImages,
  440. current: index
  441. });
  442. },
  443. //删除照片
  444. delImg(index) {
  445. this.photoFiles.splice(index, 1)
  446. this.photoImages.splice(index, 1)
  447. this.addform.images.splice(index, 1)
  448. },
  449. //关联工程部位
  450. relationStringClick() {
  451. //把已选值储存到全局变量
  452. getApp().globalData.relationId = this.addform.relationId;
  453. uni.navigateTo({
  454. url: "/pages/qualityInspection_fj/tree"
  455. })
  456. },
  457. //病害类型
  458. diseaseTypeChange(val) {
  459. const type = this.addform.engineeringType, index = val - 1;
  460. const typeData = type === 1 ? this.diseaseTypeData : this.diseaseTypeData1;
  461. this.addform.hiddenDanger = typeData[index].data
  462. },
  463. //选择整改人员
  464. userChange() {
  465. //把已选值储存到全局变量
  466. getApp().globalData.principal = this.addform.taskflowUser;
  467. uni.navigateTo({
  468. url: "/pages/constructionLog/personnel/personnel?name=" + '选择人员'
  469. })
  470. },
  471. //提交代码
  472. submitForm() {
  473. this.$refs.formRef.validate().then(res => {
  474. this.addInfoHandle();
  475. }).catch((e) => {
  476. uni.showToast({
  477. title: '请完善表单信息',
  478. duration: 1500,
  479. icon: 'none'
  480. });
  481. })
  482. },
  483. addInfoHandle() {
  484. let form = deepCopy(this.addform), formData = {};
  485. //处理日期格式
  486. form.startDate = this.$dayjs(form.startDate).format('YYYY 年 MM 月 DD 日');
  487. form.endDate = this.$dayjs(form.endDate).format('YYYY 年 MM 月 DD 日');
  488. //处理人员
  489. let taskflowUserIds = [];
  490. if (form.taskflowUser) {
  491. form.taskflowUser.forEach(element => {
  492. taskflowUserIds.push(element.id)
  493. });
  494. form.taskflowUser = JSON.stringify(form.taskflowUser);
  495. }
  496. form.taskflowUserIds = taskflowUserIds.join(',');
  497. delete form.images; //删除照片字段
  498. //处理数据
  499. Object.keys(form).forEach(key => {
  500. formData[key] = form[key];
  501. })
  502. //处理文件
  503. const photo_files = [];
  504. this.photoFiles.forEach((file, i) => {
  505. if(file && file.size){
  506. formData['images['+i+'].file'] = file;
  507. }
  508. formData['images['+i+'].remark'] = '';
  509. formData['images['+i+'].type'] = '1';
  510. formData['images['+i+'].groupType'] = '1';
  511. photo_files.push({
  512. name: file.name,
  513. type: file.type,
  514. size: file.size
  515. })
  516. })
  517. formData['files'] = JSON.stringify(photo_files);
  518. //处理合同段和用户信息
  519. const {id: projectId, contractId} = this.project
  520. formData['projectId'] = projectId;
  521. formData['contractId'] = contractId;
  522. formData['userId'] = this.userid;
  523. console.log('formData', formData)
  524. //发起请求
  525. const url = config.api;
  526. const token = uni.getStorageSync("token");
  527. uni.showLoading({
  528. title: '加载中'
  529. });
  530. uni.uploadFile({
  531. url: url + "/app/qualityModifyInfo/save",
  532. filePath: 'test', // 随便填,不为空即可
  533. name: 'test', // 随便填,不为空即可
  534. header: {
  535. "Authorization": token,
  536. }, // 可以加access_token等
  537. formData: formData, // 接口参数,json格式,底层自动转为FormData的格式数据
  538. success: (res) => {
  539. this.$prompt.none("保存成功");
  540. setTimeout(function () {
  541. uni.navigateBack({
  542. delta: 1
  543. })
  544. }, 500)
  545. }, complete() {
  546. uni.hideLoading();
  547. }
  548. })
  549. },
  550. backPage() {
  551. uni.navigateBack({
  552. delta: 1
  553. });
  554. }
  555. }
  556. }
  557. </script>
  558. <style lang="scss">
  559. .hc-tab-bar {
  560. position: relative;
  561. }
  562. .hc-form-up-img-box {
  563. position: relative;
  564. .bg-img {
  565. position: relative;
  566. display: inline-block;
  567. height: 160rpx;
  568. width: 160rpx;
  569. border: 4rpx dashed #eee;
  570. border-radius: 4rpx;
  571. image {
  572. width: 100%;
  573. height: 100%;
  574. border-radius: 4rpx;
  575. }
  576. .cu-tag {
  577. position: absolute;
  578. right: -4rpx;
  579. top: -4rpx;
  580. padding: 8rpx;
  581. height: auto;
  582. border-radius: 0 4rpx 0 20rpx;
  583. }
  584. }
  585. .bg-img + .bg-img {
  586. margin-left: 10rpx;
  587. }
  588. .solids-add {
  589. display: inline-flex;
  590. height: 160rpx;
  591. width: 160rpx;
  592. border: 4rpx dashed #eee;
  593. border-radius: 4rpx;
  594. align-items: center;
  595. justify-content: center;
  596. text {
  597. color: #cfcdcd;
  598. font-size: 66px;
  599. }
  600. }
  601. .tip-text {
  602. color: #BBBBBB;
  603. margin-top: 18rpx;
  604. font-size: 22rpx;
  605. }
  606. }
  607. .name-btn {
  608. background-color: #e99d42;
  609. border-radius: 4px;
  610. font-size: 14px;
  611. color: #FFFFFF;
  612. border: 1px solid #bbbbbb;
  613. padding: 15rpx 20rpx;
  614. margin-left: 20px;
  615. }
  616. .name-btn-dis {
  617. background-color: #bbbbbb;
  618. }
  619. </style>