master
xy 1 year ago
parent 85e3d118a7
commit 356638ebf7

@ -2,6 +2,7 @@
<div> <div>
<vxe-modal <vxe-modal
:width="defaultModalSize.width" :width="defaultModalSize.width"
v-model="showModal"
:height="defaultModalSize.height" :height="defaultModalSize.height"
show-zoom show-zoom
resize resize
@ -12,42 +13,48 @@
show-cancel-button show-cancel-button
:fullscreen="$store.getters.device === 'mobile'" :fullscreen="$store.getters.device === 'mobile'"
:z-index="zIndex" :z-index="zIndex"
v-model="showModal"
title="文本" title="文本"
@confirm="confirm" @confirm="confirm"
> >
<template> <template>
<my-tinymce style="height: 100%;" v-model="myText" :disabled="readonly" /> <my-tinymce v-model="myText" style="height: 100%;" :disabled="readonly" />
</template> </template>
</vxe-modal> </vxe-modal>
</div> </div>
</template> </template>
<script> <script>
import { PopupManager } from "element-ui/lib/utils/popup"; import { PopupManager } from 'element-ui/lib/utils/popup'
import { defaultModalSize } from "@/settings"; import { defaultModalSize } from '@/settings'
export default { export default {
name: "RichTextModal", name: 'RichTextModal',
data() { data() {
return { return {
defaultModalSize, defaultModalSize,
zIndex: PopupManager.nextZIndex(), zIndex: PopupManager.nextZIndex(),
showModal:false, showModal: false,
myText: "", myText: '',
readonly: false, readonly: false,
fieldName: "", fieldName: '',
row: {} row: {}
} }
}, },
computed: {},
created() {
this.$bus.$on('rich-text', ({ text, readonly }) => this.open(text, readonly))
},
beforeDestroy() {
this.$bus.$off('rich-text')
},
methods: { methods: {
open({text, readonly, row, fieldName}) { open({ text, readonly, row, fieldName }) {
this.showModal = true; this.showModal = true
this.$nextTick(() => { this.$nextTick(() => {
this.myText = text; this.myText = text
this.readonly = !!readonly; this.readonly = !!readonly
this.row = row; this.row = row
this.fieldName = fieldName; this.fieldName = fieldName
}) })
}, },
confirm() { confirm() {
@ -60,13 +67,6 @@ export default {
console.log(this.myText) console.log(this.myText)
} }
} }
},
computed: {},
created() {
this.$bus.$on('rich-text',({text, readonly}) => this.open(text, readonly))
},
beforeDestroy() {
this.$bus.$off('rich-text')
} }
} }
</script> </script>

