20261008
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<uititle title="金久信学堂"></uititle>
|
||||
<view class="bg-white p-10">
|
||||
<view class="group flex align-center m-top-30">
|
||||
<view class="lb need m-right-20">标题:</view>
|
||||
<view class="vl flex-1">
|
||||
<u--input
|
||||
placeholder="请输入标题"
|
||||
border="surround"
|
||||
v-model="formData.name"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group flex align-center m-top-30">
|
||||
<view class="lb need m-right-20">分类:</view>
|
||||
<view class="vl flex-1" @click="showPicker = true">
|
||||
<u--input
|
||||
style="pointer-events:none"
|
||||
disabledColor="#fff"
|
||||
disabled
|
||||
placeholder="请选择分类"
|
||||
border="surround"
|
||||
v-model="cate"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group m-top-20">
|
||||
<view class="lb m-right-20">附件:</view>
|
||||
<view class="m-top-30">
|
||||
<u-upload
|
||||
accept="file"
|
||||
:fileList="formData.files"
|
||||
@afterRead="afterRead"
|
||||
:maxCount="1"
|
||||
:previewImage="false"
|
||||
>
|
||||
<view class="w-100p">
|
||||
<view>
|
||||
<u-button size="mini" type="primary">点击上传</u-button>
|
||||
</view>
|
||||
<view class="mt-10 flex justify-between items-center w-100p" @click="delFiles(index)"
|
||||
v-for="(item, index) in fileNameList" :key="index">
|
||||
<text>{{ item }}</text>
|
||||
<u-icon name="trash"/>
|
||||
</view>
|
||||
</view>
|
||||
</u-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="lb need m-right-20 mt-20 border-top">内容:</view>
|
||||
<piaoyiEditor :values="formData.content" :maxlength="99999" @changes="saveContents" :readOnly="false"/>
|
||||
<u-button class="m-top-30" type="primary" text="提交" @click="save"></u-button>
|
||||
</view>
|
||||
<u-picker :show="showPicker" :columns="[cateList]" keyName="name"
|
||||
@cancel="showPicker = false" @close="showPicker = false" closeOnClickOverlay
|
||||
@confirm="confirmCate"/>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import uititle from '@/components/common/title'
|
||||
import cmsearch from '@/components/common/search'
|
||||
import cmempty from '@/components/common/empty'
|
||||
import piaoyiEditor from '@/uni_modules/piaoyi-editor/components/piaoyi-editor/piaoyi-editor.vue';
|
||||
import dayjs from "dayjs";
|
||||
import md5 from "js-md5";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
uititle,
|
||||
cmsearch,
|
||||
cmempty,
|
||||
piaoyiEditor,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
editor: null,
|
||||
toolbarConfig: {},
|
||||
editorConfig: {placeholder: '请输入内容...'},
|
||||
mode: 'default',
|
||||
formData: {
|
||||
name: null,
|
||||
files: [],
|
||||
parentId: null,
|
||||
content: '',
|
||||
},
|
||||
cateList: [],
|
||||
fileNameList: [],
|
||||
showPicker: false,
|
||||
cate: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getCateList() {
|
||||
const {rows} = await vk.callFunction({
|
||||
url: 'client/article/category/pub/getList'
|
||||
})
|
||||
this.cateList = rows
|
||||
},
|
||||
async save() {
|
||||
if (!this.formData.name) return vk.toast('标题不能为空')
|
||||
if (!this.formData.parentId) return vk.toast('分类不能为空')
|
||||
if (!this.formData.content) return vk.toast('内容不能为空')
|
||||
await vk.callFunction({
|
||||
url: 'client/article/list/kh/add',
|
||||
data: this.formData
|
||||
})
|
||||
vk.navigateBack()
|
||||
},
|
||||
saveContents({html}) {
|
||||
this.formData.content = html
|
||||
},
|
||||
afterRead({file}) {
|
||||
if (!file) return
|
||||
uniCloud.uploadFile({
|
||||
filePath: file.url,
|
||||
cloudPath: dayjs().format('YYYY/MM/DD') + '/' + md5(file.name + Date.now().toString()) + '.pdf',
|
||||
success: ({fileID}) => {
|
||||
uniCloud.getTempFileURL({
|
||||
fileList: [fileID]
|
||||
}).then(res => {
|
||||
this.formData.files.push(res.fileList[0].tempFileURL)
|
||||
this.fileNameList.push(file.name)
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
confirmCate({value}) {
|
||||
this.formData.parentId = value[0]._id
|
||||
this.cate = value[0].name
|
||||
this.showPicker = false
|
||||
},
|
||||
delFiles(index){
|
||||
this.formData.files.splice(index, 1)
|
||||
this.fileNameList.splice(index, 1)
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.getCateList()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user