Commit 76680cf8 authored by zhanglu's avatar zhanglu

模型可不传

parent 6264a024
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-form ref="postForm" :model="postForm" :rules="rules" class="form-container"> <el-form ref="postForm" :model="postForm" :rules="rules" class="form-container">
<sticky :class-name="'sub-navbar '+postForm.status"> <sticky :class-name="'sub-navbar '+postForm.status">
<el-button v-loading="loading" style="margin-left: 10px;" type="success" @click="submitForm" :disabled="isdisabledFn">保存 <el-button v-loading="loading" :disabled="isdisabledFn" style="margin-left: 10px;" type="success" @click="submitForm">保存
</el-button> </el-button>
</sticky> </sticky>
...@@ -27,11 +27,17 @@ ...@@ -27,11 +27,17 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label-width="75px" label="*性别:" prop="gender"> <el-form-item label-width="75px" label="*性别:" prop="gender">
<el-select v-model="postForm.sex" :placeholder="'性别:'" clearable <el-select
class="postInfo-container-item" v-model="postForm.sex"
style="width: 230px"> :placeholder="'性别:'"
<el-option v-for="item in GenderTypeOptions" :key="item.key" :label="item.display_name" clearable
:value="item.key"/> class="postInfo-container-item"
style="width: 230px">
<el-option
v-for="item in GenderTypeOptions"
:key="item.key"
:label="item.display_name"
:value="item.key"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -43,15 +49,15 @@ ...@@ -43,15 +49,15 @@
<div> <div>
<el-form-item style="margin-bottom: 20px;" label-width="75px" label="*原图:" prop="avatar"> <el-form-item style="margin-bottom: 20px;" label-width="75px" label="*原图:" prop="avatar">
<span v-model="uploadType"></span> <span v-model="uploadType"/>
<FaceUpload v-model="postForm.ordinary_image_url" :uploadType="uploadType"/> <FaceUpload v-model="postForm.ordinary_image_url" :upload-type="uploadType"/>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item style="margin-bottom: 20px;" label-width="75px" label="*模型:" prop="avatar"> <el-form-item style="margin-bottom: 20px;" label-width="75px" label="*模型:" prop="avatar">
<span v-model="uploadType"></span> <span v-model="uploadType"/>
<FaceUpload v-model="postForm.modeling_obj_url" :uploadType="uploadType"/> <FaceUpload v-model="postForm.modeling_obj_url" :upload-type="uploadType"/>
</el-form-item> </el-form-item>
</div> </div>
</el-card> </el-card>
...@@ -63,170 +69,163 @@ ...@@ -63,170 +69,163 @@
</template> </template>
<script> <script>
import Tinymce from '@/components/Tinymce' import Tinymce from '@/components/Tinymce'
import FaceUpload from '@/components/Upload/faceupload' import FaceUpload from '@/components/Upload/faceupload'
import MDinput from '@/components/MDinput' import MDinput from '@/components/MDinput'
import Sticky from '@/components/Sticky' // 粘性header组件 import Sticky from '@/components/Sticky' // 粘性header组件
import waves from '@/directive/waves' import waves from '@/directive/waves'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import {validateURL} from '@/utils/validate' import { validateURL } from '@/utils/validate'
import {faceStarCreate, facestarDetail} from '@/api/face_image_upload' import { faceStarCreate, facestarDetail } from '@/api/face_image_upload'
const SexOptions = [ const SexOptions = [
{'key': 1, 'display_name': '男'}, { 'key': 1, 'display_name': '男' },
{'key': 2, 'display_name': '女'}, { 'key': 2, 'display_name': '女' }
] ]
const sexTypeKeyValue = SexOptions.reduce((acc, cur) => { const sexTypeKeyValue = SexOptions.reduce((acc, cur) => {
acc[cur.key] = cur.display_name acc[cur.key] = cur.display_name
return acc return acc
}, {}) }, {})
const ValueToSexTypeKeyValue = SexOptions.reduce((acc, cur) => { const ValueToSexTypeKeyValue = SexOptions.reduce((acc, cur) => {
acc[cur.key] = cur.display_name acc[cur.key] = cur.display_name
return acc return acc
}, {}) }, {})
const defaultForm = { const defaultForm = {
status: 'draft', status: 'draft',
uploadType: '', uploadType: '',
name: '', name: '',
sex: '', sex: '',
ordinary_image_url: '', ordinary_image_url: '',
modeling_obj_url: '', modeling_obj_url: ''
} }
export default {
name: 'FaceStarDetail',
components: {Tinymce, MDinput, FaceUpload, Sticky, Pagination},
directives: {waves},
props: {
isEdit: {
type: Boolean,
default: false
}
},
data() {
const validateRequire = (rule, value, callback) => {
if (value === '') {
this.$message({
message: rule.field + '为必传项',
type: 'error'
})
callback(new Error(rule.field + '为必传项'))
} else {
callback()
}
}
return {
postForm: Object.assign({}, defaultForm),
loading: false,
city: '', export default {
tags: [], name: 'FaceStarDetail',
components: { Tinymce, MDinput, FaceUpload, Sticky, Pagination },
rules: { directives: { waves },
name: [{validator: validateRequire, trigger: 'blur'}], props: {
sex: [{validator: validateRequire, trigger: 'blur'}], isEdit: {
}, type: Boolean,
tempRoute: {}, default: false
GenderTypeOptions: [ }
{'key': 1, 'display_name': '男'}, },
{'key': 2, 'display_name': '女'}, data() {
], const validateRequire = (rule, value, callback) => {
uploadType: -99, if (value === '') {
isdisabledFn: false this.$message({
} message: rule.field + '为必传项',
}, type: 'error'
computed: { })
lang() { callback(new Error(rule.field + '为必传项'))
return this.$store.getters.language
}
},
created() {
if (this.isEdit) {
const id = this.$route.params && this.$route.params.id
this.fetchData(id)
} else { } else {
this.postForm = Object.assign({}, defaultForm) callback()
} }
}
return {
postForm: Object.assign({}, defaultForm),
loading: false,
this.tempRoute = Object.assign({}, this.$route) city: '',
}, tags: [],
methods: {
fetchData(id) {
facestarDetail(id).then(response => {
this.postForm = response.data.data.data
this.postForm.sex = sexTypeKeyValue[response.data.data.data.sex]
}).catch(err => {
console.log(err)
})
},
submitForm() {
this.$refs.postForm.validate(valid => {
if (valid) {
this.loading = true
if (this.postForm.ordinary_image_url === ''){
this.$message.error('头像一不能为空~')
this.loading = false
return false
}
if (this.postForm.modeling_obj_url === ''){
this.$message.error('头像二不能为空~')
this.loading = false
return false
}
const gender = {
'男': 1,
'女': 2
}
this.isdisabledFn = true
if (gender.hasOwnProperty(this.postForm.sex)){
this.postForm.sex = gender[this.postForm.sex]
}
this.isdisabledFn = true
faceStarCreate(this.postForm).then(response => {
this.$notify({
title: '成功',
message: response.data.data.message,
type: 'success',
duration: 2000
})
this.$router.go(0)
}).catch(err => {
this.$notify({
title: '失败',
message: '操作失败',
type: 'danger',
duration: 2000
})
});
rules: {
name: [{ validator: validateRequire, trigger: 'blur' }],
sex: [{ validator: validateRequire, trigger: 'blur' }]
},
tempRoute: {},
GenderTypeOptions: [
{ 'key': 1, 'display_name': '男' },
{ 'key': 2, 'display_name': '女' }
],
uploadType: -99,
isdisabledFn: false
}
},
computed: {
lang() {
return this.$store.getters.language
}
},
created() {
if (this.isEdit) {
const id = this.$route.params && this.$route.params.id
this.fetchData(id)
} else {
this.postForm = Object.assign({}, defaultForm)
}
this.postForm.status = 'published' this.tempRoute = Object.assign({}, this.$route)
},
methods: {
fetchData(id) {
facestarDetail(id).then(response => {
this.postForm = response.data.data.data
this.postForm.sex = sexTypeKeyValue[response.data.data.data.sex]
}).catch(err => {
console.log(err)
})
},
submitForm() {
this.$refs.postForm.validate(valid => {
if (valid) {
this.loading = true
if (this.postForm.ordinary_image_url === '') {
this.$message.error('头像一不能为空~')
this.loading = false this.loading = false
} else {
console.log('error submit!!')
return false return false
} }
}) const gender = {
}, '男': 1,
getRemoteCityList(query) { '女': 2
citySearch(query).then(response => { }
if (!response.data.data.data) return this.isdisabledFn = true
this.regionListOptions = response.data.data.data if (gender.hasOwnProperty(this.postForm.sex)) {
}) this.postForm.sex = gender[this.postForm.sex]
}, }
getRemoteTagList(query) { this.isdisabledFn = true
tagSearch(query).then(response => { faceStarCreate(this.postForm).then(response => {
if (!response.data.data.data) return this.$notify({
this.tagListOptions = response.data.data.data title: '成功',
}) message: response.data.data.message,
}, type: 'success',
duration: 2000
})
this.$router.go(0)
}).catch(err => {
this.$notify({
title: '失败',
message: '操作失败',
type: 'danger',
duration: 2000
})
})
this.postForm.status = 'published'
this.loading = false
} else {
console.log('error submit!!')
return false
}
})
},
getRemoteCityList(query) {
citySearch(query).then(response => {
if (!response.data.data.data) return
this.regionListOptions = response.data.data.data
})
},
getRemoteTagList(query) {
tagSearch(query).then(response => {
if (!response.data.data.data) return
this.tagListOptions = response.data.data.data
})
} }
} }
}
</script> </script>
<style rel="stylesheet/scss" lang="scss" scoped> <style rel="stylesheet/scss" lang="scss" scoped>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment