wkw 6 месяцев назад
Родитель
Сommit
338e4cc487

+ 181 - 173
my/renzheng/companyDev.vue

@@ -1,191 +1,199 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="选择公司规模" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>2</text>/8 </view>
-        <view class="title">公司发展阶段</view>
-        <view class="desc">
-          公司融资状态是公司阶段的重要体现之一,使企业形象更加丰富和全面
-        </view>
-        <view class="check-box">
-          <view class="check-item" v-for="(item, index) in checkList" :key="index" @click="checkItem(item)">
-            <view class="check-icon" :class="{ 'check-icon-active': check == item }">
-              <u-icon name="checkmark" color="#fff" size="28" v-if="check == item"></u-icon>
-            </view>
-            <view class="check-txt">{{ item }}</view>
-          </view>
-        </view>
-      </view>
-    </view>
+	<view class="switch-roles">
+		<nav-bar title="选择公司规模" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>2</text>/8 </view>
+				<view class="title">公司发展阶段</view>
+				<view class="desc">
+					公司融资状态是公司阶段的重要体现之一,使企业形象更加丰富和全面
+				</view>
+				<view class="check-box">
+					<view class="check-item" v-for="(item, index) in checkList" :key="index" @click="checkItem(item)">
+						<view class="check-icon" :class="{ 'check-icon-active': check == item }">
+							<u-icon name="checkmark" color="#fff" size="28" v-if="check == item"></u-icon>
+						</view>
+						<view class="check-txt">{{ item }}</view>
+					</view>
+				</view>
+			</view>
+		</view>
 
-    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
-  </view>
+		<view class="submit-btn" @click="goJobPostingSecond">下一步</view>
+	</view>
 </template>
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      checkList: [
-        "未融资",
-        "天使轮",
-        "A轮",
-        "B轮",
-        "C轮",
-        "D轮及以上",
-        "已上市",
-        "不需要融资",
-      ],
-      check: null,
-      companyData: {}
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    if (options.update == 'true') {
-      let companyInfo = uni.getStorageSync('companyInfo');
-      this.check=companyInfo.companyDevelop;
-
-    }
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-    }
-  },
-  methods: {
-    checkItem(index) {
-      this.check = index;
-    },
-    goJobPostingSecond() {
-      const companyData = this.companyData
-      companyData.companyDevelop = this.check
-      console.log(companyData);
-      uni.navigateTo({
-        url: "/my/renzheng/companyFund?companyData=" +
-          encodeURIComponent(JSON.stringify(companyData))+'&update=true'
-      })
-    }
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				checkList: [
+					"未融资",
+					"天使轮",
+					"A轮",
+					"B轮",
+					"C轮",
+					"D轮及以上",
+					"已上市",
+					"不需要融资",
+				],
+				check: null
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			let companyInfo = uni.getStorageSync('companyInfo');
+			this.check = companyInfo.companyDevelop || null;
+		},
+		methods: {
+			checkItem(index) {
+				this.check = index;
+			},
+			goJobPostingSecond() {
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					companyDevelop:this.check
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					console.log(res)
+					if(res.code == 0){
+						uni.showToast({
+						  title: '提交成功',
+						  duration: 1500,
+						});
+						setTimeout(()=>{
+							uni.switchTab({
+							  url: '/pages/my/index'
+							});
+						},500)
+					}
+				})
+				// uni.navigateTo({
+				// 	url: "/my/renzheng/companyFund?companyData=" +
+				// 		encodeURIComponent(JSON.stringify(companyData)) + '&update=true'
+				// })
+			}
+		},
+	};
 </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;
+	.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;
+		.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;
+			.content {
+				padding: 40rpx;
+				box-sizing: border-box;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
 
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
 
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
 
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-      }
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+				}
 
-      .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;
-      }
+				.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-box {
-        width: 100%;
+				.check-box {
+					width: 100%;
 
-        .check-item {
-          padding: 24rpx 32rpx;
-          box-sizing: border-box;
-          border-radius: 100rpx;
-          border: 2rpx solid rgba(227, 231, 236, 1);
-          display: flex;
-          align-items: center;
-          gap: 32rpx;
-          margin-bottom: 20rpx;
+					.check-item {
+						padding: 24rpx 32rpx;
+						box-sizing: border-box;
+						border-radius: 100rpx;
+						border: 2rpx solid rgba(227, 231, 236, 1);
+						display: flex;
+						align-items: center;
+						gap: 32rpx;
+						margin-bottom: 20rpx;
 
-          .check-icon {
-            width: 48rpx;
-            height: 48rpx;
-            border-radius: 50%;
-            border: 2rpx solid rgba(227, 231, 236, 1);
-            display: flex;
-            justify-content: center;
-            align-items: center;
-          }
+						.check-icon {
+							width: 48rpx;
+							height: 48rpx;
+							border-radius: 50%;
+							border: 2rpx solid rgba(227, 231, 236, 1);
+							display: flex;
+							justify-content: center;
+							align-items: center;
+						}
 
-          .check-icon-active {
-            background-color: #016bf6;
-            border-color: #016bf6;
-          }
+						.check-icon-active {
+							background-color: #016bf6;
+							border-color: #016bf6;
+						}
 
-          .check-txt {
-            color: rgba(23, 23, 37, 1);
-            font-family: DM Sans;
-            font-size: 28rpx;
-            font-weight: 400;
-            line-height: 48rpx;
-          }
-        }
-      }
-    }
-  }
+						.check-txt {
+							color: rgba(23, 23, 37, 1);
+							font-family: DM Sans;
+							font-size: 28rpx;
+							font-weight: 400;
+							line-height: 48rpx;
+						}
+					}
+				}
+			}
+		}
 
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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 62rpx;
-  }
-}
-</style>
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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 62rpx;
+		}
+	}
+</style>

+ 447 - 393
my/renzheng/companyFund.vue

@@ -1,400 +1,454 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="公司福利" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>3</text>/8 </view>
-        <view class="title">
-          <view>公司福利</view>
-          <view class="check-num">
-            <text>{{ selectedCount }}</text>/{{ totalCount }}
-          </view>
-        </view>
-        <view class="desc"> 选择公司提供的福利信息,以吸引更多求职者 </view>
-
-        <!-- 福利分类 -->
-        <view class="welfare-category" v-for="(category, categoryIndex) in welfareList" :key="categoryIndex">
-          <view class="category-title">{{ category.title }}</view>
-          <view class="check-box">
-            <view class="check-item" v-for="(item, index) in category.items" :key="index"
-              @click="checkItem(categoryIndex, index)">
-              <view class="check-txt">{{ item.name }}</view>
-              <view class="check-icon" :class="{ 'check-icon-active': item.selected }">
-                <u-icon name="checkmark" color="#fff" size="18" v-if="item.selected"></u-icon>
-                <u-icon name="plus" color="#666" size="28" v-else></u-icon>
-              </view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <!-- 已选福利 -->
-    <view class="check-list" v-if="selectedWelfare.length > 0">
-      已选:
-      <view class="check-list-item" v-for="(item, index) in selectedWelfare" :key="index"
-        @click="removeSelected(item.categoryIndex, item.itemIndex)">
-        {{ item.name }}
-        <text class="remove-icon">×</text>
-      </view>
-    </view>
-
-    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="公司福利" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>3</text>/8 </view>
+				<view class="title">
+					<view>公司福利</view>
+					<view class="check-num">
+						<text>{{ selectedCount }}</text>/{{ totalCount }}
+					</view>
+				</view>
+				<view class="desc"> 选择公司提供的福利信息,以吸引更多求职者 </view>
+
+				<!-- 福利分类 -->
+				<view class="welfare-category" v-for="(category, categoryIndex) in welfareList" :key="categoryIndex">
+					<view class="category-title">{{ category.title }}</view>
+					<view class="check-box">
+						<view class="check-item" v-for="(item, index) in category.items" :key="index"
+							@click="checkItem(categoryIndex, index)">
+							<view class="check-txt">{{ item.name }}</view>
+							<view class="check-icon" :class="{ 'check-icon-active': item.selected }">
+								<u-icon name="checkmark" color="#fff" size="18" v-if="item.selected"></u-icon>
+								<u-icon name="plus" color="#666" size="28" v-else></u-icon>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<!-- 已选福利 -->
+		<view class="check-list" v-if="selectedWelfare.length > 0">
+			已选:
+			<view class="check-list-item" v-for="(item, index) in selectedWelfare" :key="index"
+				@click="removeSelected(item.categoryIndex, item.itemIndex)">
+				{{ item.name }}
+				<text class="remove-icon">×</text>
+			</view>
+		</view>
+
+		<view class="submit-btn" @click="goJobPostingSecond">下一步</view>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      welfareList: [
-        {
-          title: "保险",
-          items: [
-            { name: "五险一金", selected: false },
-            { name: "补充医疗保险", selected: false },
-            { name: "意外险", selected: false },
-            { name: "定期体检", selected: false },
-          ],
-        },
-        {
-          title: "薪资期权",
-          items: [
-            { name: "年终奖", selected: false },
-            { name: "绩效奖金", selected: false },
-            { name: "保底工资", selected: false },
-            { name: "底薪加提成", selected: false },
-            { name: "股票期权", selected: false },
-            { name: "企业年金", selected: false },
-          ],
-        },
-        {
-          title: "补贴",
-          items: [
-            { name: "餐补", selected: false },
-            { name: "交通补贴", selected: false },
-            { name: "住房补贴", selected: false },
-            { name: "加班补贴", selected: false },
-            { name: "团建补贴", selected: false },
-          ],
-        },
-        {
-          title: "休假",
-          items: [
-            { name: "带薪年假", selected: false },
-            { name: "节假日加班费", selected: false },
-            { name: "法定节假日三薪", selected: false },
-            { name: "员工购房", selected: false },
-          ],
-        },
-      ],
-      selectedCount: 0,
-      totalCount: 20,
-      companyData: {}
-    };
-  },
-  components: {
-    navBar,
-  },
-  computed: {
-    // 计算已选的福利项目
-    selectedWelfare() {
-      const selected = [];
-      this.welfareList.forEach((category, categoryIndex) => {
-        category.items.forEach((item, itemIndex) => {
-          if (item.selected) {
-            selected.push({
-              name: item.name,
-              categoryIndex: categoryIndex,
-              itemIndex: itemIndex,
-            });
-          }
-        });
-      });
-      return selected;
-    },
-  },
-  onLoad(options) {
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-    }
-    if (options.update == 'true') {
-      let companyInfo = uni.getStorageSync('companyInfo');
-      // 这里需要把我传过来的值显示出来
-      if (companyInfo && companyInfo.welfare) {
-        // 处理福利字符串
-        let welfareString = companyInfo.welfare;
-
-        // 将中文逗号替换为英文逗号,并去除首尾空格
-        welfareString = welfareString.replace(/,/g, ',').trim();
-
-        // 分割字符串为数组
-        const savedWelfareList = welfareString.split(',').map(item => item.trim()).filter(item => item);
-        console.log('需要选中的福利:', savedWelfareList);
-
-        // 直接遍历福利列表,设置选中状态
-        this.welfareList.forEach(category => {
-          category.items.forEach(item => {
-            // 如果当前福利名称在保存的列表中,则设置为选中
-            item.selected = savedWelfareList.includes(item.name);
-          });
-        });
-
-        // 更新选中数量
-        this.updateSelectedCount();
-      }
-
-    }
-  },
-  methods: {
-    // 选择/取消选择福利项目
-    checkItem(categoryIndex, itemIndex) {
-      const item = this.welfareList[categoryIndex].items[itemIndex];
-      item.selected = !item.selected;
-
-      // 更新选中数量
-      this.updateSelectedCount();
-    },
-
-    // 移除已选项目
-    removeSelected(categoryIndex, itemIndex) {
-      this.welfareList[categoryIndex].items[itemIndex].selected = false;
-      this.updateSelectedCount();
-    },
-
-    // 更新选中数量
-    updateSelectedCount() {
-      let count = 0;
-      this.welfareList.forEach((category) => {
-        category.items.forEach((item) => {
-          if (item.selected) count++;
-        });
-      });
-      this.selectedCount = count;
-    },
-
-    goJobPostingSecond() {
-      if (this.selectedCount === 0) {
-        uni.showToast({
-          title: "请至少选择一项福利",
-          icon: "none",
-        });
-        return;
-      }
-      const companyData = this.companyData
-      // 获取选中的福利列表
-      const selectedBenefits = this.selectedWelfare.map((item) => item.name);
-      // console.log("选中的福利:", selectedBenefits);
-      companyData.welfare = selectedBenefits.join(',')
-      // 跳转到下一页,传递选中的福利数据
-      uni.navigateTo({
-        url:
-          "/my/renzheng/peopleDev?companyData=" +
-          encodeURIComponent(JSON.stringify(companyData))+'&update=true',
-      });
-      console.log(companyData);
-    },
-  },
-  mounted() {
-    // 初始化总数量
-    this.totalCount = this.welfareList.reduce(
-      (total, category) => total + category.items.length,
-      0
-    );
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				welfareList: [{
+						title: "保险",
+						items: [{
+								name: "五险一金",
+								selected: false
+							},
+							{
+								name: "补充医疗保险",
+								selected: false
+							},
+							{
+								name: "意外险",
+								selected: false
+							},
+							{
+								name: "定期体检",
+								selected: false
+							},
+						],
+					},
+					{
+						title: "薪资期权",
+						items: [{
+								name: "年终奖",
+								selected: false
+							},
+							{
+								name: "绩效奖金",
+								selected: false
+							},
+							{
+								name: "保底工资",
+								selected: false
+							},
+							{
+								name: "底薪加提成",
+								selected: false
+							},
+							{
+								name: "股票期权",
+								selected: false
+							},
+							{
+								name: "企业年金",
+								selected: false
+							},
+						],
+					},
+					{
+						title: "补贴",
+						items: [{
+								name: "餐补",
+								selected: false
+							},
+							{
+								name: "交通补贴",
+								selected: false
+							},
+							{
+								name: "住房补贴",
+								selected: false
+							},
+							{
+								name: "加班补贴",
+								selected: false
+							},
+							{
+								name: "团建补贴",
+								selected: false
+							},
+						],
+					},
+					{
+						title: "休假",
+						items: [{
+								name: "带薪年假",
+								selected: false
+							},
+							{
+								name: "节假日加班费",
+								selected: false
+							},
+							{
+								name: "法定节假日三薪",
+								selected: false
+							},
+							{
+								name: "员工购房",
+								selected: false
+							},
+						],
+					},
+				],
+				selectedCount: 0,
+				totalCount: 20,
+			};
+		},
+		components: {
+			navBar,
+		},
+		computed: {
+			// 计算已选的福利项目
+			selectedWelfare() {
+				const selected = [];
+				this.welfareList.forEach((category, categoryIndex) => {
+					category.items.forEach((item, itemIndex) => {
+						if (item.selected) {
+							selected.push({
+								name: item.name,
+								categoryIndex: categoryIndex,
+								itemIndex: itemIndex,
+							});
+						}
+					});
+				});
+				return selected;
+			},
+		},
+		onLoad(options) {
+			let companyInfo = uni.getStorageSync('companyInfo');
+			if (companyInfo && companyInfo.welfare) {
+				let welfareString = companyInfo.welfare;
+				// 将中文逗号替换为英文逗号,并去除首尾空格
+				welfareString = welfareString.replace(/,/g, ',').trim();
+			
+				// 分割字符串为数组
+				const savedWelfareList = welfareString.split(',').map(item => item.trim()).filter(item => item);
+			
+				// 直接遍历福利列表,设置选中状态
+				this.welfareList.forEach(category => {
+					category.items.forEach(item => {
+						// 如果当前福利名称在保存的列表中,则设置为选中
+						item.selected = savedWelfareList.includes(item.name);
+					});
+				});
+			
+				// 更新选中数量
+				this.updateSelectedCount();
+			}
+		},
+		methods: {
+			// 选择/取消选择福利项目
+			checkItem(categoryIndex, itemIndex) {
+				const item = this.welfareList[categoryIndex].items[itemIndex];
+				item.selected = !item.selected;
+
+				// 更新选中数量
+				this.updateSelectedCount();
+			},
+
+			// 移除已选项目
+			removeSelected(categoryIndex, itemIndex) {
+				this.welfareList[categoryIndex].items[itemIndex].selected = false;
+				this.updateSelectedCount();
+			},
+
+			// 更新选中数量
+			updateSelectedCount() {
+				let count = 0;
+				this.welfareList.forEach((category) => {
+					category.items.forEach((item) => {
+						if (item.selected) count++;
+					});
+				});
+				this.selectedCount = count;
+			},
+
+			goJobPostingSecond() {
+				if (this.selectedCount === 0) {
+					uni.showToast({
+						title: "请至少选择一项福利",
+						icon: "none",
+					});
+					return;
+				}
+				const selectedBenefits = this.selectedWelfare.map((item) => item.name);
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					welfare: selectedBenefits.join(',')
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					if (res.code == 0) {
+						uni.showToast({
+							title: '提交成功',
+							duration: 1500,
+						});
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/my/index'
+							});
+						}, 500)
+					}
+				})
+
+				// uni.navigateTo({
+				//   url:
+				//     "/my/renzheng/peopleDev?companyData=" +
+				//     encodeURIComponent(JSON.stringify(companyData))+'&update=true',
+				// });
+				// console.log(companyData);
+			},
+		},
+		mounted() {
+			// 初始化总数量
+			this.totalCount = this.welfareList.reduce(
+				(total, category) => total + category.items.length,
+				0
+			);
+		},
+	};
 </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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin-bottom: 20rpx;
