dataRefreshSetting.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. <template>
  2. <!-- 数据源刷新设置 -->
  3. <div class="data-refresh-setting-wrap">
  4. <div class="top-box">
  5. <div class="select-box">
  6. <span>选择数据源</span>
  7. <el-select placeholder="请选择数据源" v-model="Source" @change="handleSourceChange">
  8. <el-option v-for="item in SourceList" :key="item.Source"
  9. :label="item.SourceName" :value="item.Source"/>
  10. </el-select>
  11. <el-select placeholder="请选择数据源" v-model="SubSource" v-if="SubSourceList.length" @change="handleSubSourceChange">
  12. <el-option v-for="item in SubSourceList" :key="item.Source"
  13. :label="item.SubSourceName" :value="item.SubSource"/>
  14. </el-select>
  15. <el-button type="primary" @click="showDialog(true)"
  16. v-permission="permissionBtn.sysDepartPermission.refresh_default"
  17. >默认刷新时间</el-button>
  18. </div>
  19. <el-input placeholder="指标ID/指标名称" prefix-icon="el-icon-search" clearable
  20. v-model="selectOption.keyWord" @input="selectOptionChange('keyWord')"
  21. v-if="![34,11].includes(Source)"></el-input>
  22. </div>
  23. <div class="table-box" v-if="hasSelectOption">
  24. <div class="table-select" v-loading="selectOptionLoading">
  25. <div class="select-list">
  26. <el-select placeholder="终端编码" no-match-text="请选择完整数据源" clearable
  27. v-model="selectOption.terminalCode" @change="selectOptionChange('terminalCode')">
  28. <el-option v-for="i in terminalCodeList" :key="i.TerminalCode"
  29. :label="i.Name" :value="i.TerminalCode"/>
  30. </el-select>
  31. <el-cascader placeholder="ETA指标库分类" no-match-text="请选择完整数据源" clearable
  32. v-model="selectOption.classify" @change="selectOptionChange('classify')"
  33. :options="edbClassifyList"
  34. :props="{
  35. emitPath:false,
  36. value:'ClassifyId',
  37. label:'ClassifyName',
  38. children:'Children'
  39. }" />
  40. <el-cascader
  41. placeholder="创建人" no-match-text="请选择完整数据源"
  42. v-model="selectOption.user" @change="selectOptionChange('user')"
  43. :options="userList"
  44. :props="{
  45. value: 'ItemId',
  46. label: 'ItemName',
  47. children: 'Children',
  48. emitPath: false
  49. }"
  50. collapse-tags
  51. :show-all-levels="false"
  52. clearable
  53. filterable
  54. />
  55. <el-select placeholder="频度" v-model="selectOption.frequency" @change="selectOptionChange('frequency')" clearable>
  56. <el-option v-for="i in frequencyList" :key="i"
  57. :label="i" :value="i"
  58. />
  59. </el-select>
  60. <el-select placeholder="刷新状态" v-model="selectOption.state" @change="selectOptionChange('state')" clearable>
  61. <el-option label="启用刷新" value="启用"/>
  62. <el-option label="暂停刷新" value="暂停"/>
  63. </el-select>
  64. </div>
  65. <div class="select-other">
  66. <el-checkbox :indeterminate="isIndeterminate" v-model="isCheckAll" @change="listCheckAllChange">列表全选</el-checkbox>
  67. <el-button type="primary" @click="showDialog(false)"
  68. v-permission="permissionBtn.sysDepartPermission.refresh_time"
  69. :disabled="!tableData.length"
  70. >设置刷新时间</el-button>
  71. <el-button type="primary" @click="isSetStateDialogShow=true"
  72. v-permission="permissionBtn.sysDepartPermission.refresh_state"
  73. :disabled="!tableData.length"
  74. >设置刷新状态</el-button>
  75. </div>
  76. </div>
  77. <el-table :data="tableData" border
  78. ref="edbDataRef"
  79. @selection-change="selectionChange"
  80. @select="selectHandle"
  81. @select-all="selectAllHandle"
  82. @sort-change="handleSortChange"
  83. >
  84. <!-- 多选 -->
  85. <el-table-column
  86. align="center"
  87. type="selection"
  88. width="55">
  89. </el-table-column>
  90. <el-table-column v-for="column in columns" :key="column.key"
  91. :prop="column.key"
  92. :label="column.label"
  93. :min-width="column.minWidth"
  94. :sortable="column.sortable?column.sortable:false"
  95. align="center"
  96. >
  97. <template slot-scope="{row}">
  98. <span v-if="column.key==='IsStop'">
  99. {{row.IsStop?'暂停刷新':'启用刷新'}}
  100. </span>
  101. <span v-else>
  102. {{row[column.key]}}
  103. </span>
  104. </template>
  105. </el-table-column>
  106. </el-table>
  107. <el-pagination
  108. :current-page="currentPage"
  109. :page-size="pageSize"
  110. :total="total"
  111. @current-change="handleCurrentChange"
  112. />
  113. </div>
  114. <!-- 默认刷新时间,设置刷新时间 -->
  115. <el-dialog custom-class="refresh-setting-dialog"
  116. :title="(isDefault?'默认':'设置')+'刷新时间'"
  117. :visible.sync="isSetTimeDialogShow"
  118. :close-on-click-modal="false"
  119. :modal-append-to-body="false"
  120. @close="isSetTimeDialogShow=false"
  121. width="578px"
  122. top="5vh"
  123. v-dialogDrag
  124. center
  125. >
  126. <div class="dialog-container" v-loading="defaultDialogLoading">
  127. <!-- 默认刷新时间设置数据频度 -->
  128. <div class="default-box" v-if="isDefault&&Source!==11">
  129. <label style="display: block;width:88px;text-align:right;padding-right: 12px;">数据频度</label>
  130. <el-select style="margin-left: 10px;" v-model="defaultFrequency" @change="handleDefaultChange">
  131. <el-option v-for="i in frequencyList" :key="i"
  132. :label="i" :value="i"
  133. />
  134. </el-select>
  135. </div>
  136. <!-- 刷新配置 -->
  137. <div class="refresh-box">
  138. <RefreshConfig
  139. ref="refreshconfig"
  140. :Source="Source"
  141. :defaultForm="defaultForm"
  142. ></RefreshConfig>
  143. </div>
  144. </div>
  145. <!-- 弹窗按钮 -->
  146. <div class="dialog-btn">
  147. <el-button type="primary" plain @click="isSetTimeDialogShow=false">取消</el-button>
  148. <el-button type="primary" @click="handleSetRefreshTime">确定</el-button>
  149. </div>
  150. </el-dialog>
  151. <!-- 设置刷新状态 -->
  152. <el-dialog custom-class="refresh-setting-dialog"
  153. title="设置刷新状态"
  154. :visible.sync="isSetStateDialogShow"
  155. :close-on-click-modal="false"
  156. :modal-append-to-body="false"
  157. @close="isSetStateDialogShow=false"
  158. width="578px"
  159. top="5vh"
  160. v-dialogDrag
  161. center
  162. >
  163. <div class="dialog-container" style="text-align: center;margin:60px 0;">
  164. <el-radio label="暂停" v-model="isState">暂停刷新</el-radio>
  165. <el-radio label="启用" v-model="isState">启用刷新</el-radio>
  166. </div>
  167. <!-- 弹窗按钮 -->
  168. <div class="dialog-btn">
  169. <el-button type="primary" plain @click="isSetStateDialogShow=false">取消</el-button>
  170. <el-button type="primary" @click="setRefreshStatus">确定</el-button>
  171. </div>
  172. </el-dialog>
  173. </div>
  174. </template>
  175. <script>
  176. import RefreshConfig from './components/refreshConfig.vue';
  177. import {dataRefreshInterface,dataAuthInterface} from '@/api/modules/dataApi.js';
  178. export default {
  179. components: { RefreshConfig },
  180. data() {
  181. return {
  182. Source:'',
  183. SourceList:[],
  184. SubSource:'',
  185. SubSourceList:[],
  186. frequencyList:['日度','周度','旬度','月度','季度','半年度','年度'],
  187. terminalCodeList:[],
  188. edbClassifyList:[],
  189. userList:[],
  190. selectOption:{
  191. frequency:'',//频度
  192. user:'',//创建人
  193. classify:'',//分类
  194. state:'',//状态
  195. terminalCode:'',//终端编码
  196. keyWord:'',//关键字
  197. sortType:'',//升序降序
  198. sortParam:'',//排序字段
  199. },
  200. hasSelectOption:false,
  201. selectOptionLoading:false,
  202. columns: [
  203. {key: 'EdbInfoId',label: '指标编码'},
  204. {key: 'IndexName',label: '指标全称'},
  205. {key: 'EndDate',label: '最新日期',sortable:'custom'},
  206. {key: 'EndValue',label: '最新值'},
  207. {key: 'SysUserRealName',label: '创建人'},
  208. {key: 'Frequency',label: '频度'},
  209. {key: 'RefreshTime',label: '刷新时间',minWidth:150},
  210. {key: 'IsStop',label: '刷新状态'}
  211. ],
  212. tableData: [],
  213. tableDataIds:[],
  214. pageSize:10,
  215. currentPage:1,
  216. total:0,
  217. isSetTimeDialogShow: false,//设置刷新时间弹窗
  218. defaultDialogLoading:false,//可能需要获取默认设置,增加loading
  219. isDefault:false,//是否是默认刷新时间
  220. defaultForm:{},//默认刷新时间的配置
  221. defaultFrequency:'日度',//默认刷新时间的频率
  222. isSetStateDialogShow:false,//设置刷新状态弹窗
  223. isState:'启用',//启用刷新or暂停刷新
  224. //全部全选
  225. isIndeterminate:false,
  226. isCheckAll:false,
  227. isSelectAll:false,//为true时,selectList是剔除的指标,为false时selectList是已选择的指标
  228. //已选择/已剔除的指标id
  229. selectList:[],//监听table的select-all select
  230. selectionReactCancel:false,
  231. };
  232. },
  233. methods: {
  234. //展示刷新时间弹窗
  235. showDialog(isDefault){
  236. this.isDefault = isDefault
  237. this.isSetTimeDialogShow = true
  238. if(isDefault){
  239. //判断数据源是否选择
  240. if(!this.Source){
  241. this.$message.warning("请选择数据源")
  242. return
  243. }
  244. /* if(this.SubSourceList.length&&!this.SubSource){
  245. this.$message.warning("请选择完整数据源")
  246. return
  247. } */
  248. //SMM不带频度
  249. if(this.Source===11){
  250. this.defaultFrequency=''
  251. }else{
  252. this.defaultFrequency = '日度'
  253. }
  254. this.handleDefaultChange()
  255. }else{
  256. //单独设置指标,需判断指标是否为单个
  257. if((this.total===1&&!this.selectList.length)||(!this.isSelectAll&&this.selectList.length===1)){
  258. //单个则回显刷新时间
  259. this.getEdbRefreshDetail()
  260. }else{
  261. this.defaultForm={}
  262. }
  263. }
  264. },
  265. //获取对应频度下的默认刷新时间
  266. handleDefaultChange(){
  267. this.defaultDialogLoading = true
  268. dataRefreshInterface.getDefaultConfig({
  269. Frequency:this.defaultFrequency,
  270. Source:Number(this.Source),
  271. SubSource:Number(this.SubSource)
  272. }).then(res=>{
  273. this.defaultDialogLoading = false
  274. if(res.Ret!==200) return
  275. let configList = res.Data||[]
  276. configList = configList.map((item,index)=>{
  277. return {
  278. ...item,
  279. key:index
  280. }
  281. })
  282. this.defaultForm = {
  283. configList
  284. }
  285. })
  286. },
  287. //获取单个指标的刷新时间
  288. getEdbRefreshDetail(){
  289. this.defaultDialogLoading = true
  290. let EdbInfoId = 0
  291. if(this.total===1){
  292. EdbInfoId = this.tableData[0].EdbInfoId
  293. }else{
  294. EdbInfoId = this.selectList[0]
  295. }
  296. dataRefreshInterface.getSimgleEdbRefreshTime({
  297. EdbInfoId,
  298. Source:Number(this.Source),
  299. SubSource:Number(this.SubSource)
  300. }).then(res=>{
  301. this.defaultDialogLoading = false
  302. if(res.Ret!==200) return
  303. let configList = res.Data||[]
  304. configList = configList.map((item,index)=>{
  305. return {
  306. ...item,
  307. key:index
  308. }
  309. })
  310. this.defaultForm = {
  311. configList
  312. }
  313. })
  314. },
  315. //获取数据源列表
  316. getSourceList(){
  317. dataRefreshInterface.getDataSourceList().then(res=>{
  318. if(res.Ret!==200) return
  319. this.SourceList = res.Data||[]
  320. })
  321. },
  322. //一级数据源改变时,二级数据源和筛选项也重新赋值
  323. handleSourceChange(){
  324. const source = this.SourceList.find(i=>i.Source===this.Source)||{Child:[]}
  325. this.SubSourceList = source.Child
  326. this.SubSource=''
  327. this.hasSelectOption = ![34,11].includes(this.Source)
  328. if(this.hasSelectOption){
  329. this.resetSelect()
  330. this.tableData = []
  331. }
  332. //如果没有二级数据源,则请求表格筛选项数据;钢联化工,SMM没有筛选项数据
  333. if(!this.SubSourceList.length&&this.hasSelectOption){
  334. this.getSelectOption()
  335. this.getTableData('optionChange')
  336. }
  337. },
  338. handleSubSourceChange(){
  339. this.getSelectOption()
  340. this.getTableData('optionChange')
  341. },
  342. //获取终端编码列表
  343. async getTerminalCodeList(){
  344. if(!this.Source) return
  345. const res = await dataRefreshInterface.getTerminalList({
  346. Source:Number(this.Source)
  347. })
  348. if(res.Ret!==200) return
  349. this.terminalCodeList = res.Data?res.Data.List||[]:[]
  350. },
  351. //获取分类列表
  352. async getClassifyList(){
  353. if(!this.Source) return
  354. const res = await dataRefreshInterface.getClassifyList({
  355. Source:Number(this.Source)
  356. })
  357. if(res.Ret!==200) return
  358. this.edbClassifyList = res.Data||[]
  359. },
  360. //获取用户列表
  361. getUserList() {
  362. dataAuthInterface.userSearch({
  363. KeyWord: ''
  364. }).then(res => {
  365. if(res.Ret !== 200) return
  366. this.userList = res.Data||[]
  367. })
  368. },
  369. async getSelectOption(){
  370. this.selectOptionLoading = true
  371. //获取终端编码列表
  372. await this.getClassifyList()
  373. //获取分类列表
  374. await this.getTerminalCodeList()
  375. this.selectOptionLoading = false
  376. },
  377. //切换数据源时重置表格选项
  378. resetSelect(){
  379. this.terminalCodeList=[]
  380. this.edbClassifyList = []
  381. this.selectOption = {
  382. frequency:'',
  383. user:'',
  384. classify:'',
  385. state:'',
  386. terminalCode:''
  387. }
  388. this.selectList=[]
  389. },
  390. //表格筛选项改变时触发
  391. selectOptionChange(type){
  392. this.getTableData('optionChange')
  393. },
  394. handleCurrentChange(page){
  395. this.currentPage = page
  396. this.getTableData()
  397. },
  398. async getTableData(type){
  399. const {frequency,user,classify,state,terminalCode,keyWord,sortParam,sortType} = this.selectOption
  400. const res = await dataRefreshInterface.getEdbTableList({
  401. Source:Number(this.Source),
  402. SubSource:Number(this.SubSource),
  403. ClassifyId:classify,
  404. TerminalCode:terminalCode,
  405. SysUserId:user,
  406. Frequency:frequency,
  407. Keyword:keyWord,
  408. Status:state,
  409. SortParam:sortParam,
  410. SortType:sortType,
  411. PageSize:Number(this.pageSize),
  412. CurrentIndex:Number(this.currentPage)
  413. })
  414. if(res.Ret!==200) return
  415. const {Paging,List} = res.Data||{}
  416. this.tableData = List||[]
  417. this.total = Paging.Totals||0
  418. if(this.tableData.length>0){
  419. this.tableDataIds = this.tableData.map(it => it.EdbInfoId)
  420. }else{
  421. this.tableDataIds = []
  422. }
  423. if(type==='optionChange'){
  424. //如果是表格筛选项改变导致重新请求数据
  425. //数据获取完成后,列表全选,表格全选
  426. this.selectList = []
  427. this.listCheckAllChange(true)
  428. }else{
  429. //若不是,数据获取完成后,查询列表全选的值
  430. //若当页有数据在selectList内,则勾选/剔除
  431. this.adjustSelection()
  432. }
  433. },
  434. //勾选/取消勾选表格项
  435. adjustSelection(){
  436. this.selectionReactCancel=true
  437. if(!this.isSelectAll){
  438. this.selectList.map(it =>{
  439. let row = this.tableData.find(da => da.EdbInfoId==it)
  440. if(row){
  441. setTimeout(()=>{
  442. this.$refs.edbDataRef.toggleRowSelection(row,true)
  443. },10)
  444. }
  445. })
  446. }else{
  447. this.$refs.edbDataRef && this.$refs.edbDataRef.clearSelection()
  448. this.$refs.edbDataRef &&this.$refs.edbDataRef.toggleAllSelection()
  449. this.selectList.map(it =>{
  450. let row = this.tableData.find(da => da.EdbInfoId==it)
  451. if(row){
  452. setTimeout(()=>{
  453. this.$refs.edbDataRef.toggleRowSelection(row,false)
  454. },50)
  455. }
  456. })
  457. }
  458. setTimeout(()=>{
  459. this.selectionReactCancel=false
  460. },50)
  461. },
  462. //列表全选改变
  463. listCheckAllChange(value){
  464. this.selectList = []
  465. this.isSelectAll = value
  466. this.$refs.edbDataRef && this.$refs.edbDataRef.clearSelection()
  467. if(value){
  468. this.$refs.edbDataRef && this.$refs.edbDataRef.toggleAllSelection()
  469. }
  470. },
  471. selectionChange(selection){
  472. if(this.selectionReactCancel) return
  473. // selectAllHandle的触发在selectionChange后面,将selectionChange的逻辑延迟一下
  474. setTimeout(()=>{
  475. // 去重
  476. let duplicateArr = Array.from(new Set(this.selectList))
  477. //isSelectAll为true时,selectList表示需要剔除的项
  478. //isSelectAll为false时,selectList表示需要勾选的项
  479. //全选
  480. if((duplicateArr.length == this.total && (!this.isSelectAll))|| (duplicateArr.length == 0 && this.isSelectAll)){
  481. this.isCheckAll = true
  482. this.isIndeterminate=false
  483. //全不选
  484. }else if((duplicateArr.length == 0 && (!this.isSelectAll))|| (duplicateArr.length == this.total && this.isSelectAll)){
  485. this.isCheckAll = false
  486. this.isIndeterminate=false
  487. //半选
  488. }else{
  489. this.isCheckAll = false
  490. this.isIndeterminate=true
  491. }
  492. },1)
  493. },
  494. selectHandle(selection,row){
  495. if(this.selectionReactCancel) return
  496. let check = false;
  497. if(selection.some(it => it.EdbInfoId == row.EdbInfoId)){
  498. // 勾选
  499. if(this.isSelectAll){
  500. check=false
  501. }else{
  502. check=true
  503. }
  504. }else{
  505. // 取消勾选
  506. if(this.isSelectAll){
  507. check=true
  508. }else{
  509. check=false
  510. }
  511. }
  512. if(check){
  513. this.selectList.push(row.EdbInfoId)
  514. }else{
  515. this.selectList=this.selectList.filter(it => it!=row.EdbInfoId)
  516. }
  517. },
  518. selectAllHandle(selection){
  519. if(this.selectionReactCancel) return
  520. let check = false;
  521. if(selection && selection.length>0){
  522. // 全选
  523. if(this.isSelectAll){
  524. check=false
  525. }else{
  526. check=true
  527. }
  528. }else{
  529. // 全不选
  530. if(this.isSelectAll){
  531. check=true
  532. }else{
  533. check=false
  534. }
  535. }
  536. if(check){
  537. this.selectList = [...this.selectList,...this.tableDataIds]
  538. }else{
  539. this.selectList = this.selectList.filter(it => !this.tableDataIds.includes(it))
  540. }
  541. },
  542. //设置刷新时间
  543. async handleSetRefreshTime(){
  544. //校验表格
  545. try{
  546. await this.$refs.refreshconfig.$refs.dynamicForm.validate()
  547. }catch(e){
  548. console.log(e)
  549. return
  550. }
  551. //转换数据格式
  552. const list = this.$refs.refreshconfig.getFormList()
  553. //判断是否是默认时间,走不同接口
  554. if(this.isDefault){
  555. this.setDefaultTime(list)
  556. }else{
  557. this.setRefreshTime(list)
  558. }
  559. },
  560. setRefreshTime(list){
  561. const {frequency,user,classify,state,terminalCode,keyWord} = this.selectOption
  562. dataRefreshInterface.setRefreshTime({
  563. Source:Number(this.Source),
  564. SubSource:Number(this.SubSource),
  565. ClassifyId:Number(classify),
  566. TerminalCode:terminalCode,
  567. SysUserId:user,
  568. Frequency:frequency,
  569. Keyword:keyWord,
  570. Status:state,
  571. IsSelectAll:this.isSelectAll,
  572. EdbSelectIdList:this.selectList,
  573. List:list
  574. }).then(res=>{
  575. if(res.Ret!==200) return
  576. this.$message.success("设置刷新时间成功")
  577. this.getTableData('optionChange')
  578. this.isSetTimeDialogShow = false
  579. })
  580. },
  581. setDefaultTime(list){
  582. dataRefreshInterface.setDefaultTime({
  583. Source:Number(this.Source),
  584. SubSource:Number(this.SubSource),
  585. Frequency:this.defaultFrequency,
  586. List:list
  587. }).then(res=>{
  588. if(res.Ret!==200) return
  589. this.$message.success("设置默认刷新时间成功")
  590. this.isSetTimeDialogShow = false
  591. })
  592. },
  593. setRefreshStatus(){
  594. const {frequency,user,classify,state,terminalCode,keyWord} = this.selectOption
  595. dataRefreshInterface.setRefreshStatus({
  596. Source:Number(this.Source),
  597. SubSource:Number(this.SubSource),
  598. ClassifyId:Number(classify),
  599. TerminalCode:terminalCode,
  600. SysUserId:user,
  601. Frequency:frequency,
  602. Keyword:keyWord,
  603. Status:state,
  604. IsSelectAll:this.isSelectAll,
  605. EdbSelectIdList:this.selectList,
  606. ModifyStatus:this.isState
  607. }).then(res=>{
  608. if(res.Ret!==200) return
  609. this.$message.success("设置刷新状态成功")
  610. this.getTableData('optionChange')
  611. this.isSetStateDialogShow = false
  612. })
  613. },
  614. handleSortChange({prop,order}){
  615. if(order){
  616. this.selectOption.sortParam = 'end_date'
  617. this.selectOption.sortType = order==='ascending'?'asc':'desc'
  618. }else{
  619. this.selectOption.sortParam = ''
  620. this.selectOption.sortType = ''
  621. }
  622. this.selectOptionChange()
  623. }
  624. },
  625. mounted(){
  626. this.getSourceList()
  627. this.getUserList()
  628. }
  629. };
  630. </script>
  631. <style scoped lang="scss">
  632. .data-refresh-setting-wrap{
  633. min-height: calc(100vh - 120px);
  634. display: flex;
  635. flex-direction: column;
  636. .top-box,.table-box{
  637. box-sizing: border-box;
  638. padding:20px;
  639. background-color: #fff;
  640. border:1px solid #C8CDD9;
  641. border-radius: 4px;
  642. }
  643. .top-box{
  644. margin-bottom: 20px;
  645. display: flex;
  646. justify-content: space-between;
  647. .el-input{
  648. width:260px;
  649. }
  650. .select-box{
  651. .el-select{
  652. margin:0 20px;
  653. }
  654. }
  655. }
  656. .table-box{
  657. flex:1;
  658. .el-select{
  659. min-width:180px;
  660. }
  661. .table-select{
  662. display: flex;
  663. justify-content: space-between;
  664. .select-list{
  665. flex:1;
  666. display: flex;
  667. flex-wrap: wrap;
  668. gap:20px;
  669. }
  670. .select-other{
  671. .el-button{
  672. margin-left:30px;
  673. }
  674. }
  675. }
  676. .el-table{
  677. margin:20px 0;
  678. }
  679. .el-pagination{
  680. text-align: right;
  681. }
  682. }
  683. .refresh-setting-dialog{
  684. margin-bottom: 0;
  685. .dialog-container{
  686. overflow: hidden;
  687. .default-box{
  688. display: flex;
  689. align-items: center;
  690. padding-bottom: 30px;
  691. margin-bottom: 30px;
  692. border-bottom: 1px solid #EBEFF6;
  693. }
  694. .refresh-box{
  695. max-height: 65vh;
  696. overflow-y: auto;
  697. }
  698. }
  699. .dialog-btn{
  700. text-align: center;
  701. padding: 25px 0;
  702. }
  703. }
  704. }
  705. </style>