dl_vue/src/views/busi/notice/component/EditForm.vue

239 lines
8.1 KiB
Vue

<template>
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="平台" prop="platformCode">
<el-select v-model="form.platformCode" placeholder="请选择平台" clearable :disabled="isDetail">
<el-option
v-for="data in platformList"
:key="data.code"
:label="data.title"
:value="data.code"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="截止日期" prop="endDate">
<el-date-picker clearable
v-model="form.endDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择截止日期"
:disabled="isDetail">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="稿费下限" prop="feeDown">
<el-input-number :precision="2" min="0" v-model="form.feeDown" placeholder="请输入稿费下限" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="稿费上限" prop="feeUp">
<el-input-number :precision="2" min="0" v-model="form.feeUp" placeholder="请输入稿费上限" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否需自报价" prop="isSelfPrice">
<el-select v-model="form.isSelfPrice" placeholder="请选择是否需自报价" :disabled="isDetail">
<el-option
v-for="dict in dict.type.true_or_false"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="招募名额" prop="needNum">
<el-input-number :precision="0" :min="0" v-model="form.needNum" placeholder="请输入招募名额" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否公开品牌" prop="isShowBrand">
<el-select v-model="form.isShowBrand" placeholder="请选择是否公开品牌" :disabled="isDetail">
<el-option
v-for="dict in dict.type.true_or_false"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="品牌" prop="brand">
<el-input v-model="form.brand" placeholder="请输入品牌" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="地区要求" prop="region">
<el-select v-model="form.province" @change="provinceChange" placeholder="请选择省份" :disabled="isDetail">
<el-option
v-for="item in provinceList"
:key="item.name"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
<el-select style="margin-top: 5px" v-model="form.city" placeholder="请选择城市" :disabled="isDetail">
<el-option
v-for="item in cityList"
:key="item.name"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="粉丝要求下限" prop="fansDown">
<el-input-number :precision="0" min="0" v-model="form.fansDown" placeholder="粉丝要求下限" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="粉丝要求上限" prop="fansUp">
<el-input-number :precision="0" min="0" v-model="form.fansUp" placeholder="粉丝要求上限" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="博主类型" prop="bloggerTypeList">
<el-select v-model="form.bloggerTypeList" multiple filterable placeholder="请选择博主类型" :disabled="isDetail">
<el-option
v-for="data in bloggerList"
:key="data.code"
:label="data.title"
:value="data.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="微信群码图片" prop="groupImage">
<image-upload :limit="1" v-model="form.groupImage" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="16">
<el-form-item label="产品图" prop="images">
<image-upload :limit="9" v-model="form.images" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="通告明细" prop="detail">
<Editor v-model="form.detail" style="height: 300px" placeholder="请输入内容" :read-only="isDetail" />
</el-form-item>
</el-form>
</template>
<script>
import {getRegion} from "@/api/base/util";
import {listByCode} from "@/api/base/category";
import log from "@/views/monitor/job/log.vue";
export default {
name: "Notice",
props: ['isDetail'],
dicts: ['notice_type', 'notice_collect', 'dl_approval_status', 'true_or_false'],
data() {
return {
// 表单参数
form: {},
platformList:[],
provinceList:[],
cityList:[],
bloggerList:[],
// 表单校验
rules: {
title: [
{ required: true, message: "标题不能为空", trigger: "blur" }
],
platformCode: [
{ required: true, message: "平台code不能为空", trigger: "change" }
],
feeDown: [
{ required: true, message: "稿费下限不能为空", trigger: "blur" }
],
isSelfPrice: [
{ required: true, message: "是否需自报价不能为空", trigger: "change" }
],
endDate: [
{ required: true, message: "截止日期不能为空", trigger: "blur" }
],
pic: [
{ required: true, message: "图文/视频/不限不能为空", trigger: "change" }
],
collect: [
{ required: true, message: "单品/合集/不限不能为空", trigger: "change" }
],
detail: [
{ required: true, message: "通告明细不能为空", trigger: "blur" }
],
brand:[
{ required: true, message: "品牌不能为空", trigger: "blur" }
],
fansDown:[
{ required: true, message: "粉丝下限不能为空", trigger: "blur" }
]
},
}
},
mounted() {
this.getPlatform()
this.getProvince()
this.getBloggerList()
},
methods: {
provinceChange(e){
console.log(e,276)
//在provicenList 中过滤出来 name 等于 e的
let provinceId = this.provinceList.filter(item=>{
return item.name == e
})[0].cityId
this.getCity(provinceId)
},
getProvince(){
getRegion(0).then(res=>{
this.provinceList = res.data
})
},
getCity(provinceId){
getRegion(provinceId).then(res=>{
this.cityList = res.data
})
},
getPlatform(){
listByCode({code:'dl_platform'}).then(res=>{
this.platformList = res.data
})
},
getBloggerList(){
listByCode({code:'dl_blogger_type'}).then(res=>{
this.bloggerList = res.data
})
},
}
}
</script>