-
-        .check-num {
-          font-family: DM Sans;
-          font-size: 48rpx;
-          font-weight: 700;
-          line-height: 60rpx;
-          color: #999;
-
-          text {
-            color: #016bf6;
-          }
-        }
-      }
-
-      .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;
-        margin-bottom: 20rpx;
-      }
-
-      .welfare-category {
-        width: 100%;
-        margin-bottom: 40rpx;
-
-        .category-title {
-          color: rgba(31, 44, 55, 1);
-          font-family: DM Sans;
-          font-size: 28rpx;
-          font-weight: 500;
-          line-height: 44rpx;
-          padding-bottom: 20rpx;
-          box-sizing: border-box;
-        }
-
-        .check-box {
-          width: 100%;
-          display: grid;
-          grid-template-columns: repeat(1, 1fr);
-          gap: 20rpx;
-
-          .check-item {
-            padding: 20rpx 24rpx;
-            box-sizing: border-box;
-            border-radius: 16rpx;
-            display: flex;
-            align-items: center;
-            justify-content: space-between;
-            gap: 20rpx;
-
-            .check-icon {
-              width: 32rpx;
-              height: 32rpx;
-              border-radius: 8rpx;
-              border: 2rpx solid #666;
-              display: flex;
-              justify-content: center;
-              align-items: center;
-              background: #fff;
-              flex-shrink: 0;
-            }
-
-            .check-icon-active {
-              background-color: #016bf6;
-              border-color: #016bf6;
-              border-radius: 50%;
-            }
-
-            .check-txt {
-              border-radius: 4px;
-              background: rgba(153, 153, 153, 0.1);
-              padding: 8rpx;
-              box-sizing: border-box;
-              color: rgba(102, 102, 102, 1);
-              font-family: DM Sans;
-              font-size: 24rpx;
-              font-weight: 400;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  .check-list {
-    flex-shrink: 0;
-    padding: 20rpx 40rpx;
-    box-sizing: border-box;
-    color: #016bf6;
-    font-family: DM Sans;
-    font-size: 16rpx;
-    font-weight: 400;
-    display: flex;
-    flex-wrap: wrap;
-    align-items: center;
-    gap: 16rpx;
-
-    .check-list-item {
-      box-sizing: border-box;
-      border: 1rpx solid #016bf6;
-      border-radius: 8rpx;
-      background: rgba(252, 233, 220, 1);
-      padding: 4rpx 8rpx;
-      display: flex;
-      align-items: center;
-      gap: 8rpx;
-
-      .remove-icon {
-        font-size: 24rpx;
-        font-weight: bold;
-        margin-left: 8rpx;
-        cursor: pointer;
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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: 24rpx 32rpx;
-    box-sizing: border-box;
-    margin: 30rpx 40rpx;
-    margin-top: 20rpx;
-  }
-}
-</style>
+	.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+
+					.check-num {
+						font-family: DM Sans;
+						font-size: 48rpx;
+						font-weight: 700;
+						line-height: 60rpx;
+						color: #999;
+
+						text {
+							color: #016bf6;
+						}
+					}
+				}
+
+				.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;
+					margin-bottom: 20rpx;
+				}
+
+				.welfare-category {
+					width: 100%;
+					margin-bottom: 40rpx;
+
+					.category-title {
+						color: rgba(31, 44, 55, 1);
+						font-family: DM Sans;
+						font-size: 28rpx;
+						font-weight: 500;
+						line-height: 44rpx;
+						padding-bottom: 20rpx;
+						box-sizing: border-box;
+					}
+
+					.check-box {
+						width: 100%;
+						display: grid;
+						grid-template-columns: repeat(1, 1fr);
+						gap: 20rpx;
+
+						.check-item {
+							padding: 20rpx 24rpx;
+							box-sizing: border-box;
+							border-radius: 16rpx;
+							display: flex;
+							align-items: center;
+							justify-content: space-between;
+							gap: 20rpx;
+
+							.check-icon {
+								width: 32rpx;
+								height: 32rpx;
+								border-radius: 8rpx;
+								border: 2rpx solid #666;
+								display: flex;
+								justify-content: center;
+								align-items: center;
+								background: #fff;
+								flex-shrink: 0;
+							}
+
+							.check-icon-active {
+								background-color: #016bf6;
+								border-color: #016bf6;
+								border-radius: 50%;
+							}
+
+							.check-txt {
+								border-radius: 4px;
+								background: rgba(153, 153, 153, 0.1);
+								padding: 8rpx;
+								box-sizing: border-box;
+								color: rgba(102, 102, 102, 1);
+								font-family: DM Sans;
+								font-size: 24rpx;
+								font-weight: 400;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		.check-list {
+			flex-shrink: 0;
+			padding: 20rpx 40rpx;
+			box-sizing: border-box;
+			color: #016bf6;
+			font-family: DM Sans;
+			font-size: 16rpx;
+			font-weight: 400;
+			display: flex;
+			flex-wrap: wrap;
+			align-items: center;
+			gap: 16rpx;
+
+			.check-list-item {
+				box-sizing: border-box;
+				border: 1rpx solid #016bf6;
+				border-radius: 8rpx;
+				background: rgba(252, 233, 220, 1);
+				padding: 4rpx 8rpx;
+				display: flex;
+				align-items: center;
+				gap: 8rpx;
+
+				.remove-icon {
+					font-size: 24rpx;
+					font-weight: bold;
+					margin-left: 8rpx;
+					cursor: pointer;
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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: 24rpx 32rpx;
+			box-sizing: border-box;
+			margin: 30rpx 40rpx;
+			margin-top: 20rpx;
+		}
+	}
+</style>

+ 536 - 541
my/renzheng/companyImg.vue

@@ -1,549 +1,544 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="公司信息" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>7</text>/8 </view>
-        <view class="title">
-          <view>展示公司照片</view>
-        </view>
-        <view class="desc">在公司主页上展示亮眼的照片,体现企业氛围与文化魅力;最多上传20张</view>
-
-        <view class="content-index">
-          <!-- 多图上传区域 -->
-          <view class="upload-section">
-            <view class="images-grid">
-              <!-- 已上传的图片 -->
-              <view class="image-item" v-for="(image, index) in imageList" :key="index" @click="previewImage(index)">
-                <image :src="image.url" mode="aspectFill" class="preview-image"></image>
-                <view class="image-mask">
-                  <u-icon name="eye" color="#fff" size="30"></u-icon>
-                </view>
-                <view class="delete-btn" @click.stop="deleteImage(index)">
-                  <u-icon name="close" color="#fff" size="20"></u-icon>
-                </view>
-              </view>
-
-              <!-- 添加图片按钮 -->
-              <view class="upload-box" v-if="imageList.length < maxCount" @click="chooseImage">
-                <view class="upload-placeholder">
-                  <u-icon name="plus" color="#999" size="40"></u-icon>
-                  <text class="upload-text">添加照片</text>
-                </view>
-              </view>
-            </view>
-
-            <!-- 上传计数 -->
-            <view class="upload-count" v-if="imageList.length > 0">
-              已上传 {{ imageList.length }}/{{ maxCount }} 张
-            </view>
-
-            <!-- 上传进度 -->
-            <view v-if="uploading" class="upload-progress">
-              <view class="progress-bar">
-                <view class="progress-inner" :style="{ width: uploadProgress + '%' }"></view>
-              </view>
-              <text class="progress-text">{{ uploadProgress }}%</text>
-            </view>
-          </view>
-
-          <!-- 注意事项 -->
-          <view class="warning-box">
-            <view class="warning-title">注意事项:</view>
-            <view class="warning-list">
-              <view class="warning-item">1. 请上传清晰且完整的图片</view>
-              <view class="warning-item">2.
-                请上传品牌相关的图片,含有其他内容将无法通过审核(包括但不限于含有水印、招聘信息、联系方式、二维码等相关内容)</view>
-              <view class="warning-item">3. 上传图片须符合中国相关法律法规,不得含有违法内容或不良信息</view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <view class="submit-btn" :class="{ disabled: imageList.length === 0 }" @click="goJobPostingSecond">下一步</view>
-    <!-- 权限说明弹窗 -->
-    <u-popup mode="top" ref="permission">
-      <view class="popup-content">
-        <view class="popup-text-permission">选择/拍摄照片需要相机/相册权限,用于上传用户头像</view>
-      </view>
-    </u-popup>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="公司信息" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>7</text>/8 </view>
+				<view class="title">
+					<view>展示公司照片</view>
+				</view>
+				<view class="desc">在公司主页上展示亮眼的照片,体现企业氛围与文化魅力;最多上传20张</view>
+
+				<view class="content-index">
+					<!-- 多图上传区域 -->
+					<view class="upload-section">
+						<view class="images-grid">
+							<!-- 已上传的图片 -->
+							<view class="image-item" v-for="(image, index) in imageList" :key="index"
+								@click="previewImage(index)">
+								<image :src="image.url" mode="aspectFill" class="preview-image"></image>
+								<view class="image-mask">
+									<u-icon name="eye" color="#fff" size="30"></u-icon>
+								</view>
+								<view class="delete-btn" @click.stop="deleteImage(index)">
+									<u-icon name="close" color="#fff" size="20"></u-icon>
+								</view>
+							</view>
+
+							<!-- 添加图片按钮 -->
+							<view class="upload-box" v-if="imageList.length < maxCount" @click="chooseImage">
+								<view class="upload-placeholder">
+									<u-icon name="plus" color="#999" size="40"></u-icon>
+									<text class="upload-text">添加照片</text>
+								</view>
+							</view>
+						</view>
+
+						<!-- 上传计数 -->
+						<view class="upload-count" v-if="imageList.length > 0">
+							已上传 {{ imageList.length }}/{{ maxCount }} 张
+						</view>
+
+						<!-- 上传进度 -->
+						<view v-if="uploading" class="upload-progress">
+							<view class="progress-bar">
+								<view class="progress-inner" :style="{ width: uploadProgress + '%' }"></view>
+							</view>
+							<text class="progress-text">{{ uploadProgress }}%</text>
+						</view>
+					</view>
+
+					<!-- 注意事项 -->
+					<view class="warning-box">
+						<view class="warning-title">注意事项:</view>
+						<view class="warning-list">
+							<view class="warning-item">1. 请上传清晰且完整的图片</view>
+							<view class="warning-item">2.
+								请上传品牌相关的图片,含有其他内容将无法通过审核(包括但不限于含有水印、招聘信息、联系方式、二维码等相关内容)</view>
+							<view class="warning-item">3. 上传图片须符合中国相关法律法规,不得含有违法内容或不良信息</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="submit-btn" :class="{ disabled: imageList.length === 0 }" @click="goJobPostingSecond">下一步</view>
+		<!-- 权限说明弹窗 -->
+		<u-popup mode="top" ref="permission">
+			<view class="popup-content">
+				<view class="popup-text-permission">选择/拍摄照片需要相机/相册权限,用于上传用户头像</view>
+			</view>
+		</u-popup>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      text: "",
-      imageList: [], // 上传的图片列表
-      maxCount: 20, // 最大上传数量
-      uploading: false, // 是否正在上传
-      uploadProgress: 0, // 上传进度
-      companyData: {},
-      isUpdateMode: false // 新增:标记是否为编辑模式
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    // 判断是否为编辑模式
-    if (options.update == 'true') {
-      this.isUpdateMode = true;
-      this.loadSavedPhotos();
-    }
-    
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-      // 如果companyData中有照片数据,也显示出来
-      if (this.companyData.photos) {
-        this.loadCompanyDataPhotos();
-      }
-    }
-  },
-  methods: {
-    // 加载已保存的照片数据(从缓存)
-    loadSavedPhotos() {
-      try {
-        let companyInfo = uni.getStorageSync('companyInfo');
-        console.log('从缓存获取的公司信息:', companyInfo);
-        
-        if (companyInfo?.photos) {
-          // 处理字符串并转换为对象数组
-          this.parsePhotoString(companyInfo.photos);
-          console.log('已加载保存的照片:', this.imageList);
-        } else {
-          console.log('缓存中没有照片数据');
-        }
-      } catch (error) {
-        console.error('加载照片数据失败:', error);
-      }
-    },
-    
-    // 加载companyData中的照片数据
-    loadCompanyDataPhotos() {
-      this.parsePhotoString(this.companyData.photos);
-    },
-    
-    // 解析照片字符串为对象数组
-    parsePhotoString(photoString) {
-      if (!photoString) return;
-      
-      // 处理字符串:替换中文逗号,分割,过滤空值
-      const photoUrls = photoString
-        .replace(/,/g, ',')
-        .split(',')
-        .map(url => url.trim())
-        .filter(url => url);
-      
-      // 转换为对象数组格式
-      this.imageList = photoUrls.map(url => ({
-        url: url
-      }));
-    },
-    
-    // 选择图片
-    async chooseImage() {
-      const that = this;
-      const remainingCount = this.maxCount - this.imageList.length;
-      
-      if (remainingCount <= 0) {
-        uni.showToast({
-          title: `最多只能上传${this.maxCount}张图片`,
-          icon: 'none'
-        });
-        return;
-      }
-      
-      // 1. 检查权限状态
-      const hasPermission = await this.$queue.checkPermission(
-        'camera',
-        '选择/拍摄照片需要相机/相册权限,用于上传用户头像',
-        this
-      );
-
-      // 2. 如果未授权或者用户拒绝,显示提示
-      if (!hasPermission) {
-        return;
-      }
-
-      uni.chooseImage({
-        count: remainingCount, // 最多选择剩余数量
-        sizeType: ["compressed"],
-        sourceType: ["album", "camera"],
-        success: (res) => {
-          const tempFilePaths = res.tempFilePaths;
-
-          // 批量上传图片
-          that.uploadMultipleImages(tempFilePaths);
-        },
-        fail: (error) => {
-          console.log("选择图片失败:", error);
-          uni.showToast({
-            title: "选择图片失败",
-            icon: "none",
-          });
-        },
-      });
-    },
-
-    // 批量上传图片
-    uploadMultipleImages(filePaths) {
-      const that = this;
-      that.uploading = true;
-      that.uploadProgress = 0;
-
-      let uploadedCount = 0;
-      const totalCount = filePaths.length;
-      const newImages = [];
-
-      filePaths.forEach((filePath, index) => {
-        this.$queue.uploadFile(filePath, (path) => {
-          if (path) {
-            uploadedCount++;
-            newImages.push({
-              url: path
-            });
-            that.imageList.push({
-              url: path
-            });
-
-            // 更新进度
-            that.uploadProgress = Math.floor((uploadedCount / totalCount) * 100);
-
-            // 所有图片上传完成
-            if (uploadedCount === totalCount) {
-              that.uploading = false;
-              
-              // 如果是编辑模式,同时更新缓存
-              if (that.isUpdateMode) {
-                that.updateCachePhotos();
-              }
-              
-              uni.showToast({
-                title: `成功上传${uploadedCount}张图片`,
-                icon: 'success'
-              });
-            }
-          }
-          else {
-            uploadedCount++;
-            console.log(`第${index + 1}张图片上传失败`);
-            if (uploadedCount === totalCount) {
-              that.uploading = false;
-              uni.showToast({
-                title: '部分图片上传失败',
-                icon: 'none'
-              });
-            }
-          }
-        });
-      });
-    },
-    
-    // 更新缓存中的照片
-    updateCachePhotos() {
-      try {
-        let companyInfo = uni.getStorageSync('companyInfo');
-        if (companyInfo) {
-          // 获取所有图片URL
-          const photoUrls = this.imageList.map(item => item.url);
-          companyInfo.photos = photoUrls.join(',');
-          uni.setStorageSync('companyInfo', companyInfo);
-          console.log('已更新缓存中的照片数据');
-        }
-      } catch (error) {
-        console.error('更新缓存照片失败:', error);
-      }
-    },
-
-    // 预览图片
-    previewImage(index) {
-      if (this.imageList.length > 0) {
-        const urls = this.imageList.map(item => item.url);
-        uni.previewImage({
-          urls: urls,
-          current: index,
-        });
-      }
-    },
-
-    // 删除图片
-    deleteImage(index) {
-      const that = this;
-      uni.showModal({
-        title: "提示",
-        content: "确定要删除这张照片吗?",
-        success: (res) => {
-          if (res.confirm) {
-            that.imageList.splice(index, 1);
-            
-            // 如果是编辑模式,同时更新缓存
-            if (that.isUpdateMode) {
-              that.updateCachePhotos();
-            }
-            
-            uni.showToast({
-              title: "删除成功",
-              icon: "success",
-            });
-          }
-        },
-      });
-    },
-
-    // 下一步
-    goJobPostingSecond() {
-      if (this.imageList.length === 0) {
-        uni.showToast({
-          title: "请上传公司照片",
-          icon: "none",
-        });
-        return;
-      }
-
-      // 获取所有图片URL
-      const imageUrls = this.imageList.map(item => item.url);
-      const companyData = {
-        ...this.companyData,
-        photos: imageUrls.join(',')
-      };
-      
-      // 如果是编辑模式,同时更新缓存
-      if (this.isUpdateMode) {
-        this.updateCachePhotos();
-      }
-      
-      uni.navigateTo({
-        url: "/my/renzheng/mainWorkIntro?companyData=" + 
-          encodeURIComponent(JSON.stringify(companyData)) +
-          (this.isUpdateMode ? "&update=true" : "")
-      });
-    },
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				text: "",
+				imageList: [], // 上传的图片列表
+				maxCount: 20, // 最大上传数量
+				uploading: false, // 是否正在上传
+				uploadProgress: 0, // 上传进度
+				// isUpdateMode: false // 新增:标记是否为编辑模式
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			this.loadSavedPhotos();
+		},
+		methods: {
+			// 加载已保存的照片数据(从缓存)
+			loadSavedPhotos() {
+				try {
+					let companyInfo = uni.getStorageSync('companyInfo');
+					console.log('从缓存获取的公司信息:', companyInfo);
+
+					if (companyInfo?.photos) {
+						// 处理字符串并转换为对象数组
+						this.parsePhotoString(companyInfo.photos);
+						console.log('已加载保存的照片:', this.imageList);
+					} else {
+						console.log('缓存中没有照片数据');
+					}
+				} catch (error) {
+					console.error('加载照片数据失败:', error);
+				}
+			},
+
+			// 加载companyData中的照片数据
+			// loadCompanyDataPhotos() {
+			// 	this.parsePhotoString(this.companyData.photos);
+			// },
+
+			// 解析照片字符串为对象数组
+			parsePhotoString(photoString) {
+				if (!photoString) return;
+
+				// 处理字符串:替换中文逗号,分割,过滤空值
+				const photoUrls = photoString
+					.replace(/,/g, ',')
+					.split(',')
+					.map(url => url.trim())
+					.filter(url => url);
+
+				// 转换为对象数组格式
+				this.imageList = photoUrls.map(url => ({
+					url: url
+				}));
+			},
+
+			// 选择图片
+			async chooseImage() {
+				const that = this;
+				const remainingCount = this.maxCount - this.imageList.length;
+
+				if (remainingCount <= 0) {
+					uni.showToast({
+						title: `最多只能上传${this.maxCount}张图片`,
+						icon: 'none'
+					});
+					return;
+				}
+
+				// 1. 检查权限状态
+				const hasPermission = await this.$queue.checkPermission(
+					'camera',
+					'选择/拍摄照片需要相机/相册权限,用于上传用户头像',
+					this
+				);
+
+				// 2. 如果未授权或者用户拒绝,显示提示
+				if (!hasPermission) {
+					return;
+				}
+
+				uni.chooseImage({
+					count: remainingCount, // 最多选择剩余数量
+					sizeType: ["compressed"],
+					sourceType: ["album", "camera"],
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+
+						// 批量上传图片
+						that.uploadMultipleImages(tempFilePaths);
+					},
+					fail: (error) => {
+						console.log("选择图片失败:", error);
+						uni.showToast({
+							title: "选择图片失败",
+							icon: "none",
+						});
+					},
+				});
+			},
+
+			// 批量上传图片
+			uploadMultipleImages(filePaths) {
+				const that = this;
+				that.uploading = true;
+				that.uploadProgress = 0;
+
+				let uploadedCount = 0;
+				const totalCount = filePaths.length;
+				const newImages = [];
+
+				filePaths.forEach((filePath, index) => {
+					this.$queue.uploadFile(filePath, (path) => {
+						if (path) {
+							uploadedCount++;
+							newImages.push({
+								url: path
+							});
+							that.imageList.push({
+								url: path
+							});
+
+							// 更新进度
+							that.uploadProgress = Math.floor((uploadedCount / totalCount) * 100);
+
+							// 所有图片上传完成
+							if (uploadedCount === totalCount) {
+								that.uploading = false;
+
+								// 如果是编辑模式,同时更新缓存
+								// if (that.isUpdateMode) {
+								// 	that.updateCachePhotos();
+								// }
+
+								uni.showToast({
+									title: `成功上传${uploadedCount}张图片`,
+									icon: 'success'
+								});
+							}
+						} else {
+							uploadedCount++;
+							console.log(`第${index + 1}张图片上传失败`);
+							if (uploadedCount === totalCount) {
+								that.uploading = false;
+								uni.showToast({
+									title: '部分图片上传失败',
+									icon: 'none'
+								});
+							}
+						}
+					});
+				});
+			},
+
+			// 更新缓存中的照片
+			// updateCachePhotos() {
+			// 	try {
+			// 		let companyInfo = uni.getStorageSync('companyInfo');
+			// 		if (companyInfo) {
+			// 			// 获取所有图片URL
+			// 			const photoUrls = this.imageList.map(item => item.url);
+			// 			companyInfo.photos = photoUrls.join(',');
+			// 			uni.setStorageSync('companyInfo', companyInfo);
+			// 			console.log('已更新缓存中的照片数据');
+			// 		}
+			// 	} catch (error) {
+			// 		console.error('更新缓存照片失败:', error);
+			// 	}
+			// },
+
+			// 预览图片
+			previewImage(index) {
+				if (this.imageList.length > 0) {
+					const urls = this.imageList.map(item => item.url);
+					uni.previewImage({
+						urls: urls,
+						current: index,
+					});
+				}
+			},
+
+			// 删除图片
+			deleteImage(index) {
+				const that = this;
+				uni.showModal({
+					title: "提示",
+					content: "确定要删除这张照片吗?",
+					success: (res) => {
+						if (res.confirm) {
+							that.imageList.splice(index, 1);
+
+							// 如果是编辑模式,同时更新缓存
+							// if (that.isUpdateMode) {
+							// 	that.updateCachePhotos();
+							// }
+
+							uni.showToast({
+								title: "删除成功",
+								icon: "success",
+							});
+						}
+					},
+				});
+			},
+
+			// 下一步
+			goJobPostingSecond() {
+				if (this.imageList.length === 0) {
+					uni.showToast({
+						title: "请上传公司照片",
+						icon: "none",
+					});
+					return;
+				}
+
+				// 获取所有图片URL
+				const imageUrls = this.imageList.map(item => item.url);
+				
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					photos: imageUrls.join(',')
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					if (res.code == 0) {
+						uni.showToast({
+							title: '提交成功',
+							duration: 1500,
+						});
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/my/index'
+							});
+						}, 500)
+					}
+				})
+				// uni.navigateTo({
+				// 	url: "/my/renzheng/mainWorkIntro?companyData=" +
+				// 		encodeURIComponent(JSON.stringify(companyData)) +
+				// 		(this.isUpdateMode ? "&update=true" : "")
+				// });
+			},
+		},
+	};
 </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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin-bottom: 20rpx;
