searchRecruit.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  1. <template>
  2. <view>
  3. <view class="headerSearchBox">
  4. <view class="leftSearchBox">
  5. <u-icon name="search" color="#999" size="36"></u-icon>
  6. <view class="textICS" @click="showActiveTypes">
  7. <view class="texs">{{ searchType === 0 ? '岗位' : searchType === 1 ? '公司' : '未知' }}</view>
  8. <u-icon class="icnst" :class="showType ? 'openTypes' : ''" name="arrow-down-fill" color="#999" size="18"></u-icon>
  9. </view>
  10. <input class="linpt" type="text" value="" placeholder="请输入" v-model="job" focus @confirm="submitForms"/>
  11. </view>
  12. <view class="exit" @click="backHome">取消</view>
  13. </view>
  14. <u-dropdown ref="uDropdown" border-bottom>
  15. <u-dropdown-item :title="city === null ? '全国' : city">
  16. <view class="slot-content">
  17. <view class="tyStyleZ">
  18. <u-cell-item
  19. :border-bottom="false"
  20. title="工作地点"
  21. :arrow="true"
  22. arrow-direction="down"
  23. @click="showCityPicker = true"
  24. :value="city === null ? '请选择省市' : city"
  25. ></u-cell-item>
  26. <view class="dis_fs">
  27. <view class="left_in" @click="initResult">重置</view>
  28. <view class="sultRight" @click="submitForms">确定</view>
  29. </view>
  30. </view>
  31. </view>
  32. </u-dropdown-item>
  33. <u-dropdown-item title="薪资范围">
  34. <view class="slot-content">
  35. <view class="tyStyleZ">
  36. <view class="priceType">
  37. <view class="lstq" :class="priceType === 1 ? 'activeLstq' : ''" @click="priceType = 1">月薪</view>
  38. <view class="lstq" :class="priceType === 2 ? 'activeLstq' : ''" @click="priceType = 2">年薪</view>
  39. </view>
  40. <view class="priceInput">
  41. <input class="inputSty" type="number" value="" placeholder="最低(元)" v-model="incomeStart" />
  42. <input class="inputSty" type="number" value="" placeholder="最高(元)" v-model="incomeEnd" />
  43. </view>
  44. <view class="heards">月薪薪资范围(至多选三项)</view>
  45. <view class="boxPlus">
  46. <view
  47. class="liszing"
  48. v-for="(item, index) in priceActList"
  49. :key="index"
  50. @click="activeProceAc(item)"
  51. :class="priceActiveBoxs.indexOf(item.value) !== -1 ? 'activesLiszing' : ''"
  52. >
  53. {{ item.label }}
  54. </view>
  55. <view style="clear: both;"></view>
  56. </view>
  57. <view class="dis_fs">
  58. <view class="left_in" @click="initResult">重置</view>
  59. <view class="sultRight" @click="submitForms">确定</view>
  60. </view>
  61. </view>
  62. </view>
  63. </u-dropdown-item>
  64. <u-dropdown-item title="工作类型">
  65. <view class="slot-content">
  66. <view class="tyStyleZ">
  67. <view class="heards">工作类型</view>
  68. <view class="boxPlus">
  69. <view
  70. class="liszing"
  71. v-for="(item, index) in workTypeList"
  72. :key="index"
  73. @click="activeWorkType(item)"
  74. :class="workActiveBoxs.indexOf(item) !== -1 ? 'activesLiszing' : ''"
  75. >
  76. {{ item }}
  77. </view>
  78. <view style="clear: both;"></view>
  79. </view>
  80. <view class="dis_fs">
  81. <view class="left_in" @click="initResult">重置</view>
  82. <view class="sultRight" @click="submitForms">确定</view>
  83. </view>
  84. </view>
  85. </view>
  86. </u-dropdown-item>
  87. <u-dropdown-item title="更多筛选">
  88. <view class="slot-content">
  89. <view class="tyStyleZ">
  90. <view class="heards">学历要求(可多选)</view>
  91. <view class="boxPlus">
  92. <view
  93. class="liszing"
  94. v-for="(item, index) in eduList"
  95. :key="index"
  96. @click="activeEduType(item)"
  97. :class="eduActiveBoxs.indexOf(item.value) !== -1 ? 'activesLiszing' : ''"
  98. >
  99. {{ item.label }}
  100. </view>
  101. <view style="clear: both;"></view>
  102. </view>
  103. <view class="heards">工作年限(可多选)</view>
  104. <view class="boxPlus">
  105. <view
  106. class="liszing"
  107. v-for="(item, index) in workYearsList"
  108. :key="index"
  109. @click="activeWorkYearsType(item)"
  110. :class="workYearsActiveBoxs.indexOf(item.value) !== -1 ? 'activesLiszing' : ''"
  111. >
  112. {{ item.label }}
  113. </view>
  114. <view style="clear: both;"></view>
  115. </view>
  116. <view class="heards">企业规模(可多选)</view>
  117. <view class="boxPlus">
  118. <view
  119. class="liszing"
  120. v-for="(item, index) in companySizeList"
  121. :key="index"
  122. @click="activeCompanySize(item)"
  123. :class="companySizeActiveBoxs.indexOf(item.value) !== -1 ? 'activesLiszing' : ''"
  124. >
  125. {{ item.label }}
  126. </view>
  127. <view style="clear: both;"></view>
  128. </view>
  129. <view class="heards">公司类型(可多选)</view>
  130. <view class="boxPlus">
  131. <view
  132. class="liszing"
  133. v-for="(item, index) in companyTypeList"
  134. :key="index"
  135. @click="activeCompanyType(item)"
  136. :class="companyTypeActiveBoxs.indexOf(item.value) !== -1 ? 'activesLiszing' : ''"
  137. >
  138. {{ item.label }}
  139. </view>
  140. <view style="clear: both;"></view>
  141. </view>
  142. <view class="dis_fs">
  143. <view class="left_in" @click="initResult">重置</view>
  144. <view class="sultRight" @click="submitForms">确定</view>
  145. </view>
  146. </view>
  147. </view>
  148. </u-dropdown-item>
  149. </u-dropdown>
  150. <u-divider v-if="posts.length === 0 && enterprise.length === 0 && searStatus">暂无符合条件的公司</u-divider>
  151. <scroll-view scroll-y="true" style="padding-top: 20rpx;" :style="'height: ' + windowHeight + 'px;'">
  152. <view v-if="current === 0">
  153. <view class="boxsize lines" v-for="(item, index) in posts" :key="index" @click="jumpDetails(item)">
  154. <view class="top_sty">
  155. <view>
  156. <view class="heasd">
  157. {{ item.job }}
  158. <image style="width:27rpx;height:27rpx;" src="@/static/ji@3x.png" mode=""></image>
  159. </view>
  160. <view class="fotHs">{{ item.companyName }}</view>
  161. </view>
  162. <view class="priceSty">
  163. {{ item.incomeStart === item.incomeEnd ? item.incomeStart : item.incomeStart + '~' + item.incomeEnd }}/{{ item.incomeType === 1 ? '月' : '年' }}
  164. </view>
  165. </view>
  166. <view class="dis_foter">
  167. <view class="dis_f">
  168. <view class="fot_size">{{ item.workingYearsLabel }}</view>
  169. <view class="fot_size">{{ item.minimumEduLabel }}</view>
  170. <view class="yys" v-for="(items, indexs) in item.bonusCertificate" :key="indexs">{{ items }}</view>
  171. </view>
  172. <view class="right_address">{{ item.city }}•{{ item.district }}</view>
  173. </view>
  174. </view>
  175. </view>
  176. <view v-if="current === 1">
  177. <view class="boxsize" v-for="(item, index) in enterprise" :key="index">
  178. <view class="dis_flexs" @click="jumpCompany(item)">
  179. <view class="imgboxs"><image style="width: 100%; height: 100%;" src="/static/avatar1.png" mode=""></image></view>
  180. <view style="flex: 1;">
  181. <view class="headTits">{{ item.companyName }}</view>
  182. <view class="lisz">
  183. <view class="bqB">{{ item.city }}</view>
  184. <view class="bqB">{{ item.companyType }}</view>
  185. <view class="bqB">{{ item.companySize }}</view>
  186. </view>
  187. </view>
  188. </view>
  189. <view class="tnsz">
  190. <view class="litns" v-for="(items, indexs) in item.newNumObj" :key="indexs" @click="jumpDetails(items)">{{ items.job }}</view>
  191. <view class="moreLs" v-if="item.recruitNeedsVoList.length > 3" @click="jumpDetails(item.recruitNeedsVoList[0])">•••</view>
  192. </view>
  193. </view>
  194. </view>
  195. </scroll-view>
  196. <u-action-sheet safe-area-inset-bottom :cancel-btn="false" :list="searchLists" @click="clickAs" v-model="showType"></u-action-sheet>
  197. <u-picker mode="region" v-model="showCityPicker" :params="{ province: true, city: true }" @confirm="activeCitys"></u-picker>
  198. </view>
  199. </template>
  200. <script>
  201. export default {
  202. data() {
  203. return {
  204. searStatus: false,
  205. showCityPicker: false,
  206. job: '',
  207. windowHeight: 0,
  208. searchType: 0,
  209. showType: false,
  210. searchLists: [
  211. {
  212. text: '岗位'
  213. },
  214. {
  215. text: '公司'
  216. }
  217. ],
  218. posts: [], //岗位列表
  219. enterprise: [], //企业列表
  220. current: 0,
  221. workTypeList: ['全职', '兼职', '实习生'], //工作类型
  222. workActiveBoxs: [], //选中工作类型
  223. priceType: 1, //薪资类型 1月薪2年薪
  224. incomeStart: '', //薪资起点
  225. incomeEnd: '', //薪资结点
  226. priceActList: [], //薪资范围列表
  227. priceActiveBoxs: [], //薪资选中列表
  228. eduList: [], //学历
  229. eduActiveBoxs: [], //选中学历
  230. workYearsList: [], //工作年限类型
  231. workYearsActiveBoxs: [], //选中工作年限类型
  232. companySizeList: [], //公司规模
  233. companySizeActiveBoxs: [], //选中公司规模
  234. companyTypeList: [], //公司类型
  235. companyTypeActiveBoxs: [], //选中公司类型
  236. province: null,
  237. city: null
  238. };
  239. },
  240. created() {
  241. this.windowHeight = uni.getSystemInfoSync().windowHeight - 120;
  242. this.getDict();
  243. this.initPriceList();
  244. },
  245. methods: {
  246. jumpCompany(v){
  247. var data = {
  248. companyId: v.companyId
  249. }
  250. if(v.recruitNeedsVoList.length > 0){
  251. data.id = v.recruitNeedsVoList[0].id
  252. }
  253. this.$navTo.togo('/pages2/recruitment/detailsInfo', data);
  254. },
  255. jumpDetails(v) {
  256. this.$navTo.togo('/pages2/recruitment/detailsInfo', {
  257. id: v.id,
  258. companyId: v.companyId
  259. });
  260. },
  261. initResult() {
  262. this.workActiveBoxs = []; //选中工作类型
  263. this.priceType = 1; //薪资类型 1月薪2年薪
  264. this.incomeStart = ''; //薪资起点
  265. this.incomeEnd = ''; //薪资结点
  266. this.priceActiveBoxs = []; //薪资选中列表
  267. this.eduActiveBoxs = []; //选中学历
  268. this.workYearsActiveBoxs = []; //选中工作年限类型
  269. this.companySizeActiveBoxs = []; //选中公司规模
  270. this.companyTypeActiveBoxs = []; //选中公司类型
  271. this.province = null;
  272. this.city = null;
  273. },
  274. submitForms() {
  275. var self = this
  276. var data = {};
  277. if(this.companySizeActiveBoxs.length){
  278. data.sizeIds = this.companySizeActiveBoxs.toString()
  279. }
  280. if(this.companyTypeActiveBoxs.length){
  281. data.typeIds = this.companyTypeActiveBoxs.toString()
  282. }
  283. if(this.searchType === 0){
  284. if (this.province !== null && this.city !== null) {
  285. data.province = this.province;
  286. data.city = this.city;
  287. }
  288. if (this.priceActiveBoxs.length > 0) {
  289. data.incomeType = 1;
  290. data.incomeList = JSON.stringify(this.priceActiveBoxs);
  291. } else {
  292. if (this.incomeStart !== '' || this.incomeEnd !== '') {
  293. if (this.incomeStart !== '' && this.incomeEnd !== '') {
  294. var testPrice = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/;
  295. if (!testPrice.test(Number(this.incomeStart))) {
  296. uni.showToast({
  297. title: '请规范填写最低薪资',
  298. icon: 'none'
  299. });
  300. return;
  301. }
  302. if (!testPrice.test(Number(this.incomeEnd))) {
  303. uni.showToast({
  304. title: '请规范填写最高薪资',
  305. icon: 'none'
  306. });
  307. return;
  308. }
  309. if (Number(this.incomeStart) > Number(this.incomeEnd)) {
  310. uni.showToast({
  311. title: '请规范填写薪资范围',
  312. icon: 'none'
  313. });
  314. return;
  315. }
  316. data.incomeType = this.priceType;
  317. data.incomeList = JSON.stringify([{ incomeStart: Number(this.incomeStart), incomeEnd: Number(this.incomeEnd) }]);
  318. } else {
  319. uni.showToast({
  320. title: '请填写薪资范围',
  321. icon: 'none'
  322. });
  323. return;
  324. }
  325. }
  326. }
  327. if(this.workActiveBoxs.length){
  328. data.jobNatures = this.workActiveBoxs.toString()
  329. }
  330. if(this.eduActiveBoxs.length){
  331. data.minimumEduDictList = this.eduActiveBoxs.toString()
  332. }
  333. if(this.workYearsActiveBoxs.length){
  334. data.workingYearsDictList = this.workYearsActiveBoxs.toString()
  335. }
  336. if(this.job){
  337. data.job = this.job
  338. }
  339. this.$api.recruitneedslist(data).then(res => {
  340. if (res.data.code === 200) {
  341. res.data.rows.forEach((item, index) => {
  342. if (item.jobNature) {
  343. item.jobNature = item.jobNature.split(',');
  344. }
  345. if (item.welfare) {
  346. item.welfare = item.welfare.split(',');
  347. }
  348. if (item.bonusCertificate) {
  349. item.bonusCertificate = item.bonusCertificate.split(',');
  350. }
  351. });
  352. self.posts = res.data.rows
  353. self.enterprise = []
  354. self.current = 0
  355. self.$refs.uDropdown.close();
  356. }
  357. })
  358. }
  359. if(this.searchType === 1){
  360. if(this.job){
  361. data.companyName = this.job
  362. }
  363. this.$api.recruitcompanyConlist(data).then(res => {
  364. if (res.data.code === 200) {
  365. for (let k = 0; k < res.data.rows.length; k++) {
  366. if (res.data.rows[k].recruitNeedsVoList) {
  367. var anum = [];
  368. for (let i = 0; i < res.data.rows[k].recruitNeedsVoList.length; i++) {
  369. if (i >= 3) {
  370. break;
  371. } else {
  372. anum.push(res.data.rows[k].recruitNeedsVoList[i]);
  373. }
  374. }
  375. res.data.rows[k].newNumObj = anum;
  376. }
  377. }
  378. self.enterprise = res.data.rows;
  379. self.posts = []
  380. self.current = 1
  381. self.$refs.uDropdown.close();
  382. }
  383. })
  384. }
  385. this.searStatus = true
  386. console.log(data)
  387. },
  388. closeDropdown() {
  389. this.$refs.uDropdown.close();
  390. },
  391. showActiveTypes() {
  392. this.showType = true;
  393. },
  394. clickAs(index) {
  395. this.searchType = index;
  396. this.showType = false;
  397. },
  398. activeWorkType(item) {
  399. if (this.workActiveBoxs.indexOf(item) !== -1) {
  400. this.workActiveBoxs.splice(this.workActiveBoxs.indexOf(item), 1);
  401. } else {
  402. this.workActiveBoxs.push(item);
  403. }
  404. },
  405. activeProceAc(item) {
  406. if (this.priceActiveBoxs.indexOf(item.value) !== -1) {
  407. this.priceActiveBoxs.splice(this.priceActiveBoxs.indexOf(item.value), 1);
  408. } else {
  409. if (this.priceActiveBoxs.length >= 3) {
  410. uni.showToast({
  411. title: '最多选中三个',
  412. icon: 'none'
  413. });
  414. return;
  415. }
  416. this.priceActiveBoxs.push(item.value);
  417. }
  418. console.log(this.priceActiveBoxs);
  419. },
  420. activeEduType(item) {
  421. if (this.eduActiveBoxs.indexOf(item.value) !== -1) {
  422. this.eduActiveBoxs.splice(this.eduActiveBoxs.indexOf(item.value), 1);
  423. } else {
  424. this.eduActiveBoxs.push(item.value);
  425. }
  426. },
  427. activeWorkYearsType(item) {
  428. if (this.workYearsActiveBoxs.indexOf(item.value) !== -1) {
  429. this.workYearsActiveBoxs.splice(this.workYearsActiveBoxs.indexOf(item.value), 1);
  430. } else {
  431. this.workYearsActiveBoxs.push(item.value);
  432. }
  433. },
  434. activeCompanySize(item) {
  435. if (this.companySizeActiveBoxs.indexOf(item.value) !== -1) {
  436. this.companySizeActiveBoxs.splice(this.companySizeActiveBoxs.indexOf(item.value), 1);
  437. } else {
  438. this.companySizeActiveBoxs.push(item.value);
  439. }
  440. },
  441. activeCompanyType(item) {
  442. if (this.companyTypeActiveBoxs.indexOf(item.value) !== -1) {
  443. this.companyTypeActiveBoxs.splice(this.companyTypeActiveBoxs.indexOf(item.value), 1);
  444. } else {
  445. this.companyTypeActiveBoxs.push(item.value);
  446. }
  447. },
  448. getDict() {
  449. var self = this;
  450. this.$api.dictList().then(res => {
  451. res.data.data.forEach((item, index) => {
  452. if (item.dictType == 'edu_level') {
  453. self.eduList.push({ label: item.dictLabel, value: item.dictCode });
  454. }
  455. if (item.dictType == 'working_years') {
  456. if (item.dictCode !== 109) {
  457. self.workYearsList.push({ label: item.dictLabel, value: item.dictCode });
  458. }
  459. }
  460. if (item.dictType == 'company_size') {
  461. self.companySizeList.push({ label: item.dictLabel, value: item.dictCode });
  462. }
  463. if (item.dictType == 'company_type') {
  464. self.companyTypeList.push({ label: item.dictLabel, value: item.dictCode });
  465. }
  466. });
  467. });
  468. },
  469. initPriceList() {
  470. this.priceActList = [
  471. {
  472. label: '2千以下',
  473. value: {
  474. incomeStart: 0,
  475. incomeEnd: 2000
  476. }
  477. },
  478. {
  479. label: '2-3千',
  480. value: {
  481. incomeStart: 2000,
  482. incomeEnd: 3000
  483. }
  484. },
  485. {
  486. label: '3-5千',
  487. value: {
  488. incomeStart: 3000,
  489. incomeEnd: 5000
  490. }
  491. },
  492. {
  493. label: '5-6千',
  494. value: {
  495. incomeStart: 5000,
  496. incomeEnd: 6000
  497. }
  498. },
  499. {
  500. label: '6-7千',
  501. value: {
  502. incomeStart: 6000,
  503. incomeEnd: 7000
  504. }
  505. },
  506. {
  507. label: '7-8千',
  508. value: {
  509. incomeStart: 7000,
  510. incomeEnd: 8000
  511. }
  512. },
  513. {
  514. label: '8-9千',
  515. value: {
  516. incomeStart: 8000,
  517. incomeEnd: 9000
  518. }
  519. },
  520. {
  521. label: '0.9-1万',
  522. value: {
  523. incomeStart: 9000,
  524. incomeEnd: 10000
  525. }
  526. },
  527. {
  528. label: '1-1.5万',
  529. value: {
  530. incomeStart: 10000,
  531. incomeEnd: 15000
  532. }
  533. },
  534. {
  535. label: '1.5-2万',
  536. value: {
  537. incomeStart: 15000,
  538. incomeEnd: 20000
  539. }
  540. },
  541. {
  542. label: '2-3万',
  543. value: {
  544. incomeStart: 20000,
  545. incomeEnd: 30000
  546. }
  547. },
  548. {
  549. label: '3-5万',
  550. value: {
  551. incomeStart: 30000,
  552. incomeEnd: 50000
  553. }
  554. }
  555. ];
  556. },
  557. // 取消
  558. backHome() {
  559. uni.navigateBack({
  560. delta: 1
  561. });
  562. },
  563. activeCitys(options) {
  564. console.log(options);
  565. this.province = options.province.label;
  566. this.city = options.city.label;
  567. }
  568. }
  569. };
  570. </script>
  571. <style scoped>
  572. .arr-icon {
  573. width: 40rpx;
  574. height: 40rpx;
  575. }
  576. .popup_t1 {
  577. display: flex;
  578. align-items: center;
  579. padding-left: 35rpx;
  580. border-bottom: 1rpx solid #eee;
  581. height: 57rpx;
  582. margin-top: 86rpx;
  583. }
  584. .mors {
  585. font-size: 30rpx;
  586. font-weight: bold;
  587. color: #999;
  588. }
  589. .activesSty {
  590. font-size: 30rpx;
  591. font-weight: bold;
  592. color: #2a4174;
  593. }
  594. .boxsize {
  595. border-radius: 32rpx;
  596. background: #ffffff;
  597. box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(47, 67, 121, 0.05);
  598. margin: 0rpx 35rpx 24rpx;
  599. padding: 22rpx 20rpx;
  600. }
  601. .lines {
  602. height: 196rpx;
  603. display: flex;
  604. flex-direction: column;
  605. justify-content: space-between;
  606. }
  607. .dis_flexs {
  608. display: flex;
  609. margin-bottom: 24rpx;
  610. }
  611. .dis_flexs > .imgboxs {
  612. width: 100rpx;
  613. height: 100rpx;
  614. border-radius: 24rpx;
  615. overflow: hidden;
  616. margin-right: 24rpx;
  617. }
  618. .top_sty {
  619. display: flex;
  620. justify-content: space-between;
  621. }
  622. .dis_foter {
  623. display: flex;
  624. align-items: center;
  625. justify-content: space-between;
  626. }
  627. .dis_f {
  628. display: flex;
  629. align-items: center;
  630. overflow-x: auto;
  631. flex: 1;
  632. margin-right: 20rpx;
  633. }
  634. .right_address {
  635. font-weight: 500;
  636. font-size: 24rpx;
  637. color: #636a75;
  638. }
  639. .fot_size {
  640. height: 32rpx;
  641. line-height: 32rpx;
  642. padding: 0rpx 12rpx;
  643. margin-right: 8rpx;
  644. border-radius: 16rpx;
  645. font-size: 20rpx;
  646. background: #f2f6ff;
  647. flex-shrink: 0;
  648. color: #636a75;
  649. }
  650. .yys {
  651. height: 32rpx;
  652. font-size: 20rpx;
  653. line-height: 32rpx;
  654. padding: 0rpx 12rpx;
  655. margin-right: 8rpx;
  656. border-radius: 16rpx;
  657. color: #fff;
  658. background: #3fefb7;
  659. flex-shrink: 0;
  660. }
  661. .heasd {
  662. font-size: 30rpx;
  663. font-weight: bold;
  664. color: #2a4174;
  665. margin-bottom: 14rpx;
  666. }
  667. .fotHs {
  668. font-size: 20rpx;
  669. font-weight: 500;
  670. color: #636a75;
  671. }
  672. .priceSty {
  673. font-weight: bold;
  674. font-size: 28rpx;
  675. color: #32467b;
  676. }
  677. .headTits {
  678. font-size: 30rpx;
  679. font-weight: bold;
  680. color: #2a4174;
  681. margin-bottom: 26rpx;
  682. }
  683. .lisz {
  684. display: flex;
  685. align-items: center;
  686. }
  687. .lisz > .bqB {
  688. border-radius: 16rpx;
  689. background-color: #f2f6ff;
  690. padding: 0rpx 22rpx;
  691. text-align: center;
  692. height: 32rpx;
  693. line-height: 32rpx;
  694. margin-right: 8rpx;
  695. font-size: 20rpx;
  696. color: #636a75;
  697. }
  698. .tnsz {
  699. display: flex;
  700. align-items: center;
  701. }
  702. .litns {
  703. padding: 0rpx 15rpx;
  704. margin-right: 24rpx;
  705. border-radius: 16rpx;
  706. height: 48rpx;
  707. line-height: 48rpx;
  708. background-color: #32467b;
  709. color: #fff;
  710. box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(47, 67, 121, 0.05);
  711. font-size: 26rpx;
  712. font-weight: bold;
  713. }
  714. .headerSearchBox {
  715. padding: 30rpx;
  716. padding-bottom: 0rpx;
  717. display: flex;
  718. align-items: center;
  719. height: 72rpx;
  720. }
  721. .leftSearchBox {
  722. background-color: #f5f7f9;
  723. border-radius: 36rpx;
  724. display: flex;
  725. align-items: center;
  726. flex: 1;
  727. height: 72rpx;
  728. padding: 0rpx 20rpx;
  729. }
  730. .textICS {
  731. display: flex;
  732. align-items: center;
  733. margin-left: 17rpx;
  734. margin-right: 10rpx;
  735. }
  736. .texs {
  737. font-size: 24rpx;
  738. color: #636a75;
  739. font-weight: 500;
  740. }
  741. .icnst {
  742. margin-left: 7rpx;
  743. margin-top: 4rpx;
  744. transition: all 0.2s;
  745. }
  746. .linpt {
  747. margin-top: 2rpx;
  748. font-size: 26rpx;
  749. color: #333;
  750. border: none;
  751. flex: 1;
  752. }
  753. .exit {
  754. color: #333;
  755. font-weight: 500;
  756. font-size: 24rpx;
  757. margin: 0rpx 11rpx;
  758. }
  759. .openTypes {
  760. transform: rotate(-180deg);
  761. }
  762. .moreLs {
  763. border-radius: 16rpx;
  764. font-size: 26rpx;
  765. font-weight: bold;
  766. color: #32467b;
  767. border: 1rpx solid #32467b;
  768. padding: 0rpx 11rpx;
  769. height: 48rpx;
  770. letter-spacing: 1rpx;
  771. line-height: 40rpx;
  772. }
  773. .flex-d {
  774. display: flex;
  775. flex-direction: column;
  776. justify-content: space-between;
  777. height: 100%;
  778. }
  779. .contentZ {
  780. flex: 1;
  781. overflow-y: auto;
  782. padding-left: 35rpx;
  783. }
  784. .contentZ::-webkit-scrollbar {
  785. display: none;
  786. }
  787. .fots {
  788. height: 100rpx;
  789. display: flex;
  790. align-items: center;
  791. justify-content: space-around;
  792. border-top: 1rpx solid #eee;
  793. }
  794. .leftBtns {
  795. font-size: 30rpx;
  796. color: #32467b;
  797. font-weight: 500;
  798. }
  799. .right_Btns {
  800. font-size: 30rpx;
  801. color: #fff;
  802. background-color: #32467b;
  803. border-radius: 24rpx;
  804. height: 60rpx;
  805. line-height: 60rpx;
  806. text-align: center;
  807. padding: 0rpx 23rpx;
  808. box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
  809. }
  810. .heards {
  811. padding-top: 25rpx;
  812. margin-bottom: 25rpx;
  813. font-size: 24rpx;
  814. color: #32467b;
  815. font-weight: bold;
  816. }
  817. .liszing {
  818. float: left;
  819. width: 161rpx;
  820. height: 57rpx;
  821. text-align: center;
  822. line-height: 57rpx;
  823. border: 1rpx solid transparent;
  824. border-radius: 16rpx;
  825. color: #999;
  826. background-color: #f5f7f9;
  827. margin-right: 13rpx;
  828. margin-bottom: 13rpx;
  829. }
  830. .activesLiszing {
  831. color: #2a4174;
  832. border-color: #2a4174;
  833. }
  834. .priceType {
  835. display: flex;
  836. align-items: center;
  837. margin-bottom: 22rpx;
  838. padding-top: 20rpx;
  839. }
  840. .lstq {
  841. font-size: 30rpx;
  842. color: #999;
  843. font-weight: 400;
  844. margin-right: 27rpx;
  845. }
  846. .activeLstq {
  847. color: #2a4174;
  848. font-weight: 500;
  849. }
  850. .priceInput {
  851. display: flex;
  852. align-items: center;
  853. justify-content: space-between;
  854. padding-right: 56rpx;
  855. }
  856. .inputSty {
  857. border: none;
  858. border-bottom: 1rpx solid #eee;
  859. /* width: 220rpx; */
  860. text-align: center;
  861. }
  862. .tyStyleZ {
  863. padding: 0rpx 32rpx 27rpx;
  864. background-color: #fff;
  865. }
  866. .dis_fs {
  867. margin-top: 40rpx;
  868. display: flex;
  869. align-items: center;
  870. justify-content: space-between;
  871. }
  872. .left_in {
  873. height: 88rpx;
  874. width: 160rpx;
  875. text-align: center;
  876. line-height: 88rpx;
  877. border-radius: 32rpx;
  878. background-color: rgba(145, 156, 178, 0.2);
  879. box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
  880. font-size: 30rpx;
  881. color: #999;
  882. font-weight: 500;
  883. }
  884. .sultRight {
  885. font-size: 30rpx;
  886. font-weight: 500;
  887. color: #fff;
  888. border-radius: 32rpx;
  889. background-color: #32467b;
  890. width: 502rpx;
  891. height: 88rpx;
  892. text-align: center;
  893. line-height: 88rpx;
  894. box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
  895. }
  896. </style>