黄陂项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

732 lines
26 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
  1. <template>
  2. <div v-loading="searchLoading" class="search-main">
  3. <div class="head-container">
  4. <h2 v-if="this.$route.path.indexOf('dashboard') === -1">模糊检索</h2>
  5. <div v-if="isHomeSearch" class="search-header">
  6. <el-checkbox-group v-model="checkList" @change="handleCategoryTypes">
  7. <el-checkbox v-for="item in categoryTypesOptions" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
  8. </el-checkbox-group>
  9. </div>
  10. <div class="search-input">
  11. <el-input v-model="keywords" placeholder="请输入内容" class="input-with-select" style="width:50%;" @keyup.enter.native="dimSearch">
  12. <el-select
  13. slot="prepend"
  14. v-model="select"
  15. multiple
  16. collapse-tags
  17. placeholder="请选择"
  18. @change="handleChose"
  19. >
  20. <el-option
  21. v-for="item in options"
  22. :key="item.value"
  23. :label="item.label"
  24. :value="item.value"
  25. />
  26. </el-select>
  27. <el-button slot="append" icon="el-icon-search" @click="handleSearch" />
  28. </el-input>
  29. </div>
  30. <div v-if=" this.$route.path.indexOf('dashboard') === -1 && select.length" style="width:50%; margin:10px auto; font-size: 12px; color: #fff; text-align: left;">
  31. <p style="margin-left: 20px;">检索条件 <span v-for="(option, index) in select" :key="index">{{ getSelectLabel(option) }}{{ index !== select.length - 1 ? ', ' : '' }}</span></p>
  32. </div>
  33. </div>
  34. <div v-if="this.$route.path.indexOf('dashboard') === -1" class="search-result">
  35. <div v-show="isShow" class="search-title">
  36. <!-- <el-button v-if="resNum !== 0" class="lending-btn iconfont" :disabled="selections.length === 0" type="primary" @click="handleLending"><i class="iconfont icon-chuku-fanbai" style="margin-right: 6px;" />借阅</el-button> -->
  37. <p v-if="resNum === 0" class="search-res-left">检索结果</p>
  38. <p :class="{'search-res-num' : resNum !== 0 }">本次检索结果共计{{ resNum }}条数据</p>
  39. <el-checkbox v-if="resNum !== 0" v-model="fixedStatusBar">隐藏状态栏</el-checkbox>
  40. </div>
  41. <div v-show="resNum > 0">
  42. <el-table
  43. ref="table"
  44. v-loading="loading"
  45. class="archives-table"
  46. :data="tableData"
  47. style="width: 100%;"
  48. height="calc(100vh - 534px)"
  49. @cell-dblclick="handleDbClick"
  50. @select-all="selectAll"
  51. @row-click="clickRowHandler"
  52. @select="handleCurrentChange"
  53. >
  54. <el-table-column :selectable="checkboxT" type="selection" align="center" width="55" />
  55. <el-table-column label="序号" width="55" align="center" show-overflow-tooltip>
  56. <template slot-scope="scope">
  57. <span>{{ (page.page === 1 ? 0 : (page.page === 0 ? 0 : page.page - 1)) * page.size + scope.$index + 1 }}</span>
  58. </template>
  59. </el-table-column>
  60. <el-table-column prop="category_type" label="门类级别" align="center" min-width="100">
  61. <template slot-scope="scope">
  62. <span v-if="scope.row.category_type === 5" style="width:56px">文件级</span>
  63. <span v-if="scope.row.category_type === 4" style="width:56px">卷内级</span>
  64. <span v-if="scope.row.category_type === 3" style="width:56px">案卷级</span>
  65. </template>
  66. </el-table-column>
  67. <el-table-column prop="category_name" label="门类名称" align="center" show-overflow-tooltip min-width="170" />
  68. <el-table-column prop="child" label="子条数目" align="center" width="100" />
  69. <el-table-column prop="archive_no" label="编号" align="center" show-overflow-tooltip min-width="220" />
  70. <el-table-column prop="maintitle" label="姓名" show-overflow-tooltip align="center" min-width="240" />
  71. <!-- <el-table-column prop="doc_no" label="发文字号" show-overflow-tooltip width="140" align="center" />
  72. <el-table-column prop="serial_no" label="序号" width="100" align="center" />
  73. <el-table-column prop="fonds_no" label="全宗号" align="center" min-width="180" />
  74. <el-table-column prop="archive_year" label="年度" align="center" min-width="100" />
  75. <el-table-column prop="security_class" label="密级" align="center" min-width="100" />
  76. <el-table-column prop="retention" label="保管期限" align="center" min-width="100" />
  77. <el-table-column prop="arrive_class" label="收发类别" width="140" align="center" />
  78. <el-table-column prop="temp_no" label="临时卷号" show-overflow-tooltip width="140" align="center" />
  79. <el-table-column prop="created_date" label="成文日期" align="center" min-width="180" /> -->
  80. <el-table-column prop="case_name" label="盒名称" show-overflow-tooltip align="center" min-width="200" />
  81. <el-table-column prop="folder_location_details" label="所在位置" align="center" min-width="300">
  82. <template slot-scope="scope">
  83. <span v-if="!scope.row.folder_location_details">-</span>
  84. <span v-else>
  85. <el-tag effect="dark">{{ scope.row.folder_location_details }}</el-tag>
  86. </span>
  87. </template>
  88. </el-table-column>
  89. <!-- 未绑 / 已绑 -->
  90. <el-table-column label="标签" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
  91. <template slot-scope="scope">
  92. <span v-if="scope.row.category_type !== 3" :class="['row-state', 'row-binding', scope.row.tag_no ? 'state-active' : '' ]">{{ scope.row.tag_no ? '已绑': '未绑' }}</span>
  93. </template>
  94. </el-table-column>
  95. <!-- state-active 已装/已入/已借/已绑 -->
  96. <!-- 未装 / 已装 -->
  97. <el-table-column label="装盒" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
  98. <template slot-scope="scope">
  99. <span v-if="scope.row.category_type !== 3" :class="['row-state', 'row-packing', scope.row.case_name ? 'state-active' : '' ]">{{ scope.row.case_name ? '已装': '未装' }}</span>
  100. </template>
  101. </el-table-column>
  102. <!-- is_storage 为空的情况下即没装盒 / 0 未入 / 1 待入 / 2 已入 / 3 待出-->
  103. <!-- <span class="row-state row-warehousing">{{ storageTxt[scope.$index] }}</span> -->
  104. <el-table-column label="入库" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
  105. <template slot-scope="scope">
  106. <span v-if="scope.row.category_type !== 3" :class="['row-state', 'row-warehousing', (storageTxt[scope.$index] === '已入' )? 'state-active' : '' ]">{{ storageTxt[scope.$index] }}</span>
  107. </template>
  108. </el-table-column>
  109. <!-- is_borrow 4 已归还 / 为空 - 未加入待借列表 - 在库 / 2 待借阅在待借列表/借出确认列表 - 待借 / 1待登记 - 不可借- 表示 / 3 待归还 - 已借 -->
  110. <el-table-column label="借阅" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
  111. <template slot-scope="scope">
  112. <span v-if="scope.row.category_type !== 3" :class="['row-state', 'row-lending', (borrowTxt[scope.$index] === '已借' )? 'state-active' : '' ]">{{ borrowTxt[scope.$index] }}</span>
  113. </template>
  114. </el-table-column>
  115. </el-table>
  116. <el-pagination :page-size.sync="page.size" :total="page.total" :current-page.sync="page.page" style="margin-top: 8px;" layout="total, prev, pager, next, sizes" @size-change="sizeChangeHandler($event)" @current-change="pageChangeHandler" />
  117. </div>
  118. <!-- 详情 -->
  119. <!-- <detailDialog ref="detailDom" @openCol="openCol" /> -->
  120. <ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
  121. <!-- 借阅 -->
  122. <el-dialog title="借阅" :visible.sync="lengingVisible" :close-on-click-modal="false" :before-close="handleClose">
  123. <span class="dialog-right-top" />
  124. <span class="dialog-left-bottom" />
  125. <div class="setting-dialog">
  126. <div class="dialog-delt">
  127. <p><span>确定将当前档案加入借阅列表</span></p>
  128. </div>
  129. <div slot="footer" class="dialog-footer">
  130. <el-button type="primary" @click.native="handleLendingConfirm">确定</el-button>
  131. </div>
  132. </div>
  133. </el-dialog>
  134. </div>
  135. </div>
  136. </template>
  137. <script>
  138. import ArchivesInfo from '../../archivesManage/archivesList/module/archivesInfo/index'
  139. // import detailDialog from './module/detailDialog.vue'
  140. // , FetchArchivesDetails, FetchArchivesMetadata
  141. import { getCategoryTree } from '@/api/category/category'
  142. import { querySeniorArchives } from '@/api/archivesManage/archivesList'
  143. import { FetchIsExistBorrow, FetchAddArchivesWaitRegister } from '@/api/archivesManage/lendManage'
  144. import CallExternal from '@/api/storeManage/deviceManage/device'
  145. import { mapGetters } from 'vuex'
  146. export default {
  147. name: 'ArchivesSearch',
  148. components: { ArchivesInfo },
  149. provide() {
  150. return {
  151. recycleMain: this
  152. }
  153. },
  154. props: {
  155. isHomeSearch: {
  156. type: Boolean,
  157. default: true
  158. }
  159. },
  160. data() {
  161. return {
  162. categoryTree: null,
  163. categoryId: null,
  164. arcId: null,
  165. loading: false,
  166. tableData: [],
  167. selections: [],
  168. storageTxt: [],
  169. borrowTxt: [],
  170. fixedStatusBar: false,
  171. searchLoading: false,
  172. lengingVisible: false,
  173. keywords: '',
  174. select: ['maintitle'],
  175. options: [
  176. { value: 'maintitle', label: '姓名' },
  177. { value: 'archive_no', label: '编号' }
  178. // { value: 'responsibleby', label: '责任者' },
  179. // { value: 'doc_no', label: '发文字号' },
  180. // { value: 'record_type', label: '文种' },
  181. // { value: 'fonds_no', label: '全宗号' },
  182. // { value: 'archive_year', label: '年度' },
  183. // { value: 'security_class', label: '密级' },
  184. // { value: 'retention', label: '保管期限' },
  185. // { value: 'case_name', label: '盒名称' },
  186. // { value: 'barcode', label: '条形码' },
  187. // { value: 'folder_location', label: '地址码' },
  188. // { value: 'temp_no', label: '临时卷号' }
  189. ],
  190. page: {
  191. total: 0,
  192. size: 10,
  193. page: 1
  194. },
  195. resNum: 0,
  196. isShow: false,
  197. params: {
  198. criteria: null,
  199. query: null,
  200. page: null,
  201. size: null
  202. },
  203. homeSearchWords: '',
  204. homeSearchSelect: [],
  205. openLocation: null,
  206. deviceData: null,
  207. checkList: [3, 4, 5],
  208. categoryTypesOptions: [
  209. {
  210. label: '案卷级',
  211. value: 3
  212. },
  213. {
  214. label: '卷内级',
  215. value: 4
  216. },
  217. {
  218. label: '文件级',
  219. value: 5
  220. }
  221. ]
  222. }
  223. },
  224. computed: {
  225. ...mapGetters([
  226. 'roles'
  227. ])
  228. },
  229. async created() {
  230. await this.getDeviceListAll()
  231. },
  232. mounted() {
  233. this.getCateMenu()
  234. if (localStorage.getItem('homeSearchWords') !== null) {
  235. this.keywords = localStorage.getItem('homeSearchWords')
  236. const homeSearchSelect = localStorage.getItem('homeSearchSelect')
  237. const homeSearchSelectArray = JSON.parse(homeSearchSelect)
  238. this.select = homeSearchSelectArray
  239. this.dimSearch()
  240. }
  241. },
  242. methods: {
  243. handleChose(val) {
  244. if (val.length < 1) {
  245. this.$nextTick(() => {
  246. this.select = ['maintitle'] // 重新设置 v-model 的值
  247. })
  248. return
  249. }
  250. },
  251. handleCategoryTypes(val) {
  252. if (val.length < 1) {
  253. this.$nextTick(() => {
  254. this.checkList = [3] // 重新设置 v-model 的值
  255. })
  256. return
  257. }
  258. },
  259. getSelectLabel(option) {
  260. const selectedOption = this.options.find((c) => c.value === option)
  261. return selectedOption ? selectedOption.label : ''
  262. },
  263. checkboxT(row, rowIndex) {
  264. return row.category_type !== 3
  265. },
  266. // table - 全选
  267. selectAll(val) {
  268. this.selections = val
  269. },
  270. // table - 当前选中得row
  271. clickRowHandler(row) {
  272. if (row.category_type !== 3) {
  273. this.$refs.table.clearSelection()
  274. this.$refs.table.toggleRowSelection(row)
  275. this.selections = []
  276. this.selections.push(row)
  277. }
  278. },
  279. // 触发单选
  280. handleCurrentChange(selection, row) {
  281. this.selections = selection
  282. },
  283. getCateMenu() {
  284. getCategoryTree().then(res => {
  285. this.categoryTree = res
  286. console.log('this.categoryTree', this.categoryTree)
  287. })
  288. },
  289. findItemById(data, id) {
  290. if (Array.isArray(data)) {
  291. for (const item of data) {
  292. const result = this.findItemById(item, id)
  293. if (result) return result
  294. }
  295. } else if (typeof data === 'object') {
  296. if (data.id === id) {
  297. return data
  298. } else {
  299. if (data.children && data.children.length > 0) {
  300. return this.findItemById(data.children, id)
  301. }
  302. }
  303. }
  304. return null
  305. },
  306. // 双击详情
  307. handleDbClick(row) {
  308. console.log(this.$refs.archivesInfo)
  309. this.categoryId = row.category_id
  310. this.arcId = row.archives_id
  311. const currentCategory = this.findItemById(this.categoryTree, row.category_id)
  312. console.log(currentCategory.isType)
  313. if (currentCategory.isType === 3) {
  314. this.$refs.archivesInfo.isHasFile = false
  315. this.$refs.archivesInfo.isTidOrBorrow = false
  316. } else {
  317. this.$refs.archivesInfo.isHasFile = true
  318. this.$refs.archivesInfo.isTidOrBorrow = true
  319. }
  320. this.$refs.archivesInfo.isDetailsInfo = true
  321. this.$refs.archivesInfo.detailTitle = '档案详情'
  322. this.$refs.archivesInfo.archivesInfoVisible = true
  323. this.$refs.archivesInfo.archivesTabIndex = 0
  324. this.$refs.archivesInfo.getDetial(row.archives_id, row.category_id)
  325. // const params = {
  326. // 'categoryId': row.category_id,
  327. // 'archivesId': row.archives_id
  328. // }
  329. // FetchArchivesDetails(params).then(res => {
  330. // if (res) {
  331. // const rowData = {}
  332. // res.forEach(item => {
  333. // rowData[item.fieldName] = item.context
  334. // })
  335. // // 是否显示开架按钮
  336. // if (rowData.folder_location !== null) {
  337. // this.openLocation = rowData.folder_location
  338. // this.$refs.detailDom.isShowOpen = true
  339. // } else {
  340. // this.openLocation = null
  341. // this.$refs.detailDom.isShowOpen = false
  342. // }
  343. // this.$refs.detailDom.rowData = rowData
  344. // // 元数据
  345. // FetchArchivesMetadata(params).then(res => {
  346. // this.$refs.detailDom.xmlStr = res
  347. // })
  348. // this.$refs.detailDom.detailVisible = true
  349. // }
  350. // })
  351. },
  352. // 首页 / 搜索页切换操作
  353. handleSearch() {
  354. if (this.select.length === 0) {
  355. this.$message.warning('请选择检索条件!')
  356. return
  357. }
  358. if (this.$route.path.indexOf('dashboard') !== -1) {
  359. this.$router.push('/archivesManage/archivesSearch')
  360. localStorage.setItem('homeSearchWords', this.keywords)
  361. localStorage.setItem('homeSearchSelect', JSON.stringify(this.select))
  362. // if (this.roles.includes('admin') || this.roles.includes('archivesSearch:list')) {
  363. // // localStorage.setItem('homeSearchCheckbox', JSON.stringify([3, 4, 5]))
  364. // } else {
  365. // this.$message({
  366. // message: '当前账号没有权限',
  367. // type: 'warning'
  368. // })
  369. // }
  370. } else {
  371. this.dimSearch()
  372. }
  373. },
  374. // 搜索
  375. dimSearch() {
  376. this.searchLoading = true
  377. this.loading = true
  378. // const homeSearchCheckbox = JSON.parse(localStorage.getItem('homeSearchCheckbox'))
  379. // if (homeSearchCheckbox) {
  380. // this.checkList = homeSearchCheckbox
  381. // }
  382. const arr = this.keywords.trim() // 去空格
  383. if (arr.length === 0) { // 无关键词时无数据
  384. this.tableData = []
  385. this.resNum = 0
  386. this.isShow = false
  387. this.page.total = 0
  388. this.page.size = 10
  389. this.page.page = 1
  390. localStorage.removeItem('homeSearchWords')
  391. localStorage.removeItem('homeSearchSelect')
  392. this.searchLoading = false
  393. // localStorage.removeItem('homeSearchCheckbox')
  394. } else {
  395. this.params.categoryTypes = this.checkList.join(',')
  396. this.params.criteria = this.select.join(',')
  397. this.params.query = this.keywords.replace(/\s+/ig, ' ')
  398. this.params.page = this.page.page - 1
  399. this.params.size = this.page.size
  400. this.doQuery(this.params)
  401. }
  402. },
  403. // 调用搜索接口
  404. doQuery(params) {
  405. querySeniorArchives(params).then(res => {
  406. this.loading = false
  407. this.searchLoading = false
  408. this.tableData = res.content
  409. this.tableData.forEach((item, index) => {
  410. // 入库状态
  411. if (item.is_storage === 0) {
  412. this.storageTxt[index] = '未入'
  413. if (item.is_borrow === '') {
  414. this.borrowTxt[index] = '-'
  415. }
  416. } else if (item.is_storage === 1) {
  417. this.storageTxt[index] = '待入'
  418. if (item.is_borrow === '') {
  419. this.borrowTxt[index] = '-'
  420. }
  421. } else if (item.is_storage === 2) {
  422. this.storageTxt[index] = '已入'
  423. if (item.is_borrow === '') {
  424. this.borrowTxt[index] = '在库'
  425. }
  426. } else if (item.is_storage === 3) {
  427. this.storageTxt[index] = '待出'
  428. if (item.is_borrow === '') {
  429. this.borrowTxt[index] = '-'
  430. }
  431. } else if (item.is_storage === null) {
  432. this.storageTxt[index] = '未入'
  433. if (item.is_borrow === '') {
  434. this.borrowTxt[index] = '-'
  435. }
  436. }
  437. // 借阅状态
  438. if (item.is_borrow === 1) {
  439. this.borrowTxt[index] = '待借'
  440. } else if (item.is_borrow === 2) {
  441. this.borrowTxt[index] = '待借'
  442. } else if (item.is_borrow === 3) {
  443. this.borrowTxt[index] = '已借'
  444. } else if (item.is_borrow === null) {
  445. this.borrowTxt[index] = '在库'
  446. }
  447. })
  448. this.page.total = res.totalElements
  449. this.resNum = res.totalElements
  450. this.isShow = true
  451. localStorage.removeItem('homeSearchWords')
  452. localStorage.removeItem('homeSearchSelect')
  453. })
  454. },
  455. // 每页条数改变
  456. sizeChangeHandler(e) {
  457. this.loading = true
  458. this.page.size = e
  459. this.page.page = 1
  460. this.params.size = e
  461. this.params.page = 0
  462. this.doQuery(this.params)
  463. this.loading = false
  464. },
  465. // 当前页改变
  466. pageChangeHandler(e) {
  467. this.loading = true
  468. this.page.page = e
  469. this.params.page = e - 1
  470. this.doQuery(this.params)
  471. this.loading = false
  472. },
  473. // 获取密集架相关信息
  474. getDeviceListAll() {
  475. const params = {
  476. sort: 'sequence,asc',
  477. storeroomId: 'D6490DA3D4261E8C26D0E3'
  478. }
  479. CallExternal.getDeviceList(params).then(data => {
  480. data.content.map(item => {
  481. if (item.deviceTypeId.name === '密集架') { // 写死状态
  482. this.deviceData = item
  483. }
  484. })
  485. })
  486. },
  487. // 开架
  488. openCol() {
  489. const loactionArray = this.openLocation.split(' ')
  490. const location = this.openLocation.split(' ')[loactionArray.length - 1]
  491. const pattern = /(\d+)区(\d+)列(\d+)节(\d+)层/
  492. const matches = location.match(pattern)
  493. let areaNumber
  494. let colNumber
  495. let leNumber
  496. let divNumber
  497. let zyNumber
  498. if (matches !== null) {
  499. areaNumber = matches[1]
  500. colNumber = matches[2]
  501. leNumber = matches[3]
  502. divNumber = matches[4]
  503. }
  504. const last_char = location.length - 1
  505. if (location[last_char] === '右') {
  506. zyNumber = '2'
  507. } else {
  508. zyNumber = '1'
  509. }
  510. const params = {
  511. deviceId: this.deviceData.id,
  512. quNo: areaNumber, // 区
  513. colNo: colNumber, // 列
  514. leNo: leNumber, // 节
  515. divNo: divNumber, // 层
  516. zyNo: zyNumber // 左右 1左 2右
  517. }
  518. console.log(params)
  519. CallExternal.FetchCallExternalOpenCol(params).then(res => {
  520. if (res.success && res.success === '0') {
  521. this.$message.success('开架执行成功')
  522. } else {
  523. this.$message.error(res.msg)
  524. }
  525. }).catch((error) => {
  526. console.log(error)
  527. this.$message.error('连接失败')
  528. })
  529. },
  530. // 借阅
  531. handleLending() {
  532. const index = this.selections.findIndex((item) => item.is_storage === 0 || item.is_storage === '' || item.is_storage === 1)
  533. const index2 = this.selections.findIndex((item) => item.is_borrow === 3)
  534. const index3 = this.selections.findIndex((item) => item.is_storage === 3)
  535. if (index !== -1) {
  536. this.$message.error('所选档案还未入库不能借阅')
  537. return false
  538. }
  539. if (index3 !== -1) {
  540. this.$message.error('待出档案不可借阅')
  541. return false
  542. }
  543. if (index2 !== -1) {
  544. this.$message.error('当前档案已借出,还未归还')
  545. return false
  546. }
  547. const params = this.selections.map(item => {
  548. return item.archives_id
  549. })
  550. FetchIsExistBorrow(params).then(data => {
  551. if (data.length === 0) {
  552. this.lengingVisible = true
  553. } else if (data.length === this.selections.length) {
  554. this.$message.error('所选档案不可借阅')
  555. } else {
  556. this.$message.error('部分档案不可借阅')
  557. }
  558. })
  559. },
  560. // 确认借阅
  561. handleLendingConfirm() {
  562. const params = this.selections.map(item => {
  563. return item.archives_id
  564. })
  565. FetchAddArchivesWaitRegister(params).then(data => {
  566. if (data.length !== 0) {
  567. this.$message.success('借阅成功')
  568. this.lengingVisible = false
  569. this.params.categoryTypes = this.checkList.join(',')
  570. this.params.criteria = this.select.join(',')
  571. this.params.query = this.keywords.replace(/\s+/ig, ' ')
  572. this.params.page = this.page.page - 1
  573. this.params.size = this.page.size
  574. this.doQuery(this.params)
  575. this.selections = []
  576. }
  577. })
  578. },
  579. // 关闭
  580. handleClose(done) {
  581. this.lengingVisible = false
  582. done()
  583. }
  584. }
  585. }
  586. </script>
  587. <style lang="scss" scoped>
  588. @import "~@/assets/styles/archives-manage.scss";
  589. .search-main{
  590. width: 100%;
  591. }
  592. .head-container{
  593. padding: 80px 0 30px 0;
  594. text-align: center;
  595. h2{
  596. color: #fff;
  597. margin-bottom: 30px;
  598. }
  599. }
  600. .search-header{
  601. width: 50%;
  602. text-align: left;
  603. margin: 0 auto 10px auto;
  604. ::v-deep .el-checkbox-group{
  605. margin-left: 15px;
  606. .el-checkbox__label{
  607. color: #fff;
  608. }
  609. }
  610. }
  611. .search-area {
  612. height: 100%;
  613. margin: 0;
  614. display: flex;
  615. align-items: center;
  616. justify-content: center;
  617. & .search-input {
  618. & .el-select .el-input {
  619. width: 130px;
  620. }
  621. }
  622. }
  623. // 补充不生效
  624. ::v-deep .el-input-group {
  625. height: 42px;
  626. & > input {
  627. height: 42px;
  628. border: 1px solid #339cff;
  629. background-color: #021941;
  630. &::placeholder {
  631. color: #fff;
  632. }
  633. }
  634. }
  635. ::v-deep .el-input-group__prepend {
  636. width: 125px;
  637. background-color: #339cff;
  638. border: 1px solid #339cff;
  639. border-radius: 34px 0 0 34px;
  640. border-right: 0;
  641. }
  642. ::v-deep .el-input__inner {
  643. color: #fff;
  644. }
  645. ::v-deep .el-input-group__prepend div.el-select .el-input__inner{
  646. color: #fff;
  647. text-align: center;
  648. }
  649. ::v-deep .el-input-group__append {
  650. width: 72px;
  651. left: -20px;
  652. text-align: center;
  653. background-color: #339cff;
  654. border: 1px solid #339cff;
  655. border-radius: 34px;
  656. & i {
  657. font-size: 25px;
  658. color: #fff;
  659. }
  660. }
  661. //检索结果
  662. .search-result{
  663. padding: 0 20px;
  664. color: #fff;
  665. .search-title{
  666. padding:0 20px;
  667. display: flex;
  668. justify-content: space-between;
  669. margin-bottom: 20px;
  670. line-height: 32px;
  671. .search-res-left{
  672. flex: 1;
  673. }
  674. .search-res-num{
  675. flex: 1;
  676. text-align: right;
  677. margin-right: 30px;
  678. }
  679. .el-button{
  680. margin-right: 20px;
  681. }
  682. ::v-deep .el-checkbox{
  683. .el-checkbox__label{
  684. color: #fff;
  685. }
  686. }
  687. }
  688. }
  689. ::v-deep ::-webkit-scrollbar-corner{
  690. background: transparent;
  691. }
  692. ::v-deep .el-select__tags{
  693. max-width: 100% !important;
  694. }
  695. ::v-deep .el-tag.el-tag--info{
  696. font-size: 14px;
  697. color: #fff;
  698. background-color: transparent !important;
  699. border: none !important;
  700. margin: 0 auto !important;
  701. .el-tag__close{
  702. color: #fff;
  703. display: none;
  704. }
  705. &:nth-child(2){
  706. display: none;
  707. margin: 6px 0 4px -4px !important;
  708. }
  709. }
  710. .lending-btn{
  711. border-color: #F65163;
  712. background-color: #F65163;
  713. &.is-disabled{
  714. color: #666;
  715. border-color:#7A2831;
  716. background-color: #7A2831;
  717. }
  718. }
  719. </style>