diff --git a/README.md b/README.md index 6ba13cd..c0e4868 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,11 @@ -## yishoudan +## 伯才供应链 + +``` +访问网址:https://ibocai.cn +FTP文件夹: + 1)webapp/yishoudan + 2)删除并重新上传:static,index.html,favicon.ico +``` diff --git a/src/App.vue b/src/App.vue index eec3135..635766a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,7 +8,7 @@ + + diff --git a/src/components/FirstJob/detail.vue b/src/components/FirstJob/detail.vue index 0d863f4..61d683b 100644 --- a/src/components/FirstJob/detail.vue +++ b/src/components/FirstJob/detail.vue @@ -1,7 +1,8 @@ --> - - - + @@ -467,8 +430,8 @@ @@ -1113,6 +1100,7 @@ export default { } .detail-container { + background-color: #f0f0f0; // overflow: hidden; // border-top: 1px solid #eeefef; @@ -1201,13 +1189,17 @@ export default { // } // } /deep/ .maincontent { - display: flex; - justify-content: space-between; + // display: flex; + // justify-content: space-between; margin-top: 12px; .maincontentleft { - width: 704px; - margin-right: 16px; + width: 640px; text-align: left; + background-color: #ffffff; + border-radius: 6px; + // margin: 0 auto; + overflow: hidden; + margin-bottom: 20px; .subset { padding: 20px; // margin-bottom: 16px; @@ -1215,7 +1207,7 @@ export default { background-color: #fff; // height: 302px; border-radius: 6px; - border: 1px solid #ededed; + // border: 1px solid #ededed; display: flex; justify-content: space-between; .subsetleft { @@ -1289,37 +1281,38 @@ export default { .jobinfobox { display: flex; flex-direction: column; + width: 600px; justify-content: space-between; - // .hotTag { - // display: flex; - // line-height: 44px; - // margin-left: 18px; - // div { - // font-size: 14px; - // } - // li { - // margin-right: 12px; - // color: #ff6a00; - // font-size: 14px; - // cursor: pointer; - // } - // > .active { - // text-decoration: underline; - // } - // } - .hotTag { - background-color: #1890ff; + // .hotTag { + // display: flex; + // line-height: 44px; + // margin-left: 18px; + // div { + // font-size: 14px; + // } + // li { + // margin-right: 12px; + // color: #ff6a00; + // font-size: 14px; + // cursor: pointer; + // } + // > .active { + // text-decoration: underline; + // } + // } + .hotTag { + background-color: #1890ff; + color: #fff; + font-size: 12px; + padding: 2px 4px; + border-radius: 2px; + position: relative; + top: -3px; + i { + margin-right: 4px; color: #fff; - font-size: 12px; - padding:2px 4px; - border-radius: 2px; - position: relative; - top: -3px; - i { - margin-right: 4px; - color: #fff; - } } + } .jobname { // margin: 12px 0; font-size: 20px; @@ -1343,6 +1336,9 @@ export default { .jobtag1 { margin-top: 12px; text-align: left; + max-width: 80%; + overflow: hidden; + height: 34px; // span:first-child { // color: #1890ff; // background: rgba(254, 97, 0, 0.1); @@ -1371,6 +1367,7 @@ export default { text-align: left; color: #666; line-height: 26px; + margin-top: 6px; } .jobpricehour { // margin-top: 16px; @@ -1437,48 +1434,7 @@ export default { } } } - } - .subsetright { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: flex-end; - .topbox { - width: 116px; - height: 54px; - text-align: center; - overflow: hidden; - border-radius: 4px; - line-height: 30px; - div { - // font-weight: normal; - font-size: 16px; - - span:first-of-type { - font-size: 20px; - // font-weight: normal; - } - } - div:first-child { - height: 24px; - background: #ff4400; - line-height: 21px; - font-size: 14px; - color: #ffffff; - border: 1px solid #ff4400; - border-radius: 4px 4px 0px 0px; - } - div:last-child { - font-weight: normal; - background-color: #ff6a001a; - color: #ff4400; - font-size: 18px; - span:last-child { - font-size: 16px; - } - } - } - .sub-bottombox { + .sub-bottombox { font-size: 16px; .bottombox1 { @@ -1499,10 +1455,10 @@ export default { } } .jobDespBtn { - width: 116px; + // width: 116px; height: 32px; line-height: 30px; - font-size: 16px; + font-size: 14px; margin-right: 20px; // border: 1px solid rgba(77, 87, 94, 0.3); border-radius: 4px; @@ -1534,6 +1490,48 @@ export default { } } } + .subsetright { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-end; + .topbox { + width: 116px; + height: 54px; + text-align: center; + overflow: hidden; + border-radius: 4px; + line-height: 30px; + div { + // font-weight: normal; + font-size: 16px; + + span:first-of-type { + font-size: 20px; + // font-weight: normal; + } + } + div:first-child { + height: 24px; + background: #ff4400; + line-height: 21px; + font-size: 14px; + color: #ffffff; + border: 1px solid #ff4400; + border-radius: 4px 4px 0px 0px; + } + div:last-child { + font-weight: normal; + background-color: #ff6a001a; + color: #ff4400; + font-size: 18px; + span:last-child { + font-size: 16px; + } + } + } + + } } .proxy { margin-bottom: 16px; @@ -1544,7 +1542,7 @@ export default { } .jobinformationbox, .proxy { - width: 704px; + width: 620px; // border: 1px solid #eeefef; overflow: hidden; border-radius: 4px; @@ -1576,10 +1574,12 @@ export default { border-bottom: none; cursor: pointer; border-radius: 4px 4px 0 0; + font-size: 16px; + color: #333; } .active { background-color: #fafafa; - // font-weight: bold;0 + font-weight: bold; color: #1890ff; } } @@ -1673,7 +1673,7 @@ export default { } .baseInfoContent { - width: 748px; + width: 600px; > div { > div:first-child { font-size: 16px; @@ -1732,12 +1732,13 @@ export default { .maincontentright { // position: sticky; // top: 0; - width: 240px; + width: 300px; > div { - margin-bottom: 16px; + // margin-bottom: 16px; + // padding: 16px; } .jobDetailInfo { - width: 240px; + width: 300px; overflow: hidden; // height: 114px; // padding: 0 20px 0px 20px; @@ -1765,7 +1766,7 @@ export default { .hotphone { overflow: hidden; position: relative; - width: 240px; + width: 300px; height: 200px; // height: 114px; // padding: 0 20px 20px 20px; @@ -1850,7 +1851,7 @@ export default { } .leftDesc { .ant-descriptions-view { - width: 640px; + width: 600px; border-radius: 6px; // border: 0 !important; } diff --git a/src/components/FirstJob/joblist.vue b/src/components/FirstJob/joblist.vue index c40fe28..aeb429a 100644 --- a/src/components/FirstJob/joblist.vue +++ b/src/components/FirstJob/joblist.vue @@ -1,5 +1,6 @@ @@ -551,7 +910,7 @@ import { import { getUserManagerApi } from "../../api/userinfo"; import $ from "jquery"; -import { moneyToFixed, getSalaryClassifyValue, isNotEmptyCheck, disposeJobListData, setReturnFee } from "../../utils/commonUtil"; +import { moneyToFixed, getSalaryClassifyValue, isNotEmptyCheck, disposeJobListData, setReturnFee,setJobInfoPosition } from "../../utils/commonUtil"; import recommend from "@/components/FirstJob/components/recommend.vue"; import { nationlist } from "../../utils/datalist"; import Clipboard from "clipboard"; @@ -589,6 +948,10 @@ export default { // 组件状态值 data() { return { + isToggle:false, + isFetching: false, // 标志位,防止重复加载 + speed:1,// 加载进度0 未加载 1加载中 2加载完成 + isStop:false,// 是否停止加载 jobMainList: [], // 职位列表 jobNum:0, recordShow: false, @@ -627,6 +990,7 @@ export default { filterStatus: 0, // 筛选开合状态 filterHeight: "", // 筛选盒子高度 signType: 0, // 自营三方类型(0全部,1自营,2三方) + sortTag:0, tagArray0: [], tagArray1: [], tagArray2: [], @@ -850,7 +1214,7 @@ export default { this.getJobList(); this.getJobNum(); } else { - this.getJobListYicai(); + this.getJobList(); } this.getRecommendJob(); @@ -883,10 +1247,12 @@ export default { mounted() { this.loginValue = localStorage.getItem("LOGIN_DATA") !== null ? JSON.parse(localStorage.getItem("LOGIN_DATA")) : { tel: "" }; console.log(this.loginValue); + window.addEventListener('scroll', this.handleScroll); }, beforeDestroy() { console.log("beforeDestroy"); // sessionStorage.removeItem("PAGE_TYPE") + window.removeEventListener('scroll', this.handleScroll); }, destroyed() { @@ -894,6 +1260,32 @@ export default { }, // 组件方法 methods: { + // ... 其他方法 + handleScroll() { + const scrollTop = document.documentElement.scrollTop || document.body.scrollTop; + const windowHeight = document.documentElement.clientHeight; + const scrollHeight = document.documentElement.scrollHeight; + + if (scrollTop + windowHeight >= scrollHeight - 100 && !this.isFetching && !this.isStop) { // 100 是一个阈值,可以根据需要调整 + this.isFetching = true; + setTimeout(() => { + this.speed = 1; + this.loadMoreData(); + }, 300); + } + }, + loadMoreData() { + this.formvalue.pageNum += 1; // 增加页码 + if (this.signType != 0) { + this.getJobList({isScroll:1}).then(() => { + this.isFetching = false; + }); + } else { + this.getJobList({isScroll:1}).then(() => { + this.isFetching = false; + }); + } + }, removePageInfo() { sessionStorage.removeItem("PAGE_TYPE"); }, @@ -934,10 +1326,9 @@ export default { } this.isspinning = false; }, - // 获取工作列表 async getJobList(newdata) { - this.isspinning = true; - console.log("this.formvalue", this.formvalue); + // this.isspinning = true; + console.log('newdata',newdata); try { newdata = { district: "", @@ -945,83 +1336,102 @@ export default { ageStr: "", jobRequestLabelIds: "", aliasName: "", - pageNum: 1, + pageNum: this.formvalue.pageNum, // 使用当前页码 pageSize: 8, total: null, //分页配置 + isScroll: newdata && newdata.isScroll == 1 ? 1 : 0, + sortTag: this.sortTag }; for (var k in this.formvalue) { - // console.log(this.formvalue[k]); if (Array.isArray(this.formvalue[k])) { newdata[k] = this.formvalue[k].length > 0 ? this.formvalue[k].join() : ""; } else { newdata[k] = this.formvalue[k]; } } - // console.log(newdata); - // debugger; - // console.log(this.isLogin); if (this.isLogin) { const { data } = await JobListApi(newdata); - console.log("data", data); if (data.status === 200) { - this.jobMainList = disposeJobListData(data.data.recordList); + if(data.data.recordList.length < 8){ + // 停止加载 + this.isStop = true; + this.speed = 2; + }else{ + // 继续加载 + this.isStop = false; + this.speed = 1; + } + data.data.recordList.forEach(item => { + item.up_time = this.timeShowXXX2(item.updateTime) + item.storeDistrict = setJobInfoPosition(item.storeDistrict) + }) + if(newdata.isScroll == 1){ + this.jobMainList = this.jobMainList.concat(disposeJobListData(data.data.recordList)); // 追加数据 + }else{ + this.jobMainList = disposeJobListData(data.data.recordList) + } + this.formvalue.total = data.data.recordCount; - console.log(this.jobMainList); } else { this.$message.info("数据获取失败"); } } - this.totop(); - // = data.data.recordList; - // console.log(this.formvalue); + // this.totop(); } catch (error) { console.log(error); } this.isspinning = false; }, - async getJobNum() { - const { data } = await getJobNumApi(); - this.jobNum = data.data; - console.log('getJobNum',data); + timeShowXXX2(val){ + const now = Date.now(); + const diff = now - val; + + const seconds = Math.floor(diff / 1000); + const minutes = Math.floor(seconds / 60); + const hours = Math.floor(minutes / 60); + const days = Math.floor(hours / 24); + + if (days < 2) { + if (hours > 0) { + return `${hours}小时前`; + } else if (minutes > 0) { + return `${minutes}分钟前`; + } else { + return `${seconds}秒前`; + } + } else { + return `${days}天前`; + } }, - // 获取一才工作列表 async getJobListYicai(newdata) { - return; - this.isspinning = true; + // this.isspinning = true; console.log(this.formvalue); try { let aId = ""; - if (window.location.origin.indexOf("localhost:") > -1 || window.location.origin.indexOf("test.") > -1) { aId = "2743"; } else { aId = "3087"; } - newdata = { - agencyId: aId, //测试版 + agencyId: aId, recruitment: "1", keys: "", - pageNum: 1, + pageNum: this.formvalue.pageNum, // 使用当前页码 pageSize: 8, total: null, //分页配置 }; for (var k in this.formvalue) { - // console.log(this.formvalue[k]); if (Array.isArray(this.formvalue[k])) { newdata[k] = this.formvalue[k].length > 0 ? this.formvalue[k].join() : ""; } else { newdata[k] = this.formvalue[k]; } } - // console.log(newdata); - // debugger; - // console.log(this.isLogin); if (this.isLogin) { const { data } = await JobListApiYicai(newdata); - // console.log(data); if (data.status === 200) { - this.jobMainList = disposeJobListData(data.data.recordList); + this.jobMainList = this.jobMainList.concat(disposeJobListData(data.data.recordList)); // 追加数据 this.jobMainList.forEach((item, index) => { if (item.jobType == 2) { item["servetype"] = setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType); @@ -1030,19 +1440,21 @@ export default { } }); this.formvalue.total = data.data.recordCount; - console.log(this.jobMainList); } else { this.$message.info("数据获取失败"); } } - this.totop(); - // = data.data.recordList; - // console.log(this.formvalue); + // this.totop(); } catch (error) { console.log(error); } this.isspinning = false; }, + async getJobNum() { + const { data } = await getJobNumApi(); + this.jobNum = data.data; + console.log('getJobNum',data); + }, //搜索企业名称 onSearch() { @@ -1085,7 +1497,7 @@ export default { // console.log(this.formvalue); if (this.formvalue.signType == 1) { - this.getJobListYicai(); + this.getJobList(); } else { this.getJobList(); } @@ -1099,6 +1511,7 @@ export default { // 搜索工价 searchPrice(e) { console.log(e); + this.formvalue.pageNum = 1; if (e.target.nodeName == "SPAN") { if (e.target.textContent == this.filterObj.price) { this.formvalue.monthlyPayStr = ""; @@ -1246,15 +1659,16 @@ export default { }, // 改变自营三方类型 changeTab(e) { + this.formvalue.pageNum = 1 if (e.target.dataset.type != undefined) { this.formvalue.pageNum = 1; - if (e.target.dataset.type != 0) { - this.formvalue.signType = this.signType = e.target.dataset.type; - this.getJobListYicai(); - } else { - this.formvalue.signType = this.signType = ""; + // if (e.target.dataset.type != 0) { + // this.formvalue.signType = this.signType = e.target.dataset.type; + // this.getJobListYicai(); + // } else { + this.formvalue.sortTag = this.sortTag = e.target.dataset.type; this.getJobList(); - } + //} } }, async getJobSpecialList() { @@ -1312,7 +1726,7 @@ export default { this.formvalue.pageNum = e; this.$refs.pageinput.value = ""; if (this.signType == 1) { - this.getJobListYicai(); + this.getJobList(); } else { this.getJobList(); } @@ -1406,7 +1820,7 @@ export default { // console.log(window); document.body.scrollTop = 0; document.documentElement.scrollTop = 0; - // window.body.scrollY = 0; + window.body.scrollY = 0; }, moneyToFixed(value) { // console.log(value); @@ -1421,7 +1835,7 @@ export default { this.formvalue.ageStr = ""; console.log("this.formvalue", this.formvalue); if (this.formvalue.signType == 1) { - this.getJobListYicai(); + this.getJobList(); } else { this.getJobList(); } @@ -1665,6 +2079,7 @@ export default { }, searchJob(item) { // console.log(item); + this.formvalue.pageNum = 1; if (item.levelType == 1) { this.formvalue.cityName = ""; this.formvalue.provinceName = item.name; @@ -1678,7 +2093,7 @@ export default { this.visible = false; console.log("this.formvalue.signType", this.formvalue.signType); if (this.signType != 0) { - this.getJobListYicai(); + this.getJobList(); } else { this.getJobList(); } @@ -1700,7 +2115,7 @@ export default { // console.log(this.formvalue); // this.getJobList(); if (this.formvalue.signType != 0) { - this.getJobListYicai(); + this.getJobList(); } else { this.getJobList(); } @@ -1743,7 +2158,7 @@ export default { this.formvalue.provinceName = ""; // this.getJobList(); if (this.formvalue.signType != 0) { - this.getJobListYicai(); + this.getJobList(); } else { this.getJobList(); } @@ -1848,6 +2263,9 @@ export default { // console.log("this.recordShow", this.recordShow); // console.log("this.currentInfo", this.currentInfo); }, + handleToggle(e){ + this.isToggle = !this.isToggle + } }, }; @@ -2455,8 +2873,9 @@ export default { z-index: 999; font-size: 16px; .tabSubset { - width: 96px; - height: 40px; + width: 80px; + height: 32px; + line-height: 32px; border-radius: 6px 6px 0px 0px; cursor: pointer; &.active { @@ -2465,318 +2884,8 @@ export default { } } } - .filter { - position: relative; - width: 100%; - top: -10px; - margin-top: 10px; - margin-bottom: 6px; - box-sizing: border-box; - border: 1px solid #ededed; - border-radius: 6px; - // background-color: pink; - padding: 0 12px; - .filter-title { - position: absolute; - display: flex; - align-items: center; - justify-content: space-between; - font-size: 14px; - width: 100%; - height: 24px; - top: -34px; - left: 0; - padding-left: 20px; - z-index: 10; - span i { - font-size: 12px; - } - .toggleFilter { - height: 24px; - padding: 0px 2px 0 4px; - line-height: 22px; - border: 1px solid #ededed; - background-color: #f5f5f5; - border-radius: 4px; - color: #666; - cursor: pointer; - user-select: none; - i { - // line-height: 28px; - height: 100%; - line-height: 22px; - display: inline-block; - transform-origin: center; - transform: scale(0.6); - margin-left: 2px; - } - } - .sort { - width: 86px; - height: 22px; - margin-left: 16px; - display: inline-block; - text-align: center; - padding: 0px 2px 0 4px; - line-height: 20px; - border: 1px solid #ededed; - background-color: #f5f5f5; - border-radius: 4px; - color: #666; - cursor: pointer; - user-select: none; - } - - > span:first-child { - display: flex; - align-items: center; - justify-content: start; - line-height: 22px; - > span:first-child { - margin-right: 14px; - i { - margin-left: 4px; - } - } - } - .filter-show { - display: flex; - line-height: 1; - color: #666; - > span:nth-child(-n + 6) { - display: inline-block; - } - > span { - display: none; - height: 24px; - line-height: 22px; - padding: 0 2px 0 4px; - background-color: #f5f5f5; - border: 1px solid #ededed; - margin-right: 8px; - user-select: none; - border-radius: 4px; - cursor: pointer; - &:hover { - border-color: #1890ff; - background: #f4faff; - color: #1890ff; - i { - color: #1890ff; - } - } - i { - font-size: 14px; - margin-left: 4px; - color: #666; - } - } - } - } - - .filter-content { - overflow: hidden; - // background-color: skyblue; - dl { - display: flex; - justify-content: start; - padding: 8px 8px 4px 8px; - font-size: 14px; - line-height: 1.5; - user-select: none; - - .special-active { - color: #1890ff !important; - // background-color: rgba(255, 106, 0, 0.1) !important; - } - &:first-child { - padding-bottom: 7px; - dd { - > i { - > span { - color: #333; - &:hover { - color: #1890ff; - } - } - } - } - } - &:not(:last-child) { - border-bottom: 1px dotted #ededed; - } - &:not(:first-child) { - dd { - display: flex; - justify-content: start; - flex-wrap: wrap; - > span { - margin-bottom: 4px; - color: #333; - cursor: pointer; - &:hover { - color: #1890ff; - } - } - } - } - dt { - width: 74px; - margin-right: 16px; - text-align: left; - color: #888; - } - dd { - flex: 1; - .ageinputbox { - position: relative; - display: inline-block; - margin-right: 16px; - > span:nth-of-type(2) { - position: relative; - z-index: 2; - } - &:hover .confirm { - display: block; - } - - .ageinput:not(.age) { - position: relative; - z-index: 3; - padding: 0; - // margin: 0 5px; - height: 26px; - width: 80px; - border-color: #ddd; - .ant-input-prefix { - left: 3px; - top: 51%; - } - &:hover { - input { - border-color: #1890ff; - } - } - input { - border-radius: 4px; - text-indent: 20px; - height: 26px; - padding: 0; - padding-right: unset; - border-color: #ddd; - &::placeholder { - // text-indent: 30px; - font-size: 14px !important; - } - &:hover { - border-color: #1890ff; - box-shadow: none; - } - &:focus { - border-color: #1890ff; - box-shadow: none; - } - } - .ant-input-suffix { - right: 3px; - } - } - .ageinput { - position: relative; - z-index: 3; - padding: 0; - // margin: 0 5px; - height: 26px; - width: 80px; - border-color: #ddd; - .ant-input-prefix { - left: 3px; - top: 51%; - } - &:hover { - input { - border-color: #1890ff; - } - } - input { - border-radius: 4px; - text-indent: 10px; - height: 26px; - padding: 0; - padding-right: unset; - border-color: #ddd; - &::placeholder { - // text-indent: 30px; - font-size: 14px !important; - } - &:hover { - border-color: #1890ff; - box-shadow: none; - } - &:focus { - border-color: #1890ff; - box-shadow: none; - } - } - .ant-input-suffix { - right: 3px; - } - } - .confirm { - position: absolute; - display: none; - width: 254px; - height: 46px; - line-height: 46px; - left: -8px; - top: -11px; - z-index: 1; - border: 1px solid #eee; - border-radius: 6px; - background-color: #fff; - box-shadow: 0 0px 10px 5px #eee; - button { - position: relative; - width: 44px; - height: 26px; - line-height: 26px; - top: 52%; - transform: translateY(-50%); - margin-right: 8px; - float: right; - background-color: #1890ff; - border-radius: 4px; - border: none; - color: #fff; - &:hover { - background-color: #1890ffdd; - } - &:active { - background-color: #1890ffdd; - } - } - } - } - > span { - margin-right: 40px; - - > span { - cursor: pointer; - margin-right: 40px; - } - } - } - } - .price { - dd i { - span { - cursor: pointer; - margin-right: 40px; - } - } - } - } - } + + .nodata { overflow: hidden; @@ -2792,23 +2901,24 @@ export default { position: relative; transform: translateY(35px); } - } + } .subset { display: flex; justify-content: space-between; border-bottom: 1px solid #ededed; - // width: 944px; - // height: 212px; - padding: 16px; - // margin-bottom: 16px; background: #ffffff; - // border-radius: 6px; transition: all 0.2s; - + // border: 1px solid transparent; + overflow: hidden; + .item-obj{ + transition: all 0.2s; + padding: 16px; + } &:hover { - // position: relative; - box-shadow: 3px 3px 20px 0px rgba(77, 87, 94, 0.1); - // transform: translateY(-0.5px); + .item-obj{ + transform: scale(1.02); + // box-shadow: 0 2px 12px 0 red + } } .subsetleft { display: flex; @@ -2875,13 +2985,14 @@ export default { font-size: 20px; } span { - height: 20px; + // height: 20px; margin-right: 8px; line-height: 1; font-size: 14px; - padding: 2px 8px; + padding: 4px 8px; background: rgba(51, 51, 51, 0.06); border-radius: 2px; + color: #666666; } .hotTag { background-color: #1890ff; @@ -2944,7 +3055,7 @@ export default { flex-direction: column; justify-content: space-between; align-items: flex-end; - margin-top: -8px; + // margin-top: -8px; } .updateTime { line-height: 1; @@ -3002,7 +3113,7 @@ export default { } button { min-width: 80px; - height: 28px; + height: 32px; font-size: 16px; // border: 1px solid rgba(77, 87, 94, 0.3); // border-radius: 4px; @@ -3285,4 +3396,368 @@ export default { p { margin-bottom: 0; } +.model-obj,.model-obj-copy{ + background-color: #ffffff; + position: absolute; + left: -592px; + top: 44px; + width: 640px; + border-radius: 6px; + .filter { + // position: relative; + // width: 100%; + // top: -10px; + // margin-top: 10px; + // margin-bottom: 6px; + box-sizing: border-box; + border: 1px solid #ededed; + // background-color: pink; + padding: 12px; + .filter-title { + position: absolute; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; + width: 100%; + height: 24px; + top: -34px; + left: 0; + padding-left: 20px; + z-index: 10; + span i { + font-size: 12px; + } + .toggleFilter { + height: 24px; + padding: 0px 2px 0 4px; + line-height: 22px; + border: 1px solid #ededed; + background-color: #f5f5f5; + border-radius: 4px; + color: #666; + cursor: pointer; + user-select: none; + i { + // line-height: 28px; + height: 100%; + line-height: 22px; + display: inline-block; + transform-origin: center; + transform: scale(0.6); + margin-left: 2px; + } + } + .sort { + width: 86px; + height: 22px; + margin-left: 16px; + display: inline-block; + text-align: center; + padding: 0px 2px 0 4px; + line-height: 20px; + border: 1px solid #ededed; + background-color: #f5f5f5; + border-radius: 4px; + color: #666; + cursor: pointer; + user-select: none; + } + + > span:first-child { + display: flex; + align-items: center; + justify-content: start; + line-height: 22px; + > span:first-child { + margin-right: 14px; + i { + margin-left: 4px; + } + } + } + .filter-show { + display: flex; + line-height: 1; + color: #666; + > span:nth-child(-n + 6) { + display: inline-block; + } + > span { + display: none; + height: 24px; + line-height: 22px; + padding: 0 2px 0 4px; + background-color: #f5f5f5; + border: 1px solid #ededed; + margin-right: 8px; + user-select: none; + border-radius: 4px; + cursor: pointer; + &:hover { + border-color: #1890ff; + background: #f4faff; + color: #1890ff; + i { + color: #1890ff; + } + } + i { + font-size: 14px; + margin-left: 4px; + color: #666; + } + } + } + } + + .filter-content { + overflow: hidden; + // background-color: skyblue; + dl { + display: flex; + justify-content: start; + padding: 8px 8px 4px 8px; + font-size: 14px; + line-height: 1.5; + user-select: none; + + .special-active { + color: #1890ff !important; + // background-color: rgba(255, 106, 0, 0.1) !important; + } + &:first-child { + padding-bottom: 7px; + dd { + > i { + > span { + color: #333; + &:hover { + color: #1890ff; + } + } + } + } + } + &:not(:last-child) { + border-bottom: 1px dotted #ededed; + } + &:not(:first-child) { + dd { + display: flex; + justify-content: start; + flex-wrap: wrap; + > span { + margin-bottom: 4px; + color: #333; + cursor: pointer; + &:hover { + color: #1890ff; + } + } + } + } + dt { + width: 74px; + margin-right: 16px; + text-align: left; + color: #888; + } + dd { + flex: 1; + .ageinputbox { + position: relative; + display: inline-block; + margin-right: 16px; + > span:nth-of-type(2) { + position: relative; + z-index: 2; + } + &:hover .confirm { + display: block; + } + + .ageinput:not(.age) { + position: relative; + z-index: 3; + padding: 0; + // margin: 0 5px; + height: 26px; + width: 80px; + border-color: #ddd; + .ant-input-prefix { + left: 3px; + top: 51%; + } + &:hover { + input { + border-color: #1890ff; + } + } + input { + border-radius: 4px; + text-indent: 20px; + height: 26px; + padding: 0; + padding-right: unset; + border-color: #ddd; + &::placeholder { + // text-indent: 30px; + font-size: 14px !important; + } + &:hover { + border-color: #1890ff; + box-shadow: none; + } + &:focus { + border-color: #1890ff; + box-shadow: none; + } + } + .ant-input-suffix { + right: 3px; + } + } + .ageinput { + position: relative; + z-index: 3; + padding: 0; + // margin: 0 5px; + height: 26px; + width: 80px; + border-color: #ddd; + .ant-input-prefix { + left: 3px; + top: 51%; + } + &:hover { + input { + border-color: #1890ff; + } + } + input { + border-radius: 4px; + text-indent: 10px; + height: 26px; + padding: 0; + padding-right: unset; + border-color: #ddd; + &::placeholder { + // text-indent: 30px; + font-size: 14px !important; + } + &:hover { + border-color: #1890ff; + box-shadow: none; + } + &:focus { + border-color: #1890ff; + box-shadow: none; + } + } + .ant-input-suffix { + right: 3px; + } + } + .confirm { + position: absolute; + display: none; + width: 254px; + height: 46px; + line-height: 46px; + left: -8px; + top: -11px; + z-index: 1; + border: 1px solid #eee; + border-radius: 6px; + background-color: #fff; + box-shadow: 0 0px 10px 5px #eee; + button { + position: relative; + width: 44px; + height: 26px; + line-height: 26px; + top: 52%; + transform: translateY(-50%); + margin-right: 8px; + float: right; + background-color: #1890ff; + border-radius: 4px; + border: none; + color: #fff; + &:hover { + background-color: #1890ffdd; + } + &:active { + background-color: #1890ffdd; + } + } + } + } + > span { + margin-right: 40px; + + > span { + cursor: pointer; + margin-right: 40px; + } + } + } + } + .price { + dd i { + span { + cursor: pointer; + margin-right: 40px; + } + } + } + } + } + } + .dav{ + &:hover{ + color: rgb(24, 144, 255); + } + } + .b-footer{ + div { + text-align: center; + // margin-top: 16px; + color: #4d575e; + font-size: 12px; + i { + display: inline-block; + vertical-align: middle; + width: 1px; + height: 16px; + margin: 0 10px; + background-color: #4d575e; + } + } + } + + .model-obj-copy{ + left: 50%; + top: 52px; + transform: translateX(-50%); + background-color: transparent; + .filter{ + padding: 0; + .filter-title{ + top: 0 !important; + position: relative; + padding-left: 0; + .filter-show{ + >span{ + background-color: #fff; + } + } + } + } + + } + .stoggle{ + transform: rotate(90deg); + } diff --git a/src/components/FirstJob/recordBill.vue b/src/components/FirstJob/recordBill.vue index a79f52e..fbc34de 100644 --- a/src/components/FirstJob/recordBill.vue +++ b/src/components/FirstJob/recordBill.vue @@ -1,5 +1,6 @@