-      }
-
-      .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;
-        box-sizing: border-box;
-        margin-bottom: 40rpx;
-      }
-
-      .content-index {
-        width: 100%;
-
-        .upload-section {
-          margin-bottom: 20rpx;
-
-          .images-grid {
-            display: grid;
-            grid-template-columns: repeat(4, 1fr);
-            gap: 20rpx;
-            margin-bottom: 20rpx;
-
-            .image-item {
-              width: 142rpx;
-              height: 142rpx;
-              border-radius: 8rpx;
-              position: relative;
-              overflow: hidden;
-
-              .preview-image {
-                width: 100%;
-                height: 100%;
-              }
-
-              .image-mask {
-                position: absolute;
-                top: 0;
-                left: 0;
-                width: 100%;
-                height: 100%;
-                background: rgba(0, 0, 0, 0.3);
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                opacity: 0;
-                transition: opacity 0.3s;
-              }
-
-              .delete-btn {
-                position: absolute;
-                top: 8rpx;
-                right: 8rpx;
-                width: 30rpx;
-                height: 30rpx;
-                background: rgba(0, 0, 0, 0.5);
-                border-radius: 50%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-              }
-
-              &:active .image-mask {
-                opacity: 1;
-              }
-            }
-
-            .upload-box {
-              width: 142rpx;
-              height: 142rpx;
-              border-radius: 8rpx;
-              display: flex;
-              align-items: center;
-              justify-content: center;
-              background: #eee;
-
-              .upload-placeholder {
-                display: flex;
-                flex-direction: column;
-                align-items: center;
-                justify-content: center;
-
-                .upload-text {
-                  color: #666;
-                  font-size: 20rpx;
-                  margin-top: 8rpx;
-                  font-family: DM Sans;
-                }
-              }
-            }
-          }
-
-          .upload-count {
-            color: #666;
-            font-size: 24rpx;
-            text-align: center;
-            margin-bottom: 20rpx;
-          }
-
-          .upload-progress {
-            display: flex;
-            align-items: center;
-            gap: 20rpx;
-
-            .progress-bar {
-              flex: 1;
-              height: 8rpx;
-              background: #f0f0f0;
-              border-radius: 4rpx;
-              overflow: hidden;
-
-              .progress-inner {
-                height: 100%;
-                background: #016bf6;
-                border-radius: 4rpx;
-                transition: width 0.3s;
-              }
-            }
-
-            .progress-text {
-              color: #016bf6;
-              font-size: 24rpx;
-              min-width: 80rpx;
-            }
-          }
-        }
-
-        .warning-box {
-          color: rgba(102, 102, 102, 1);
-          font-family: DM Sans;
-          font-size: 24rpx;
-          font-weight: 400;
-          line-height: 32rpx;
-
-          .warning-item {
-            margin-top: 8rpx;
-          }
-        }
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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: 24rpx 32rpx;
-    box-sizing: border-box;
-    margin: 30rpx 40rpx;
-    margin-top: 20rpx;
-
-    &.disabled {
-      background: #ccc;
-      color: #999;
-    }
-  }
-}
+	/* 样式保持不变 */
+	.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+				}
+
+				.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;
+					box-sizing: border-box;
+					margin-bottom: 40rpx;
+				}
+
+				.content-index {
+					width: 100%;
+
+					.upload-section {
+						margin-bottom: 20rpx;
+
+						.images-grid {
+							display: grid;
+							grid-template-columns: repeat(4, 1fr);
+							gap: 20rpx;
+							margin-bottom: 20rpx;
+
+							.image-item {
+								width: 142rpx;
+								height: 142rpx;
+								border-radius: 8rpx;
+								position: relative;
+								overflow: hidden;
+
+								.preview-image {
+									width: 100%;
+									height: 100%;
+								}
+
+								.image-mask {
+									position: absolute;
+									top: 0;
+									left: 0;
+									width: 100%;
+									height: 100%;
+									background: rgba(0, 0, 0, 0.3);
+									display: flex;
+									align-items: center;
+									justify-content: center;
+									opacity: 0;
+									transition: opacity 0.3s;
+								}
+
+								.delete-btn {
+									position: absolute;
+									top: 8rpx;
+									right: 8rpx;
+									width: 30rpx;
+									height: 30rpx;
+									background: rgba(0, 0, 0, 0.5);
+									border-radius: 50%;
+									display: flex;
+									align-items: center;
+									justify-content: center;
+								}
+
+								&:active .image-mask {
+									opacity: 1;
+								}
+							}
+
+							.upload-box {
+								width: 142rpx;
+								height: 142rpx;
+								border-radius: 8rpx;
+								display: flex;
+								align-items: center;
+								justify-content: center;
+								background: #eee;
+
+								.upload-placeholder {
+									display: flex;
+									flex-direction: column;
+									align-items: center;
+									justify-content: center;
+
+									.upload-text {
+										color: #666;
+										font-size: 20rpx;
+										margin-top: 8rpx;
+										font-family: DM Sans;
+									}
+								}
+							}
+						}
+
+						.upload-count {
+							color: #666;
+							font-size: 24rpx;
+							text-align: center;
+							margin-bottom: 20rpx;
+						}
+
+						.upload-progress {
+							display: flex;
+							align-items: center;
+							gap: 20rpx;
+
+							.progress-bar {
+								flex: 1;
+								height: 8rpx;
+								background: #f0f0f0;
+								border-radius: 4rpx;
+								overflow: hidden;
+
+								.progress-inner {
+									height: 100%;
+									background: #016bf6;
+									border-radius: 4rpx;
+									transition: width 0.3s;
+								}
+							}
+
+							.progress-text {
+								color: #016bf6;
+								font-size: 24rpx;
+								min-width: 80rpx;
+							}
+						}
+					}
+
+					.warning-box {
+						color: rgba(102, 102, 102, 1);
+						font-family: DM Sans;
+						font-size: 24rpx;
+						font-weight: 400;
+						line-height: 32rpx;
+
+						.warning-item {
+							margin-top: 8rpx;
+						}
+					}
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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: 24rpx 32rpx;
+			box-sizing: border-box;
+			margin: 30rpx 40rpx;
+			margin-top: 20rpx;
+
+			&.disabled {
+				background: #ccc;
+				color: #999;
+			}
+		}
+	}
 </style>

+ 458 - 504
my/renzheng/companyLogo.vue

