| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="60%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="创建人编码" prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/> |
| | | <el-form-item label="文案" prop="title" required> |
| | | <el-input type="textarea" v-model="form.title" placeholder="请输入标题" v-trim maxlength="200"/> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker> |
| | | <el-form-item label="发布时间" prop="publishDate" required> |
| | | <el-date-picker |
| | | v-model="form.publishDate" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="更新人编码" prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/> |
| | | <el-form-item label="状态" prop="status" required> |
| | | <el-radio-group v-model="form.status" > |
| | | <el-radio :label="0" >展示</el-radio> |
| | | <el-radio :label="1">不展示</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="更新时间" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker> |
| | | <el-form-item label="附件类型" prop="fileType" required> |
| | | <el-radio-group v-model="form.fileType" > |
| | | <el-radio :label="0" >图片</el-radio> |
| | | <el-radio :label="1">视频</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="是否删除0否 1是" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/> |
| | | <el-form-item label="图集上传 (最多9张)" v-if="form.fileType !=1"> |
| | | <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="spokesman" @loading="loading = true" @success="fileResult($event)" /> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="请输入备注" v-trim/> |
| | | <el-form-item label="视频上传(单个)" v-if="form.fileType === 1"> |
| | | <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="fileVideoList" accept=".mp4" folder="spokesman" @loading="loading = true" @success="fileResult($event)" /> |
| | | </el-form-item> |
| | | <el-form-item label="标题" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请输入标题" v-trim/> |
| | | <el-form-item label="排序码(升序)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请输入排序码" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="副标题" prop="subTitle"> |
| | | <el-input v-model="form.subTitle" placeholder="请输入副标题" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="排序码" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="内容" prop="content"> |
| | | <el-input v-model="form.content" placeholder="请输入内容" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="跳转类型 0富文本 1外链" prop="linkType"> |
| | | <el-input v-model="form.linkType" placeholder="请输入跳转类型 0富文本 1外链" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="状态 0展示 1不展示" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请输入状态 0展示 1不展示" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="浏览量" prop="lookNum"> |
| | | <el-input v-model="form.lookNum" placeholder="请输入浏览量" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="下载量" prop="donwloadNum"> |
| | | <el-input v-model="form.donwloadNum" placeholder="请输入下载量" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="最近发布时间" prop="publishDate"> |
| | | <el-date-picker v-model="form.publishDate" value-format="yyyy-MM-dd" placeholder="请输入最近发布时间"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="最近发布人人编码(关联system_user)" prop="publishUserid"> |
| | | <el-input v-model="form.publishUserid" placeholder="请输入最近发布人人编码(关联system_user)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="最近发布备注" prop="publishInfo"> |
| | | <el-input v-model="form.publishInfo" placeholder="请输入最近发布备注" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="素材类型 0推广资讯 1定制服务" prop="type"> |
| | | <el-input v-model="form.type" placeholder="请输入素材类型 0推广资讯 1定制服务" v-trim/> |
| | | <el-form-item label="备注" prop="publishInfo"> |
| | | <el-input type="textarea" v-model="form.publishInfo" placeholder="请输入发布备注" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import upload from '@/components/common/upload' |
| | | export default { |
| | | name: 'OperaNewsWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | components: { GlobalWindow, upload }, |
| | | data () { |
| | | return { |
| | | // 表单数据 |
| | | loading: false, |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | remark: '', |
| | | title: '', |
| | | subTitle: '', |
| | | sortnum: '', |
| | | content: '', |
| | | linkType: '', |
| | | status: '', |
| | | lookNum: '', |
| | | donwloadNum: '', |
| | | status: 0, |
| | | publishDate: '', |
| | | publishUserid: '', |
| | | publishInfo: '', |
| | | type: '' |
| | | fileList: [], |
| | | fileType: 0, |
| | | type: 0 |
| | | }, |
| | | fileImgList: [], |
| | | fileVideoList: [], |
| | | // 验证规则 |
| | | rules: { |
| | | title: [{ required: true, message: '请输入文案' }], |
| | | publishDate: [{ required: true, message: '请选择发布时间' }], |
| | | status: [{ required: true, message: '请选择状态' }], |
| | | fileType: [{ required: true, message: '请选择附件类型' }] |
| | | } |
| | | } |
| | | }, |
| | |
| | | api: '/business/news', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.form.fileList = [] |
| | | this.fileImgList= [] |
| | | this.fileVideoList = [] |
| | | // 新建 |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // 编辑 |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.fileType = target.fileType || 0 |
| | | const files = target.fileList || [] |
| | | if(target.fileType === 1){ |
| | | if(files.length>0){ |
| | | this.fileVideoList.push(files[0]) |
| | | } |
| | | }else { |
| | | files.forEach(item => { |
| | | this.fileImgList.push(item) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getWangedditor (val) { |
| | | this.form.content = val |
| | | }, |
| | | delFile (index) { |
| | | if(this.form.fileType === 1){ |
| | | this.fileVideoList.splice(index, 1) |
| | | this.form.fileList =this.fileVideoList |
| | | }else{ |
| | | this.fileImgList.splice(index, 1) |
| | | this.form.fileList =this.fileImgList |
| | | } |
| | | }, |
| | | fileResult (e) { |
| | | if(this.form.fileType === 1){ |
| | | this.fileVideoList = this.fileVideoList||[] |
| | | this.fileVideoList.push({ |
| | | fileurlFull: e.url, |
| | | fileurl: e.imgaddr, |
| | | name: e.originname, |
| | | type: e.type |
| | | }) |
| | | this.form.fileList =this.fileVideoList |
| | | }else{ |
| | | this.fileImgList = this.fileImgList||[] |
| | | this.fileImgList.push({ |
| | | fileurlFull: e.url, |
| | | fileurl: e.imgaddr, |
| | | name: e.originname, |
| | | type: e.type |
| | | }) |
| | | this.form.fileList =this.fileImgList |
| | | } |
| | | console.log(this.form.fileList) |
| | | } |
| | | } |
| | | } |
| | | </script> |