newAdd.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889
  1. <template>
  2. <div class="main">
  3. <div></div>
  4. <el-form
  5. ref="ruleForm"
  6. :model="formData"
  7. label-width="100px"
  8. :rules="formRules"
  9. >
  10. <div class="formContent">
  11. <div class="formContent-item">
  12. <div class="formContent-item_title">基础信息</div>
  13. <div class="formContent-formList">
  14. <div>
  15. <el-form-item
  16. label="姓名"
  17. prop="name"
  18. >
  19. <el-input
  20. v-model="formData.name"
  21. placeholder="请输入姓名"
  22. ></el-input>
  23. </el-form-item>
  24. <el-form-item
  25. label="手机号"
  26. prop="phone"
  27. >
  28. <el-input
  29. v-model="formData.phone"
  30. placeholder="请输入手机号"
  31. maxlength="11"
  32. ></el-input>
  33. </el-form-item>
  34. <el-form-item label="人员编号">
  35. <el-input
  36. v-model="formData.personnelNumber"
  37. placeholder="请输入人员编号"
  38. ></el-input>
  39. </el-form-item>
  40. <el-form-item
  41. label="性别"
  42. required
  43. >
  44. <el-radio
  45. v-model="formData.sex"
  46. :label="1"
  47. >男</el-radio>
  48. <el-radio
  49. v-model="formData.sex"
  50. :label="2"
  51. >女</el-radio>
  52. </el-form-item>
  53. <el-form-item label="备注">
  54. <el-input
  55. type="textarea"
  56. v-model="formData.remarks"
  57. placeholder="请输入备注"
  58. ></el-input>
  59. </el-form-item>
  60. </div>
  61. <div class="clickUpload">
  62. <div class="clickUpText">
  63. <img
  64. class="dataImg"
  65. v-if="!!formData.facePictureUrl"
  66. :src="formData.facePictureUrl"
  67. />
  68. <template v-else>
  69. <img
  70. class="bg-img"
  71. src="@/assets/img/ownerManagement/img_zhaopian2@2x.png"
  72. alt=""
  73. />
  74. <div>点击添加人脸照片</div>
  75. </template>
  76. </div>
  77. <el-upload
  78. :headers="token"
  79. ref="uploaduserlogo"
  80. class="mini-upload"
  81. limit="1"
  82. action="/czc-community/upload/uploadFile"
  83. :on-success="uploadsuccess"
  84. :before-upload="beforeAvatarUpload"
  85. :auto-upload="true"
  86. name="file"
  87. >
  88. </el-upload>
  89. </div>
  90. </div>
  91. </div>
  92. <div class="formContent-item">
  93. <div class="formContent-item_title">证件信息</div>
  94. <el-form-item label="证件类型">
  95. <el-select
  96. v-model="formData.idType"
  97. class="width100"
  98. >
  99. <el-option
  100. v-for="(item, index) in idTypeArray"
  101. :key="index"
  102. :label="item.label"
  103. :value="item.status"
  104. >{{
  105. item.label
  106. }}</el-option>
  107. </el-select>
  108. </el-form-item>
  109. <el-form-item
  110. label="证件号码"
  111. class="width100"
  112. >
  113. <el-input
  114. v-model="formData.idNumber"
  115. placeholder="请输入证件号码"
  116. maxlength="18"
  117. ></el-input>
  118. </el-form-item>
  119. <el-form-item
  120. label="户籍地址"
  121. class="width100"
  122. >
  123. <el-input
  124. v-model="formData.permanentAddress"
  125. placeholder="请输入户籍地址"
  126. ></el-input>
  127. </el-form-item>
  128. <el-form-item
  129. label="签发机关"
  130. class="width100"
  131. >
  132. <el-input
  133. v-model="formData.issuingAuthority"
  134. placeholder="请输入签发机关"
  135. ></el-input>
  136. </el-form-item>
  137. <el-form-item label="有效期">
  138. <el-date-picker
  139. class="width100"
  140. v-model="effectiveDate"
  141. value-format="yyyy-MM-dd HH:mm:ss"
  142. type="daterange"
  143. range-separator="至"
  144. start-placeholder="选择开始日期"
  145. end-placeholder="选择结束日期"
  146. @change="effectiveDateToggle"
  147. :editable="false"
  148. ></el-date-picker>
  149. </el-form-item>
  150. <el-form-item label="国籍">
  151. <el-select
  152. v-model="formData.nationality"
  153. clearable
  154. class="width100"
  155. >
  156. <el-option
  157. v-for="(item, index) in nationalityArray"
  158. :key="index"
  159. :label="item.label"
  160. :value="item.status"
  161. >{{
  162. item.label
  163. }}</el-option>
  164. </el-select>
  165. </el-form-item>
  166. <el-form-item label="籍贯">
  167. <el-select
  168. v-model="formData.nativePlace"
  169. clearable
  170. class="width100"
  171. >
  172. <el-option
  173. v-for="(item, index) in nativePlaceArray"
  174. :key="index"
  175. :label="item.name"
  176. :value="item.code"
  177. >{{
  178. item.name
  179. }}</el-option>
  180. </el-select>
  181. </el-form-item>
  182. <el-form-item label="民族">
  183. <el-select
  184. v-model="formData.nation"
  185. clearable
  186. class="width100"
  187. >
  188. <el-option
  189. v-for="(item, index) in nationArray"
  190. :key="index"
  191. :label="item.name"
  192. :value="item.code"
  193. >{{
  194. item.name
  195. }}</el-option>
  196. </el-select>
  197. </el-form-item>
  198. <el-form-item label="出生日期">
  199. <el-date-picker
  200. class="width100"
  201. v-model="formData.birthDate"
  202. value-format="yyyy-MM-dd HH:mm:ss"
  203. type="date"
  204. :picker-options="pickerOptions"
  205. placeholder="选择日期"
  206. >
  207. </el-date-picker>
  208. </el-form-item>
  209. </div>
  210. <div class="formContent-item">
  211. <div class="formContent-item_title"><span class="show-required-icon-star"></span> 绑定房产和车位</div>
  212. <div class="ownerScroll">
  213. <div
  214. class="formContent-formList house"
  215. v-for="(item, index) in formData.houseList"
  216. :key="index"
  217. >
  218. <div class="block-title">
  219. <div class="floor list-title">
  220. {{
  221. `${item.buildingName} ${!!item.unitName ? CheckChinese(item.unitName, '单元') : ''}${
  222. item.roomNumber
  223. }`
  224. }}
  225. </div>
  226. <img
  227. class="bg-img"
  228. src="@/assets/img/ownerManagement/bg_card@2x.png"
  229. alt=""
  230. />
  231. <img
  232. class="bg-imgIoc"
  233. src="@/assets/img/ownerManagement/icon_building@2x.png"
  234. alt=""
  235. />
  236. </div>
  237. <div class="el-form">
  238. <el-form-item
  239. label="类型"
  240. required
  241. label-width="70px"
  242. >
  243. <el-select
  244. v-model="item.householdType"
  245. clearable
  246. @change="householdTypeHide(item)"
  247. >
  248. <el-option
  249. v-for="(item, index) in householdTypeArray"
  250. :key="index"
  251. :label="item.label"
  252. :value="item.status"
  253. >{{ item.label }}</el-option>
  254. </el-select>
  255. </el-form-item>
  256. <el-form-item
  257. label="入住时间"
  258. label-width="70px"
  259. >
  260. <el-date-picker
  261. v-model="item.checkInDate"
  262. value-format="yyyy-MM-dd HH:mm:ss"
  263. type="date"
  264. placeholder="选择日期"
  265. >
  266. </el-date-picker>
  267. </el-form-item>
  268. </div>
  269. <div
  270. class="block-title car"
  271. v-for="(items, indexs) in item.parkingList"
  272. :key="indexs"
  273. >
  274. <div class="floor list-title">
  275. {{ `${items.garageName}${items.areaName || items.partitionName || ''}-${items.parkingNumber}` }}
  276. </div>
  277. <span
  278. class="remove list-title"
  279. @click="removeCard(indexs, item)"
  280. >移除</span>
  281. <img
  282. class="bg-img"
  283. src="@/assets/img/ownerManagement/bg_card@2x.png"
  284. alt=""
  285. />
  286. <img
  287. class="bg-imgIoc"
  288. src="@/assets/img/ownerManagement/icon_car@2x.png"
  289. alt=""
  290. />
  291. </div>
  292. <!-- <div
  293. class="addHouse block-title"
  294. v-if="!!formData.houseList.length"
  295. @click="addCard(item)"
  296. >
  297. <div class="floor list-title">绑定车位</div>
  298. <img
  299. class="bg-img"
  300. src="@/assets/img/ownerManagement/bg_card@2x.png"
  301. alt=""
  302. />
  303. <img
  304. class="bg-imgIoc"
  305. src="@/assets/img/ownerManagement/icon_car@2x.png"
  306. alt=""
  307. />
  308. <img
  309. class="add"
  310. src="@/assets/img/ownerManagement/btn_add@2x.png"
  311. />
  312. </div> -->
  313. <el-button
  314. class="removeHouseButton"
  315. type="primary"
  316. @click="removeHouse(index)"
  317. v-if="formData.houseList.length !== 0"
  318. >删除房产</el-button>
  319. </div>
  320. <div
  321. class="addHouse block-title"
  322. v-if="formData.houseList.length == 0"
  323. @click="addHouse()"
  324. >
  325. <div class="floor list-title">绑定房产</div>
  326. <img
  327. class="bg-img"
  328. src="@/assets/img/ownerManagement/bg_card@2x.png"
  329. alt=""
  330. />
  331. <img
  332. class="bg-imgIoc"
  333. src="@/assets/img/ownerManagement/icon_building@2x.png"
  334. alt=""
  335. />
  336. <img
  337. class="add"
  338. src="@/assets/img/ownerManagement/btn_add@2x.png"
  339. />
  340. </div>
  341. <el-button
  342. class="addHouseButton"
  343. type="primary"
  344. @click="addHouse()"
  345. v-if="formData.houseList.length !== 0"
  346. >新增房产</el-button>
  347. </div>
  348. </div>
  349. </div>
  350. </el-form>
  351. <div class="buttons">
  352. <el-button @click="closes">取消</el-button>
  353. <el-button
  354. type="primary"
  355. @click="addEdit()"
  356. >保存</el-button>
  357. </div>
  358. </div>
  359. </template>
  360. <script>
  361. export default {
  362. name: 'ownerManagementAdd',
  363. props: {
  364. params: {
  365. type: Object
  366. },
  367. islook: {
  368. type: Boolean,
  369. default: false
  370. },
  371. isAdd: {
  372. type: Boolean,
  373. default: true
  374. }
  375. },
  376. filters: {
  377. matchingVal (val, arr) {
  378. let v = '';
  379. if (!!val) {
  380. arr.forEach((item) => {
  381. if (!!item.status && item.status === val) {
  382. v = item.label;
  383. } else if (!!item.code && item.code === val) {
  384. v = item.name;
  385. }
  386. });
  387. }
  388. return v;
  389. }
  390. },
  391. data () {
  392. return {
  393. token: {
  394. [localStorage.getItem('CZC_token') && 'Authorization']: 'Bearer ' + localStorage.getItem('CZC_token')
  395. },
  396. pickerOptions: {
  397. disabledDate (val) {
  398. // return val.getTime() < Date.now() - 8.64e7;
  399. return +new Date(val) > +new Date();
  400. }
  401. },
  402. effectiveDate: [],
  403. formData: {
  404. name: '',
  405. phone: '',
  406. personnelNumber: '',
  407. sex: '',
  408. remarks: '',
  409. facePictureUrl: '',
  410. id: 0,
  411. idType: 1,
  412. idNumber: '',
  413. permanentAddress: '',
  414. issuingAuthority: '',
  415. effectiveDateStart: '',
  416. effectiveDateEnd: '',
  417. nationality: 1,
  418. nativePlace: '',
  419. nation: '',
  420. birthDate: '',
  421. houseList: []
  422. },
  423. formCols: [
  424. [
  425. {
  426. label: '姓名',
  427. prop: 'name',
  428. slot: 'name',
  429. input: true
  430. },
  431. {
  432. label: '手机号',
  433. prop: 'phone',
  434. slot: 'phone',
  435. input: true
  436. },
  437. {
  438. label: '人员编号',
  439. prop: 'personnelNumber',
  440. slot: 'personnelNumber',
  441. input: true
  442. },
  443. {
  444. label: '性别',
  445. prop: 'sex',
  446. slot: 'sex'
  447. },
  448. {
  449. label: '备注',
  450. prop: 'remarks',
  451. slot: 'remarks'
  452. }
  453. ]
  454. ],
  455. formCols2: [
  456. [
  457. {
  458. label: '证件类型',
  459. prop: 'idType',
  460. slot: 'idType'
  461. },
  462. {
  463. label: '证件号码',
  464. prop: 'idNumber',
  465. slot: 'idNumber',
  466. input: true
  467. },
  468. {
  469. label: '户籍地址',
  470. prop: 'permanentAddress',
  471. slot: 'permanentAddress',
  472. input: true
  473. },
  474. {
  475. label: '签发机关',
  476. prop: 'issuingAuthority',
  477. slot: 'issuingAuthority',
  478. input: true
  479. },
  480. {
  481. label: '有效期',
  482. prop: 'effectiveDate',
  483. slot: 'effectiveDate'
  484. },
  485. {
  486. label: '国籍',
  487. prop: 'nationality',
  488. slot: 'nationality'
  489. },
  490. {
  491. label: '籍贯',
  492. prop: 'nativePlace',
  493. slot: 'nativePlace'
  494. },
  495. {
  496. label: '民族',
  497. prop: 'nation',
  498. slot: 'nation'
  499. },
  500. {
  501. label: '出生日期',
  502. prop: 'birthDate',
  503. slot: 'birthDate'
  504. }
  505. ]
  506. ],
  507. formCols3: [
  508. [
  509. {
  510. label: '类型',
  511. prop: 'householdType',
  512. slot: 'householdType',
  513. showRequired: true
  514. },
  515. {
  516. label: '入住时间',
  517. prop: 'checkInDate',
  518. slot: 'checkInDate'
  519. }
  520. ]
  521. ],
  522. nationalityArray: [
  523. {
  524. status: 1,
  525. label: '中国'
  526. },
  527. {
  528. status: 2,
  529. label: '其他'
  530. }
  531. ],
  532. idTypeArray: [
  533. {
  534. status: 1,
  535. label: '居民身份证'
  536. },
  537. {
  538. status: 2,
  539. label: '居民户口簿'
  540. },
  541. {
  542. status: 3,
  543. label: '暂住证'
  544. },
  545. {
  546. status: 4,
  547. label: '其他'
  548. }
  549. ],
  550. householdTypeArray: [
  551. {
  552. status: 1,
  553. label: '业主'
  554. },
  555. {
  556. status: 2,
  557. label: '亲属'
  558. },
  559. {
  560. status: 3,
  561. label: '租客'
  562. },
  563. {
  564. status: 4,
  565. label: '承租人'
  566. },
  567. {
  568. status: 5,
  569. label: '普通员工'
  570. }
  571. ],
  572. formRules: {
  573. name: [this.$valid.selectRequired('填写姓名')],
  574. phone: [this.$valid.patternPhone('填写手机号')],
  575. // idNumber: [this.$valid.inputRequired('证件号码')]
  576. },
  577. communityArr: [],
  578. garageArr: []
  579. };
  580. },
  581. created () {
  582. this.$store.dispatch('collapse', true);
  583. if (!!this.params.id) {
  584. this.getDetails(this.params.id);
  585. } else {
  586. if (this.$parent.thisLeftData.type == 'room') {
  587. this.formData.houseList = [
  588. {
  589. checkInDate: '',
  590. householdType: 1,
  591. buildingName: this.$parent.thisLeftData.buildingName,
  592. unitName: this.$parent.thisLeftData.unitName,
  593. roomNumber: this.$parent.thisLeftData.houseName,
  594. houseId: this.$parent.thisLeftData.houseId,
  595. parkingList: []
  596. }
  597. ];
  598. }
  599. }
  600. this.getTenantsTree();
  601. },
  602. beforeDestroy () {
  603. this.$store.dispatch('collapse', false);
  604. },
  605. computed: {
  606. nationArray () {
  607. return this.$store.getters['getNationArray'];
  608. },
  609. nativePlaceArray () {
  610. return this.$store.getters['getNativeArray'];
  611. }
  612. },
  613. methods: {
  614. getDetails (id) {
  615. let url = '/czc-community/scResident/find/' + id;
  616. this.$http
  617. .get(url)
  618. .then(({ data, status, msg }) => {
  619. if (0 === status) {
  620. let { effectiveDateStart, effectiveDateEnd } = data;
  621. if (effectiveDateStart == null || effectiveDateEnd == null) {
  622. effectiveDateStart = '';
  623. effectiveDateEnd = '';
  624. }
  625. this.effectiveDate = [effectiveDateStart, effectiveDateEnd];
  626. this.formData = data;
  627. } else {
  628. this.$message.error(msg);
  629. }
  630. })
  631. .catch(() => { });
  632. },
  633. lookFormCols (cols) {
  634. this[cols][0].forEach((item, index) => {
  635. if (!!item.input) {
  636. item.input = false;
  637. }
  638. });
  639. },
  640. uploadsuccess (response, file, fileList) {
  641. this.$refs.uploaduserlogo.clearFiles();
  642. if (0 === response.status) {
  643. this.formData.facePictureUrl = response.data;
  644. }
  645. },
  646. beforeAvatarUpload (file) {
  647. const isJPG = file.type === 'image/jpeg';
  648. const isLt2M = file.size / 1024 / 1024 < 2;
  649. if (!isJPG) {
  650. this.$message.error('上传头像图片只能是 JPG 格式!');
  651. }
  652. if (!isLt2M) {
  653. this.$message.error('上传头像图片大小不能超过 2MB!');
  654. }
  655. return isJPG && isLt2M;
  656. },
  657. effectiveDateToggle (va) {
  658. let arr = va;
  659. if (!arr) {
  660. arr = ['', ''];
  661. }
  662. this.formData.effectiveDateStart = arr[0];
  663. this.formData.effectiveDateEnd = arr[1];
  664. },
  665. addHouse () {
  666. new Promise((resolve) => {
  667. this.$store.dispatch('addPopup', {
  668. url: '/ownerManagement/stepPage/poptreeSelect.vue',
  669. width: '500px',
  670. height: '400px',
  671. props: {
  672. num: 1,
  673. list: this.formData.houseList || [],
  674. tenantsTree: this.communityArr,
  675. callback: resolve
  676. },
  677. title: '选择房产',
  678. notip: true
  679. });
  680. }).then((res) => {
  681. if (res.length > 0) {
  682. res.forEach((item, index) => {
  683. let newObj = {
  684. checkInDate: '',
  685. householdType: 1,
  686. buildingName: item.buildingName,
  687. unitName: item.unitName,
  688. roomNumber: item.roomNumber,
  689. houseId: item.houseId,
  690. parkingList: []
  691. };
  692. let isExit = this.formData['houseList'].some((is) => {
  693. return is.houseId == item.houseId;
  694. });
  695. if (!isExit) {
  696. this.formData['houseList'].push(newObj);
  697. }
  698. });
  699. }
  700. });
  701. },
  702. addCard (itemObj) {
  703. if (itemObj.householdType !== 1) {
  704. this.$message.error('只能业主才能绑定车位');
  705. return;
  706. }
  707. new Promise((resolve) => {
  708. this.$store.dispatch('addPopup', {
  709. url: '/ownerManagement/stepPage/poptreeSelect.vue',
  710. width: '500px',
  711. height: '400px',
  712. props: {
  713. num: 2,
  714. list: itemObj.parkingList || [],
  715. tenantsTree: this.garageArr,
  716. callback: resolve
  717. },
  718. title: '选择车位',
  719. notip: true
  720. });
  721. }).then((res) => {
  722. if (res.length > 0) {
  723. res.forEach((item, index) => {
  724. let newObj = {
  725. parkingId: item.parkingId,
  726. parkingNumber: item.parkingNumber,
  727. partitionName: item.partitionName,
  728. garageName: item.garageName
  729. };
  730. let isExit = itemObj['parkingList'].some((is) => {
  731. return is.parkingId == item.parkingId;
  732. });
  733. if (!isExit) {
  734. itemObj['parkingList'].push(newObj);
  735. }
  736. });
  737. }
  738. });
  739. },
  740. removeHouse (index) {
  741. this.formData['houseList'].splice(index, 1);
  742. },
  743. removeCard (index, itemObj) {
  744. itemObj['parkingList'].splice(index, 1);
  745. },
  746. closes () {
  747. this.$emit('clerOwnerStatus');
  748. },
  749. addEdit () {
  750. let _this = this;
  751. if (this.formData.houseList.length === 0) {
  752. this.$message.error('房产必须绑定');
  753. return;
  754. }
  755. this.$refs['ruleForm'].validate((valid) => {
  756. if (valid) {
  757. let url = '/czc-community/scResident/add';
  758. let params = this.formData;
  759. if (!_this.isAdd) {
  760. url = '/czc-community/scResident/update';
  761. }
  762. this.$http
  763. .post(url, params)
  764. .then(({ status, msg }) => {
  765. if (status == 0) {
  766. this.$message.success(msg);
  767. this.closes();
  768. } else {
  769. this.$message.error(msg);
  770. }
  771. })
  772. .catch(() => { });
  773. } else {
  774. return false;
  775. }
  776. });
  777. },
  778. getTenantsTree () {
  779. this.$http.get('/czc-community/assets/tree/community/find', { buildingType: 1 }).then(({ status, data, msg }) => {
  780. if (status === 0 && data) {
  781. this.dimension(data);
  782. this.communityArr = data;
  783. }
  784. });
  785. this.$http.get('/czc-community/assets/tree/garage/find').then(({ status, data, msg }) => {
  786. if (status === 0 && data) {
  787. this.garageArr = data;
  788. }
  789. });
  790. },
  791. dimension (arr) {
  792. arr.map((item, index) => {
  793. if (!!item.children) {
  794. this.dimension(item.children);
  795. if (item.type == 'unit') {
  796. item.name = this.CheckChinese(item.name, '单元');
  797. } else if (item.type == 'building') {
  798. item.name = this.CheckChinese(item.name, '楼栋');
  799. }
  800. }
  801. });
  802. },
  803. CheckChinese (val, name) {
  804. var reg = new RegExp('[\\u4E00-\\u9FFF]+', 'g');
  805. let newVal = val;
  806. if (!reg.test(val)) {
  807. newVal = val + name;
  808. }
  809. return newVal;
  810. },
  811. householdTypeHide (item) {
  812. if (item.householdType !== 1) {
  813. item.parkingList = [];
  814. }
  815. }
  816. }
  817. };
  818. </script>
  819. <style lang="scss" scoped>
  820. @import '../style.scss';
  821. .formContent-item .ownerScroll {
  822. height: calc(100vh - 250px);
  823. overflow: auto;
  824. padding-right: 10px;
  825. &::-webkit-scrollbar {
  826. width: 5px;
  827. }
  828. &::-webkit-scrollbar-track {
  829. border-radius: 10px;
  830. background: #f4f7f9a8;
  831. }
  832. &::-webkit-scrollbar-thumb {
  833. border-radius: 10px;
  834. background: #c6c4c4a9;
  835. }
  836. .addHouse {
  837. cursor: pointer;
  838. margin-bottom: 20px !important;
  839. img.add {
  840. margin-left: 20px;
  841. width: 13px;
  842. }
  843. }
  844. .block-title.car {
  845. margin-bottom: 20px;
  846. &:nth-of-type(2n) {
  847. margin-right: 20px;
  848. }
  849. }
  850. .formContent-formList.house {
  851. flex-wrap: wrap;
  852. &::after {
  853. content: '';
  854. width: 100%;
  855. height: 1px;
  856. background: #e0e1e3;
  857. margin-bottom: 20px;
  858. }
  859. .el-form {
  860. width: calc(100% - 220px);
  861. /deep/ .el-date-editor.el-input {
  862. width: 100%;
  863. }
  864. }
  865. }
  866. .removeHouseButton {
  867. width: 80px;
  868. height: 32px;
  869. margin-bottom: 20px;
  870. }
  871. }
  872. </style>