@@ -1,511 +1,465 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="公司信息" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>6</text>/8 </view>
-        <view class="title">
-          <view>添加公司LOGO</view>
-        </view>
-        <view class="desc">该logo将出现在公司主页及公司下展示的所有职位上</view>
-
-        <view class="content-index">
-          <!-- Logo上传区域 -->
-          <view class="upload-section">
-            <view class="upload-box" :class="{ 'has-image': logoImage }" @click="chooseImage">
-              <view v-if="!logoImage" class="upload-placeholder">
-                <u-icon name="plus" color="#999" size="40"></u-icon>
-                <text class="upload-text">添加照片</text>
-              </view>
-              <view v-else class="image-preview">
-                <image :src="logoImage" mode="aspectFill" class="preview-image"></image>
-                <view class="image-mask" @click.stop="previewImage">
-                  <u-icon name="eye" color="#fff" size="40"></u-icon>
-                </view>
-                <view class="delete-btn" @click.stop="deleteImage">
-                  <u-icon name="close" color="#fff" size="20"></u-icon>
-                </view>
-              </view>
-            </view>
-
-            <!-- 上传进度 -->
-            <view v-if="uploading" class="upload-progress">
-              <view class="progress-bar">
-                <view class="progress-inner" :style="{ width: uploadProgress + '%' }"></view>
-              </view>
-              <text class="progress-text">{{ uploadProgress }}%</text>
-            </view>
-          </view>
-
-          <!-- 注意事项 -->
-          <view class="warning-box">
-            <view class="warning-title">注意事项:</view>
-            <view class="warning-list">
-              <view class="warning-item">1. 请上传清晰且完整的图片</view>
-              <view class="warning-item">2.
-                请上传品牌相关的图片,含有其他内容将无法通过审核(包括但不限于含有水印、招聘信息、联系方式、二维码等相关内容)</view>
-              <view class="warning-item">3. 上传图片须符合中国相关法律法规,不得含有违法内容或不良信息</view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <view class="submit-btn" :class="{ disabled: !logoImage }" @click="goJobPostingSecond">下一步</view>
-    <!-- 权限说明弹窗 -->
-    <u-popup mode="top" ref="permission">
-      <view class="popup-content">
-        <view class="popup-text-permission">选择/拍摄照片需要相机/相册权限,用于上传用户头像</view>
-      </view>
-    </u-popup>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="公司信息" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>6</text>/8 </view>
+				<view class="title">
+					<view>添加公司LOGO</view>
+				</view>
+				<view class="desc">该logo将出现在公司主页及公司下展示的所有职位上</view>
+
+				<view class="content-index">
+					<!-- Logo上传区域 -->
+					<view class="upload-section">
+						<view class="upload-box" :class="{ 'has-image': logoImage }" @click="chooseImage">
+							<view v-if="!logoImage" class="upload-placeholder">
+								<u-icon name="plus" color="#999" size="40"></u-icon>
+								<text class="upload-text">添加照片</text>
+							</view>
+							<view v-else class="image-preview">
+								<image :src="logoImage" mode="aspectFill" class="preview-image"></image>
+								<view class="image-mask" @click.stop="previewImage">
+									<u-icon name="eye" color="#fff" size="40"></u-icon>
+								</view>
+								<view class="delete-btn" @click.stop="deleteImage">
+									<u-icon name="close" color="#fff" size="20"></u-icon>
+								</view>
+							</view>
+						</view>
+
+						<!-- 上传进度 -->
+						<view v-if="uploading" class="upload-progress">
+							<view class="progress-bar">
+								<view class="progress-inner" :style="{ width: uploadProgress + '%' }"></view>
+							</view>
+							<text class="progress-text">{{ uploadProgress }}%</text>
+						</view>
+					</view>
+
+					<!-- 注意事项 -->
+					<view class="warning-box">
+						<view class="warning-title">注意事项:</view>
+						<view class="warning-list">
+							<view class="warning-item">1. 请上传清晰且完整的图片</view>
+							<view class="warning-item">2.
+								请上传品牌相关的图片,含有其他内容将无法通过审核(包括但不限于含有水印、招聘信息、联系方式、二维码等相关内容)</view>
+							<view class="warning-item">3. 上传图片须符合中国相关法律法规,不得含有违法内容或不良信息</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="submit-btn" :class="{ disabled: !logoImage }" @click="goJobPostingSecond">下一步</view>
+		<!-- 权限说明弹窗 -->
+		<u-popup mode="top" ref="permission">
+			<view class="popup-content">
+				<view class="popup-text-permission">选择/拍摄照片需要相机/相册权限,用于上传用户头像</view>
+			</view>
+		</u-popup>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      text: "",
-      logoImage: "", // 上传的logo图片URL
-      uploading: false, // 是否正在上传
-      uploadProgress: 0, // 上传进度
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    if (options.update == 'true') {
-      let companyInfo = uni.getStorageSync('companyInfo');
-      this.logoImage = companyInfo.companyLogo;
-
-    }
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-      console.log(this.companyData);
-    }
-  },
-  methods: {
-    // 选择图片
-    async chooseImage() {
-      const that = this;
-      // 1. 检查权限状态
-      const hasPermission = await this.$queue.checkPermission(
-        'camera',
-        '选择/拍摄照片需要相机/相册权限,用于上传用户头像',
-        this
-      );
-
-      // 2. 如果未授权或者用户拒绝,显示提示
-      if (!hasPermission) {
-        return;
-      }
-
-      uni.chooseImage({
-        count: 1,
-        sizeType: ["compressed"], // 可以指定是原图还是压缩图,默认二者都有
-        sourceType: ["album", "camera"], // 可以指定来源是相册还是相机,默认二者都有
-        success: (res) => {
-          // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
-          const tempFilePaths = res.tempFilePaths;
-
-          // 这里可以添加图片验证
-          that.validateAndUploadImage(tempFilePaths[0]);
-        },
-        fail: (error) => {
-          console.log("选择图片失败:", error);
-          uni.showToast({
-            title: "选择图片失败",
-            icon: "none",
-          });
-        },
-      });
-    },
-
-
-
-
-    // 验证并上传图片
-    validateAndUploadImage(tempFilePath) {
-      const that = this;
-
-      // 获取图片信息
-      uni.getImageInfo({
-        src: tempFilePath,
-        success: (imageInfo) => {
-          console.log("图片信息:", imageInfo);
-
-          // 这里可以添加图片尺寸验证
-          // if (imageInfo.width < 100 || imageInfo.height < 100) {
-          //   uni.showToast({
-          //     title: '图片尺寸过小,建议200×200px以上',
-          //     icon: 'none'
-          //   });
-          //   return;
-          // }
-
-          // 开始上传
-          that.uploadImage(tempFilePath);
-        },
-        fail: (error) => {
-          console.log("获取图片信息失败:", error);
-          that.uploadImage(tempFilePath); // 即使获取信息失败也继续上传
-        },
-      });
-    },
-
-    // 上传图片到服务器
-    uploadImage(filePath) {
-      const that = this;
-      that.uploading = true;
-      that.uploadProgress = 0;
-
-      // 模拟上传进度
-      const progressTimer = setInterval(() => {
-        that.uploadProgress += 10;
-        if (that.uploadProgress >= 90) {
-          clearInterval(progressTimer);
-        }
-      }, 100);
-
-      this.$queue.uploadFile(filePath, (path) => {
-        if (path) {
-          clearInterval(progressTimer);
-          that.uploadProgress = 100;
-          that.logoImage = path
-          uni.showToast({
-            title: '上传成功',
-            icon: 'success'
-          });
-        }
-        else {
-          uni.showToast({
-            title: data.message || '上传失败',
-            icon: 'none'
-          });
-        }
-        setTimeout(() => {
-          that.uploading = false;
-        }, 500);
-      })
-      // 这里替换为你的实际上传接口
-      // uni.uploadFile({
-      //   url: '你的上传接口地址',
-      //   filePath: filePath,
-      //   name: 'file',
-      //   formData: {
-      //     'type': 'company_logo'
-      //   },
-      //   success: (uploadRes) => {
-      //     clearInterval(progressTimer);
-      //     that.uploadProgress = 100;
-      //
-      //     const data = JSON.parse(uploadRes.data);
-      //     if (data.code === 200) {
-      //       that.logoImage = data.data.url;
-      //       uni.showToast({
-      //         title: '上传成功',
-      //         icon: 'success'
-      //       });
-      //     } else {
-      //       uni.showToast({
-      //         title: data.message || '上传失败',
-      //         icon: 'none'
-      //       });
-      //     }
-      //
-      //     setTimeout(() => {
-      //       that.uploading = false;
-      //     }, 500);
-      //   },
-      //   fail: (error) => {
-      //     clearInterval(progressTimer);
-      //     that.uploading = false;
-      //     uni.showToast({
-      //       title: '上传失败',
-      //       icon: 'none'
-      //     });
-      //   }
-      // });
-
-      // 模拟上传成功(实际开发中请使用上面的上传代码)
-      // setTimeout(() => {
-      //   clearInterval(progressTimer);
-      //   that.uploadProgress = 100;
-      //   that.logoImage = filePath; // 使用本地路径,实际开发中应该使用服务器返回的URL
-
-      //   setTimeout(() => {
-      //     that.uploading = false;
-      //     uni.showToast({
-      //       title: "上传成功",
-      //       icon: "success",
-      //     });
-      //   }, 500);
-      // }, 1500);
-    },
-
-    // 预览图片
-    previewImage() {
-      if (this.logoImage) {
-        uni.previewImage({
-          urls: [this.logoImage],
-          current: 0,
-        });
-      }
-    },
-
-    // 删除图片
-    deleteImage() {
-      const that = this;
-      uni.showModal({
-        title: "提示",
-        content: "确定要删除这个LOGO吗?",
-        success: (res) => {
-          if (res.confirm) {
-            that.logoImage = "";
-            that.uploadProgress = 0;
-          }
-        },
-      });
-    },
-    goJobPostingSecond() {
-      if (!this.logoImage) {
-        uni.showToast({
-          title: "请上传公司LOGO",
-          icon: "none",
-        });
-        return;
-      }
-      const companyData = this.companyData
-      companyData.companyLogo = this.logoImage
-      uni.navigateTo({
-        url: `/my/renzheng/companyImg?companyData=${encodeURIComponent(JSON.stringify(companyData))}&update=${true}`,
-      });
-    },
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				text: "",
+				logoImage: "", // 上传的logo图片URL
+				uploading: false, // 是否正在上传
+				uploadProgress: 0, // 上传进度
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			let companyInfo = uni.getStorageSync('companyInfo');
+			this.logoImage = companyInfo.companyLogo;
+		},
+		methods: {
+			// 选择图片
+			async chooseImage() {
+				const that = this;
+				// 1. 检查权限状态
+				const hasPermission = await this.$queue.checkPermission(
+					'camera',
+					'选择/拍摄照片需要相机/相册权限,用于上传用户头像',
+					this
+				);
+
+				// 2. 如果未授权或者用户拒绝,显示提示
+				if (!hasPermission) {
+					return;
+				}
+
+				uni.chooseImage({
+					count: 1,
+					sizeType: ["compressed"], // 可以指定是原图还是压缩图,默认二者都有
+					sourceType: ["album", "camera"], // 可以指定来源是相册还是相机,默认二者都有
+					success: (res) => {
+						// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
+						const tempFilePaths = res.tempFilePaths;
+
+						// 这里可以添加图片验证
+						that.validateAndUploadImage(tempFilePaths[0]);
+					},
+					fail: (error) => {
+						console.log("选择图片失败:", error);
+						uni.showToast({
+							title: "选择图片失败",
+							icon: "none",
+						});
+					},
+				});
+			},
+
+
+
+
+			// 验证并上传图片
+			validateAndUploadImage(tempFilePath) {
+				const that = this;
+
+				// 获取图片信息
+				uni.getImageInfo({
+					src: tempFilePath,
+					success: (imageInfo) => {
+						console.log("图片信息:", imageInfo);
+
+						// 这里可以添加图片尺寸验证
+						// if (imageInfo.width < 100 || imageInfo.height < 100) {
+						//   uni.showToast({
+						//     title: '图片尺寸过小,建议200×200px以上',
+						//     icon: 'none'
+						//   });
+						//   return;
+						// }
+
+						// 开始上传
+						that.uploadImage(tempFilePath);
+					},
+					fail: (error) => {
+						console.log("获取图片信息失败:", error);
+						that.uploadImage(tempFilePath); // 即使获取信息失败也继续上传
+					},
+				});
+			},
+
+			// 上传图片到服务器
+			uploadImage(filePath) {
+				const that = this;
+				that.uploading = true;
+				that.uploadProgress = 0;
+
+				// 模拟上传进度
+				const progressTimer = setInterval(() => {
+					that.uploadProgress += 10;
+					if (that.uploadProgress >= 90) {
+						clearInterval(progressTimer);
+					}
+				}, 100);
+
+				this.$queue.uploadFile(filePath, (path) => {
+					if (path) {
+						clearInterval(progressTimer);
+						that.uploadProgress = 100;
+						that.logoImage = path
+						uni.showToast({
+							title: '上传成功',
+							icon: 'success'
+						});
+					} else {
+						uni.showToast({
+							title: data.message || '上传失败',
+							icon: 'none'
+						});
+					}
+					setTimeout(() => {
+						that.uploading = false;
+					}, 500);
+				})
+			},
+
+			// 预览图片
+			previewImage() {
+				if (this.logoImage) {
+					uni.previewImage({
+						urls: [this.logoImage],
+						current: 0,
+					});
+				}
+			},
+
+			// 删除图片
+			deleteImage() {
+				const that = this;
+				uni.showModal({
+					title: "提示",
+					content: "确定要删除这个LOGO吗?",
+					success: (res) => {
+						if (res.confirm) {
+							that.logoImage = "";
+							that.uploadProgress = 0;
+						}
+					},
+				});
+			},
+			goJobPostingSecond() {
+				if (!this.logoImage) {
+					uni.showToast({
+						title: "请上传公司LOGO",
+						icon: "none",
+					});
+					return;
+				}
+				
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					companyLogo: this.logoImage
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					if (res.code == 0) {
+						uni.showToast({
+							title: '提交成功',
+							duration: 1500,
+						});
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/my/index'
+							});
+						}, 500)
+					}
+				})
+				// uni.navigateTo({
+				// 	url: `/my/renzheng/companyImg?companyData=${encodeURIComponent(JSON.stringify(companyData))}&update=${true}`,
+				// });
+			},
+		},
+	};
 </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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin-bottom: 20rpx;
-      }
-
-      .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;
-        box-sizing: border-box;
-        margin-bottom: 40rpx;
-      }
-
-      .content-index {
-        width: 100%;
-
-        .upload-section {
-          margin-bottom: 20rpx;
-
-          .upload-box {
-            width: 142rpx;
-            height: 142rpx;
-            border-radius: 8rpx;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            background: #eee;
-            position: relative;
-            overflow: hidden;
-
-            &.has-image {
-              border-style: solid;
-              border-color: #016bf6;
-            }
-
-            .upload-placeholder {
-              display: flex;
-              flex-direction: column;
-              align-items: center;
-              justify-content: center;
-
-              .upload-text {
-                color: #666;
-                font-size: 20rpx;
-                margin-top: 8rpx;
-                font-family: DM Sans;
-              }
-
-              .upload-subtext {
-                color: #999;
-                font-size: 20rpx;
-              }
-            }
-
-            .image-preview {
-              width: 100%;
-              height: 100%;
-              position: relative;
-
-              .preview-image {
-                width: 100%;
-                height: 100%;
-                border-radius: 12rpx;
-              }
-
-              .image-mask {
-                position: absolute;
-                top: 0;
-                left: 0;
-                width: 100%;
-                height: 100%;
-                background: rgba(0, 0, 0, 0.5);
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                opacity: 0;
-                transition: opacity 0.3s;
-
-                &:active {
-                  opacity: 1;
-                }
-              }
-
-              .delete-btn {
-                position: absolute;
-                top: 8rpx;
-                right: 8rpx;
-                width: 30rpx;
-                height: 30rpx;
-                background: rgba(0, 0, 0, 0.5);
-                border-radius: 50%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-              }
-
-              &:active .image-mask {
-                opacity: 1;
-              }
-            }
-          }
-
-          .upload-progress {
-            margin-top: 20rpx;
-            display: flex;
-            align-items: center;
-            gap: 20rpx;
-
-            .progress-bar {
-              flex: 1;
-              height: 8rpx;
-              background: #f0f0f0;
-              border-radius: 4rpx;
-              overflow: hidden;
-
-              .progress-inner {
-                height: 100%;
-                background: #016bf6;
-                border-radius: 4rpx;
-                transition: width 0.3s;
-              }
-            }
-
-            .progress-text {
-              color: #016bf6;
-              font-size: 24rpx;
-              min-width: 80rpx;
-            }
-          }
-        }
-
-        .warning-box {
-          color: rgba(102, 102, 102, 1);
-          font-family: DM Sans;
-          font-size: 24rpx;
-          font-weight: 400;
-          line-height: 32rpx;
-
-          .warning-item {
-            margin-top: 8rpx;
-          }
-        }
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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: 24rpx 32rpx;
-    box-sizing: border-box;
-    margin: 30rpx 40rpx;
-    margin-top: 20rpx;
-
-    &.disabled {
-      background: #ccc;
-      color: #999;
-    }
-  }
-}
-</style>
+	.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+				}
+
+				.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;
+					box-sizing: border-box;
+					margin-bottom: 40rpx;
+				}
+
+				.content-index {
+					width: 100%;
+
+					.upload-section {
+						margin-bottom: 20rpx;
+
+						.upload-box {
+							width: 142rpx;
+							height: 142rpx;
+							border-radius: 8rpx;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							background: #eee;
+							position: relative;
+							overflow: hidden;
+
+							&.has-image {
+								border-style: solid;
+								border-color: #016bf6;
+							}
+
+							.upload-placeholder {
+								display: flex;
+								flex-direction: column;
+								align-items: center;
+								justify-content: center;
+
+								.upload-text {
+									color: #666;
+									font-size: 20rpx;
+									margin-top: 8rpx;
+									font-family: DM Sans;
+								}
+
+								.upload-subtext {
+									color: #999;
+									font-size: 20rpx;
+								}
+							}
+
+							.image-preview {
+								width: 100%;
+								height: 100%;
+								position: relative;
+
+								.preview-image {
+									width: 100%;
+									height: 100%;
+									border-radius: 12rpx;
+								}
+
+								.image-mask {
+									position: absolute;
+									top: 0;
+									left: 0;
+									width: 100%;
+									height: 100%;
+									background: rgba(0, 0, 0, 0.5);
+									display: flex;
+									align-items: center;
+									justify-content: center;
+									opacity: 0;
+									transition: opacity 0.3s;
+
+									&:active {
+										opacity: 1;
+									}
+								}
+
+								.delete-btn {
+									position: absolute;
+									top: 8rpx;
+									right: 8rpx;
+									width: 30rpx;
+									height: 30rpx;
+									background: rgba(0, 0, 0, 0.5);
+									border-radius: 50%;
+									display: flex;
+									align-items: center;
+									justify-content: center;
+								}
+
+								&:active .image-mask {
+									opacity: 1;
+								}
+							}
+						}
+
+						.upload-progress {
+							margin-top: 20rpx;
+							display: flex;
+							align-items: center;
+							gap: 20rpx;
+
+							.progress-bar {
+								flex: 1;
+								height: 8rpx;
+								background: #f0f0f0;
+								border-radius: 4rpx;
+								overflow: hidden;
+
+								.progress-inner {
+									height: 100%;
+									background: #016bf6;
+									border-radius: 4rpx;
+									transition: width 0.3s;
+								}
+							}
+
+							.progress-text {
+								color: #016bf6;
+								font-size: 24rpx;
+								min-width: 80rpx;
+							}
+						}
+					}
+
+					.warning-box {
+						color: rgba(102, 102, 102, 1);
+						font-family: DM Sans;
+						font-size: 24rpx;
+						font-weight: 400;
+						line-height: 32rpx;
+
+						.warning-item {
+							margin-top: 8rpx;
+						}
+					}
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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: 24rpx 32rpx;
+			box-sizing: border-box;
+			margin: 30rpx 40rpx;
+			margin-top: 20rpx;
+
+			&.disabled {
+				background: #ccc;
+				color: #999;
+			}
+		}
+	}
+</style>

