independent.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. <template>
  2. <div style="height: 100%" class="flexStar">
  3. <div class="boxswai" style="width: 26%; padding-left: 0px">
  4. <div class="boxnei" style="display: flex; flex-direction: column">
  5. <h3>引用元素表</h3>
  6. <div style="overflow: auto; flex: 1">
  7. <el-tree
  8. style="display: inline-block;min-width: 100%;"
  9. ref="trees"
  10. :loading="loading"
  11. :load="loadNode"
  12. lazy
  13. :data="data"
  14. :props="defaultProps"
  15. @node-click="nodeClick"
  16. node-key="id"
  17. :expand-on-click-node="false"
  18. v-show="!allTreeShow"
  19. :default-expanded-keys="defaultExpandKey"
  20. :current-node-key="defaultCheckedKey"
  21. >
  22. <span
  23. class="custom-tree-node"
  24. slot-scope="{ data ,node }"
  25. style="box-sizing: border-box;padding-right:70px!important;;"
  26. >
  27. <div style="width:100%;">
  28. <span style="text-overflow: ellipsis;"> {{ data.title }} </span>
  29. <!-- 调整排序 -->
  30. <i
  31. class="el-icon-sort"
  32. @click="sortpai(data, node)"
  33. v-if="node.level == 2"
  34. title="调整排序"
  35. ></i>
  36. </div>
  37. </span>
  38. </el-tree>
  39. </div>
  40. </div>
  41. </div>
  42. <div
  43. class="boxswai"
  44. style="width: 74%; padding-left: 0px; padding-right: 0px"
  45. >
  46. <div class="boxnei">
  47. <div
  48. class="marleft10"
  49. style="height: 100%; display: flex; flex-direction: column"
  50. >
  51. <div class="martop20" v-if="true" style="flex: 1">
  52. <avue-crud
  53. :data="loadData"
  54. :option="loadOption"
  55. v-model="obj"
  56. ref="crud"
  57. @selection-change="selectionChange"
  58. :page.sync="page"
  59. @on-load="onLoad"
  60. >
  61. <template slot="menuRight">
  62. <el-button
  63. type="primary"
  64. size="small"
  65. plain
  66. @click="quteEle"
  67. >引用元素表单库
  68. </el-button>
  69. <el-button
  70. size="small"
  71. type="danger"
  72. plain
  73. @click="handleDelete"
  74. >删除表单
  75. </el-button>
  76. </template>
  77. <template slot="menuLeft" slot-scope="{size}">
  78. <el-input placeholder="请输入你想搜索的表单名称" v-model="input3" :size="size" clearable>
  79. <i class="el-icon-search" slot="append" @click="searchChange"></i>
  80. </el-input>
  81. </template>
  82. <template slot-scope="{type,size,row}" slot="menu">
  83. <el-button :size="size" :type="type" @click="Associationlist(row)">关联清表</el-button>
  84. <el-button :size="size" :type="type" @click="rightClick(
  85. row
  86. )">编辑元素</el-button>
  87. <el-button :size="size" :type="type" @click="adjustExcel(row.id,row.primaryKeyId)">调整表单</el-button>
  88. <el-button :size="size" :type="type" @click="handleEditFormula(row)">编辑公式</el-button>
  89. </template>
  90. </avue-crud>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <Qute ref="Qute" :projectid="projectid" :wbsid="wbsid" :onLoad1="onLoad1" :refreshTree="refreshTree"> </Qute>
  96. <Relation ref="Relation" :GLExcelFrom="GLExcelFrom" :wbsid="wbsid"></Relation>
  97. <!-- 编辑元素 -->
  98. <!-- 编辑元素 -->
  99. <el-dialog
  100. title=" "
  101. :visible.sync="editElementVisible"
  102. fullscreen
  103. append-to-body
  104. class="full-dialog"
  105. >
  106. <EditElement
  107. :pkeyId="editElementQuery.pkeyId"
  108. :id="editElementQuery.id"
  109. :initTableName="editElementQuery.initTableName"
  110. :pid="editElementQuery.pid"
  111. :wbsid="editElementQuery.wbsid"
  112. :nodeid="editElementQuery.nodeid"
  113. :initTableId="editElementQuery.initTableId"
  114. @hideDialog="editElementVisible = false"
  115. v-if="editElementVisible"
  116. ></EditElement>
  117. </el-dialog>
  118. <!-- 调整表单模板 -->
  119. <div v-if="excelHtml" class="excelHtml">
  120. <dynamicExcel
  121. @remove="removeExcel"
  122. v-if="excelHtml"
  123. :pkeyId="GLExcelFrom.id"
  124. />
  125. </div>
  126. <!-- 元素公式 -->
  127. <el-dialog
  128. title="元素公式"
  129. :visible.sync="editEleFormulaVisible"
  130. width="800px"
  131. append-to-body
  132. :close-on-click-modal="false"
  133. >
  134. <div class="flex mg-b-10">
  135. <el-input
  136. v-model="formulaInput"
  137. placeholder="请输入名称"
  138. size="samll"
  139. clearable
  140. @clear="searchFormulaName"
  141. ></el-input>
  142. <el-button type="info" class="mg-l-10" @click="searchFormulaName"
  143. >搜索</el-button
  144. >
  145. </div>
  146. <el-table
  147. :data="editEleListFilter"
  148. border
  149. style="width: 100%"
  150. height="400px"
  151. >
  152. <el-table-column align="center" prop="eName" label="字段信息">
  153. </el-table-column>
  154. <el-table-column align="center" label="操作" width="200">
  155. <template slot-scope="scope">
  156. <el-link
  157. :type="scope.row.globalFormula == 1 ? 'warning' : 'primary'"
  158. @click="toFormulaEdit(scope.row,1)"
  159. >全局公式</el-link
  160. >
  161. <el-link
  162. class="mg-l-10"
  163. :type="scope.row.isSaveFormula == 1 ? 'warning' : 'primary'"
  164. @click="toFormulaEdit(scope.row,10)"
  165. >节点公式</el-link
  166. >
  167. <!-- <el-link
  168. class="mg-l-10"
  169. type="danger"
  170. @click="delEleRowHandle(scope.$index,editEleListFilter)"
  171. >删除</el-link> -->
  172. </template>
  173. </el-table-column>
  174. </el-table>
  175. </el-dialog>
  176. <!-- 公式 -->
  177. <el-dialog
  178. title="元素公式"
  179. :visible.sync="formulaCompVisible"
  180. fullscreen
  181. append-to-body
  182. class="full-dialog"
  183. >
  184. <FormulaEdit
  185. :wbsid="id"
  186. :nodeid="curTreeData.id"
  187. :eleid="formulaCurRow.id"
  188. :projectid="projectid"
  189. @hideDialog="formulaCompVisible = false"
  190. v-if="formulaCompVisible"
  191. ></FormulaEdit>
  192. </el-dialog>
  193. <!-- 排序弹框 -->
  194. <el-dialog
  195. title="调整排序"
  196. :visible.sync="sortTag"
  197. width="50%"
  198. append-to-body
  199. >
  200. <ManualSorting v-if="sortTag2" @bianhua="bianhua()" :sort="sort" />
  201. <span slot="footer" class="dialog-footer">
  202. <el-button @click="(sortTag = false), (sortTag2 = false)"
  203. >取 消</el-button
  204. >
  205. <el-button type="primary" @click="editSort()">确 定</el-button>
  206. </span>
  207. </el-dialog>
  208. </div>
  209. </template>
  210. <script>
  211. import {tabTypeLazyTree,delAprojectTab} from "@/api/manager/wbsprivate";
  212. import {selectPrivateFormElements} from "@/api/manager/wbstree";
  213. import {getExcelHtml} from "@/api/exctab/excelmodel"
  214. import Qute from "./qutediaolog/qute1.vue";//引入元素库
  215. import Relation from './qutediaolog/relation.vue'//关联清表
  216. import EditElement from "@/views/manager/projectinfo/editElement/editElement.vue";//编辑元素
  217. import dynamicExcel from "./treeTemplate/dynamicExcel.vue";
  218. import FormulaEdit from "@/views/formula/edit.vue";
  219. import ManualSorting from '@/components/WbsTree/ManualSorting'
  220. export default {
  221. components: { dynamicExcel, EditElement, Qute,Relation,FormulaEdit,ManualSorting },
  222. computed:{
  223. ids () {
  224. let ids = [];
  225. this.selectionList.forEach(ele => {
  226. ids.push(ele.primaryKeyId);
  227. });
  228. return ids.join(",");
  229. }
  230. },
  231. data() {
  232. return {
  233. input3:'',
  234. page:{
  235. current:1,
  236. size:10,
  237. total:0
  238. },
  239. search:{},
  240. loading:false,
  241. dialogVisible: false,
  242. obj: {},
  243. data: [],
  244. defaultProps: {
  245. children: "children",
  246. isLeaf: function (data) {
  247. return !data.hasChildren;
  248. },
  249. },
  250. allTreeShow:false,//是否显示整棵树
  251. loadData: [],
  252. loadData1: [
  253. {
  254. tableName: "张三",
  255. formatTableType: "男",
  256. },
  257. ],
  258. loadData2: [
  259. {
  260. tableName: "李四2",
  261. formatTableType: "女",
  262. },
  263. ],
  264. loadOption: {
  265. height: "auto",
  266. calcHeight: 30,
  267. tip: false,
  268. searchShow: true,
  269. searchMenuSpan: 6,
  270. border: true,
  271. index: true,
  272. viewBtn: false,
  273. selection: true,
  274. editBtn: false,
  275. delBtn: false,
  276. addBtn: false,
  277. menu: true,
  278. menuWidth:300,
  279. searchShowBtn:true,
  280. dialogClickModal: false,
  281. column: [
  282. {
  283. label: "元素表名称",
  284. prop: "title",
  285. editDisplay: false,
  286. addDisplay: false,
  287. },
  288. {
  289. label: "元素表类型",
  290. prop: "tabType",
  291. // search: true,
  292. rules: [
  293. {
  294. required: true,
  295. message: "请输入名称",
  296. trigger: "blur",
  297. },
  298. ],
  299. },
  300. {
  301. label: "元素总量",
  302. prop: "elementTotal",
  303. editDisplay: false,
  304. addDisplay: false,
  305. rules: [
  306. {
  307. message: "请输入表数量",
  308. trigger: "blur",
  309. },
  310. ],
  311. },
  312. {
  313. label: "所书方",
  314. prop: "tabOwner",
  315. editDisplay: false,
  316. addDisplay: false,
  317. rules: [
  318. {
  319. message: "请输入表数量",
  320. trigger: "blur",
  321. },
  322. ],
  323. },
  324. {
  325. label: "填报率",
  326. prop: "fillRate",
  327. editDisplay: false,
  328. addDisplay: false,
  329. rules: [
  330. {
  331. message: "请输入表数量",
  332. trigger: "blur",
  333. },
  334. ],
  335. },
  336. ],
  337. },
  338. defaultExpandKey:[],//默认展开的节点
  339. defaultCheckedKey:'',
  340. selectionList:[],
  341. GLExcelFrom: {
  342. id: "",
  343. name: "",
  344. search: "", //搜素框舒服的值
  345. ids: "",
  346. excelId: "",
  347. initTableName: "",
  348. },
  349. //编辑元素弹窗
  350. editElementVisible: false, //编辑元素弹框
  351. editElementQuery: {
  352. pkeyId: "",
  353. excelId: "",
  354. id: "",
  355. initTableName: "",
  356. pid: "",
  357. wbsid: "",
  358. nodeid: "",
  359. }, //
  360. excelHtml:false,//调整表单
  361. curEleTable: {},//编辑元素公式
  362. editEleFormulaVisible: false,//元素公式
  363. formulaInput: "",
  364. editEleListFilter: [],
  365. editEleListAll: [],
  366. formulaCurRow: {}, //当前元素
  367. formulaCompVisible:false,
  368. //#region公式
  369. id: "",
  370. curTreeData: {},
  371. projectid:'',
  372. treeId:"",
  373. curNode:{},
  374. sortTag: false,
  375. sortTag2: false,
  376. };
  377. },
  378. created() {
  379. // this.loadData = this.loadData1;
  380. this.projectid = this.$route.query.pid;
  381. this.wbsid=this.$route.query.wbsid;
  382. // this.treeLoad1()
  383. },
  384. methods: {
  385. async sortpai(data,node) {
  386. console.log(data,node);
  387. await this.findWbsTreePrivateSameLevel(node,data)
  388. this.sortTag = true;
  389. this.sortTag2 = true;
  390. },
  391. editSort() {
  392. this.wbsTreePrivateSort();
  393. },
  394. bianhua() {
  395. this.sortTag2 = false;
  396. this.$nextTick(() => {
  397. this.sortTag2 = true;
  398. });
  399. },
  400. async wbsTreePrivateSort() {
  401. //wbs私有树节点手动排序
  402. // const { data: res } = await wbsTreePrivateSort(this.sort);
  403. // console.log(res);
  404. // if (res.code == 200) {
  405. // this.sortTag = false;
  406. // this.sortTag2 = false;
  407. // this. treeLoad1();
  408. // }
  409. },
  410. async findWbsTreePrivateSameLevel(node,data) {
  411. const { data: res } =await tabTypeLazyTree({parentId:node.data.parentId,projectId:this.projectid,current:1,size:1000})
  412. if (res.code == 200) {
  413. console.log(res.data,'res1111111');
  414. let tabArr=res.data.records
  415. tabArr.forEach((item)=>{
  416. item.tableName=item.title
  417. })
  418. console.log(tabArr,'tabArr');
  419. this.sort =tabArr
  420. }
  421. },
  422. async treeLoad1 () {
  423. let id = 12345678910
  424. let das = await this.tabTypeLazyTree(id, this.projectid,this.page.current,this.page.size)
  425. console.log(this.projectid,'projectid');
  426. this.data=das.records
  427. // return resolve(das.records)
  428. },
  429. //#region 接口
  430. async tabTypeLazyTree (parentId, projectId,current,size,titleName) {//清表树
  431. console.log(parentId, projectId);
  432. const { data: res } = await tabTypeLazyTree({ parentId, projectId,current,size,titleName })
  433. console.log(res);
  434. if (res.code === 200) {
  435. return res.data
  436. }
  437. },
  438. loadNode(node, resolve) {
  439. const parentId = (node.level === 0) ? 12345678910 : node.data.id;
  440. tabTypeLazyTree({parentId,projectId:this.projectid,current:1,size:1000}).then(res => {
  441. resolve(res.data.data.records.map(item => {
  442. return {
  443. ...item,
  444. leaf: !item.hasChildren
  445. }
  446. }))
  447. });
  448. },
  449. searchChange(){
  450. if(this.treeId){
  451. this.tabTypeLazyTree(this.treeId, this.projectid,this.page.current,this.page.size,this.input3).then((res)=>{
  452. this.loadData=res.records
  453. this.page.total=res.total
  454. })
  455. }else{
  456. this.$message.warning("请选选择左侧节点");
  457. }
  458. },
  459. onLoad(page){
  460. console.log(page,'page');
  461. console.log(this.projectid,'this.projectid');
  462. if(this.treeId){
  463. this.tabTypeLazyTree(this.treeId,this.projectid, page.currentPage,page.pageSize).then((res)=>{
  464. this.loadData=res.records
  465. this.page.total=res.total
  466. })
  467. }
  468. },
  469. onLoad1(){
  470. if(this.treeId){
  471. this.tabTypeLazyTree(this.treeId,this.projectid, this.page.current,this.page.size).then((res)=>{
  472. this.loadData=res.records
  473. this.page.total=res.total
  474. })
  475. }
  476. },
  477. resetChange(item){
  478. console.log(item);
  479. this.tabTypeLazyTree(this.treeId, this.projectid,this.page.current,this.page.size).then((res)=>{
  480. console.log(res.records);
  481. this.loadData=res.records;
  482. this.page.total=res.total
  483. })
  484. },
  485. nodeClick (data,node) {//外层树结构
  486. console.log(data,node,'treedata');
  487. this.curNode=node
  488. this.treeId=data.id
  489. this.curTreeData=data
  490. if(data.hasChildren){
  491. this.tabTypeLazyTree(data.id, this.projectid,this.page.current,this.page.size).then((res)=>{
  492. console.log(res.records);
  493. this.loadData=res.records;
  494. this.page.total=res.total
  495. })
  496. }
  497. if(data.hasChildren===false&&node.level==2){
  498. let arr=[]
  499. arr.push(data)
  500. this.loadData=arr
  501. this.page.total=1
  502. }else{
  503. this.loadData=[]
  504. this.page.total=0
  505. }
  506. },
  507. handleClose(done) {
  508. this.$confirm("确认关闭?")
  509. .then((_) => {
  510. done();
  511. })
  512. .catch((_) => {});
  513. },
  514. //引用元素表单库
  515. quteEle(){
  516. this.$refs.Qute.show();
  517. },
  518. handleDelete () {
  519. if (this.selectionList.length === 0) {
  520. this.$message.warning("请选择至少一条数据");
  521. return;
  522. }
  523. this.$confirm("确定将选择数据删除?", {
  524. confirmButtonText: "确定",
  525. cancelButtonText: "取消",
  526. type: "warning"
  527. })
  528. .then(() => {
  529. return delAprojectTab(this.ids,this.projectid);
  530. })
  531. .then(() => {
  532. this.onLoad1()
  533. this.refreshTree()
  534. this.$message({
  535. type: "success",
  536. message: "操作成功!"
  537. });
  538. this.$refs.crud.toggleSelection();
  539. });
  540. },
  541. selectionChange (list) {
  542. this.selectionList = list;
  543. },
  544. selectionClear () {
  545. this.selectionList = [];
  546. this.$refs.crud.toggleSelection();
  547. },
  548. //关联清表
  549. Associationlist(row) {
  550. console.log('关联清表',row);
  551. this.$refs.Relation.show()
  552. // this.GLExcelFrom.name = row.title;
  553. this.GLExcelFrom.id = row.primaryKeyId;
  554. this.GLExcelFrom.excelId =row.excelIds;
  555. this.GLExcelFrom.ids = row.id;
  556. this.GLExcelFrom.initTableName =row.initTableName
  557. },
  558. //#region 编辑元素
  559. async rightClick(row) {
  560. console.log(row,'编辑元素');
  561. await this.getExcelHtml2(row.primaryKeyId);
  562. // console.log('编辑元素');
  563. this.editElementQuery.pkeyId = row.primaryKeyId;
  564. this.editElementQuery.excelId = row.excelIds;
  565. this.editElementQuery.id = row.id;
  566. this.editElementQuery.initTableName =row. initTableName;
  567. this.editElementQuery.pid = this.$route.query.pid;
  568. this.editElementQuery.wbsid = this.$route.query.wbsid;
  569. this.editElementQuery.initTableId = row.initTableId;
  570. this.editElementQuery.nodeid = this.curTreeData.id;
  571. this.editElementVisible = true;
  572. },
  573. async getExcelHtml2(pkeyId) {
  574. const { data: res } = await getExcelHtml({ pkeyId });
  575. console.log(res);
  576. if (res.code === 200) {
  577. localStorage.setItem("editElement", res.data);
  578. }
  579. },
  580. //#region 调整表单
  581. adjustExcel(id,pkeyId) {
  582. this.excelHtml=true
  583. // console.log('调整表单');
  584. // //调整表单
  585. this.GLExcelFrom.id = pkeyId;
  586. this.getExcelHtml(pkeyId);
  587. },
  588. handleEditFormula(row) {
  589. console.log(row,'公式');
  590. this.curEleTable = row;
  591. selectPrivateFormElements(this.curEleTable.initTableId).then((res) => {
  592. // selectFormElements(this.curEleTable.id).then((res) => {
  593. this.editEleListFilter = res.data.data;
  594. this.editEleListAll = [].concat(this.editEleListFilter);
  595. });
  596. this.editEleFormulaVisible = true;
  597. },
  598. //搜索 筛选
  599. searchFormulaName() {
  600. this.editEleListFilter = this.editEleListAll.filter((ele) => {
  601. return ele.eName.indexOf(this.formulaInput) > -1;
  602. });
  603. },
  604. async getExcelHtml(pkeyId) {
  605. const { data: res } = await getExcelHtml({ pkeyId });
  606. console.log(res);
  607. if (res.code === 200) {
  608. localStorage.setItem("excelHtml", res.data);
  609. this.adjustmentExcel = res.data;
  610. this.excelHtml = true;
  611. }
  612. },
  613. removeExcel() {
  614. this.excelHtml = false;
  615. },
  616. //跳转到公式配置页面
  617. toFormulaEdit(row,type) {
  618. // this.$router.push({
  619. // path: '/formula/edit',
  620. // query: {
  621. // wbsid: this.id,
  622. // eleid: row.id,
  623. // nodeid:this.curTreeData.id,
  624. // projectid:this.projectid
  625. // }
  626. // });
  627. this.formulaCurRow = row;
  628. this.formulaCompVisible = true;
  629. this.formulaCurRow.globaltype = type;
  630. },
  631. //刷新左边树形数据
  632. refreshTree(){
  633. //刷新左边树形数据
  634. const parentId =12345678910
  635. tabTypeLazyTree({parentId,projectId:this.projectid,current:1,size:1000}).then(res => {
  636. this.data=res.data.data.records;
  637. this.$nextTick(()=>{
  638. if(this.curNode.level==2){
  639. this.defaultExpandKey.push(this.curNode.data.parentId)
  640. }else{
  641. this.defaultExpandKey.push(this.curNode.data.id)
  642. }
  643. })
  644. });
  645. }
  646. // getNodeDetail(data, node) {
  647. // let parentName = "";
  648. // if (node.parent.data) {
  649. // parentName = node.parent.data.title;
  650. // }
  651. // this.curTreeData = data;
  652. // this.curTreeNode = node;
  653. // this.curTreeData.parentName = parentName;
  654. // getDetail(data.id, this.id, this.projectid).then((res) => {
  655. // res.data.data.parentName = parentName;
  656. // this.tableData = [res.data.data];
  657. // this.nodeDetail = Object.assign({}, res.data.data);
  658. // });
  659. // this.updateNodeTable();
  660. // //获取节点展开路径
  661. // this.getExpandedKeys(node);
  662. // },
  663. },
  664. mounted() {
  665. // this.heightss = this.$refs.rulesss.clientHeight
  666. },
  667. };
  668. </script>
  669. <style scoped lang="scss">
  670. //调整表单样式
  671. .excelHtml {
  672. position: absolute;
  673. z-index: 999999;
  674. top: 50px;
  675. left: 0px;
  676. width: 100%;
  677. height: 100%;
  678. }
  679. .marleft10 {
  680. margin-left: 10px;
  681. }
  682. /deep/.el-tree-node__expand-icon {
  683. font-size: 16px;
  684. }
  685. .colorblue {
  686. color: rgb(0, 82, 217);
  687. }
  688. .treecontent /deep/.el-scrollbar {
  689. height: 100%;
  690. }
  691. .el-scrollbar {
  692. height: 100%;
  693. }
  694. .rightHeader {
  695. display: flex;
  696. justify-content: flex-start;
  697. align-items: top;
  698. font-size: 14px;
  699. background-color: #fff;
  700. .excelname {
  701. box-sizing: border-box;
  702. min-width: 200px;
  703. height: 28px;
  704. border: 1px solid rgb(220, 220, 220);
  705. padding: 0 10px;
  706. border-radius: 3px;
  707. display: flex;
  708. justify-content: space-between;
  709. align-items: center;
  710. }
  711. }
  712. .dialogModel {
  713. .dialogBox {
  714. .middle {
  715. display: flex;
  716. .left {
  717. border: 1px solid rgb(220, 220, 220);
  718. border-radius: 3px;
  719. height: 500px;
  720. width: 49%;
  721. .select {
  722. box-sizing: border-box;
  723. display: flex;
  724. justify-content: center;
  725. padding: 5px 0;
  726. border-bottom: 1px solid #e0e0e0;
  727. }
  728. .leftscroll {
  729. height: 450px;
  730. overflow-y: scroll;
  731. }
  732. }
  733. .right {
  734. height: auto;
  735. height: 60px;
  736. max-height: 500px;
  737. margin-left: 2%;
  738. // height: 500px;
  739. border-radius: 3px;
  740. td {
  741. box-sizing: border-box;
  742. padding: 5px 10px;
  743. height: 30px;
  744. line-height: 30px;
  745. }
  746. }
  747. }
  748. }
  749. .btbox {
  750. margin-top: 20px;
  751. display: flex;
  752. justify-content: center;
  753. }
  754. }
  755. .rightBox {
  756. flex: 1;
  757. }
  758. .boxswai {
  759. height: 100%;
  760. box-sizing: border-box;
  761. padding-bottom: 10px;
  762. }
  763. /deep/.avue-crud__left{
  764. width: 65%;
  765. }
  766. </style>