|
|
@@ -28,8 +28,29 @@
|
|
|
<el-form-item prop="detail" label="详情" style="width: calc(100vw - 450px)">
|
|
|
<rich-text v-model="formData.detail"></rich-text>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="properties" label="特性">
|
|
|
- <div></div>
|
|
|
+ <el-form-item prop="properties" label="特性" style="width: calc(100vw - 450px)" size="mini">
|
|
|
+ <el-table :data="formData.properties">
|
|
|
+ <el-table-column prop="name" label="名称">
|
|
|
+ <template v-slot="{ row }">
|
|
|
+ <el-input v-model="row.name" placeholder="20字以内" maxlength="20"></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="value" label="内容">
|
|
|
+ <template v-slot="{ row }">
|
|
|
+ <el-input v-model="row.value" placeholder="20字以内" maxlength="20"></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="80" align="center">
|
|
|
+ <template v-slot="{ row, $index }">
|
|
|
+ <el-button type="danger" plain size="mini" @click="delProperty($index)">
|
|
|
+ 删除
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button size="mini" @click="addProperty"> 添加 </el-button>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="type" label="类型">
|
|
|
<el-select v-model="formData.type" clearable filterable placeholder="请选择">
|
|
|
@@ -88,6 +109,7 @@ export default {
|
|
|
this.$http
|
|
|
.get('collection/get/' + this.$route.query.id)
|
|
|
.then(res => {
|
|
|
+ res.properties = res.properties || [];
|
|
|
this.formData = res;
|
|
|
})
|
|
|
.catch(e => {
|
|
|
@@ -99,7 +121,7 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
saving: false,
|
|
|
- formData: { onShelf: true },
|
|
|
+ formData: { onShelf: true, properties: [] },
|
|
|
rules: {
|
|
|
name: [
|
|
|
{
|
|
|
@@ -177,6 +199,31 @@ export default {
|
|
|
message: '请输入价格',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
+ ],
|
|
|
+ properties: [
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (value) {
|
|
|
+ if (!(value instanceof Array)) {
|
|
|
+ callback(new Error('properties must be array!'));
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ for (let i = 0; i < value.length; i++) {
|
|
|
+ if (value[i].name === '' || value[i].name === undefined) {
|
|
|
+ callback(new Error('请填写名称'));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (value[i].value === '' || value[i].value === undefined) {
|
|
|
+ callback(new Error('请填写内容'));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
]
|
|
|
},
|
|
|
typeOptions: [
|
|
|
@@ -238,6 +285,15 @@ export default {
|
|
|
console.log(e);
|
|
|
this.$set(this.formData, 'minter', e.nickname);
|
|
|
this.$set(this.formData, 'minterAvatar', e.avatar);
|
|
|
+ },
|
|
|
+ addProperty() {
|
|
|
+ this.formData.properties.push({
|
|
|
+ name: '',
|
|
|
+ value: ''
|
|
|
+ });
|
|
|
+ },
|
|
|
+ delProperty(i) {
|
|
|
+ this.formData.properties.splice(i, 1);
|
|
|
}
|
|
|
}
|
|
|
};
|