@ -79,6 +79,14 @@
:edit-render="{ name: 'VxeSelect', options: site, props: { multiple: false }, optionProps: { value: 'id', label: 'name' } }" :edit-render="{ name: 'VxeSelect', options: site, props: { multiple: false }, optionProps: { value: 'id', label: 'name' } }"
/> />
<vxe-column
header-align="center"
field="tags"
width="160"
title="标签"
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column <vxe-column
header-align="center" header-align="center"
field="lat" field="lat"
@ -268,23 +276,15 @@ export default {
tableData: [], tableData: [],
form: { form: {
id: '', id: '',
name: '', name: '',
tags: '',
site_id: '', site_id: '',
lat: '', lat: '',
lng: '', lng: '',
good_at: '', good_at: '',
content: '', content: '',
cover_id: [], cover_id: [],
status: 1 status: 1
}, },
validRules: { validRules: {
@ -443,7 +443,7 @@ export default {
form[key] = row[key] form[key] = row[key]
} }
if(Array.isArray(row['cover']) && row['cover'].length>0){ if (Array.isArray(row['cover']) && row['cover'].length > 0) {
form['cover_id'] = row['cover'][0]?.response?.id ?? '' form['cover_id'] = row['cover'][0]?.response?.id ?? ''
} }
this.loading = true this.loading = true

@ -24,6 +24,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标签" prop="tags">
<el-input v-model="form['tags']" clearable placeholder="请填写标签" />
</el-form-item>
<el-form-item label="位置" class="span2"> <el-form-item label="位置" class="span2">
<my-map :value="[form['lat'], form['lng']]" @input="([lat, lng]) => (form['lat']=lat,form['lng']=lng)" /> <my-map :value="[form['lat'], form['lng']]" @input="([lat, lng]) => (form['lat']=lat,form['lng']=lng)" />
</el-form-item> </el-form-item>
@ -106,23 +110,15 @@ export default {
loading: false, loading: false,
visible: false, visible: false,
form: { form: {
name: '', name: '',
tags: '',
site_id: '', site_id: '',
lat: '', lat: '',
lng: '', lng: '',
good_at: '', good_at: '',
content: '', content: '',
cover_id: [], cover_id: [],
status: 1 status: 1
}, },
rules: { rules: {

@ -84,6 +84,7 @@
<my-tinymce <my-tinymce
v-model="form['content']" v-model="form['content']"
clearable clearable
:disabled="false"
placeholder="请填写内容" placeholder="请填写内容"
style="width: 100%" style="width: 100%"
/> />

@ -207,13 +207,10 @@ export default {
tableData: [], tableData: [],
form: { form: {
id: '', id: '',
name: '', name: '',
pid: '', pid: '',
image_id: '',
image_id: [] image: []
}, },
validRules: { validRules: {
@ -355,12 +352,13 @@ export default {
} }
form['image_id'] = row['image'][0]?.response?.id ?? '' form['image_id'] = row['image'][0]?.response?.id ?? ''
console.log('form', form)
this.loading = true this.loading = true
await save(form, false) await save(form, false)
await this.getList() await this.getList()
this.loading = false this.loading = false
} catch (err) { } catch (err) {
console.error(err)
this.loading = false this.loading = false
} }
}, },

@ -12,15 +12,15 @@
<section class="drawer-container"> <section class="drawer-container">
<el-form class="drawer-container__form" ref="elForm" :model="form" :rules="rules" label-position="top" label-width="120px" size="small"> <el-form class="drawer-container__form" ref="elForm" :model="form" :rules="rules" label-position="top" label-width="120px" size="small">
<div class="form-layout"> <div class="form-layout">
<el-form-item label="商品分类名称" prop="name"> <el-form-item label="商品分类名称" prop="name">
<el-input v-model="form['name']" clearable placeholder="请填写商品分类名称" style="width: 100%;"></el-input> <el-input v-model="form['name']" clearable placeholder="请填写商品分类名称" style="width: 100%;"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="上级分类" prop="pid"> <el-form-item label="上级分类" prop="pid">
<vxe-tree-select v-model="form['pid']" placeholder="请选择上级分类" :options="[{ id: 0, title: '根结点' ,children: tableData }]" clearable :multiple="false" :option-props="{ value: 'id', label: 'title' }" style="width: 100%;"></vxe-tree-select> <vxe-tree-select v-model="form['pid']" placeholder="请选择上级分类" :options="[{ id: 0, name: '根结点' ,children: tableData }]" clearable :multiple="false" :option-props="{ value: 'id', label: 'name' }" style="width: 100%;"></vxe-tree-select>
</el-form-item> </el-form-item>
<el-form-item label="封面图片" prop="image_id"> <el-form-item label="封面图片" prop="image_id">
<el-upload :action="action" <el-upload :action="action"
:file-list="form['image_id']" :file-list="form['image_id']"
@ -36,7 +36,7 @@
<div slot="tip" class="el-upload__tip">文件不超过{{ formatFileSize(uploadSize) }}</div> <div slot="tip" class="el-upload__tip">文件不超过{{ formatFileSize(uploadSize) }}</div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
@ -64,12 +64,12 @@
default: false, default: false,
required: true required: true
}, },
tableData: { tableData: {
type: Array, type: Array,
default: () => [] default: () => []
}, },
}, },
data() { data() {
return { return {
@ -78,16 +78,16 @@
loading: false, loading: false,
visible: false, visible: false,
form: { form: {
name: '', name: '',
pid: '', pid: '',
image_id: [], image_id: [],
}, },
rules: { rules: {
}, },
} }
}, },
@ -142,13 +142,13 @@
reset() { reset() {
this.form = { this.form = {
name: '', name: '',
pid: '', pid: '',
image_id: [], image_id: [],
} }
this.$refs['elForm'].resetFields() this.$refs['elForm'].resetFields()
}, },
@ -157,10 +157,10 @@
this.$message.warning("文件正在上传中") this.$message.warning("文件正在上传中")
return return
} }
this.form['image_id'] = this.form['image_id'][0]?.response?.id ?? '' this.form['image_id'] = this.form['image_id'][0]?.response?.id ?? ''
this.$refs['elForm'].validate(async valid => { this.$refs['elForm'].validate(async valid => {
if (valid) { if (valid) {
this.loading = true this.loading = true

Loading…
Cancel
Save