【前端】智能库房综合管理系统前端项目
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.

708 lines
25 KiB

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