edit-dialog.vue 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809
  1. <template>
  2. <a-modal v-model="visible" title="选择编辑" width="1200px" class="edit-dialog" @cancel="handleCancel">
  3. <template slot="footer">
  4. <a-button key="back" @click="handleCancel">
  5. 取消
  6. </a-button>
  7. <a-button key="submit" type="primary" :loading="loading" @click="handleOk">
  8. 确认
  9. </a-button>
  10. </template>
  11. <div class="dialog-content">
  12. <div class="left">
  13. <div class="header">
  14. <div class="select">
  15. <a-select style="width: 316px;margin: 0 10px" :default-value="'#'" :value="majorId">
  16. <a-select-option value="#"
  17. @click="handleChange('#')">
  18. 推荐
  19. </a-select-option>
  20. <a-select-opt-group>
  21. <span slot="label">位置区域</span>
  22. <a-select-option v-for="item in locationList" :value="item.id"
  23. @click="handleChange(item)">
  24. {{item.name}}
  25. </a-select-option>
  26. <a-select-opt-group>
  27. <span slot="label">设备设施</span>
  28. <a-select-option v-for="item in majorList" :value="item.id" @click="handleChange(item)">
  29. {{item.name}}
  30. </a-select-option>
  31. </a-select-opt-group>
  32. </a-select-opt-group>
  33. </a-select>
  34. <!-- <Select style="margin: 0 10px"-->
  35. <!-- v-model="majorId"-->
  36. <!-- @change="handleMajor"-->
  37. <!-- :hideClear='true'-->
  38. <!-- :selectdata="majorList"-->
  39. <!-- :placeholder="'请选择'"-->
  40. <!-- class="search-select"-->
  41. <!-- width="236" isReadOnly-->
  42. <!-- />-->
  43. </div>
  44. <div class="search">
  45. <Select
  46. v-model="floorId"
  47. caption="所属楼层:"
  48. @change="chageFloor"
  49. :hideClear='false'
  50. :selectdata="dataFloor"
  51. :placeholder="'请选择'"
  52. class="search-select"
  53. width="236"
  54. />
  55. <a-input-search placeholder="搜索位置名称" class="press-enter" @search="onSearch" v-model="keyword"/>
  56. </div>
  57. </div>
  58. <div class="tree" >
  59. <a-spin :spinning="spinning">
  60. <a-input-search placeholder="请输入关键字" v-if="selectVal ||treeData.length" style="width: 315px;margin: 10px 10px;" v-model="selectVal" @search="onSearchTree" />
  61. <div style="height: 385px;overflow-y: scroll;">
  62. <Tree v-if="treeData.length" @change="getTreeId" :data="treeData"/>
  63. <div v-else style="margin: 40px 70px;">暂无推荐数据</div>
  64. </div>
  65. </a-spin>
  66. </div>
  67. <div class="checkbox">
  68. <a-table :pagination="false" :row-key='typeEdit=="Zone"?"location":"assetnum"'
  69. :columns="typeEdit=='Image'?columnsSys:typeEdit=='Zone'?columnsLocal:objSys"
  70. :data-source="tableData"
  71. :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,onSelect:onSelect }"
  72. :scroll="{ y: 340 }" :loading="loading"/>
  73. <a-pagination v-if="total>0" v-model="page" :total="total" show-less-items
  74. style="margin-left: auto;" @change="handleTableChange"/>
  75. </div>
  76. </div>
  77. <div class="right">
  78. <div class="header">
  79. <span class="select-number">已选择 <b>{{arrList.length}}</b>/{{sysNum}}</span>
  80. <a-button type="link" class="link" @click="clearArrList" :disabled="arrList.length==0">清空</a-button>
  81. </div>
  82. <div class="list-box">
  83. <p v-for="(item,index) in arrList" :key="index" class="list">{{item.sbjc||item.wzjc}}
  84. <a-icon type="close" class="icon" @click="deleteItem(item,index)"/>
  85. </p>
  86. </div>
  87. </div>
  88. </div>
  89. </a-modal>
  90. </template>
  91. <script>
  92. import searchTree from "@/components/edit/search_tree";
  93. import {
  94. queryGlsmsasset,
  95. getQuerySmsxt,
  96. getPlazaFloor,
  97. getQuerySmsxtBy,
  98. queryWzfldl,
  99. queryWzflByDl,
  100. queryGlsmsLocation,
  101. graphElementQuery
  102. } from "@/api/editer";
  103. import bus from "@/bus";
  104. import {getUrlMsg} from '@/components/urlMsg.js'
  105. export default {
  106. name: "edit-dialog",
  107. components: {searchTree},
  108. props: {
  109. sysNum: Number,//设备总数
  110. attrCards: Array,
  111. // getmajorId: String,
  112. InfoLocal: Array,
  113. GraphElementId:String
  114. },
  115. computed: {
  116. // majorId() {
  117. // return ''
  118. // }
  119. },
  120. data() {
  121. return {
  122. spinning:false,
  123. loading: false,
  124. visible: false,
  125. model: 'test1',
  126. searchName: '',
  127. floorId: "",//所属楼层
  128. dataFloor: [],
  129. plainOptions: ['福建三明万达-供电系统-6楼-工程信息化中的区域编码ND182472e83742', '福建三明万达-供电系统-6楼-工程信息化中的区域编码ND18247283742'],
  130. majorList: [],
  131. locationList: [],
  132. checkedList: [],
  133. keyword: '',
  134. classstructureid: '',
  135. locfl: '',
  136. objSys: [
  137. {
  138. title: '对象名称',
  139. dataIndex: 'sbjc',
  140. key: 'sbjc',
  141. width: '75%',
  142. scopedSlots: {customRender: 'sbjc'},
  143. },
  144. {
  145. title: '对象内码',
  146. dataIndex: 'sbjbm',
  147. key: 'sbjbm',
  148. width: '25%',
  149. },
  150. ],
  151. columnsSys: [
  152. {
  153. title: '设备名称',
  154. dataIndex: 'sbjc',
  155. key: 'sbjc',
  156. width: '75%',
  157. scopedSlots: {customRender: 'sbjc'},
  158. },
  159. {
  160. title: '设备内码',
  161. dataIndex: 'sbjbm',
  162. key: 'sbjbm',
  163. width: '25%',
  164. },
  165. ],
  166. columnsLocal: [
  167. {
  168. title: '位置名称',
  169. dataIndex: 'wzjc',
  170. key: 'wzjc',
  171. width: '75%',
  172. scopedSlots: {customRender: 'wzjc'},
  173. },
  174. {
  175. title: '位置内码',
  176. dataIndex: 'location',
  177. key: 'location',
  178. width: '25%',
  179. },
  180. ],
  181. tableData: [],
  182. loading: false,
  183. page: 1,
  184. size: 10,
  185. treeData: [],
  186. total: 0,
  187. selectedRowKeys: [],
  188. arrList: [],
  189. selectList: [],
  190. typeEdit: '',
  191. selectVal:'',
  192. sysId:'',
  193. majorId:'#'
  194. }
  195. },
  196. watch: {
  197. floorId(val) {
  198. if (val == '') {
  199. this.queryGlsmsasset();
  200. }
  201. },
  202. selectVal(val){
  203. if(val==''){
  204. if(this.majorId=='#'){
  205. this.tuijian();
  206. } else if(this.sysId!=''){
  207. this.getQuerySmsxtBy(this.sysId, this.typeEdit)
  208. }
  209. else{
  210. this.getQuerySmsxtBy(this.majorId,'Image')
  211. }
  212. }
  213. }
  214. },
  215. methods: {
  216. showModal() {
  217. this.visible = true;
  218. },
  219. handleOk(e) {
  220. this.loading = true;
  221. setTimeout(() => {
  222. this.visible = false;
  223. this.loading = false;
  224. const lists = [];
  225. let arr = [];
  226. arr = JSON.parse(JSON.stringify(this.arrList))
  227. arr.map(item => {
  228. if (item.wzjc) {
  229. lists.push({id: item.location || item.assetnum, name: item.wzjc || item.sbjc, type: 'Zone'})
  230. }
  231. if (item.sbjc) {
  232. lists.push({
  233. id: item.location || item.assetnum,
  234. name: item.wzjc || item.sbjc,
  235. type: 'Image'
  236. })
  237. }
  238. })
  239. console.log(lists);
  240. bus.$emit('changeAttachObjectIds', lists)
  241. bus.$emit('updateAttachMsg', lists)
  242. }, 1000);
  243. },
  244. handleCancel(e) {
  245. this.visible = false;
  246. let arr = [];
  247. const lists = [];
  248. console.log(this.selectList);
  249. arr = JSON.parse(JSON.stringify(this.selectList))
  250. arr.map(item => {
  251. if (item.wzjc) {
  252. lists.push({id: item.location || item.assetnum, name: item.wzjc || item.sbjc, type: 'Zone'})
  253. }
  254. if (item.sbjc) {
  255. lists.push({id: item.location || item.assetnum, name: item.wzjc || item.sbjc, type: 'Image'})
  256. }
  257. })
  258. console.log(lists);
  259. bus.$emit('changeAttachObjectIds', lists)
  260. },
  261. onSearch(value) {
  262. this.queryGlsmsasset()
  263. },
  264. // ChangeCheckbox(val) {
  265. // console.log(val)
  266. // },
  267. //图例搜索--推荐
  268. tuijian(){
  269. this.treeData = [];
  270. this.spinning = true
  271. graphElementQuery({
  272. "Filters": "id="+this.GraphElementId,
  273. "Projection": [
  274. "infoLocal"
  275. ]
  276. }).then(res=>{
  277. this.spinning = false;
  278. let data = res.Content[0].InfoLocal;
  279. (function recursion(newObj) {
  280. newObj.map(item => {
  281. item.label = item.name;
  282. item.checked = 'unchecked';
  283. if (item.children) {
  284. recursion(item.children);
  285. }
  286. })
  287. })(data)
  288. this.treeData = data;
  289. this.treeData.length && this.treeData.map(item=>{
  290. let index = item.name.indexOf('/');
  291. item.name = item.name.slice(index+1);
  292. })
  293. }).catch(()=>{
  294. this.spinning = false;
  295. })
  296. },
  297. handleChange(val) {
  298. this.selectVal='';
  299. this.tableData = [];
  300. this.treeData = [];
  301. if(val=='#'){
  302. this.majorId = '#';
  303. this.tuijian();
  304. }else{
  305. this.majorId = val.id;
  306. this.typeEdit = val.type;
  307. this.sysId = val.id;
  308. this.getQuerySmsxtBy(val.id, val.type)
  309. }
  310. },
  311. // handleMajor(val) {
  312. // this.tableData = [];
  313. // this.getQuerySmsxtBy(val.id)
  314. // },
  315. chageFloor(data) {
  316. this.queryGlsmsasset();
  317. },
  318. pressEnter(e) {
  319. console.log(e)
  320. },
  321. //获取treeId --classstructureid
  322. onSearchTree(val){
  323. console.log(this.majorId);
  324. let arr = [];
  325. const reg = new RegExp(val, 'g');
  326. let flag= false;
  327. if(this.majorId=='#'){
  328. this.treeData.map(item=>{
  329. if(item.name.indexOf(val)!=-1){
  330. item.name=item.name.replace(reg, `<span style="color:#F96600">${val}</span>`);
  331. arr.push(item)
  332. }
  333. })
  334. }
  335. else if(this.typeEdit=='Zone'){
  336. this.treeData.map((item)=>{
  337. if(item.name.indexOf(val)!=-1){
  338. item.name=item.name.replace(reg, `<span style="color:#F96600">${val}</span>`);
  339. arr.push(item)
  340. }
  341. });
  342. }
  343. else if(this.typeEdit=='Image'){
  344. console.log(this.treeData);
  345. this.treeData.map(item=>{
  346. if(item.name.indexOf(val)!=-1){
  347. item.name=item.name.replace(reg, `<span style="color:#F96600">${val}</span>`);
  348. arr.push(item)
  349. }else{
  350. item.children.map(item1=>{
  351. if(item1.name.indexOf(val)!=-1){
  352. flag = true;
  353. item.open=true;
  354. item1.name=item1.name.replace(reg, `<span style="color:#F96600">${val}</span>`);
  355. }
  356. })
  357. if(flag){
  358. arr.push(item)
  359. }
  360. }
  361. })
  362. }
  363. this.treeData = arr;
  364. },
  365. //获取树的数据
  366. getTreeId(id) {
  367. console.log(id);
  368. if(id.type){
  369. if(id.type==2){
  370. this.typeEdit = 'Image'
  371. }
  372. if(id.type==1){
  373. this.typeEdit = 'Zone'
  374. }
  375. }
  376. if (this.typeEdit == 'Image') {
  377. this.classstructureid = id.id;
  378. } else if (this.typeEdit == 'Zone') {
  379. this.locfl = id.id;
  380. }
  381. this.queryGlsmsasset();
  382. },
  383. //获取表格数据
  384. queryGlsmsasset() {
  385. if (!this.classstructureid && !this.locfl) {
  386. return
  387. }
  388. const data = {
  389. plazaId: getUrlMsg().projectId,//广场id 必填
  390. page: this.page,//页数
  391. size: this.size,//条数
  392. }
  393. if (this.keyword) {
  394. data.keyword = this.typeEdit == 'Image' ? `${this.keyword}:sbjc` : `${this.keyword}:wzjc`
  395. }
  396. let paramData ;
  397. let paramDataLocal;
  398. if( this.floorId =='#'||this.floorId==''){
  399. paramData = {classstructureid: this.classstructureid};
  400. paramDataLocal = {locfl: this.locfl};
  401. }else {
  402. paramData = {classstructureid: this.classstructureid, gname: this.floorId};
  403. paramDataLocal = {locfl: this.locfl, gname: this.floorId};
  404. }
  405. this.loading = true;
  406. if (this.typeEdit == 'Image') {
  407. queryGlsmsasset(data, paramData).then(res => {
  408. this.loading = false;
  409. if (res.data.result == 'success') {
  410. this.total = res.data.count;
  411. if (res.data.data) {
  412. const data = res.data.data;
  413. data.map(item => {
  414. item.id = item.sbjbm
  415. })
  416. this.tableData = data;
  417. } else if (res.data.count == 0) {
  418. this.tableData = [];
  419. }
  420. } else {
  421. this.$message.error('数据请求失败')
  422. }
  423. })
  424. } else if (this.typeEdit == 'Zone') {
  425. queryGlsmsLocation(data, paramDataLocal).then(res => {
  426. this.loading = false;
  427. if (res.data.result == 'success') {
  428. this.total = res.data.count;
  429. if (res.data.data) {
  430. this.tableData = res.data.data;
  431. } else if (res.data.count == 0) {
  432. this.tableData = [];
  433. }
  434. } else {
  435. this.$message.error('数据请求失败')
  436. }
  437. })
  438. }
  439. },
  440. //分页切换点击
  441. handleTableChange(page, pageSize) {
  442. this.page = page;
  443. this.queryGlsmsasset();
  444. },
  445. onSelect(record, selected, selectedRows, nativeEvent) {
  446. if (!selected && this.arrList.length > 0) {
  447. this.arrList.map((item, index) => {
  448. if (this.typeEdit == 'Zone' && item.location == record.location) {
  449. this.arrList.splice(index, 1);
  450. } else if (this.typeEdit == 'Image' && item.assetnum == record.assetnum) {
  451. this.arrList.splice(index, 1);
  452. }
  453. })
  454. }
  455. },
  456. // 中间表格勾选
  457. onSelectChange(selectedRowKeys, selectedRows) {
  458. this.selectedRowKeys = selectedRowKeys;
  459. if (this.selectedRowKeys.length > this.sysNum) {
  460. this.selectedRowKeys.pop();
  461. this.$message.error('不能超过设备数')
  462. return false;
  463. }
  464. selectedRows.map(item => {
  465. item.type = this.typeEdit;
  466. })
  467. console.log(selectedRows);
  468. this.arrList = [...this.arrList, ...selectedRows]
  469. console.log(this.arrList);
  470. const obj = {}
  471. // console.log(this.typeEdit);
  472. // if (this.typeEdit == 'Zone') {
  473. this.arrList = this.arrList.reduce(function (item, next) {
  474. obj[next.location||next.assetnum] ? ' ' : obj[next.location||next.assetnum] = true && item.push(next)
  475. return item;
  476. }, [])
  477. // console.log(this.arrList);
  478. // } else {
  479. // this.arrList = this.arrList.reduce(function (item, next) {
  480. // obj[next.assetnum] ? ' ' : obj[next.assetnum] = true && item.push(next)
  481. //
  482. // return item;
  483. //
  484. // }, [])
  485. // console.log(this.arrList);
  486. // }
  487. console.log(this.arrList);
  488. },
  489. //右侧删除
  490. deleteItem(item, index) {
  491. this.selectedRowKeys.splice(this.selectedRowKeys.indexOf(item.location || item.assetnum), 1);
  492. this.arrList.splice(index, 1);
  493. },
  494. //右侧清空
  495. clearArrList() {
  496. this.selectedRowKeys = [];
  497. this.arrList = [];
  498. },
  499. //获取楼层
  500. getPlazaFloor() {
  501. const data = {
  502. plazaId: getUrlMsg().projectId
  503. }
  504. getPlazaFloor(data).then(res => {
  505. if (res.result == 'success') {
  506. const data = res.data;
  507. data.map(item => {
  508. item.id = item.gname;
  509. item.name = item.code;
  510. })
  511. this.dataFloor = data;
  512. this.dataFloor.unshift({id:'#',name:'全部'})
  513. }
  514. })
  515. },
  516. //获取设备大类和位置大类
  517. getQuerySmsxt() {
  518. queryWzfldl({}).then(res => {
  519. if (res.result == 'success') {
  520. if (res.data) {
  521. const data = res.data;
  522. data.map(item => {
  523. item.id = item.dl;
  524. item.name = item.dl;
  525. item.type = 'Zone'
  526. })
  527. this.locationList = data;
  528. }
  529. }
  530. })
  531. // if (this.typeEdit=='Image'){
  532. getQuerySmsxt({}).then(res => {
  533. if (res.result == 'success') {
  534. if (res.data) {
  535. const data = res.data;
  536. data.map(item => {
  537. item.id = item.code;
  538. item.name = item.name;
  539. item.type = 'Image';
  540. })
  541. this.majorList = data;
  542. }
  543. }
  544. })
  545. // }else if(this.typeEdit =='Zone'){
  546. // }
  547. },
  548. // 获取设备大类下的分类和位置大类下的分类
  549. getQuerySmsxtBy(smsxt, type) {
  550. if (type == 'Image') {
  551. const data = {
  552. smsxt: smsxt
  553. }
  554. this.spinning = true
  555. getQuerySmsxtBy(data, {}).then(res => {
  556. this.spinning = false;
  557. if (res.result == 'success') {
  558. if (res.data) {
  559. const data = res.data;
  560. (function recursion(newObj) {
  561. newObj.map(item => {
  562. item.name = item.gcxxhxtname || item.classqc;
  563. item.id = item.gcxxhxtnum || item.id;
  564. item.children = item.data;
  565. item.open = false;
  566. item.checked = 'unchecked';
  567. if (item.children) {
  568. recursion(item.children);
  569. }
  570. })
  571. })(data)
  572. this.treeData = data;
  573. // let that = this;
  574. // if (this.treeData.length && this.InfoLocal.length) {
  575. // let arr = [];
  576. // let infoLocalId = this.InfoLocal[0].id;
  577. // this.treeData.map((item, index) => {
  578. // item.children.map((item1, index1) => {
  579. // if (infoLocalId==item1.id) {
  580. // item.open = true;
  581. // item1.checked = 'checked';
  582. // this.typeEdit = 'Image'
  583. // that.classstructureid = item1.id;
  584. // that.queryGlsmsasset();
  585. // }
  586. //
  587. // return item1
  588. // })
  589. // return item
  590. // })
  591. // }
  592. }
  593. } else {
  594. this.$message.error('获取失败');
  595. }
  596. }).catch(()=>{
  597. this.spinning = false;
  598. })
  599. } else if (type == 'Zone') {
  600. const data = {
  601. dl: smsxt
  602. }
  603. this.spinning = true
  604. queryWzflByDl(data, {}).then(res => {
  605. this.spinning = false;
  606. if (res.result == 'success') {
  607. if (res.data) {
  608. const data = res.data;
  609. (function recursion(newObj) {
  610. newObj.map(item => {
  611. item.label = item.name;
  612. item.checked = 'unchecked';
  613. if (item.children) {
  614. recursion(item.children);
  615. }
  616. })
  617. })(data)
  618. this.treeData = data;
  619. }
  620. } else {
  621. this.$message.error('获取失败');
  622. }
  623. }).catch(()=>{
  624. this.spinning = false;
  625. })
  626. }
  627. }
  628. },
  629. created() {
  630. this.floorId = getUrlMsg().FloorID;
  631. //如果有专业就带过来
  632. if (this.GraphElementId) {
  633. this.tuijian();
  634. }
  635. if (this.attrCards.length) {
  636. this.attrCards.map(item => {
  637. this.selectedRowKeys.push(item.location || item.assetnum)
  638. })
  639. this.arrList = JSON.parse(JSON.stringify(this.attrCards));
  640. this.selectList = JSON.parse(JSON.stringify(this.attrCards));
  641. } else {
  642. this.selectedRowKeys = [];
  643. }
  644. this.getQuerySmsxt();
  645. this.getPlazaFloor();
  646. }
  647. }
  648. </script>
  649. <style scoped lang="less">
  650. .edit-dialog {
  651. .dialog-content {
  652. width: 1136px;
  653. height: 499px;
  654. background: rgba(255, 255, 255, 1);
  655. border-radius: 3px;
  656. border: 1px solid rgba(239, 240, 241, 1);
  657. display: flex;
  658. /*overflow: auto;*/
  659. .left {
  660. width: 865px;
  661. border-right: 1px solid #EFF0F1;
  662. .header {
  663. width: 865px;
  664. .select {
  665. width: 340px;
  666. border-right: 1px solid #EFF0F1;
  667. display: inline-block;
  668. }
  669. .search {
  670. width: 524px;
  671. display: inline-block;
  672. .search-select {
  673. margin-left: 10px;
  674. position: relative;
  675. top: -2px;
  676. }
  677. .press-enter {
  678. margin-left: 10px;
  679. width: 236px;
  680. }
  681. }
  682. }
  683. .tree {
  684. width: 339px;
  685. height: 441px;
  686. border-right: 1px solid #EFF0F1;
  687. display: inline-block;
  688. float: left;
  689. overflow-y: scroll;
  690. overflow: overlay;
  691. }
  692. .checkbox {
  693. /*margin-top: 17px;*/
  694. /*margin-left: 13px;*/
  695. width: 525px;
  696. height: 441px;
  697. display: inline-block;
  698. display: flex;
  699. flex-direction: column;
  700. justify-content: space-between;
  701. /deep/ .ant-table-selection-column {
  702. .ant-table-header-column {
  703. display: none;
  704. }
  705. }
  706. }
  707. }
  708. .right {
  709. flex-grow: 1;
  710. .list-box {
  711. height: 440px;
  712. overflow-y: scroll;
  713. .list {
  714. background: rgba(239, 240, 241, 1);
  715. border-radius: 2px;
  716. margin: 8px 12px;
  717. position: relative;
  718. padding: 5px;
  719. .icon {
  720. position: absolute;
  721. bottom: 5px;
  722. right: 5px;
  723. cursor: pointer;
  724. }
  725. }
  726. }
  727. .select-number {
  728. margin-left: 12px;
  729. }
  730. .link {
  731. float: right;
  732. line-height: 57px;
  733. }
  734. }
  735. .header {
  736. height: 57px;
  737. line-height: 57px;
  738. border-bottom: 1px solid #EFF0F1;
  739. }
  740. }
  741. /deep/ .ant-input-affix-wrapper .ant-input-suffix {
  742. /*left: 12px;*/
  743. /*padding-right: 12px;*/
  744. }
  745. /deep/ .ant-modal-footer {
  746. border: 0;
  747. }
  748. /deep/ .ant-checkbox-wrapper + .ant-checkbox-wrapper {
  749. margin: 0;
  750. }
  751. }
  752. </style>