+ 371 - 355
my/renzheng/companyMsg.vue

@@ -1,360 +1,376 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="选择公司规模" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>1</text>/8 </view>
-        <view class="title">公司标准工作时间</view>
-        <view class="desc">
-          开始完善公司主页吧,让求职者了解公司、信任职位
-          添加工作时间,标准时间仅为求职者提供参考;不代表公司下所有职位工作时间
-        </view>
-
-        <view class="check-title-big">工作时间</view>
-        <view class="time-picker-container">
-          <view class="time-item-box" @click="showStartTime = true">
-            <view class="time-label">开始时间</view>
-            <view class="time-value time-item">{{ startTime || "请选择开始时间" }}</view>
-          </view>
-          <text class="time-separator">至</text>
-          <view class="time-item-box" @click="showEndTime = true">
-            <view class="time-label">结束时间</view>
-            <view class="time-value time-item">{{ endTime || "请选择结束时间" }}</view>
-          </view>
-        </view>
-
-        <view class="selected-time" v-if="startTime && endTime">
-          已选择:{{ startTime }} - {{ endTime }}
-        </view>
-
-        <view class="check-title-big">休息时间(可选)</view>
-        <view class="check-box">
-          <view class="check-item" :class="{ 'is-check': check == item }" v-for="(item, index) in peopleList"
-            :key="index" @click="checkPeople(item)">
-            {{ item }}
-          </view>
-        </view>
-        <view class="check-title-big">加班情况(可选)</view>
-        <view class="check-box grid-three">
-          <view class="check-item" :class="{ 'is-check': work == item }" v-for="(item, index) in workList" :key="index"
-            @click="checkWork(item)">
-            {{ item }}
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
-
-    <!-- 开始时间选择器 -->
-    <u-picker mode="time" v-model="showStartTime" @confirm="onStartTimeConfirm" :params="timeParams"></u-picker>
-
-    <!-- 结束时间选择器 -->
-    <u-picker mode="time" v-model="showEndTime" @confirm="onEndTimeConfirm" :params="timeParams"></u-picker>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="选择公司规模" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>1</text>/8 </view>
+				<view class="title">公司标准工作时间</view>
+				<view class="desc">
+					开始完善公司主页吧,让求职者了解公司、信任职位
+					添加工作时间,标准时间仅为求职者提供参考;不代表公司下所有职位工作时间
+				</view>
+
+				<view class="check-title-big">工作时间</view>
+				<view class="time-picker-container">
+					<view class="time-item-box" @click="showStartTime = true">
+						<view class="time-label">开始时间</view>
+						<view class="time-value time-item">{{ startTime || "请选择开始时间" }}</view>
+					</view>
+					<text class="time-separator">至</text>
+					<view class="time-item-box" @click="showEndTime = true">
+						<view class="time-label">结束时间</view>
+						<view class="time-value time-item">{{ endTime || "请选择结束时间" }}</view>
+					</view>
+				</view>
+
+				<view class="selected-time" v-if="startTime && endTime">
+					已选择:{{ startTime }} - {{ endTime }}
+				</view>
+
+				<view class="check-title-big">休息时间(可选)</view>
+				<view class="check-box">
+					<view class="check-item" :class="{ 'is-check': check == item }" v-for="(item, index) in peopleList"
+						:key="index" @click="checkPeople(item)">
+						{{ item }}
+					</view>
+				</view>
+				<view class="check-title-big">加班情况(可选)</view>
+				<view class="check-box grid-three">
+					<view class="check-item" :class="{ 'is-check': work == item }" v-for="(item, index) in workList"
+						:key="index" @click="checkWork(item)">
+						{{ item }}
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="submit-btn" @click="goJobPostingSecond">下一步</view>
+
+		<!-- 开始时间选择器 -->
+		<u-picker mode="time" v-model="showStartTime" @confirm="onStartTimeConfirm" :params="timeParams"></u-picker>
+
+		<!-- 结束时间选择器 -->
+		<u-picker mode="time" v-model="showEndTime" @confirm="onEndTimeConfirm" :params="timeParams"></u-picker>
+	</view>
 </template>
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      peopleList: ["单休", "双休"],
-      workList: ["不加班", "偶尔加班", "弹性工作"],
-      check:'单休',
-      work: '不加班',
-      text: "",
-      showStartTime: false,
-      showEndTime: false,
-      startTime: "",
-      endTime: "",
-      timeParams: {
-        year: false,
-        month: false,
-        day: false,
-        hour: true,
-        minute: true,
-        second: false,
-      },
-      numList: [
-        {
-          name: "填写基本信息",
-        },
-        {
-          name: "选择职位要求",
-        },
-      ],
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    if (options.update == 'true') {
-      let companyInfo = uni.getStorageSync('companyInfo');
-      let timeRange = companyInfo.workTime;
-      const times = timeRange.split("-");
-      this.startTime = times[0]
-      this.endTime = times[1]
-      this.check = companyInfo.workRestTime;
-      this.work=companyInfo.workOverTime;
-    }
-    if (options.text) {
-      this.text = options.text;
-    }
-  },
-  methods: {
-    goBusinessLicense() {
-      uni.navigateTo({ url: "/pages/my/businessLicense" });
-    },
-    checkPeople(index) {
-      this.check = index;
-    },
-    checkWork(index) {
-      this.work = index;
-    },
-    // 开始时间确认
-    onStartTimeConfirm(e) {
-      this.startTime = `${e.hour}:${e.minute}`;
-    },
-
-    // 结束时间确认
-    onEndTimeConfirm(e) {
-      this.endTime = `${e.hour}:${e.minute}`;
-    },
-
-    goJobPostingSecond() {
-      // 验证时间选择
-      if (!this.startTime || !this.endTime) {
-        uni.showToast({
-          title: "请选择完整的工作时间",
-          icon: "none",
-        });
-        return;
-      }
-
-      // 这里可以添加时间逻辑验证,比如结束时间不能早于开始时间
-      if (this.compareTime(this.startTime, this.endTime) >= 0) {
-        uni.showToast({
-          title: "结束时间必须晚于开始时间",
-          icon: "none",
-        });
-        return;
-      }
-
-      // 将选择的时间数据传递到下一页或保存
-      const companyData = {
-        workTime: `${this.startTime}-${this.endTime}`,
-        // workRestTime: this.peopleList[this.check],
-        workRestTime: this.check,
-
-        workOverTime: this.work
-      };
-
-      uni.navigateTo({
-        url:
-          "/my/renzheng/companyDev?companyData=" +
-          encodeURIComponent(JSON.stringify(companyData))+'&update=true',
-      });
-    },
-
-    // 比较时间大小
-    compareTime(time1, time2) {
-      const [h1, m1] = time1.split(":").map(Number);
-      const [h2, m2] = time2.split(":").map(Number);
-
-      if (h1 !== h2) {
-        return h1 - h2;
-      }
-      return m1 - m2;
-    },
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				peopleList: ["单休", "双休"],
+				workList: ["不加班", "偶尔加班", "弹性工作"],
+				check: '单休',
+				work: '不加班',
+				text: "",
+				showStartTime: false,
+				showEndTime: false,
+				startTime: "",
+				endTime: "",
+				timeParams: {
+					year: false,
+					month: false,
+					day: false,
+					hour: true,
+					minute: true,
+					second: false,
+				},
+				numList: [{
+						name: "填写基本信息",
+					},
+					{
+						name: "选择职位要求",
+					},
+				],
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			// if (options.update == 'true') {
+				
+			// }
+			// if (options.text) {
+			//   this.text = options.text;
+			// }
+			let companyInfo = uni.getStorageSync('companyInfo');
+			let timeRange = companyInfo.workTime;
+			const times = timeRange?timeRange.split("-"):[];
+			this.startTime = times[0]
+			this.endTime = times[1]
+			this.check = companyInfo.workRestTime;
+			this.work=companyInfo.workOverTime;
+		},
+		methods: {
+			// goBusinessLicense() {
+			// 	uni.navigateTo({
+			// 		url: "/pages/my/businessLicense"
+			// 	});
+			// },
+			checkPeople(index) {
+				this.check = index;
+			},
+			checkWork(index) {
+				this.work = index;
+			},
+			// 开始时间确认
+			onStartTimeConfirm(e) {
+				this.startTime = `${e.hour}:${e.minute}`;
+			},
+
+			// 结束时间确认
+			onEndTimeConfirm(e) {
+				this.endTime = `${e.hour}:${e.minute}`;
+			},
+
+			goJobPostingSecond() {
+				// 验证时间选择
+				if (!this.startTime || !this.endTime) {
+					uni.showToast({
+						title: "请选择完整的工作时间",
+						icon: "none",
+					});
+					return;
+				}
+
+				// 这里可以添加时间逻辑验证,比如结束时间不能早于开始时间
+				if (this.compareTime(this.startTime, this.endTime) >= 0) {
+					uni.showToast({
+						title: "结束时间必须晚于开始时间",
+						icon: "none",
+					});
+					return;
+				}
+
+				// 将选择的时间数据传递到下一页或保存
+				const companyData = {
+					companyId:this.$queue.getData('companyId'),
+					workTime: `${this.startTime}-${this.endTime}`,
+					workRestTime: this.check,
+					workOverTime: this.work
+				};
+				
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					console.log(res)
+					if(res.code == 0){
+						uni.showToast({
+						  title: '提交成功',
+						  duration: 1500,
+						});
+						setTimeout(()=>{
+							uni.switchTab({
+							  url: '/pages/my/index'
+							});
+						},500)
+					}
+				})
+				
+				// uni.navigateTo({
+				//   url:
+				//     "/my/renzheng/companyDev?companyData=" +
+				//     encodeURIComponent(JSON.stringify(companyData))+'&update=true',
+				// });
+			},
+
+			// 比较时间大小
+			compareTime(time1, time2) {
+				const [h1, m1] = time1.split(":").map(Number);
+				const [h2, m2] = time2.split(":").map(Number);
+
+				if (h1 !== h2) {
+					return h1 - h2;
+				}
+				return m1 - m2;
+			},
+		},
+	};
 </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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-      }
-
-      .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;
-      }
-
-      .time-picker-container {
-        width: 100%;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        margin-bottom: 20rpx;
-
-        .time-item-box {
-          text-align: center;
-          min-width: 40%;
-        }
-
-        .time-item {
-          flex: 1;
-          border-radius: 100rpx;
-          padding: 20rpx 32rpx;
-          box-sizing: border-box;
-          border: 2rpx solid rgba(227, 231, 236, 1);
-          display: flex;
-          flex-direction: column;
-          align-items: center;
-        }
-
-        .time-label {
-          color: rgba(153, 153, 153, 1);
-          font-family: DM Sans;
-          font-size: 20rpx;
-          font-weight: 400;
-          padding-bottom: 20rpx;
-          box-sizing: border-box;
-        }
-
-        .time-value {
-          color: rgba(51, 51, 51, 1);
-          font-family: DM Sans;
-          font-size: 24rpx;
-          font-weight: 500;
-        }
-
-        .time-separator {
-          margin: 0 20rpx;
-          padding-top: 40rpx;
-          box-sizing: border-box;
-          color: rgba(102, 102, 102, 1);
-          font-family: DM Sans;
-          font-size: 24rpx;
-          font-weight: 500;
-        }
-      }
-
-      .selected-time {
-        width: 100%;
-        text-align: center;
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 28rpx;
-        font-weight: 500;
-        margin-bottom: 20rpx;
-        padding: 16rpx;
-        background: rgba(245, 248, 254, 1);
-        border-radius: 16rpx;
-      }
-
-      .check-title-big {
-        color: rgba(31, 44, 55, 1);
-        font-family: DM Sans;
-        font-size: 28rpx;
-        font-weight: 500;
-        line-height: 44rpx;
-        letter-spacing: 0.5%;
-        width: 100%;
-        padding: 20rpx 0;
-        box-sizing: border-box;
-      }
-
-      .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;
-        }
-      }
-
-      .grid-three {
-        grid-template-columns: repeat(3, 1fr) !important;
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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 62rpx;
-  }
-}
-</style>
+	.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+				}
+
+				.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;
+				}
+
+				.time-picker-container {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					margin-bottom: 20rpx;
+
+					.time-item-box {
+						text-align: center;
+						min-width: 40%;
+					}
+
+					.time-item {
+						flex: 1;
+						border-radius: 100rpx;
+						padding: 20rpx 32rpx;
+						box-sizing: border-box;
+						border: 2rpx solid rgba(227, 231, 236, 1);
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+					}
+
+					.time-label {
+						color: rgba(153, 153, 153, 1);
+						font-family: DM Sans;
+						font-size: 20rpx;
+						font-weight: 400;
+						padding-bottom: 20rpx;
+						box-sizing: border-box;
+					}
+
+					.time-value {
+						color: rgba(51, 51, 51, 1);
+						font-family: DM Sans;
+						font-size: 24rpx;
+						font-weight: 500;
+					}
+
+					.time-separator {
+						margin: 0 20rpx;
+						padding-top: 40rpx;
+						box-sizing: border-box;
+						color: rgba(102, 102, 102, 1);
+						font-family: DM Sans;
+						font-size: 24rpx;
+						font-weight: 500;
+					}
+				}
+
+				.selected-time {
+					width: 100%;
+					text-align: center;
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 28rpx;
+					font-weight: 500;
+					margin-bottom: 20rpx;
+					padding: 16rpx;
+					background: rgba(245, 248, 254, 1);
+					border-radius: 16rpx;
+				}
+
+				.check-title-big {
+					color: rgba(31, 44, 55, 1);
+					font-family: DM Sans;
+					font-size: 28rpx;
+					font-weight: 500;
+					line-height: 44rpx;
+					letter-spacing: 0.5%;
+					width: 100%;
+					padding: 20rpx 0;
+					box-sizing: border-box;
+				}
+
+				.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;
+					}
+				}
+
+				.grid-three {
+					grid-template-columns: repeat(3, 1fr) !important;
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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 62rpx;
+		}
+	}
+</style>

+ 24 - 76
my/renzheng/editCompany.vue

@@ -11,8 +11,8 @@
             <image src="@/static/images/my/my/right.svg" mode="scaleToFill" class="right" v-else />
           </view>
         </view>
-        <view class="ms-item-content" v-if="baseMsg" @click="goCompanyMsg">
-          <view class="name-content-item">
+        <view class="ms-item-content" v-if="baseMsg">
+          <view class="name-content-item" @click="goCompanyMsg(1)">
             <view class="name-item">品牌logo</view>
             <view class="value-item">
               <text v-if="!companyinfo.companyLogo">未添加</text>
@@ -36,7 +36,7 @@
               <u-icon name="arrow-right" color="#999" size="20"></u-icon>
             </view>
           </view>
-          <view class="name-content-item">
+          <view class="name-content-item" @click="goCompanyMsg(2)">
             <view class="name-item">融资阶段</view>
             <view class="value-item">
               <text v-if="!companyinfo.companyDevelop">未添加</text>
@@ -62,8 +62,8 @@
             <image src="@/static/images/my/my/right.svg" mode="scaleToFill" class="right" v-else />
           </view>
         </view>
-        <view class="ms-item-content" v-if="companyFund" @click="goCompanyMsg">
-          <view class="name-content-item">
+        <view class="ms-item-content" v-if="companyFund">
+          <view class="name-content-item" @click="goCompanyMsg(3)">
             <view class="name-item">标准工作时间</view>
             <view class="value-item">
               <text v-if="!companyinfo.workTime">未添加</text>
@@ -71,7 +71,7 @@
               <u-icon name="arrow-right" color="#999" size="20"></u-icon>
             </view>
           </view>
-          <view class="name-content-item">
+          <view class="name-content-item" @click="goCompanyMsg(4)">
             <view class="name-item">福利待遇</view>
             <view class="value-item">
               <text v-if="!companyinfo.welfare">未添加</text>
@@ -82,104 +82,40 @@
         </view>
       </view>
       <view class="ms-item">
-        <view class="ms-item-title" @click="goCompanyMsg">
+        <view class="ms-item-title" @click="goCompanyMsg(5)">
           <view class="ms-title-txt">公司介绍</view>
           <view class="ms-title-icon">
             <text v-if="!companyinfo.companyContent">未添加</text>
             <text v-else>已添加</text>
           </view>
         </view>
-        <!-- <view class="ms-item-content" v-if="companyDetail">
-          <view class="name-content-item">
-            <view class="name-item">标准工作时间</view>
-            <view class="value-item">
-              <text>09:00-18:00</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-          <view class="name-content-item">
-            <view class="name-item">福利待遇</view>
-            <view class="value-item"
-              ><text>已添加2项</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-        </view> -->
       </view>
       <view class="ms-item">
-        <view class="ms-item-title" @click="goCompanyMsg">
+        <view class="ms-item-title" @click="goCompanyMsg(6)">
           <view class="ms-title-txt">主营业务</view>
           <view class="ms-title-icon">
             <text v-if="!companyinfo.companyScope">未添加</text>
             <text v-else>已添加{{ companyinfo.companyScope.split(',').length }}项</text>
           </view>
         </view>
