Parcourir la source

feat:工作静态页面

jianghaili il y a 2 semaines
Parent
commit
3572270712

+ 145 - 0
package/jobIntention/addAddress.vue

@@ -0,0 +1,145 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="岗位描述" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">添加地址</view>
+        <view class="form-item">
+          <view class="item-label"> 工作地址 </view>
+          <u-input
+            placeholder="请输入办公大楼名称,例:碧桂园凤凰智谷"
+            v-model="address"
+            clearable
+            class="custom-input"
+            :customStyle="{ padding: '8rpx 24rpx ' }"
+          >
+            <template #prefix>
+              <u-icon name="phone" size="36rpx" color="#999" marginRight="20rpx"></u-icon>
+            </template>
+          </u-input>
+        </view>
+        <view class="form-item">
+          <view class="item-label"> 楼层/单元室 </view>
+          <u-input
+            placeholder="楼层/单元室/门牌号,例:3层302室"
+            v-model="addressDetail"
+            clearable
+            class="custom-input"
+            :customStyle="{ padding: '8rpx 24rpx ' }"
+          >
+            <template #prefix>
+              <u-icon name="phone" size="36rpx" color="#999" marginRight="20rpx"></u-icon>
+            </template>
+          </u-input>
+        </view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goBack">确定</view>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      address: "",
+      addressDetail: '',
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    onInput(e) {
+      //   console.log(e);
+      // 如果需要额外的输入控制
+      //   this.text = e.detail.value;
+    },
+    goBack() {
+      uni.navigateBack();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+    }
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+}
+.form-item {
+  margin-bottom: 32rpx;
+  width: 100%;
+}
+.item-label {
+  color: rgba(18, 26, 44, 1);
+  font-family: Roboto;
+  font-size: 32rpx;
+  font-weight: 400;
+  line-height: 51.2rpx;
+  letter-spacing: 0px;
+  text-align: left;
+  padding-bottom: 6rpx;
+  padding: 10rpx 0;
+  box-sizing: border-box;
+}
+
+.custom-input {
+  box-sizing: border-box;
+  border: 2rpx solid rgba(158, 161, 168, 1);
+  border-radius: 100rpx;
+  background: rgba(255, 255, 255, 1);
+  padding: 8rpx 24rpx !important;
+}
+::v-deep .u-input {
+  text-align: left !important;
+}
+</style>

+ 195 - 0
package/jobIntention/fund.vue

@@ -0,0 +1,195 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="福利待遇" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">福利待遇</view>
+        <view class="check-box">
+          <textarea
+            v-model="text"
+            placeholder="请详细描述公司的福利待遇"
+            maxlength="500"
+            @input="onInput"
+            class="textarea"
+          ></textarea>
+          <view class="word-count">
+            <text>{{ text ? text.length : 0 }}</text> /500</view
+          >
+        </view>
+        <view class="fund-box">
+          <view
+            class="fund-item"
+            :class="{ 'fund-check': checkList.includes(index) }"
+            v-for="(item, index) in fundList"
+            :key="index"
+            @click="checkFund(index)"
+          >
+            {{ item }}
+          </view>
+        </view>
+        <view class="fund-desc-txt">已选{{ checkList.length }}个</view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goBack">确定</view>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      fundList: [
+        "五险一金",
+        "定期体检",
+        "年终奖",
+        "带薪年假",
+        "员工旅游",
+        "节日福利",
+        "绩效",
+        "零食下午茶",
+      ],
+      text: "",
+      checkList: [],
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    onInput(e) {
+      //   console.log(e);
+      // 如果需要额外的输入控制
+      //   this.text = e.detail.value;
+    },
+    goBack() {
+      uni.navigateBack();
+    },
+    checkFund(index) {
+      const currentIndex = this.checkList.indexOf(index);
+      if (currentIndex > -1) {
+        // 如果已选中,移除
+        this.checkList.splice(currentIndex, 1);
+      } else {
+        // 如果未选中,添加
+        this.checkList.push(index);
+      }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+
+      .check-box {
+        width: 100%;
+        border-radius: 12rpx;
+        background: rgba(240, 240, 240, 1);
+        padding: 34rpx;
+        padding-top: 40rpx;
+        box-sizing: border-box;
+        margin: 20rpx 0;
+        .word-count {
+          font-family: DM Sans;
+          font-size: 20rpx;
+          font-weight: 400;
+          line-height: 26rpx;
+          text-align: right;
+          text {
+            color: #016bf6;
+          }
+        }
+      }
+    }
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+}
+.fund-desc-txt {
+  color: #016bf6;
+  font-family: DM Sans;
+  font-size: 20rpx;
+  font-weight: 400;
+  line-height: 26rpx;
+  width: 100%;
+  margin-top: 8rpx;
+}
+.fund-box {
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  gap: 8rpx;
+  .fund-item {
+    flex-shrink: 0;
+    box-sizing: border-box;
+    border: 1rpx solid rgba(255, 102, 0, 1);
+    border-radius: 8rpx;
+    padding: 8rpx;
+    color: #016bf6;
+    font-family: DM Sans;
+    font-size: 16rpx;
+    font-weight: 400;
+    text-align: left;
+  }
+  .fund-check {
+    background: #fce9dc;
+    border-color: #fce9dc;
+  }
+}
+::v-deep .textarea-placeholder {
+  color: rgba(153, 153, 153, 1);
+  font-family: DM Sans;
+  font-size: 20rpx !important;
+  font-weight: 400;
+  line-height: 26rpx;
+}
+::v-deep .uni-textarea-textarea {
+  font-size: 20rpx;
+}
+</style>

