|
@@ -21,56 +21,142 @@
|
|
|
label-width="80px"
|
|
|
class="form"
|
|
|
>
|
|
|
- <el-form-item label="账号" prop="account">
|
|
|
- <el-input v-model="form.account" placeholder="请输入账号"> </el-input>
|
|
|
+ <el-form-item label="需求名称" prop="name">
|
|
|
+ <el-input v-model="form.name" placeholder="请输入需求名称"> </el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="昵称" prop="nick_name">
|
|
|
- <el-input v-model="form.nick_name" placeholder="请输入昵称"> </el-input>
|
|
|
+ <el-form-item label="行业领域" prop="field">
|
|
|
+ <el-select v-model="form.field" width="100%" placeholder="请选择行业领域">
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in fieldList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="需求紧急度" prop="urgent">
|
|
|
+ <el-select v-model="form.urgent" width="100%" placeholder="请选择需求紧急度">
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in urgentList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="性别" prop="gender">
|
|
|
- <el-select v-model="form.gender" width="100%" placeholder="请选择性别">
|
|
|
+ <el-form-item label="合作方式" prop="method">
|
|
|
+ <el-select v-model="form.method" width="100%" placeholder="请选择合作方式">
|
|
|
<el-option
|
|
|
- v-for="(item, index) in genderList"
|
|
|
+ v-for="(item, index) in methodList"
|
|
|
:key="index"
|
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="手机号" prop="phone">
|
|
|
- <el-input v-model="form.phone" placeholder="请输入手机号"> </el-input>
|
|
|
+ <el-form-item label="价格(万元)" prop="money">
|
|
|
+ <el-input v-model="form.money" placeholder="请输入价格(万元)"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="需求地区" prop="area">
|
|
|
+ <el-cascader
|
|
|
+ v-model="form.area"
|
|
|
+ :props="{ value: 'label', label: 'label' }"
|
|
|
+ :options="cityList"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="有效期" prop="time">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.time"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否启用" prop="is_use">
|
|
|
+ <el-radio-group v-model="form.is_use">
|
|
|
+ <el-radio v-for="(item, index) in isUseList" :key="index" :value="item.value">{{
|
|
|
+ item.label
|
|
|
+ }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="简介" prop="brief">
|
|
|
+ <el-input
|
|
|
+ v-model="form.brief"
|
|
|
+ :autosize="{ minRows: 2, maxRows: 4 }"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入简介"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-col :span="24" class="button">
|
|
|
+ <el-button type="primary" @click="submitForm(ruleFormRef)">保存</el-button>
|
|
|
+ </el-col>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <el-col :span="24" class="button">
|
|
|
- <el-button type="primary" @click="submitForm(ruleFormRef)">保存</el-button>
|
|
|
- </el-col>
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
+const $checkRes = inject('$checkRes')
|
|
|
+import { getCity } from '@/utils/city'
|
|
|
+import { DictDataStore } from '@/store/api/system/dictData'
|
|
|
+const dictDataStore = DictDataStore()
|
|
|
// 组件
|
|
|
import List from './parts/list.vue'
|
|
|
const form = inject('form')
|
|
|
const type = inject('type')
|
|
|
-const submitForm = inject('submitForm')
|
|
|
const toCommon = inject('toCommon')
|
|
|
-const validatePhoneNumber = (rule, value, callback) => {
|
|
|
- const reg = /^1[3-9]\d{9}$/
|
|
|
- if (!value) {
|
|
|
- return callback(new Error('手机号不能为空'))
|
|
|
- }
|
|
|
- if (!reg.test(value)) {
|
|
|
- return callback(new Error('请输入正确的手机号'))
|
|
|
- }
|
|
|
- callback()
|
|
|
-}
|
|
|
+const submitForm = inject('submitForm')
|
|
|
+// 字典表
|
|
|
+const isUseList = ref([])
|
|
|
+const statusList = ref([])
|
|
|
+const methodList = ref([])
|
|
|
+const urgentList = ref([])
|
|
|
+const fieldList = ref([])
|
|
|
+const cityList = ref([])
|
|
|
+const demandList = ref([])
|
|
|
const rules = reactive({
|
|
|
- nick_name: [{ required: true, message: '请输入昵称', trigger: 'blur' }],
|
|
|
- gender: [{ required: true, message: '请选择性别', trigger: 'blur' }],
|
|
|
- phone: [{ required: true, validator: validatePhoneNumber, trigger: 'blur' }],
|
|
|
- account: [{ required: true, message: '请输入账号', trigger: 'blur' }]
|
|
|
+ name: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
|
|
|
+ field: [{ required: true, message: '请选择行业领域', trigger: 'change' }],
|
|
|
+ urgent: [{ required: true, message: '请选择需求紧急度', trigger: 'change' }],
|
|
|
+ method: [{ required: true, message: '请选择合作方式', trigger: 'change' }],
|
|
|
+ money: [{ required: true, message: '请输入价格', trigger: 'blur' }],
|
|
|
+ area: [{ required: true, message: '请选择需求地区', trigger: 'change' }],
|
|
|
+ time: [{ required: true, message: '请选择起始时间', trigger: 'change' }],
|
|
|
+ is_use: [{ required: true, message: '请选择是否使用', trigger: 'change' }],
|
|
|
+ brief: [{ required: true, message: '请输入简介', trigger: 'blur' }]
|
|
|
+})
|
|
|
+// 请求
|
|
|
+onMounted(async () => {
|
|
|
+ getCity().then((response) => {
|
|
|
+ cityList.value = response.address
|
|
|
+ })
|
|
|
+ await searchOther()
|
|
|
})
|
|
|
+const searchOther = async () => {
|
|
|
+ let result
|
|
|
+ // 是否使用
|
|
|
+ result = await dictDataStore.query({ code: 'isUse', is_use: '0' })
|
|
|
+ if ($checkRes(result)) isUseList.value = result.data
|
|
|
+ // 状态
|
|
|
+ result = await dictDataStore.query({ code: 'examStatus', is_use: '0' })
|
|
|
+ if ($checkRes(result)) statusList.value = result.data
|
|
|
+ // 合作方式
|
|
|
+ result = await dictDataStore.query({ code: 'method', is_use: '0' })
|
|
|
+ if ($checkRes(result)) methodList.value = result.data
|
|
|
+ // 需求紧急度
|
|
|
+ result = await dictDataStore.query({ code: 'urgent', is_use: '0' })
|
|
|
+ if ($checkRes(result)) urgentList.value = result.data
|
|
|
+ // 技术领域
|
|
|
+ result = await dictDataStore.query({ code: 'field', is_use: '0' })
|
|
|
+ if ($checkRes(result)) fieldList.value = result.data
|
|
|
+ // 需求状态
|
|
|
+ result = await dictDataStore.query({ code: 'demandStatus', is_use: '0' })
|
|
|
+ if ($checkRes(result)) demandList.value = result.data
|
|
|
+}
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.one {
|