| | |
| | | <template> |
| | | <div class="myFrom"> |
| | | <a-form-model :model="form" :label-col="labelCol" :wrapper-col="wrapperCol"> |
| | | <a-form-model-item label="标题"> |
| | | <div> |
| | | <a-form-model ref="myForm" :model="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="rules"> |
| | | <a-form-model-item label="标题" prop="title"> |
| | | <a-input v-model="form.title" placeholder="限 50字内" /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="模式切换"> |
| | | <a-switch v-model="form.online" /> |
| | | <span class="myTip"> |
| | | 本地编辑/由系统生成文件 |
| | | 本地文件/由系统生成文件 |
| | | </span> |
| | | </a-form-model-item> |
| | | |
| | | |
| | | <a-form-model-item label="日志文件" v-show="!form.online"> |
| | | <a-form-model-item label="日志文件" v-show="!form.online" prop="blogFileList"> |
| | | <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76" |
| | | :default-file-list="form.blogFileList"> |
| | | <a-button> |
| | | <a-icon type="upload" /> 限 md/html 文件 |
| | | <a-icon type="upload" /> 限 markdown/html |
| | | </a-button> |
| | | </a-upload> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="日志内容" v-show="form.online"> |
| | | <a-form-model-item label="日志内容" v-show="form.online" prop="content"> |
| | | <a-input v-model="form.content" type="textarea" placeholder="限10k字数" /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="分类"> |
| | | <a-form-model-item label="分类" prop="class"> |
| | | <a-select v-model="form.class" :allowClear="true" mode="multiple" placeholder="多选(至少一个)" |
| | | :getPopupContainer="getCalendarContainer()"> |
| | | <a-select-option value="shanghai"> |
| | |
| | | </a-select> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="偏好"> |
| | | <a-form-model-item label="额外设置"> |
| | | <a-switch v-model="form.preference" /> |
| | | </a-form-model-item> |
| | | |
| | | <div v-show="form.preference" class="myBorder" style="padding:10px;"> |
| | | <a-form-model-item label="草稿模式"> |
| | | <a-form-model-item label="起个草稿"> |
| | | <a-switch v-model="form.tempSave" /> |
| | | <span v-show="form.tempSave" class="myTip"> |
| | | 临时存储,将不会发布该篇日志 |
| | | 临时存储,游客无法浏览 |
| | | </span> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label=" 文件类型"> |
| | | <a-radio-group v-model="form.blogType"> |
| | | <a-radio value="Markdown"> |
| | | Markdown |
| | | markdown |
| | | </a-radio> |
| | | <a-radio value="Html"> |
| | | Html |
| | | html |
| | | </a-radio> |
| | | </a-radio-group> |
| | | </a-form-model-item> |
| | |
| | | {{ `${tag.slice(0, 20)}...` }} |
| | | </a-tag> |
| | | </a-tooltip> |
| | | <a-tag v-else :key="tag" :closable="index !== 0" @close="() => handleClose(tag)"> |
| | | <a-tag v-else :key="tag" :closable="index >= 0" @close="() => handleClose(tag)"> |
| | | {{ tag }} |
| | | </a-tag> |
| | | </template> |
| | | |
| | | <a-input v-if="inputVisible" ref="input" type="text" size="small" :style="{ width: '78px' }" |
| | | :value="inputValue" @change="handleInputChange" @blur="handleInputConfirm" |
| | | @keyup.enter="handleInputConfirm" /> |
| | | |
| | | <a-tag v-else style="background: #fff; borderStyle: dashed;" @click="showInput"> |
| | | <a-icon type="plus" /> New Tag |
| | | </a-tag> |
| | | |
| | | </a-form-model-item> |
| | | |
| | | |
| | |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="定时"> |
| | | <a-date-picker v-model="form.publishDate" show-time type="date" placeholder="发布时间" |
| | | <a-date-picker v-model="form.publishDate" show-time type="<datetime></datetime>" placeholder="发布时间" |
| | | style="width: 100%;" :disabledDate="disabledDate" |
| | | :getCalendarContainer="getCalendarContainer()" /> |
| | | </a-form-model-item> |
| | | |
| | | |
| | | |
| | | <div v-bind:class="{'myBorder':form.lock}"> |
| | | <div v-bind:class="{'myBorder':form.lock}" style="padding: 3px;"> |
| | | |
| | | <a-form-model-item label="加锁"> |
| | | <a-switch v-model="form.lock" /> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | blogFileList: [], |
| | | coverFileList: [ |
| | | // { |
| | |
| | | inputVisible: false, |
| | | inputValue: '', |
| | | labelCol: { |
| | | span: 5 |
| | | span: 7 |
| | | }, |
| | | wrapperCol: { |
| | | span: 19 |
| | | span: 13 |
| | | }, |
| | | form: { |
| | | preference: true, |
| | | preference: false, |
| | | title: '', |
| | | content: '', |
| | | class: [], |
| | |
| | | auth: "private", |
| | | password: "", |
| | | blogFileList: [], |
| | | coverFileList: [ |
| | | // { |
| | | // uid: '-1', |
| | | // name: 'xxx.png', |
| | | // status: 'done', |
| | | // url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', |
| | | // thumbUrl: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', |
| | | // } |
| | | ], |
| | | coverFileList: [], |
| | | }, |
| | | rules: { |
| | | title: [{ |
| | | required: true, |
| | | message: '标题不能为空', |
| | | trigger: 'blur' |
| | | }, |
| | | { |
| | | min: 5, |
| | | max: 50, |
| | | message: '字数限制1~50', |
| | | trigger: 'blur' |
| | | }, |
| | | ], |
| | | content: [{ |
| | | required: true, |
| | | message: '至少选一个上传内容', |
| | | trigger: 'blur' |
| | | }, ], |
| | | blogFileList: [{ |
| | | required: true, |
| | | message: '文件未上传', |
| | | }, { |
| | | min: 1, |
| | | message: '文件未上传', |
| | | }, ], |
| | | class: [{ |
| | | required: true, |
| | | message: '至少选一个分类', |
| | | trigger: 'blur' |
| | | }, ], |
| | | // region: [{ |
| | | // required: true, |
| | | // message: 'Please select Activity zone', |
| | | // trigger: 'change' |
| | | // }], |
| | | // date1: [{ |
| | | // required: true, |
| | | // message: 'Please pick a date', |
| | | // trigger: 'change' |
| | | // }], |
| | | // type: [{ |
| | | // type: 'array', |
| | | // required: true, |
| | | // message: 'Please select at least one activity type', |
| | | // trigger: 'change', |
| | | // }, ], |
| | | // resource: [{ |
| | | // required: true, |
| | | // message: 'Please select activity resource', |
| | | // trigger: 'change' |
| | | // }, ], |
| | | // desc: [{ |
| | | // required: true, |
| | | // message: 'Please input activity form', |
| | | // trigger: 'blur' |
| | | // }], |
| | | } |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | }, |
| | | handleClose(removedTag) { |
| | | const tags = this.tags.filter(tag => tag !== removedTag); |
| | | console.log(tags); |
| | | //console.log(tags); |
| | | this.tags = tags; |
| | | }, |
| | | |
| | |
| | | if (inputValue && tags.indexOf(inputValue) === -1) { |
| | | tags = [...tags, inputValue]; |
| | | } |
| | | console.log(tags); |
| | | //console.log(tags); |
| | | Object.assign(this, { |
| | | tags, |
| | | inputVisible: false, |
| | | inputValue: '', |
| | | }); |
| | | }, |
| | | onSubmit() { |
| | | console.log('submit!', this.form); |
| | | }, |
| | | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | @media screen and(max-width: 575px) { |
| | | .ant-form-item-label { |
| | | padding: 8px !important; |
| | | } |
| | | } |
| | | |
| | | .myTip { |
| | | font-size: 10px; |
| | | color: #999; |
| | |
| | | |
| | | .myBorder { |
| | | border: 1px solid #999; |
| | | border-radius: 10px; |
| | | } |
| | | |
| | | .ant-upload-list-item-info { |