|
1 | 1 | <template>
|
2 | 2 | <div class="app-container">
|
3 | 3 | <el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
4 |
| - <el-form-item label="车次名称" prop="name"> |
5 |
| - <el-input v-model="form.name"/> |
6 |
| - </el-form-item> |
7 |
| - <el-form-item label="price" prop="price"> |
8 |
| - <el-input v-model="form.price"/> |
9 |
| - </el-form-item> |
10 |
| - <el-form-item label="类型" prop="car_type"> |
11 |
| - <el-select v-model="form.car_type" placeholder="请选择类型"> |
12 |
| - <el-option label="大巴" value="大巴"/> |
13 |
| - <el-option label="中巴" value="中巴"/> |
14 |
| - <el-option label="地铁" value="地铁"/> |
| 4 | + <el-form-item label="栏目" prop="category_id"> |
| 5 | + <el-select v-model="form.category_id" placeholder="请选择栏目" value-key="name"> |
| 6 | + <el-option v-for="(cate, index) in category" :key="index" :label="cate.name" :value="cate.id"> |
| 7 | + <span style="float: left; color: #8492a6; font-size: 13px">{{ cate.name }}</span> |
| 8 | + </el-option> |
15 | 9 | </el-select>
|
16 | 10 | </el-form-item>
|
17 |
| - <el-form-item label="发车间隔" prop="depart_time"> |
18 |
| - <el-input v-model="form.depart_time"/> |
19 |
| - </el-form-item> |
20 |
| - <el-form-item label="营运时间" prop="open_time"> |
21 |
| - <el-input v-model="form.open_time"/> |
22 |
| - </el-form-item> |
23 |
| - <el-form-item label="全程时间" prop="total_time"> |
24 |
| - <el-input v-model="form.total_time"/> |
25 |
| - </el-form-item> |
26 |
| - <el-form-item label="途经道路" prop="via_road"> |
27 |
| - <el-input v-model="form.via_road" type="textarea"/> |
28 |
| - </el-form-item> |
29 |
| - <el-form-item label="公交公司" prop="company"> |
30 |
| - <el-input v-model="form.company"/> |
| 11 | + <el-form-item label="文章标题" prop="title"> |
| 12 | + <el-input v-model="form.title"/> |
31 | 13 | </el-form-item>
|
32 |
| - <el-form-item label="途经站点(去程)" prop="station"> |
33 |
| - <el-input :rows="4" v-model="form.station" type="textarea" /> |
| 14 | + <el-form-item label="作者" prop="author"> |
| 15 | + <el-input v-model="form.author"/> |
34 | 16 | </el-form-item>
|
35 |
| - <el-form-item label="途经站点(返程)" prop="station_back"> |
36 |
| - <el-input :rows="4" v-model="form.station_back" type="textarea" /> |
| 17 | + <el-form-item label="关键词" prop="keywords"> |
| 18 | + <el-input v-model="form.keywords"/> |
37 | 19 | </el-form-item>
|
38 |
| - <el-form-item label="编辑原因" prop="reason"> |
39 |
| - <el-input v-model="form.reason" /> |
| 20 | + <el-form-item label="标签" prop="tag_ids"> |
| 21 | + <el-input v-model="form.tag_ids"/> |
40 | 22 | </el-form-item>
|
41 |
| - <el-form-item label="最后更新时间" prop="last_update"> |
42 |
| - <el-date-picker v-model="form.last_update" value-format="yyyy:MM:dd" type="date" placeholder="选择日期" /> |
| 23 | + <el-form-item label="内容" prop="markdown"> |
| 24 | + <mavon-editor ref="md" v-model="form.markdown" @imgAdd="imgAdd" @imgDel="imgDel" /> |
43 | 25 | </el-form-item>
|
44 |
| - <el-form-item label="是否已审核"> |
45 |
| - <el-radio-group v-model="form.is_show"> |
46 |
| - <el-radio :label="0">未审核</el-radio> |
47 |
| - <el-radio :label="1">通过</el-radio> |
48 |
| - <el-radio :label="2">不通过</el-radio> |
| 26 | + <el-form-item label="是否置顶"> |
| 27 | + <el-radio-group v-model="form.is_top"> |
| 28 | + <el-radio :label="1">是</el-radio> |
| 29 | + <el-radio :label="0">否</el-radio> |
49 | 30 | </el-radio-group>
|
50 | 31 | </el-form-item>
|
51 | 32 | <el-form-item>
|
|
57 | 38 | </template>
|
58 | 39 |
|
59 | 40 | <script>
|
60 |
| -import { edit, postEdit } from '@/api/lines' |
| 41 | +import { axios, edit, postEdit } from '@/api/article' |
| 42 | +import { getList } from '@/api/category' |
61 | 43 |
|
62 | 44 | export default {
|
63 | 45 | data() {
|
64 | 46 | return {
|
| 47 | + item: '', |
| 48 | + category: [], |
65 | 49 | form: {
|
66 |
| - name: '', |
67 |
| - price: '', |
68 |
| - car_type: '大巴', |
69 |
| - depart_time: '', |
70 |
| - open_time: '', |
71 |
| - total_time: '', |
72 |
| - via_road: '', |
73 |
| - company: '', |
74 |
| - station: '', |
75 |
| - station_back: '', |
76 |
| - reason: '', |
77 |
| - last_update: '', |
78 |
| - is_show: 0, |
| 50 | + title: '', |
| 51 | + category_id: '', |
| 52 | + author: 'admin', |
| 53 | + keywords: '', |
| 54 | + tag_ids: '', |
| 55 | + markdown: '', |
| 56 | + content: '0', |
| 57 | + is_top: 0, |
79 | 58 | loading: false
|
80 | 59 | },
|
81 | 60 | rules: {
|
82 |
| - name: [ |
83 |
| - { required: true, message: '请输入线路名称', trigger: 'blur' } |
84 |
| - ], |
85 |
| - price: [ |
86 |
| - { required: true, message: '请输入 price', trigger: 'blur' } |
87 |
| - ], |
88 |
| - car_type: [ |
89 |
| - { required: true, message: '请输入 car_type', trigger: 'blur' } |
90 |
| - ], |
91 |
| - station: [ |
92 |
| - { required: true, message: '请输入途经站点', trigger: 'blur' } |
93 |
| - ], |
94 |
| - station_back: [ |
95 |
| - { required: true, message: '请输入', trigger: 'blur' } |
96 |
| - ], |
97 |
| - depart_time: [ |
98 |
| - { required: true, message: '请输入', trigger: 'blur' } |
| 61 | + title: [ |
| 62 | + { required: true, message: '请输入名称', trigger: 'blur' } |
99 | 63 | ],
|
100 |
| - via_road: [ |
101 |
| - { required: true, message: '请输入', trigger: 'blur' } |
| 64 | + category_id: [ |
| 65 | + { required: true, message: '请选择栏目', trigger: 'blur' } |
102 | 66 | ],
|
103 |
| - total_time: [ |
104 |
| - { required: true, message: '请输入', trigger: 'blur' } |
| 67 | + author: [ |
| 68 | + { required: true, message: '请输入作者', trigger: 'blur' } |
105 | 69 | ],
|
106 |
| - company: [ |
107 |
| - { required: true, message: '请输入', trigger: 'blur' } |
| 70 | + keywords: [ |
| 71 | + { required: true, message: '请输入关键词', trigger: 'blur' } |
108 | 72 | ],
|
109 |
| - open_time: [ |
110 |
| - { required: true, message: '请输入', trigger: 'blur' } |
| 73 | + tag_ids: [ |
| 74 | + { required: true, message: '请选择一个标签', trigger: 'blur' } |
111 | 75 | ],
|
112 |
| - reason: [ |
113 |
| - { required: true, message: '请输入', trigger: 'blur' } |
114 |
| - ], |
115 |
| - last_update: [ |
116 |
| - { required: true, message: '请输入', trigger: 'change' } |
| 76 | + markdown: [ |
| 77 | + { required: true, message: '请输入内容', trigger: 'blur' } |
117 | 78 | ]
|
118 | 79 | },
|
119 |
| - redirect: '/list/lines' |
| 80 | + redirect: '/article/index' |
| 81 | + } |
| 82 | + }, |
| 83 | + watch: { |
| 84 | + item(value) { |
| 85 | + this.form.category_id = value |
| 86 | + this.getItem() |
120 | 87 | }
|
121 | 88 | },
|
122 | 89 | created() {
|
| 90 | + this.init() |
| 91 | +
|
123 | 92 | this.id = this.$route.params.id
|
124 |
| - this.getTaskData(this.id) |
| 93 | + this.getData(this.id) |
125 | 94 | },
|
126 | 95 | methods: {
|
127 |
| - getTaskData(id) { |
| 96 | + getItem() { |
| 97 | + this.$emit('getItem', this.form.category) |
| 98 | + }, |
| 99 | + init() { |
| 100 | + getList({ perPage: 20 }).then(response => { |
| 101 | + this.category = response.data.data |
| 102 | + }) |
| 103 | + }, |
| 104 | + getData(id) { |
128 | 105 | // this.id = this.$route.params.id
|
129 | 106 | edit(id).then(response => {
|
130 | 107 | // console.log(response)
|
131 | 108 | this.loading = false
|
132 | 109 | if (response.code === 200) {
|
133 | 110 | this.form = response.data
|
134 |
| - this.form.is_task = (response.data.is_task === 1) |
| 111 | + this.form.item = response.data.category_id |
| 112 | + this.form.category_id = response.data.category_id |
| 113 | + this.getItem() |
| 114 | + // this.form.is_task = (response.data.is_task === 1) |
135 | 115 | } else {
|
136 | 116 | this.$message.error(response.reason)
|
137 | 117 | }
|
138 | 118 | })
|
139 | 119 | },
|
140 | 120 | onSubmit(form) {
|
141 |
| - // console.log(this.form) |
142 | 121 | this.$refs[form].validate((valid) => {
|
143 | 122 | if (valid) {
|
144 | 123 | this.loading = true
|
@@ -170,6 +149,38 @@ export default {
|
170 | 149 | },
|
171 | 150 | resetForm(formName) {
|
172 | 151 | this.$refs[formName].resetFields()
|
| 152 | + }, |
| 153 | + // 绑定@imgAdd event |
| 154 | + imgAdd(pos, $file) { |
| 155 | + // 第一步.将图片上传到服务器. |
| 156 | + var formdata = new FormData() |
| 157 | + formdata.append('image', $file) |
| 158 | + axios({ |
| 159 | + url: 'http://localhost/', |
| 160 | + method: 'post', |
| 161 | + data: formdata, |
| 162 | + headers: { 'Content-Type': 'multipart/form-data' } |
| 163 | + }).then((url) => { |
| 164 | + // 第二步.将返回的url替换到文本原位置 ->  |
| 165 | + /** |
| 166 | + * $vm 指为 mavonEditor 实例,可以通过如下两种方式获取 |
| 167 | + * 1. 通过引入对象获取: `import {mavonEditor} from ...` 等方式引入后,`$vm`为`mavonEditor` |
| 168 | + * 2. 通过$refs获取: html声明ref : `<mavon-editor ref=md ></mavon-editor>,`$vm`为 `this.$refs.md` |
| 169 | + */ |
| 170 | + console.log(pos) |
| 171 | + console.log(url) |
| 172 | + this.$refs.md.$img2Url(pos, url.data) |
| 173 | + }) |
| 174 | + }, |
| 175 | + imgDel(pos) { |
| 176 | + // delete this.img_file[pos] |
| 177 | + // console.log(pos[0]) |
| 178 | + // console.log(pos[0].name) |
| 179 | + // console.log(pos[1]) |
| 180 | + // let rs = this.$refs.md.$refs.toolbar_left.$imgDelByFilename(pos[0].name) |
| 181 | + // console.log(rs) |
| 182 | + // let rs = this.$refs.md.$refs.toolbar_left.$imgDelByFilename('aa18972bd40735faee21b63393510fb30e240862.jpg') |
| 183 | + // console.log(rs) |
173 | 184 | }
|
174 | 185 | }
|
175 | 186 | }
|
|
0 commit comments