zhengyiming
7 天以前 307e714ec9f85bae11ed892cb90e199a341b6be3
src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
@@ -11,27 +11,30 @@
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormItemV2 label="服务费:" prop="salaryType">
              <RadioWithExtra
                v-model="form.salaryType"
                :value-enum="[
                  { label: '按月', value: 1 },
                  { label: '按日', value: 2 },
                ]"
                :showExtra="true"
              >
                <template #extra>
                  <ProFormInputNumber
                    :controls="false"
                    :min="0"
                    :max="999"
                    v-model="form.name"
                    placeholder="请输入"
                    :unit="form.salaryType === 1 ? '元/月' : '元/天'"
                  ></ProFormInputNumber>
                </template>
              </RadioWithExtra>
            </ProFormItemV2>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="服务费:" prop="salaryType">
                <RadioWithExtra
                  v-model="form.salaryType"
                  :value-enum="[
                    { label: '按月', value: 1 },
                    { label: '按日', value: 2 },
                  ]"
                  :showExtra="true"
                  :button-style="false"
                >
                  <template #extra>
                    <ProFormInputNumber
                      :controls="false"
                      :min="0"
                      :max="999"
                      v-model="form.name"
                      placeholder="请输入"
                      :unit="form.salaryType === 1 ? '元/月' : '元/天'"
                    ></ProFormInputNumber>
                  </template>
                </RadioWithExtra>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
@@ -39,19 +42,39 @@
                <ProFormRadio
                  v-model="form.salaryType"
                  :value-enum="[{ label: '是', value: 1 }]"
                  :button-style="false"
                ></ProFormRadio>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="年龄要求:" prop="ageRange">
              <ProFormItemV2 label="福利:" prop="benefits">
                <el-checkbox
                  v-model="state.checBenefitskAll"
                  style="margin-right: 30px"
                  :indeterminate="state.isBenefitsIndeterminate"
                  @change="handleCheckBenefitsAllChange"
                  >全选</el-checkbox
                >
                <ProFormCheckbox
                  v-model="form.benefits"
                  :value-enum="[]"
                  enumLabelKey="name"
                  enum-value-key="id"
                  @change="handleCheckedBenefitsServicesChange"
                ></ProFormCheckbox>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="年龄范围:" prop="ageRange" class="form-age-range">
                <ProFormInputNumber
                  :controls="false"
                  :min="0"
                  v-model="form.ageStart"
                  placeholder="请输入"
                  disabled
                ></ProFormInputNumber>
                <div class="form-input-separator">至</div>
                <ProFormInputNumber
@@ -59,7 +82,6 @@
                  :min="0"
                  v-model="form.ageEnd"
                  placeholder="请输入"
                  disabled
                ></ProFormInputNumber>
              </ProFormItemV2>
            </ProFormColItem>
@@ -67,35 +89,50 @@
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="性别要求:" prop="sexRequirement" required>
                <RadioWithExtra
                <ProFormRadio
                  v-model="form.sexRequirement"
                  :value-enum="[
                    {
                      label: '不限',
                      value: 1,
                    },
                  ]"
                  :showExtra="true"
                  :value-enum="[{ label: '不限', value: 1 }]"
                ></ProFormRadio>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="资格证书:" prop="benefits">
                <el-checkbox
                  v-model="state.checBenefitskAll"
                  style="margin-right: 30px"
                  :indeterminate="state.isBenefitsIndeterminate"
                  @change="handleCheckBenefitsAllChange"
                  >全选</el-checkbox
                >
                  <template #extra>
                    <div class="form-input-separator">男性</div>
                    <ProFormInputNumber
                      :controls="false"
                      :min="0"
                      v-model="form.manNumber"
                      placeholder="请输入"
                      disabled
                    ></ProFormInputNumber>
                    <div class="form-input-separator">女性</div>
                    <ProFormInputNumber
                      :controls="false"
                      :min="0"
                      v-model="form.womanNumber"
                      placeholder="请输入"
                      disabled
                    ></ProFormInputNumber>
                  </template>
                </RadioWithExtra>
                <ProFormCheckbox
                  v-model="form.benefits"
                  :value-enum="[]"
                  enumLabelKey="name"
                  enum-value-key="id"
                  @change="handleCheckedBenefitsServicesChange"
                ></ProFormCheckbox>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="任务地点:" prop="areaList">
                <!-- <ProFromAddressSelect :areaList="form.areaList" :address="form.address" /> -->
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="任务时间:" prop="name">
                <ProFormDatePicker
                  v-model="form.name"
                  type="daterange"
                  range-separator="至"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                ></ProFormDatePicker>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
@@ -120,6 +157,8 @@
  ProFormText,
  ProFormInputNumber,
  ProFormRadio,
  ProFormDatePicker,
  ProFormCheckbox,
} from '@bole-core/components';
import { FormInstance } from 'element-plus';
import { Message } from '@bole-core/core';
@@ -141,6 +180,11 @@
const { closeViewPush } = useRouteView();
const state = reactive({
  checBenefitskAll: false,
  isBenefitsIndeterminate: false,
});
const form = reactive({
  name: '',
  salaryType: 1,
@@ -149,6 +193,9 @@
  sexRequirement: 1,
  manNumber: 0,
  womanNumber: 0,
  benefits: [],
  areaList: [] as number[],
  address: '',
});
const { isLoading } = useQuery({
@@ -161,6 +208,7 @@
      }
    );
  },
  placeholderData: () => ({} as API.GetFlexTaskDetailForBackOutput),
  onSuccess(data) {
    form.name = data.taskName;
  },
@@ -169,7 +217,7 @@
function handleBack() {
  closeViewPush(route, {
    name: 'TaskManage',
    name: 'EmploymentManageList',
  });
}
const productFormRef = ref<FormInstance>();
@@ -189,12 +237,28 @@
    let res;
    if (res) {
      Message.successMessage('操作成功');
      eventContext.emit(isEdit ? 'taskManage:edit' : 'taskManage:add');
      eventContext.emit(isEdit ? 'employment:edit' : 'employment:add');
      handleBack();
    }
  } catch (error) {}
}
function handleCheckBenefitsAllChange() {}
function handleCheckedBenefitsServicesChange() {}
</script>
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
:deep() {
  .radio-with-input-extra-wrapper {
    display: flex;
  }
  .form-age-range {
    .pro-from-item-read-content-wrapper {
      width: auto;
    }
  }
}
</style>