-        <!-- <view class="ms-item-content" v-if="mainWork">
-          <view class="name-content-item">
-            <view class="name-item">标准工作时间</view>
-            <view class="value-item">
-              <text>09:00-18:00</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-          <view class="name-content-item">
-            <view class="name-item">福利待遇</view>
-            <view class="value-item"
-              ><text>已添加2项</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-        </view> -->
       </view>
       <view class="ms-item">
-        <view class="ms-item-title" @click="goCompanyMsg">
+        <view class="ms-item-title" @click="goCompanyMsg(7)">
           <view class="ms-title-txt">公司相册</view>
           <view class="ms-title-icon">
             <text v-if="!companyinfo.photos">未添加</text>
             <text v-else>已添加{{ companyinfo.photos.split(',').length }}张</text>
           </view>
         </view>
-        <!-- <view class="ms-item-content" v-if="companyImg">
-          <view class="name-content-item">
-            <view class="name-item">标准工作时间</view>
-            <view class="value-item">
-              <text>09:00-18:00</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-          <view class="name-content-item">
-            <view class="name-item">福利待遇</view>
-            <view class="value-item"
-              ><text>已添加2项</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-        </view> -->
       </view>
       <view class="ms-item">
-        <view class="ms-item-title" @click="goCompanyMsg">
+        <view class="ms-item-title" @click="goCompanyMsg(8)">
           <view class="ms-title-txt">人才发展</view>
           <view class="ms-title-icon">
             <text v-if="!companyinfo.companyPeopleDevelop">未添加</text>
             <text v-else>已添加{{ companyinfo.companyPeopleDevelop.split(',').length }}项</text>
           </view>
         </view>
-        <!-- <view class="ms-item-content" v-if="peopleDev">
-          <view class="name-content-item">
-            <view class="name-item">标准工作时间</view>
-            <view class="value-item">
-              <text>09:00-18:00</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-          <view class="name-content-item">
-            <view class="name-item">福利待遇</view>
-            <view class="value-item"
-              ><text>已添加2项</text>
-              <u-icon name="arrow-right" color="#999" size="20"></u-icon>
-            </view>
-          </view>
-        </view> -->
       </view>
     </view>
   </view>
@@ -240,13 +176,25 @@ export default {
     checkPeopleDev() {
       this.peopleDev = !this.peopleDev;
     },
-    goCompanyMsg() {
+    goCompanyMsg(type) {
       uni.setStorageSync('companyInfo', this.companyinfo);
       if (this.isNo) {
         uni.showToast({title:'暂无公司信息!',icon:'none'})
         return;
       }
-      uni.navigateTo({ url: `/my/renzheng/companyMsg?update=${true}` })
+	 
+	  const pageMap = {
+	    1: '/my/renzheng/companyLogo',      // 品牌logo
+	    2: '/my/renzheng/companyDev',       // 融资阶段
+	    3: '/my/renzheng/companyMsg',       // 标准工作时间
+	    4: '/my/renzheng/companyFund',      // 福利待遇
+	    5: '/my/renzheng/editCompanyDesc',  // 公司介绍
+	    6: '/my/renzheng/mainWorkIntro',    // 主营业务
+	    7: '/my/renzheng/companyImg',       // 公司相册
+	    8: '/my/renzheng/peopleDev'         // 人才发展
+	  }
+	  const url = pageMap[type]
+	  uni.navigateTo({ url })
     },
     // 查询用户企业状态
     getcompanystatus() {

+ 214 - 195
my/renzheng/editCompanyDesc.vue

@@ -1,202 +1,221 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="公司信息" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>5</text>/8 </view>
-        <view class="title">
-          <view>编辑公司简介</view>
-        </view>
-        <view class="desc"> 可以简单介绍一下公司发展状况、服务领域、主要产品等信息</view>
-        <view class="small-desc">一句短介绍</view>
-        <view class="content-index">
-          <view class="check-box">
-            <textarea
-              v-model="text"
-              placeholder="填写公司介绍(最少10个字)"
-              maxlength="500"
-              class="textarea"
-            ></textarea>
-            <view class="word-count">
-              <text>{{ text ? text.length : 0 }}</text> /500</view
-            >
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="公司信息" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>5</text>/8 </view>
+				<view class="title">
+					<view>编辑公司简介</view>
+				</view>
+				<view class="desc"> 可以简单介绍一下公司发展状况、服务领域、主要产品等信息</view>
+				<view class="small-desc">一句短介绍</view>
+				<view class="content-index">
+					<view class="check-box">
+						<textarea v-model="text" placeholder="填写公司介绍(最少10个字)" maxlength="500"
+							class="textarea"></textarea>
+						<view class="word-count">
+							<text>{{ text ? text.length : 0 }}</text> /500
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="submit-btn" @click="goJobPostingSecond">下一步</view>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      text: "",
-	  companyData:{}
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    if (options.update == 'true') {
-      let companyInfo = uni.getStorageSync('companyInfo');
-      this.text=companyInfo.companyContent
-
-    }
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-    }
-  },
-  methods: {
-    goJobPostingSecond(){
-		const companyData = this.companyData
-		if (this.text === '') {
-		  uni.showToast({
-		    title: "请填写公司介绍",
-		    icon: "none",
-		  });
-		  return;
-		}
-		if (this.text.length < 10) {
-		  uni.showToast({
-		    title: "公司介绍最少10个字",
-		    icon: "none",
-		  });
-		  return;
-		}
-		companyData.companyContent=this.text
-        uni.navigateTo({ url: `/my/renzheng/companyLogo?companyData=${encodeURIComponent(JSON.stringify(companyData))}&update=${true}`
-           })
-    }
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				text: "",
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			let companyInfo = uni.getStorageSync('companyInfo');
+			this.text = companyInfo.companyContent
+			// if (options.companyData) {
+			// 	this.companyData = JSON.parse(options.companyData);
+			// }
+		},
+		methods: {
+			goJobPostingSecond() {
+				if (this.text === '') {
+					uni.showToast({
+						title: "请填写公司介绍",
+						icon: "none",
+					});
+					return;
+				}
+				if (this.text.length < 10) {
+					uni.showToast({
+						title: "公司介绍最少10个字",
+						icon: "none",
+					});
+					return;
+				}
+				// companyData.companyContent = this.text
+				
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					companyContent: this.text
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					if (res.code == 0) {
+						uni.showToast({
+							title: '提交成功',
+							duration: 1500,
+						});
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/my/index'
+							});
+						}, 500)
+					}
+				})
+				// uni.navigateTo({
+				// 	url: `/my/renzheng/companyLogo?companyData=${encodeURIComponent(JSON.stringify(companyData))}&update=${true}`
+				// })
+			}
+		},
+	};
 </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;
-  .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;
-      }
-    }
-  }
-  .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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin-bottom: 20rpx;
-      }
-
-      .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;
-        box-sizing: border-box;
-        margin-bottom: 20rpx;
-      }
-      .small-desc {
-        color: rgba(34, 37, 42, 1);
-        font-family: DM Sans;
-        font-size: 32rpx;
-        font-weight: 400;
-        line-height: 48rpx;
-        width: 100%;
-      }
-      .content-index {
-        width: 100%;
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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: 24rpx 32rpx;
-    box-sizing: border-box;
-    margin: 30rpx 40rpx;
-    margin-top: 20rpx;
-  }
-}
-::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>
+	.switch-roles {
+		background-color: #fff;
+		position: absolute;
+		left: 0;
+		right: 0;
+		top: 0;
+		bottom: 0;
+		display: flex;
+		flex-direction: column;
+
+		.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;
+				}
+			}
+		}
+
+		.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+				}
+
+				.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;
+					box-sizing: border-box;
+					margin-bottom: 20rpx;
+				}
+
+				.small-desc {
+					color: rgba(34, 37, 42, 1);
+					font-family: DM Sans;
+					font-size: 32rpx;
+					font-weight: 400;
+					line-height: 48rpx;
+					width: 100%;
+				}
+
+				.content-index {
+					width: 100%;
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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: 24rpx 32rpx;
+			box-sizing: border-box;
+			margin: 30rpx 40rpx;
+			margin-top: 20rpx;
+		}
+	}
+
+	::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>

+ 453 - 539
my/renzheng/mainWorkIntro.vue

@@ -1,547 +1,461 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="公司信息" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>8</text>/8 </view>
-        <view class="title">
-          <view>主营业务介绍</view>
-        </view>
-        <view class="desc">
-          介绍公司主营业务及旗下的产品信息,可有效提升求职者对公司及品牌的认知
-        </view>
-        <view class="content-index">
-          <view class="content-item">
-            <view class="content-item-title">主营产品</view>
-            <view class="check-box">
-              <view
-                class="check-item"
-                :class="{ 'check-active': selectedProducts.includes(item) }"
-                v-for="(item, index) in productList"
-                :key="index"
-                @click="toggleProduct(item)"
-                >{{ item }}</view
-              >
-            </view>
-          </view>
-          <view class="content-item">
-            <view class="content-item-title">自定义</view>
-            <!-- 自定义标签显示区域 -->
-            <view class="custom-tags-box">
-              <view
-                class="check-item custom-tag"
-                :class="{ 'check-active': selectedCustomTags.includes(tag) }"
-                v-for="(tag, index) in customTags"
-                :key="'custom-' + index"
-                @click="toggleCustomTag(tag)"
-              >
-                {{ tag }}
-                <text class="delete-tag" @click.stop="deleteCustomTag(index)">×</text>
-              </view>
-              <!-- 添加按钮 -->
-              <view class="add-tag-btn" @click="showAddDialog">
-                <text class="add-text">添加</text>
-                <image
-                  class="add-icon"
-                  src="@/static/images/my/my/add.svg"
-                  mode="aspectFix"
-                />
-              </view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
-
-    <!-- 添加标签弹框 -->
-    <u-modal
-      v-model="showDialog"
-      :show-cancel-button="true"
-      confirm-text="确定"
-      cancel-text="取消"
-      title="添加标签"
-      @confirm="confirmAddTag"
-      @cancel="cancelAddTag"
-    >
-      <view class="dialog-content">
-        <u-input
-          v-model="tempTag"
-          type="text"
-          :border="true"
-          :clearable="true"
-          input-align="left"
-          placeholder="请输入标签内容"
-          maxlength="20"
-          @confirm="confirmAddTag"
-        />
-        <view class="input-tips">最多输入20个字符</view>
-      </view>
-    </u-modal>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="公司信息" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>8</text>/8 </view>
+				<view class="title">
+					<view>主营业务介绍</view>
+				</view>
+				<view class="desc">
+					介绍公司主营业务及旗下的产品信息,可有效提升求职者对公司及品牌的认知
+				</view>
+				<view class="content-index">
+					<view class="content-item">
+						<view class="content-item-title">主营产品</view>
+						<view class="check-box">
+							<view class="check-item" :class="{ 'check-active': selectedProducts.includes(item) }"
+								v-for="(item, index) in productList" :key="index" @click="toggleProduct(item)">
+								{{ item }}</view>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">自定义</view>
+						<!-- 自定义标签显示区域 -->
+						<view class="custom-tags-box">
+							<view class="check-item custom-tag"
+								:class="{ 'check-active': selectedCustomTags.includes(tag) }"
+								v-for="(tag, index) in customTags" :key="'custom-' + index"
+								@click="toggleCustomTag(tag)">
+								{{ tag }}
+								<text class="delete-tag" @click.stop="deleteCustomTag(index)">×</text>
+							</view>
+							<!-- 添加按钮 -->
+							<view class="add-tag-btn" @click="showAddDialog">
+								<text class="add-text">添加</text>
+								<image class="add-icon" src="@/static/images/my/my/add.svg" mode="aspectFix" />
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="submit-btn" @click="goJobPostingSecond">下一步</view>
+
+		<!-- 添加标签弹框 -->
+		<u-modal v-model="showDialog" :show-cancel-button="true" confirm-text="确定" cancel-text="取消" title="添加标签"
+			@confirm="confirmAddTag" @cancel="cancelAddTag">
+			<view class="dialog-content">
+				<u-input v-model="tempTag" type="text" :border="true" :clearable="true" input-align="left"
+					placeholder="请输入标签内容" maxlength="20" @confirm="confirmAddTag" />
+				<view class="input-tips">最多输入20个字符</view>
+			</view>
+		</u-modal>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      // 主营产品列表
-      productList: [
-        "3C数码",
-        "美妆日化",
-        "智能家居",
-        "宠物相机",
-        "监控摄像头",
-        "家装产品",
-        "耗材",
-        "装修材料",
-        "卫浴产品",
-      ],
-      // 选中的产品
-      selectedProducts: [],
-      // 自定义标签列表
-      customTags: [],
-      // 选中的自定义标签
-      selectedCustomTags: [],
-      // 弹框显示控制
-      showDialog: false,
-      // 临时标签输入
-      tempTag: "",
-      companyData: {},
-      isUpdateMode: false // 新增:标记是否为编辑模式
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    // 判断是否为编辑模式
-    if (options.update == 'true') {
-      this.isUpdateMode = true;
-      this.loadSavedCompanyScope();
-    }
-    
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-      console.log('接收到的companyData:', this.companyData);
-      
-      // 如果companyData中有业务范围数据,处理显示
-      if (this.companyData.companyScope) {
-        this.processCompanyScope(this.companyData.companyScope);
-      }
-    }
-  },
-  methods: {
-    // 加载已保存的业务范围数据(从缓存)
-    loadSavedCompanyScope() {
-      try {
-        let companyInfo = uni.getStorageSync('companyInfo');
-        console.log('从缓存获取的公司信息:', companyInfo);
-        
-        if (companyInfo?.companyScope) {
-          this.processCompanyScope(companyInfo.companyScope);
-          console.log('已加载保存的业务范围数据');
-        } else {
-          console.log('缓存中没有业务范围数据');
-        }
-      } catch (error) {
-        console.error('加载业务范围数据失败:', error);
-      }
-    },
-    
-    // 处理业务范围数据
-    processCompanyScope(scopeString) {
-      if (!scopeString) return;
-      
-      // 处理字符串:替换中文逗号,分割,过滤空值
-      const scopeItems = scopeString
-        .replace(/,/g, ',')
-        .split(',')
-        .map(item => item.trim())
-        .filter(item => item);
-      
-      console.log('解析后的业务范围:', scopeItems);
-      
-      // 清空当前选择
-      this.selectedProducts = [];
-      this.customTags = [];
-      this.selectedCustomTags = [];
-      
-      // 分离标准产品和自定义标签
-      scopeItems.forEach(item => {
-        if (this.productList.includes(item)) {
-          // 是标准产品
-          this.selectedProducts.push(item);
-        } else {
-          // 是自定义标签
-          this.customTags.push(item);
-          this.selectedCustomTags.push(item); // 自定义标签默认都是选中的
-        }
-      });
-    },
-    
-    // 更新缓存中的业务范围
-    updateCacheCompanyScope() {
-      try {
-        let companyInfo = uni.getStorageSync('companyInfo');
-        if (companyInfo) {
-          // 获取所有选中的标签
-          const allSelectedTags = [...this.selectedProducts, ...this.selectedCustomTags];
-          companyInfo.companyScope = allSelectedTags.join(',');
-          uni.setStorageSync('companyInfo', companyInfo);
-          console.log('已更新缓存中的业务范围数据:', companyInfo.companyScope);
-        }
-      } catch (error) {
-        console.error('更新缓存业务范围失败:', error);
-      }
-    },
-    
-    // 切换产品选择
-    toggleProduct(product) {
-      const index = this.selectedProducts.indexOf(product);
-      if (index > -1) {
-        this.selectedProducts.splice(index, 1);
-      } else {
-        this.selectedProducts.push(product);
-      }
-    },
-
-    // 显示添加标签弹框
-    showAddDialog() {
-      this.tempTag = "";
-      this.showDialog = true;
-    },
-
-    // 确认添加标签
-    confirmAddTag() {
-      if (this.tempTag.trim() === "") {
-        uni.showToast({
-          title: "请输入标签内容",
-          icon: "none",
-        });
-        return;
-      }
-
-      if (this.customTags.includes(this.tempTag.trim())) {
-        uni.showToast({
-          title: "标签已存在",
-          icon: "none",
-        });
-        return;
-      }
-
-      // 检查是否与标准产品重复
-      if (this.productList.includes(this.tempTag.trim())) {
-        uni.showToast({
-          title: "该标签已存在于主营产品列表中",
-          icon: "none",
-        });
-        return;
-      }
-
-      const newTag = this.tempTag.trim();
-      this.customTags.push(newTag);
-      this.selectedCustomTags.push(newTag); // 新增的自定义标签默认选中
-      this.showDialog = false;
-      this.tempTag = "";
-    },
-
-    // 取消添加标签
-    cancelAddTag() {
-      this.showDialog = false;
-      this.tempTag = "";
-    },
-
-    // 切换自定义标签选择
-    toggleCustomTag(tag) {
-      const index = this.selectedCustomTags.indexOf(tag);
-      if (index > -1) {
-        this.selectedCustomTags.splice(index, 1);
-      } else {
-        this.selectedCustomTags.push(tag);
-      }
-    },
-
-    // 删除自定义标签
-    deleteCustomTag(index) {
-      const tag = this.customTags[index];
-      // 如果这个标签被选中了,先从选中列表中移除
-      const selectedIndex = this.selectedCustomTags.indexOf(tag);
-      if (selectedIndex > -1) {
-        this.selectedCustomTags.splice(selectedIndex, 1);
-      }
-      // 删除标签
-      this.customTags.splice(index, 1);
-    },
-
-    goJobPostingSecond() {
-      // 获取所有选中的标签
-      const allSelectedTags = [...this.selectedProducts, ...this.selectedCustomTags];
-
-      if (allSelectedTags.length === 0) {
-        uni.showToast({
-          title: "请至少选择一个业务标签",
-          icon: "none",
-        });
-        return;
-      }
-
-      console.log("选中的业务标签:", allSelectedTags);
-      
-      const companyData = {
-        ...this.companyData,
-        companyScope: allSelectedTags.join(',')
-      };
-      
-      // 如果是编辑模式,同时更新缓存
-      if (this.isUpdateMode) {
-        this.updateCacheCompanyScope();
-      }
-      
-      // 提交公司信息
-      const data = { 
-        ...{companyId: this.$queue.getData('companyId')},
-        ...companyData
-      };
-      
-      this.$Request.postJson('/app/company/updateCompany', data).then(res => {
-        console.log(res);
-        if (res.code == 0) {
-          // 提交成功后,如果是编辑模式,更新缓存中的完整数据
-          if (this.isUpdateMode) {
-            try {
-              let companyInfo = uni.getStorageSync('companyInfo');
-              if (companyInfo) {
-                // 更新所有字段
-                Object.assign(companyInfo, companyData);
-                uni.setStorageSync('companyInfo', companyInfo);
-                console.log('已更新完整缓存数据');
-              }
-            } catch (error) {
-              console.error('更新完整缓存失败:', error);
-            }
-          }
-          
-          uni.showToast({
-            title: '提交成功',
-            duration: 1500,
-          });
-          
-          setTimeout(() => {
-            uni.switchTab({
-              url: '/pages/my/index'
-            });
-          }, 1500);
-        } else {
-          this.$queue.showToast(res.msg);
-        }
-      });
-    },
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				// 主营产品列表
+				productList: [
+					"3C数码",
+					"美妆日化",
+					"智能家居",
+					"宠物相机",
+					"监控摄像头",
+					"家装产品",
+					"耗材",
+					"装修材料",
+					"卫浴产品",
+				],
+				// 选中的产品
+				selectedProducts: [],
+				// 自定义标签列表
+				customTags: [],
+				// 选中的自定义标签
+				selectedCustomTags: [],
+				// 弹框显示控制
+				showDialog: false,
+				// 临时标签输入
+				tempTag: ""
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			this.loadSavedCompanyScope();
+		},
+		methods: {
+			// 加载已保存的业务范围数据(从缓存)
+			loadSavedCompanyScope() {
+				try {
+					let companyInfo = uni.getStorageSync('companyInfo');
+					console.log('从缓存获取的公司信息:', companyInfo);
+
+					if (companyInfo?.companyScope) {
+						this.processCompanyScope(companyInfo.companyScope);
+						console.log('已加载保存的业务范围数据');
+					} else {
+						console.log('缓存中没有业务范围数据');
+					}
+				} catch (error) {
+					console.error('加载业务范围数据失败:', error);
+				}
+			},
+
+			// 处理业务范围数据
+			processCompanyScope(scopeString) {
+				if (!scopeString) return;
+
+				// 处理字符串:替换中文逗号,分割,过滤空值
+				const scopeItems = scopeString
+					.replace(/,/g, ',')
+					.split(',')
+					.map(item => item.trim())
+					.filter(item => item);
+
+				console.log('解析后的业务范围:', scopeItems);
+
+				// 清空当前选择
+				this.selectedProducts = [];
+				this.customTags = [];
+				this.selectedCustomTags = [];
+
+				// 分离标准产品和自定义标签
+				scopeItems.forEach(item => {
+					if (this.productList.includes(item)) {
+						// 是标准产品
+						this.selectedProducts.push(item);
+					} else {
+						// 是自定义标签
+						this.customTags.push(item);
+						this.selectedCustomTags.push(item); // 自定义标签默认都是选中的
+					}
+				});
+			},
+
+			// 切换产品选择
+			toggleProduct(product) {
+				const index = this.selectedProducts.indexOf(product);
+				if (index > -1) {
+					this.selectedProducts.splice(index, 1);
+				} else {
+					this.selectedProducts.push(product);
+				}
+			},
+
+			// 显示添加标签弹框
+			showAddDialog() {
+				this.tempTag = "";
+				this.showDialog = true;
+			},
+
+			// 确认添加标签
+			confirmAddTag() {
+				if (this.tempTag.trim() === "") {
+					uni.showToast({
+						title: "请输入标签内容",
+						icon: "none",
+					});
+					return;
+				}
+
+				if (this.customTags.includes(this.tempTag.trim())) {
+					uni.showToast({
+						title: "标签已存在",
+						icon: "none",
+					});
+					return;
+				}
+
+				// 检查是否与标准产品重复
+				if (this.productList.includes(this.tempTag.trim())) {
+					uni.showToast({
+						title: "该标签已存在于主营产品列表中",
+						icon: "none",
+					});
+					return;
+				}
+
+				const newTag = this.tempTag.trim();
+				this.customTags.push(newTag);
+				this.selectedCustomTags.push(newTag); // 新增的自定义标签默认选中
+				this.showDialog = false;
+				this.tempTag = "";
+			},
+
+			// 取消添加标签
+			cancelAddTag() {
+				this.showDialog = false;
+				this.tempTag = "";
+			},
+
+			// 切换自定义标签选择
+			toggleCustomTag(tag) {
+				const index = this.selectedCustomTags.indexOf(tag);
+				if (index > -1) {
+					this.selectedCustomTags.splice(index, 1);
+				} else {
+					this.selectedCustomTags.push(tag);
+				}
+			},
+
+			// 删除自定义标签
+			deleteCustomTag(index) {
+				const tag = this.customTags[index];
+				// 如果这个标签被选中了,先从选中列表中移除
+				const selectedIndex = this.selectedCustomTags.indexOf(tag);
+				if (selectedIndex > -1) {
+					this.selectedCustomTags.splice(selectedIndex, 1);
+				}
+				// 删除标签
+				this.customTags.splice(index, 1);
+			},
+
+			goJobPostingSecond() {
+				// 获取所有选中的标签
+				const allSelectedTags = [...this.selectedProducts, ...this.selectedCustomTags];
+
+				if (allSelectedTags.length === 0) {
+					uni.showToast({
+						title: "请至少选择一个业务标签",
+						icon: "none",
+					});
+					return;
+				}
+
+				console.log("选中的业务标签:", allSelectedTags);
+
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					companyScope: allSelectedTags.join(',')
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					if (res.code == 0) {
+						uni.showToast({
+							title: '提交成功',
+							duration: 1500,
+						});
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/my/index'
+							});
+						}, 500)
+					}
+				})
+			},
+		},
+	};
 </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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin-bottom: 20rpx;