+ 24 - 1
pages.json

@@ -42,6 +42,13 @@
 				"navigationStyle": "custom"
 			}
 		},
+		{
+			"path": "pages/my/jobPostingSecond",
+			"style": {
+				"navigationBarTitleText": "发布职位",
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/index/search/index",
 			"style": {
@@ -475,7 +482,7 @@
 						"navigationStyle": "custom"
 					}
 				},
-						{
+				{
 					"path": "jobIntention/editJob",
 					"style": {
 						"navigationBarTitleText": "岗位描述",
@@ -547,6 +554,22 @@
 						"navigationStyle": "custom"
 					}
 				},
+				{
+					"path": "jobIntention/addAddress",
+					"style": {
+						"navigationBarTitleText": "添加地址",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
+							{
+					"path": "jobIntention/fund",
+					"style": {
+						"navigationBarTitleText": "福利待遇",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
 				{
 					"path": "jobIntention/basicInfo",
 					"style": {

+ 6 - 2
pages/my/jobPosting.vue

@@ -34,7 +34,7 @@
         <view class="txt-desc">注:职位名称、职位类型等发布后不可修改</view>
       </view>
     </view>
-    <view class="submit-btn" @click="goJobPosting">确定</view>
+    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
   </view>
 </template>
 <script>
@@ -50,7 +50,7 @@ export default {
           name: "填写基本信息",
         },
         {
-          name: "Confirm",
+          name: "选择职位要求",
         },
       ],
     };
@@ -80,6 +80,10 @@ export default {
         url: `/package/jobIntention/editJob?text=${this.text}`,
       });
     },
+    goJobPostingSecond(){
+      uni.navigateTo({ url: "/pages/my/jobPostingSecond" });
+
+    }
   },
 };
 </script>

+ 479 - 0
pages/my/jobPostingSecond.vue

@@ -0,0 +1,479 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="选择公司规模" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">继续填写</view>
+        <view class="desc">“深圳市汉睿国际猎头服务有限公司”的人员规模</view>
+        <view class="step">
+          <u-steps :list="numList" mode="number" :current="1"></u-steps>
+        </view>
+        <view class="check-title-big">经验要求</view>
+        <view class="check-select" @click="showExper = true">
+          <view class="select-txt">请选择经验按要求</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">最低学历</view>
+        <view class="check-select" @click="showLevel = true">
+          <view class="select-txt">{{ this.text ? this.text : "请选择学历" }}</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">薪资范围</view>
+        <view class="check-select" @click="showMoney = true">
+          <view class="select-txt">请选择合理的薪资范围</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">福利待遇(选填)</view>
+        <view class="check-select" @click="goFund">
+          <view class="select-txt">请填写奖金绩效</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">职位关键词</view>
+        <view class="check-select" @click="goJobSkill">
+          <view class="select-txt">被选中的关键词将突出展示给牛人</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">工作地址</view>
+        <view class="check-select" @click="goAddAddress">
+          <view class="select-txt">请填写精确的工作地点</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="txt-desc"
+          >温馨提示:职位类型、职位名称和工作城市发布后不可修改, 请您确保信息正确 <br />
+          <br />
+          发布职位即表示同意遵守《招聘行为管理规范》,如违反规则 将导致账号被锁定
+        </view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goJobPosting">确定</view>
+    <u-select v-model="showExper" :list="listExper" title="请选择经验"></u-select>
+    <u-select v-model="showLevel" :list="listLevel" title="请选择学历"></u-select>
+    <u-select
+      v-model="showMoney"
+      mode="mutil-column"
+      :list="listMoney"
+      title="请选择月薪范围"
+    ></u-select>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      peopleList: ["社招全职", "应届生校园招聘", "实习生招聘", "兼职招聘"],
+      check: 0,
+      text: "",
+      showExper: false, //经验
+      listExper: [
+        {
+          label: "不限",
+          value: 1,
+        },
+        {
+          label: "1年以内",
+          value: 2,
+        },
+        {
+          label: "1-3年",
+          value: 3,
+        },
+        {
+          label: "3-5年",
+          value: 4,
+        },
+        {
+          label: "5-10年",
+          value: 5,
+        },
+        {
+          label: "10年以上",
+          value: 6,
+        },
+      ],
+      showLevel: false, //学历
+      listLevel: [
+        { label: "不限", value: 1 },
+        { label: "专科", value: 2 },
+        { label: "本科", value: 3 },
+        { label: "硕士", value: 4 },
+        { label: "博士", value: 5 },
+      ],
+      showMoney: false, //月薪范围
+      listMoney: [
+        [
+          {
+            value: "3",
+            label: "3k",
+          },
+          {
+            value: "4",
+            label: "4k",
+          },
+          {
+            value: "5",
+            label: "5k",
+          },
+          {
+            value: "6",
+            label: "6k",
+          },
+          {
+            value: "7",
+            label: "7k",
+          },
+          {
+            value: "8",
+            label: "8k",
+          },
+          {
+            value: "9",
+            label: "9k",
+          },
+          {
+            value: "10",
+            label: "10k",
+          },
+          {
+            value: "11",
+            label: "11k",
+          },
+          {
+            value: "12",
+            label: "12k",
+          },
+          {
+            value: "13",
+            label: "13k",
+          },
+          {
+            value: "14",
+            label: "14k",
+          },
+          {
+            value: "15",
+            label: "15k",
+          },
+          {
+            value: "16",
+            label: "16k",
+          },
+          {
+            value: "17",
+            label: "17k",
+          },
+          {
+            value: "18",
+            label: "18k",
+          },
+          {
+            value: "19",
+            label: "19k",
+          },
+          {
+            value: "20",
+            label: "20k",
+          },
+        ],
+        [
+          {
+            value: "104",
+            label: "4k",
+          },
+          {
+            value: "105",
+            label: "5k",
+          },
+          {
+            value: "106",
+            label: "6k",
+          },
+          {
+            value: "107",
+            label: "7k",
+          },
+          {
+            value: "108",
+            label: "8k",
+          },
+          {
+            value: "109",
+            label: "9k",
+          },
+          {
+            value: "100",
+            label: "10k",
+          },
+          {
+            value: "101",
+            label: "11k",
+          },
+          {
+            value: "102",
+            label: "12k",
+          },
+          {
+            value: "103",
+            label: "13k",
+          },
+          {
+            value: "104",
+            label: "14k",
+          },
+          {
+            value: "105",
+            label: "15k",
+          },
+          {
+            value: "106",
+            label: "16k",
+          },
+          {
+            value: "107",
+            label: "17k",
+          },
+          {
+            value: "108",
+            label: "18k",
+          },
+          {
+            value: "109",
+            label: "19k",
+          },
+          {
+            value: "200",
+            label: "20k",
+          },
+          {
+            value: "205",
+            label: "25k",
+          },
+          {
+            value: "300",
+            label: "30k",
+          },
+          {
+            value: "305",
+            label: "35k",
+          },
+          {
+            value: "400",
+            label: "40k",
+          },
+        ],
+        [
+          {
+            value: "12m",
+            label: "12月",
+          },
+          {
+            value: "13m",
+            label: "13月",
+          },
+          {
+            value: "14m",
+            label: "14月",
+          },
+          {
+            value: "15m",
+            label: "15月",
+          },
+          {
+            value: "16m",
+            label: "16月",
+          },
+          {
+            value: "17m",
+            label: "17月",
+          },
+        ],
+      ],
+      numList: [
+        {
+          name: "填写基本信息",
+        },
+        {
+          name: "选择职位要求",
+        },
+      ],
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    goBusinessLicense() {
+      uni.navigateTo({ url: "/pages/my/businessLicense" });
+    },
+    checkPeople(index) {
+      this.check = index;
+    },
+    goJob() {
+      uni.navigateTo({
+        url: "/package/jobIntention/jobList",
+      });
+    },
+    goJobSkill() {
+      uni.navigateTo({
+        url: "/package/jobIntention/jobSkills",
+      });
+    },
+    goJobContent() {
+      uni.navigateTo({
+        url: `/package/jobIntention/editJob?text=${this.text}`,
+      });
+    },
+    goAddAddress() {
+      uni.navigateTo({
+        url: "/package/jobIntention/addAddress",
+      });
+    },
+    goFund(){
+        uni.navigateTo({
+            url:'/package/jobIntention/fund'
+        })
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+      .desc {
+        color: rgba(102, 102, 102, 1);
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 24rpx;
+        font-weight: 400;
+        line-height: 32rpx;
+        letter-spacing: 0.5%;
+        text-align: left;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-title {
+        width: 100%;
+        color: rgba(31, 44, 55, 1);
+        font-family: DM Sans;
+        font-size: 28rpx;
+        font-weight: 500;
+        line-height: 44rpx;
+        margin-top: 20rpx;
+        margin-bottom: 16rpx;
+      }
+      .check-title-big {
+        color: rgba(58, 57, 67, 1);
+        font-family: DM Sans;
+        font-size: 36rpx;
+        font-weight: 500;
+        line-height: 48rpx;
+        width: 100%;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-select {
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        border-radius: 12rpx;
+        box-shadow: 0px 16rpx 300rpx 0px rgba(0, 0, 0, 0.06);
+        background: rgba(255, 255, 255, 1);
+        padding: 32rpx 47rpx;
+        box-sizing: border-box;
+        .select-txt {
+          color: rgba(153, 153, 153, 1);
+        }
+      }
+      .check-box {
+        width: 100%;
+        display: grid;
+        grid-template-columns: repeat(2, 1fr);
+        gap: 24rpx;
+        .check-item {
+          border-radius: 16rpx;
+          background: rgba(245, 248, 254, 1);
+          color: rgba(153, 153, 153, 1);
+          font-family: DM Sans;
+          font-size: 28rpx;
+          font-weight: 400;
+          line-height: 44rpx;
+          text-align: center;
+          padding: 12rpx 48rpx;
+          box-sizing: border-box;
+        }
+        .is-check {
+          box-sizing: border-box;
+          border: 1rpx solid #016bf6;
+          border-radius: 16rpx;
+          background: rgba(252, 233, 220, 1);
+          color: #016bf6;
+        }
+      }
+    }
+  }
+  .step {
+    width: 100%;
+    padding: 32rpx 0;
+    box-sizing: border-box;
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+  .txt-desc {
+    color: rgba(102, 102, 102, 1);
+    font-family: DM Sans;
+    font-size: 24rpx;
+    font-weight: 400;
+    line-height: 32rpx;
+    text-align: left;
+    width: 100%;
+    margin-top: 20rpx;
+  }
+}
+</style>