|
|
- <template>
- <view class="page">
- <navbar title="文章分享" leftClick @leftClick="$utils.navigateBack" />
-
- <view class="content">
- <uv-form
- ref="form"
- :model="form"
- :rules="rules"
- labelPosition="left"
- labelWidth="300rpx"
- :labelStyle="{
- color: '#1B1B1B',
- fontSize: '32rpx',
- fontWeight: 'bold',
- }"
- >
- <view class="form-item">
- <uv-form-item label="用户ID" prop="id">
- <view class="form-item-content">
- <template v-if="form.id">
- <text>{{ form.id }}</text>
- <view style="margin-left: 20rpx;">
- <button class="btn-simple" plain @click="$utils.copyText(form.id)">
- <uv-icon name="file-text" color="#05D9A2" size="28rpx"></uv-icon>
- </button>
- </view>
- </template>
- </view>
- </uv-form-item>
- </view>
- <view class="form-item">
- <uv-form-item label="选择封面图" prop="imageUrl">
- <view class="form-item-content">
- <formUpload v-model="form.imageUrl">
- <template v-slot="{ value }">
- <view class="flex" style="min-width: 116rpx; height: 45rpx;">
- <image
- :src="value"
- mode="aspectFill"
- style="width: 68rpx; height: 68rpx;"
- radius="14rpx"
- />
- <uv-icon style="margin-left: 20rpx" name="arrow-right" color="#000000" size="28rpx"></uv-icon>
- </view>
- </template>
- </formUpload>
- </view>
- </uv-form-item>
- </view>
- <view class="form-item">
- <uv-form-item label="标题" labelWidth="84rpx" prop="title">
- <view class="form-item-content">
- <formInput v-model="form.title" placeholder="请输入你的文章标题" width="584rpx"></formInput>
- </view>
- </uv-form-item>
- </view>
- <view class="form-item">
- <uv-form-item label="设置转发次数(次)" prop="times">
- <view class="form-item-content">
- <formNumberBox v-model="form.times" ></formNumberBox>
- </view>
- </uv-form-item>
- </view>
- <view class="form-item">
- <uv-form-item label="选择二维码" prop="qrCode">
- <view class="form-item-content">
- <formUpload v-model="form.qrCode">
- <template v-slot="{ value }">
- <view class="flex" style="min-width: 93rpx; height: 45rpx;">
- <image
- :src="value"
- mode="aspectFill"
- style="width: 45rpx; height: 45rpx;"
- radius="14rpx"
- />
- <uv-icon style="margin-left: 20rpx" name="arrow-right" color="#000000" size="28rpx"></uv-icon>
- </view>
- </template>
- </formUpload>
- </view>
- </uv-form-item>
- </view>
- <view class="form-item">
- <uv-form-item label="文章内容" prop="description" labelPosition="top">
- <view style="margin-top: 32rpx;">
- <editor id="editor" class="editor"
- @ready="onEditorReady"
- ></editor>
- <button @click="insertImage" class="btn-insert-image">
- <uv-icon name="plus" color="#707070" size="48rpx"></uv-icon>
- </button>
- </view>
- </uv-form-item>
- </view>
- </uv-form>
- </view>
-
- <button class="button-submit" @click="onSubmit">
- 提交审核
- </button>
- </view>
- </template>
-
- <script>
- import formInput from '../components/formInput.vue'
- import formNumberBox from '../components/formNumberBox.vue'
- import formUpload from '../components/formUpload.vue'
- import formTextarea from '../components/formTextarea.vue'
-
- export default {
- components: {
- formInput,
- formNumberBox,
- formUpload,
- formTextarea,
- },
- data() {
- return {
- form: {
- id: null,
- imageUrl: null,
- title: null,
- times: 10,
- qrCode: null,
- description: null,
- },
- rules: {
- // todo
- },
- editorCtx: null,
- }
- },
- methods: {
- onEditorReady() {
- uni.createSelectorQuery().select('#editor').context((res) => {
- this.editorCtx = res.context
- }).exec()
- },
- insertImage() {
- uni.chooseImage({
- count: 1,
- success: (res) => {
- this.editorCtx.insertImage({
- src: res.tempFilePaths[0],
- alt: '图像',
- })
- }
- })
- },
- onSubmit() {
- // todo
-
- const params = { ...this.form }
-
- this.$api('submitPersonalSharing', params)
- },
- }
- }
-
- </script>
-
- <style scoped lang="scss">
- @import '../styles/pageForm.scss';
-
- .editor {
- height: 411rpx;
- }
-
- .btn-simple {
- width: auto;
- height: auto;
- border: none;
- box-shadow: none;
- padding: 0;
- }
-
- .button-submit {
- margin: 0;
- position: fixed;
- bottom: 138rpx;
- left: 20rpx;
- width: calc(100% - 40rpx);
- height: 90rpx;
- }
- </style>
|