-      }
-
-      .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;
-        margin-bottom: 20rpx;
-      }
-
-      .content-index {
-        width: 100%;
-
-        .content-item {
-          margin-bottom: 40rpx;
-
-          .content-item-title {
-            color: rgba(34, 37, 42, 1);
-            font-family: DM Sans;
-            font-size: 32rpx;
-            font-weight: 400;
-            line-height: 48rpx;
-            padding-bottom: 12rpx;
-            box-sizing: border-box;
-          }
-
-          .check-box {
-            display: flex;
-            gap: 12rpx;
-            flex-wrap: wrap;
-            align-items: center;
-          }
-
-          // 自定义标签区域
-          .custom-tags-box {
-            display: flex;
-            gap: 12rpx;
-            flex-wrap: wrap;
-            align-items: center;
-
-            .custom-tag {
-              position: relative;
-              padding-right: 30rpx;
-
-              .delete-tag {
-                position: absolute;
-                right: 8rpx;
-                top: 50%;
-                transform: translateY(-50%);
-                font-size: 18rpx;
-                color: #999;
-                width: 20rpx;
-                height: 20rpx;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-              }
-            }
-
-            .add-tag-btn {
-              flex-shrink: 0;
-              padding: 8rpx 16rpx;
-              border-radius: 8rpx;
-              background: #9999991a;
-              border: 1rpx solid #9999991a;
-              box-sizing: border-box;
-              color: rgba(102, 102, 102, 1);
-              font-family: DM Sans;
-              font-size: 16rpx;
-              font-weight: 400;
-              display: flex;
-              align-items: center;
-              gap: 4rpx;
-              .add-text {
-                color: #016bf6;
-              }
-              .add-icon {
-                width: 16rpx;
-                height: 16rpx;
-              }
-            }
-          }
-        }
-      }
-      .check-item {
-        flex-shrink: 0;
-        padding: 8rpx 16rpx;
-        border-radius: 8rpx;
-        background: #9999991a;
-        border: 1rpx solid #9999991a;
-        box-sizing: border-box;
-        color: rgba(102, 102, 102, 1);
-        font-family: DM Sans;
-        font-size: 16rpx;
-        font-weight: 400;
-      }
-
-      .check-active {
-        box-sizing: border-box;
-        border: 1rpx solid #016bf6;
-        border-radius: 8rpx;
-        background: rgba(252, 233, 220, 1);
-        color: #016bf6;
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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: 24rpx 32rpx;
-    box-sizing: border-box;
-    margin: 30rpx 40rpx;
-    margin-top: 20rpx;
-  }
-}
-
-// 弹框内容样式
-.dialog-content {
-  padding: 40rpx;
-  box-sizing: border-box;
-  
-  .input-tips {
-    color: #999;
-    font-size: 24rpx;
-    text-align: right;
-    margin-top: 10rpx;
-  }
-}
-
-// 输入框placeholder样式
-.input-placeholder {
-  color: rgba(153, 153, 153, 1);
-  font-family: DM Sans;
-  font-size: 16rpx;
-  font-weight: 400;
-}
+	.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+				}
+
+				.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;
+					margin-bottom: 20rpx;
+				}
+
+				.content-index {
+					width: 100%;
+
+					.content-item {
+						margin-bottom: 40rpx;
+
+						.content-item-title {
+							color: rgba(34, 37, 42, 1);
+							font-family: DM Sans;
+							font-size: 32rpx;
+							font-weight: 400;
+							line-height: 48rpx;
+							padding-bottom: 12rpx;
+							box-sizing: border-box;
+						}
+
+						.check-box {
+							display: flex;
+							gap: 12rpx;
+							flex-wrap: wrap;
+							align-items: center;
+						}
+
+						// 自定义标签区域
+						.custom-tags-box {
+							display: flex;
+							gap: 12rpx;
+							flex-wrap: wrap;
+							align-items: center;
+
+							.custom-tag {
+								position: relative;
+								padding-right: 30rpx;
+
+								.delete-tag {
+									position: absolute;
+									right: 8rpx;
+									top: 50%;
+									transform: translateY(-50%);
+									font-size: 18rpx;
+									color: #999;
+									width: 20rpx;
+									height: 20rpx;
+									display: flex;
+									align-items: center;
+									justify-content: center;
+								}
+							}
+
+							.add-tag-btn {
+								flex-shrink: 0;
+								padding: 8rpx 16rpx;
+								border-radius: 8rpx;
+								background: #9999991a;
+								border: 1rpx solid #9999991a;
+								box-sizing: border-box;
+								color: rgba(102, 102, 102, 1);
+								font-family: DM Sans;
+								font-size: 16rpx;
+								font-weight: 400;
+								display: flex;
+								align-items: center;
+								gap: 4rpx;
+
+								.add-text {
+									color: #016bf6;
+								}
+
+								.add-icon {
+									width: 16rpx;
+									height: 16rpx;
+								}
+							}
+						}
+					}
+				}
+
+				.check-item {
+					flex-shrink: 0;
+					padding: 8rpx 16rpx;
+					border-radius: 8rpx;
+					background: #9999991a;
+					border: 1rpx solid #9999991a;
+					box-sizing: border-box;
+					color: rgba(102, 102, 102, 1);
+					font-family: DM Sans;
+					font-size: 16rpx;
+					font-weight: 400;
+				}
+
+				.check-active {
+					box-sizing: border-box;
+					border: 1rpx solid #016bf6;
+					border-radius: 8rpx;
+					background: rgba(252, 233, 220, 1);
+					color: #016bf6;
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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: 24rpx 32rpx;
+			box-sizing: border-box;
+			margin: 30rpx 40rpx;
+			margin-top: 20rpx;
+		}
+	}
+
+	// 弹框内容样式
+	.dialog-content {
+		padding: 40rpx;
+		box-sizing: border-box;
+
+		.input-tips {
+			color: #999;
+			font-size: 24rpx;
+			text-align: right;
+			margin-top: 10rpx;
+		}
+	}
+
+	// 输入框placeholder样式
+	.input-placeholder {
+		color: rgba(153, 153, 153, 1);
+		font-family: DM Sans;
+		font-size: 16rpx;
+		font-weight: 400;
+	}
 </style>

+ 411 - 401
my/renzheng/peopleDev.vue

@@ -1,409 +1,419 @@
 <template>
-  <view class="switch-roles">
-    <nav-bar title="公司信息" color="#000"></nav-bar>
-    <view class="roles-content">
-      <view class="content">
-        <view class="progress-num"> <text>4</text>/8 </view>
-        <view class="title">
-          <view>人才发展</view>
-        </view>
-        <view class="desc">
-          介绍公司可提供的员工培养&晋升制度,良好的职业成长空间对人才更有吸引力</view>
-        <view class="content-index">
-          <view class="content-item">
-            <view class="content-item-title">晋升制度</view>
-            <view class="check-box">
-              <view class="check-item" :class="{ 'check-active': selectedUp.includes(index) }"
-                v-for="(item, index) in upList" :key="index" @click="checkUp(index)">{{ item }}</view>
-            </view>
-          </view>
-          <view class="content-item">
-            <view class="content-item-title">人才激励</view>
-            <view class="check-box">
-              <view class="check-item" :class="{ 'check-active': selectedPeople.includes(index) }"
-                v-for="(item, index) in peopleList" :key="index" @click="checkPeople(index)">{{ item }}</view>
-            </view>
-          </view>
-          <view class="content-item">
-            <view class="content-item-title">能力培养</view>
-            <view class="check-box">
-              <view class="check-item" :class="{ 'check-active': selectedPower.includes(index) }"
-                v-for="(item, index) in powerList" :key="index" @click="checkPower(index)">{{ item }}</view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
-  </view>
+	<view class="switch-roles">
+		<nav-bar title="公司信息" color="#000"></nav-bar>
+		<view class="roles-content">
+			<view class="content">
+				<view class="progress-num"> <text>4</text>/8 </view>
+				<view class="title">
+					<view>人才发展</view>
+				</view>
+				<view class="desc">
+					介绍公司可提供的员工培养&晋升制度,良好的职业成长空间对人才更有吸引力</view>
+				<view class="content-index">
+					<view class="content-item">
+						<view class="content-item-title">晋升制度</view>
+						<view class="check-box">
+							<view class="check-item" :class="{ 'check-active': selectedUp.includes(index) }"
+								v-for="(item, index) in upList" :key="index" @click="checkUp(index)">{{ item }}</view>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">人才激励</view>
+						<view class="check-box">
+							<view class="check-item" :class="{ 'check-active': selectedPeople.includes(index) }"
+								v-for="(item, index) in peopleList" :key="index" @click="checkPeople(index)">{{ item }}
+							</view>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">能力培养</view>
+						<view class="check-box">
+							<view class="check-item" :class="{ 'check-active': selectedPower.includes(index) }"
+								v-for="(item, index) in powerList" :key="index" @click="checkPower(index)">{{ item }}
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="submit-btn" @click="goJobPostingSecond">下一步</view>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      upList: ["考核晋升", "定期晋升", "完善的晋升机制"],
-      selectedUp: [], // 改为数组存储多个选择
-
-      peopleList: [
-        "定期普调",
-        "定期绩效调薪",
-        "晋级涨薪",
-        "项目奖金",
-        "团队奖金",
-        "个人奖金",
-        "绩效提成",
-        "股票期权",
-        "人才补贴",
-      ],
-      selectedPeople: [], // 改为数组存储多个选择
-
-      powerList: [
-        "老员工带新",
-        "导师一对一",
-        "岗前带薪培训",
-        "内部定期培训",
-        "专业技能培训",
-        "内部课程资源",
-        "大牛带队",
-        "人脉积累",
-        "国内外进修",
-        "校招培养",
-      ],
-      selectedPower: [], // 改为数组存储多个选择
-
-      companyData: {},
-      companyPeopleDevelop: [],
-      isUpdateMode: false // 新增:标记是否为编辑模式
-    };
-  },
-  components: {
-    navBar,
-  },
-  onLoad(options) {
-    // 判断是否为编辑模式
-    if (options.update == 'true') {
-      this.isUpdateMode = true;
-      this.loadSavedPeopleDevelop();
-    }
-    
-    if (options.companyData) {
-      this.companyData = JSON.parse(options.companyData);
-      // 如果之前有保存的数据,恢复选择状态
-      this.restoreSelections();
-    }
-  },
-  methods: {
-    // 加载已保存的人才发展数据(从缓存)
-    loadSavedPeopleDevelop() {
-      try {
-        let companyInfo = uni.getStorageSync('companyInfo');
-        
-        if (companyInfo?.companyPeopleDevelop) {
-          // 处理字符串并分割为数组
-          const savedPeopleDevelop = companyInfo.companyPeopleDevelop
-            .replace(/,/g, ',')  // 替换中文逗号
-            .split(',')           // 分割
-            .map(item => item.trim())  // 去除空格
-            .filter(item => item);     // 过滤空值
-          
-          console.log('加载的人才发展数据:', savedPeopleDevelop);
-          
-          // 清空之前的选中
-          this.selectedUp = [];
-          this.selectedPeople = [];
-          this.selectedPower = [];
-          
-          // 恢复晋升制度选择
-          this.upList.forEach((item, index) => {
-            if (savedPeopleDevelop.includes(item)) {
-              this.selectedUp.push(index);
-            }
-          });
-          
-          // 恢复人才激励选择
-          this.peopleList.forEach((item, index) => {
-            if (savedPeopleDevelop.includes(item)) {
-              this.selectedPeople.push(index);
-            }
-          });
-          
-          // 恢复能力培养选择
-          this.powerList.forEach((item, index) => {
-            if (savedPeopleDevelop.includes(item)) {
-              this.selectedPower.push(index);
-            }
-          });
-          
-          console.log('人才发展数据已加载完成');
-        } else {
-          console.log('缓存中没有人才发展数据');
-        }
-      } catch (error) {
-        console.error('加载人才发展数据失败:', error);
-      }
-    },
-
-    // 晋升制度多选
-    checkUp(index) {
-      const idx = this.selectedUp.indexOf(index);
-      if (idx > -1) {
-        // 如果已选中,则取消选中
-        this.selectedUp.splice(idx, 1);
-      } else {
-        // 如果未选中,则添加
-        this.selectedUp.push(index);
-      }
-    },
-
-    // 人才激励多选
-    checkPeople(index) {
-      const idx = this.selectedPeople.indexOf(index);
-      if (idx > -1) {
-        this.selectedPeople.splice(idx, 1);
-      } else {
-        this.selectedPeople.push(index);
-      }
-    },
-
-    // 能力培养多选
-    checkPower(index) {
-      const idx = this.selectedPower.indexOf(index);
-      if (idx > -1) {
-        this.selectedPower.splice(idx, 1);
-      } else {
-        this.selectedPower.push(index);
-      }
-    },
-
-    // 恢复之前的选择(编辑时使用)
-    restoreSelections() {
-      if (this.companyData.companyPeopleDevelop) {
-        const savedData = this.companyData.companyPeopleDevelop.split(',');
-
-        // 恢复晋升制度选择
-        this.upList.forEach((item, index) => {
-          if (savedData.includes(item)) {
-            this.selectedUp.push(index);
-          }
-        });
-
-        // 恢复人才激励选择
-        this.peopleList.forEach((item, index) => {
-          if (savedData.includes(item)) {
-            this.selectedPeople.push(index);
-          }
-        });
-
-        // 恢复能力培养选择
-        this.powerList.forEach((item, index) => {
-          if (savedData.includes(item)) {
-            this.selectedPower.push(index);
-          }
-        });
-      }
-    },
-
-    goJobPostingSecond() {
-      // 清空之前的数组
-      this.companyPeopleDevelop = [];
-
-      // 添加选中的晋升制度
-      this.selectedUp.forEach(index => {
-        if (this.upList[index]) {
-          this.companyPeopleDevelop.push(this.upList[index]);
-        }
-      });
-
-      // 添加选中的人才激励
-      this.selectedPeople.forEach(index => {
-        if (this.peopleList[index]) {
-          this.companyPeopleDevelop.push(this.peopleList[index]);
-        }
-      });
-
-      // 添加选中的能力培养
-      this.selectedPower.forEach(index => {
-        if (this.powerList[index]) {
-          this.companyPeopleDevelop.push(this.powerList[index]);
-        }
-      });
-
-      // 验证是否至少选择了一项
-      if (this.companyPeopleDevelop.length === 0) {
-        uni.showToast({
-          title: "请至少选择一项人才发展方向",
-          icon: "none",
-        });
-        return;
-      }
-
-      // 保存到 companyData
-      const companyData = {
-        ...this.companyData,
-        companyPeopleDevelop: this.companyPeopleDevelop.join(',')
-      };
-
-      // 如果是编辑模式,同时更新缓存
-      if (this.isUpdateMode) {
-        try {
-          let companyInfo = uni.getStorageSync('companyInfo');
-          if (companyInfo) {
-            companyInfo.companyPeopleDevelop = companyData.companyPeopleDevelop;
-            uni.setStorageSync('companyInfo', companyInfo);
-            console.log('已更新缓存中的人才发展数据');
-          }
-        } catch (error) {
-          console.error('更新缓存失败:', error);
-        }
-      }
-
-      // 跳转到下一步
-      uni.navigateTo({
-        url: "/my/renzheng/editCompanyDesc?companyData=" +
-          encodeURIComponent(JSON.stringify(companyData)) +
-          (this.isUpdateMode ? "&update=true" : "")
-      });
-    }
-  },
-};
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				upList: ["考核晋升", "定期晋升", "完善的晋升机制"],
+				selectedUp: [], // 改为数组存储多个选择
+
+				peopleList: [
+					"定期普调",
+					"定期绩效调薪",
+					"晋级涨薪",
+					"项目奖金",
+					"团队奖金",
+					"个人奖金",
+					"绩效提成",
+					"股票期权",
+					"人才补贴",
+				],
+				selectedPeople: [], // 改为数组存储多个选择
+
+				powerList: [
+					"老员工带新",
+					"导师一对一",
+					"岗前带薪培训",
+					"内部定期培训",
+					"专业技能培训",
+					"内部课程资源",
+					"大牛带队",
+					"人脉积累",
+					"国内外进修",
+					"校招培养",
+				],
+				selectedPower: [], // 改为数组存储多个选择
+
+				// companyData: {},
+				companyPeopleDevelop: [],
+				isUpdateMode: false // 新增:标记是否为编辑模式
+			};
+		},
+		components: {
+			navBar,
+		},
+		onLoad(options) {
+			this.loadSavedPeopleDevelop();
+
+			// if (options.companyData) {
+			// 	this.companyData = JSON.parse(options.companyData);
+			// 	// 如果之前有保存的数据,恢复选择状态
+			// 	this.restoreSelections();
+			// }
+		},
+		methods: {
+			// 加载已保存的人才发展数据(从缓存)
+			loadSavedPeopleDevelop() {
+				try {
+					let companyInfo = uni.getStorageSync('companyInfo');
+
+					if (companyInfo?.companyPeopleDevelop) {
+						// 处理字符串并分割为数组
+						const savedPeopleDevelop = companyInfo.companyPeopleDevelop
+							.replace(/,/g, ',') // 替换中文逗号
+							.split(',') // 分割
+							.map(item => item.trim()) // 去除空格
+							.filter(item => item); // 过滤空值
+
+						console.log('加载的人才发展数据:', savedPeopleDevelop);
+
+						// 清空之前的选中
+						this.selectedUp = [];
+						this.selectedPeople = [];
+						this.selectedPower = [];
+
+						// 恢复晋升制度选择
+						this.upList.forEach((item, index) => {
+							if (savedPeopleDevelop.includes(item)) {
+								this.selectedUp.push(index);
+							}
+						});
+
+						// 恢复人才激励选择
+						this.peopleList.forEach((item, index) => {
+							if (savedPeopleDevelop.includes(item)) {
+								this.selectedPeople.push(index);
+							}
+						});
+
+						// 恢复能力培养选择
+						this.powerList.forEach((item, index) => {
+							if (savedPeopleDevelop.includes(item)) {
+								this.selectedPower.push(index);
+							}
+						});
+						console.log('人才发展数据已加载完成');
+					} else {
+						console.log('缓存中没有人才发展数据');
+					}
+				} catch (error) {
+					console.error('加载人才发展数据失败:', error);
+				}
+			},
+
+			// 晋升制度多选
+			checkUp(index) {
+				const idx = this.selectedUp.indexOf(index);
+				if (idx > -1) {
+					// 如果已选中,则取消选中
+					this.selectedUp.splice(idx, 1);
+				} else {
+					// 如果未选中,则添加
+					this.selectedUp.push(index);
+				}
+			},
+
+			// 人才激励多选
+			checkPeople(index) {
+				const idx = this.selectedPeople.indexOf(index);
+				if (idx > -1) {
+					this.selectedPeople.splice(idx, 1);
+				} else {
+					this.selectedPeople.push(index);
+				}
+			},
+
+			// 能力培养多选
+			checkPower(index) {
+				const idx = this.selectedPower.indexOf(index);
+				if (idx > -1) {
+					this.selectedPower.splice(idx, 1);
+				} else {
+					this.selectedPower.push(index);
+				}
+			},
+
+			// 恢复之前的选择(编辑时使用)
+			// restoreSelections() {
+			// 	if (this.companyData.companyPeopleDevelop) {
+			// 		const savedData = this.companyData.companyPeopleDevelop.split(',');
+
+			// 		// 恢复晋升制度选择
+			// 		this.upList.forEach((item, index) => {
+			// 			if (savedData.includes(item)) {
+			// 				this.selectedUp.push(index);
+			// 			}
+			// 		});
+
+			// 		// 恢复人才激励选择
+			// 		this.peopleList.forEach((item, index) => {
+			// 			if (savedData.includes(item)) {
+			// 				this.selectedPeople.push(index);
+			// 			}
+			// 		});
+
+			// 		// 恢复能力培养选择
+			// 		this.powerList.forEach((item, index) => {
+			// 			if (savedData.includes(item)) {
+			// 				this.selectedPower.push(index);
+			// 			}
+			// 		});
+			// 	}
+			// },
+
+			goJobPostingSecond() {
+				// 清空之前的数组
+				this.companyPeopleDevelop = [];
+
+				// 添加选中的晋升制度
+				this.selectedUp.forEach(index => {
+					if (this.upList[index]) {
+						this.companyPeopleDevelop.push(this.upList[index]);
+					}
+				});
+
+				// 添加选中的人才激励
+				this.selectedPeople.forEach(index => {
+					if (this.peopleList[index]) {
+						this.companyPeopleDevelop.push(this.peopleList[index]);
+					}
+				});
+
+				// 添加选中的能力培养
+				this.selectedPower.forEach(index => {
+					if (this.powerList[index]) {
+						this.companyPeopleDevelop.push(this.powerList[index]);
+					}
+				});
+
+				// 验证是否至少选择了一项
+				if (this.companyPeopleDevelop.length === 0) {
+					uni.showToast({
+						title: "请至少选择一项人才发展方向",
+						icon: "none",
+					});
+					return;
+				}
+
+				
+				let companyData = {
+					companyId: this.$queue.getData('companyId'),
+					companyPeopleDevelop: this.companyPeopleDevelop.join(',')
+				}
+				this.$Request.postJson('/app/company/updateCompany', companyData).then(res => {
+					if (res.code == 0) {
+						uni.showToast({
+							title: '提交成功',
+							duration: 1500,
+						});
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/my/index'
+							});
+						}, 500)
+					}
+				})
+
+				// 如果是编辑模式,同时更新缓存
+				// if (this.isUpdateMode) {
+				// 	try {
+				// 		let companyInfo = uni.getStorageSync('companyInfo');
+				// 		if (companyInfo) {
+				// 			companyInfo.companyPeopleDevelop = companyData.companyPeopleDevelop;
+				// 			uni.setStorageSync('companyInfo', companyInfo);
+				// 			console.log('已更新缓存中的人才发展数据');
+				// 		}
+				// 	} catch (error) {
+				// 		console.error('更新缓存失败:', error);
+				// 	}
+				// }
+
+				// 跳转到下一步
+				// uni.navigateTo({
+				// 	url: "/my/renzheng/editCompanyDesc?companyData=" +
+				// 		encodeURIComponent(JSON.stringify(companyData)) +
+				// 		(this.isUpdateMode ? "&update=true" : "")
+				// });
+			}
+		},
+	};
 </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;
-
-      .progress-num {
-        color: #016bf6;
-        font-family: DM Sans;
-        font-size: 24rpx;
-        font-weight: 500;
-        width: 100%;
-        padding-bottom: 20rpx;
-        box-sizing: border-box;
-
-        text {
-          font-size: 48rpx;
-          font-weight: 700;
-        }
-      }
-
-      .title {
-        color: #333;
-        width: 100%;
-        font-family: DM Sans;
-        font-size: 48rpx;
-        font-weight: 700;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin-bottom: 20rpx;
-      }
-
-      .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;
-        margin-bottom: 20rpx;
-      }
-
-      .content-index {
-        width: 100%;
-
-        .content-item {
-          margin-bottom: 40rpx;
-
-          .content-item-title {
-            color: rgba(34, 37, 42, 1);
-            font-family: DM Sans;
-            font-size: 32rpx;
-            font-weight: 400;
-            line-height: 48rpx;
-            padding-bottom: 12rpx;
-            box-sizing: border-box;
-          }
-
-          .check-box {
-            display: flex;
-            gap: 20rpx;
-            flex-wrap: wrap;
-            align-items: center;
-
-            .check-item {
-              flex-shrink: 0;
-              padding: 8rpx;
-              border-radius: 8rpx;
-              background: #9999991a;
-              border: 1rpx solid #9999991a;
-              box-sizing: border-box;
-              color: rgba(102, 102, 102, 1);
-              font-family: DM Sans;
-              font-size: 26rpx;
-              font-weight: 400;
-              cursor: pointer;
-              transition: all 0.3s;
-            }
-
-            .check-active {
-              box-sizing: border-box;
-              border: 1rpx solid #016bf6;
-              border-radius: 8rpx;
-              background: rgba(252, 233, 220, 1);
-              color: #016bf6;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  .submit-btn {
-    flex-shrink: 0;
-    border-radius: 999px;
-    background: #ff6600;
-    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: 24rpx 32rpx;
-    box-sizing: border-box;
-    margin: 30rpx 40rpx;
-    margin-top: 20rpx;
-  }
-}
+	/* 样式保持不变 */
+	.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;
+
+				.progress-num {
+					color: #016bf6;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					width: 100%;
+					padding-bottom: 20rpx;
+					box-sizing: border-box;
+
+					text {
+						font-size: 48rpx;
+						font-weight: 700;
+					}
+				}
+
+				.title {
+					color: #333;
+					width: 100%;
+					font-family: DM Sans;
+					font-size: 48rpx;
+					font-weight: 700;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+				}
+
+				.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;
+					margin-bottom: 20rpx;
+				}
+
+				.content-index {
+					width: 100%;
+
+					.content-item {
+						margin-bottom: 40rpx;
+
+						.content-item-title {
+							color: rgba(34, 37, 42, 1);
+							font-family: DM Sans;
+							font-size: 32rpx;
+							font-weight: 400;
+							line-height: 48rpx;
+							padding-bottom: 12rpx;
+							box-sizing: border-box;
+						}
+
+						.check-box {
+							display: flex;
+							gap: 20rpx;
+							flex-wrap: wrap;
+							align-items: center;
+
+							.check-item {
+								flex-shrink: 0;
+								padding: 8rpx;
+								border-radius: 8rpx;
+								background: #9999991a;
+								border: 1rpx solid #9999991a;
+								box-sizing: border-box;
+								color: rgba(102, 102, 102, 1);
+								font-family: DM Sans;
+								font-size: 26rpx;
+								font-weight: 400;
+								cursor: pointer;
+								transition: all 0.3s;
+							}
+
+							.check-active {
+								box-sizing: border-box;
+								border: 1rpx solid #016bf6;
+								border-radius: 8rpx;
+								background: rgba(252, 233, 220, 1);
+								color: #016bf6;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		.submit-btn {
+			flex-shrink: 0;
+			border-radius: 999px;
+			background: #ff6600;
+			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: 24rpx 32rpx;
+			box-sizing: border-box;
+			margin: 30rpx 40rpx;
+			margin-top: 20rpx;
+		}
+	}
 </style>