ソースを参照

提交小程序

wang_xy 1 年間 前
コミット
d8687095c4
5 ファイル変更1053 行追加0 行削除
  1. 375 0
      pages/demo/delis.vue
  2. 244 0
      pages/demo/fwblz.vue
  3. 76 0
      pages/demo/index.vue
  4. 122 0
      pages/demo/my.vue
  5. 236 0
      static/editor/editor-icon.css

+ 375 - 0
pages/demo/delis.vue

@@ -0,0 +1,375 @@
+<template>
+	<view class="gg-container">
+		<view class="gg-tit">
+			<view class="gg-title">
+				我的吉农宝<text>上个页面传过来的参数{{id}}</text>
+			</view>
+			<view>
+			<uni-section title="基本用法" type="line">
+						<view class="example">
+							<!-- 基础用法,不包含校验规则 -->
+							<uni-forms ref="baseForm" :modelValue="baseFormData">
+								<uni-forms-item label="姓名" required>
+									<uni-easyinput v-model="baseFormData.name" placeholder="请输入姓名" />
+								</uni-forms-item>
+								<uni-forms-item label="年龄" required>
+									<uni-easyinput v-model="baseFormData.age" placeholder="请输入年龄" />
+								</uni-forms-item>
+								<uni-forms-item label="性别" required>
+									<uni-data-checkbox v-model="baseFormData.sex" :localdata="sexs" />
+								</uni-forms-item>
+								<uni-forms-item label="兴趣爱好" required>
+									<uni-data-checkbox v-model="baseFormData.hobby" multiple :localdata="hobbys" />
+								</uni-forms-item>
+								<uni-forms-item label="自我介绍">
+									<uni-easyinput type="textarea" v-model="baseFormData.introduction" placeholder="请输入自我介绍" />
+								</uni-forms-item>
+								<uni-forms-item label="日期时间">
+									<uni-datetime-picker type="datetime" return-type="timestamp" v-model="baseFormData.datetimesingle"/>
+								</uni-forms-item>
+							</uni-forms>
+						</view>
+					</uni-section>
+					<uni-section title="多行文本" subTitle="指定属性 type=textarea 使用多行文本框" type="line" padding>
+						<uni-easyinput type="textarea" v-model="value" placeholder="请输入内容"></uni-easyinput>
+					</uni-section>
+					<view class="content">
+						<editor
+							class="myEdit"
+							placeholder="写点什么吧~~"
+							show-img-resize
+							show-img-toolbar
+							show-img-size
+							@ready="onEditReady"
+							@focus="OnFocus"
+							@statuschange="statuschange"
+						></editor>
+					</view>
+					<view class="btnGroup">
+						<u-button type="primary" text="确认发表" @click="onSubmit" :disabled="!artData.title"></u-button>
+					</view>
+					<view class="tools" v-show="toolsShow">
+						<!-- 标题 -->
+						<view class="item" @click="headChange">
+							<text class="iconfont icon-zitibiaoti" :class="headShow ? 'active' : ''"></text>
+						</view>
+						<!-- 加粗 -->
+						<view class="item" @click="boldChange">
+							<text class="iconfont icon-zitijiacu" :class="boldShow ? 'active' : ''"></text>
+						</view>
+						<!-- 斜体 -->
+						<view class="item" @click="italicChange">
+							<text class="iconfont icon-zitixieti" :class="italicShow ? 'active' : ''"></text>
+						</view>
+						<!-- 分割线 -->
+						<view class="item" @click="insertDivider"><text class="iconfont icon-fengexian"></text></view>
+						<view class="item" @click="insertImage"><text class="iconfont icon-charutupian"></text></view>
+						<!-- 完成 -->
+						<view class="item" @click="editOk"><text class="iconfont icon-duigou_kuai"></text></view>
+					</view>
+							    <!-- 这张图片就是自定义的图片,地址填写自己本地的就行 -->
+					<image src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png" 
+					mode="widthFix" style="width: 112rpx;height: 110rpx;" @click="uploadImagePhoto()"></image>
+					
+				</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				toolsShow: false,
+				editorContent: null,
+				headShow: false,
+				boldShow: false,
+				italicShow: false,
+				artData: {
+					title: '',
+					content: ''
+				},
+				
+				
+				baseFormData: {
+					name: '',
+					age: '',
+					introduction: '',
+					sex: 2,
+					hobby: [5],
+					datetimesingle: 1627529992399
+				},
+				// 单选数据源
+				sexs: [{
+					text: '男',
+					value: 0
+				}, {
+					text: '女',
+					value: 1
+				}, {
+					text: '保密',
+					value: 2
+				}],
+				// 多选数据源
+				hobbys: [{
+					text: '跑步',
+					value: 0
+				}, {
+					text: '游泳',
+					value: 1
+				}, {
+					text: '绘画',
+					value: 2
+				}, {
+					text: '足球',
+					value: 3
+				}, {
+					text: '篮球',
+					value: 4
+				}, {
+					text: '其他',
+					value: 5
+				}],
+				value: '',
+				password: '',
+				placeholderStyle: "color:#2979FF;font-size:14px",
+				styles: {
+					color: '#2979FF',
+					borderColor: '#2979FF'
+				},
+				id:'',
+				fileList1: []
+			}
+
+		},
+		onLoad(options) {
+			this.id = options.id;
+		},
+		onReady() {},
+		methods: {
+			input(e) {
+				console.log('输入内容:', e);
+			},
+			iconClick(type) {
+				uni.showToast({
+					title: `点击了${type==='prefix'?'左侧':'右侧'}的图标`,
+					icon: 'none'
+				})
+			},
+			//*****************************************富文本编辑器方法**********************************************//
+			// 初始化
+			onEditReady() {
+				// 查询节点信息的对象
+				// 将选择器的选取范围更改为自定义组件 component 内,返回一个 SelectorQuery 对象实例。(初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点)。
+				// 在当前页面下选择第一个匹配选择器 selector 的节点,返回一个 NodesRef 对象实例,可以用于获取节点信息。
+				// 获取节点的相关信息。第一个参数是节点相关信息配置(必选);第二参数是方法的回调函数,参数是指定的相关节点信息。
+				// 执行所有的请求。请求结果按请求次序构成数组,在 callback 的第一个参数中返回。
+				uni.createSelectorQuery()
+					.in(this)
+					.select('.myEdit')
+					.fields(
+						{
+							size: true, //是否返回节点尺寸(width height)
+							context: true //是否返回节点尺寸(width height)
+						},
+						(res) => {
+							console.log(res);
+							this.editorContent = res.context;
+						}
+					)
+					.exec();
+			},
+			// 离开焦点
+			OnFocus() {
+				this.toolsShow = true;
+			},
+			// 添加分割线
+			insertDivider() {
+				this.editorContent.insertDivider();
+			},
+			// 添加大标题
+			headChange() {
+				this.headShow = !this.headShow;
+				this.editorContent.format('header', this.headShow ? 'H2' : false);
+			},
+			// 加粗
+			boldChange() {
+				this.boldShow = !this.boldShow;
+				this.editorContent.format('bold');
+			},
+			// 斜体
+			italicChange() {
+				this.italicShow = !this.italicShow;
+				this.editorContent.format('italic');
+			},
+			// 用于检查对象detail是否包含名为name的属性
+			checkStatus(name, detail, key) {
+				if (detail.hasOwnProperty(name)) {
+					this[key] = true;
+				} else {
+					this[key] = false;
+				}
+			},
+			// 通过 Context 方法改变编辑器内样式时触发,返回选区已设置的样式(解决标题标签回弹问题)
+			statuschange(e) {
+				let detail = e.detail;
+				console.log(detail);
+				this.checkStatus('header', detail, 'headShow');
+				this.checkStatus('bold', detail, 'boldShow');
+				this.checkStatus('italic', detail, 'italicShow');
+			},
+			// 添加图像
+			insertImage() {
+				// 打开相机
+				uni.chooseImage({
+					count: 3, //默认9
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					success: async (res) => {
+						let tempFiles = res.tempFiles;
+						for (let item of tempFiles) {
+							uni.showLoading({
+								mask: true,
+								title: '上传中...'
+							});
+							try {
+								let res = await uniCloud.uploadFile({
+									filePath: item.path, //要上传的文件对象
+									cloudPath: item.name //cloudPath为云端文件名,
+								});
+								// 设置图片地址 图片地址,仅支持 http(s)、base64、本地图片
+								this.editorContent.insertImage({
+									src: res.fileID
+								});
+								uni.hideLoading();
+							} catch (e) {
+								uni.hideLoading();
+								uni.showModal({
+									content: '上传失败',
+									title: '提示'
+								});
+							}
+						}
+					}
+				});
+			},
+			// 确认
+			editOk() {
+				this.toolsShow = false;
+			},
+			onSubmit() {
+				console.log(11);
+				this.editorContent.getContents({
+					success: (res) => {
+						console.log(res);
+						this.artData.content = res.html;
+					}
+				});
+			},
+			//*****************************************富文本编辑器方法**********************************************//
+			uploadImagePhoto() {
+				uni.chooseImage({
+					count: 9, //默认9
+					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album'], //从相册选择
+					success: function (res) {
+					}
+				});
+			},
+			// 新增图片
+			async afterRead(event) {
+				console.log(event)
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			//上传图片
+			uploadFilePromise(url) {
+				return new Promise((resolve, reject) => {
+					let a = uni.uploadFile({
+						//url: this.$common.domain+'/api/common/upload', // 仅为示例,非真实的接口地址
+						// url:'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
+						filePath: url,
+						name: 'file',
+						formData: {
+							user: 'test'
+						},
+						success: (res) => {
+							let data=JSON.parse(res.data) //最终传给的是字符串,这里需要转换格式
+							resolve(data.data.url)
+						}
+					});
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.uni-mt-5 {
+		margin-top: 5px;
+	}
+	
+	/deep/ .ql-blank::before {
+		font-style: normal;
+		color: #e0e0e0;
+	}
+	 
+	.edit {
+		padding: 30rpx;
+		.title {
+			input {
+				height: 120rpx;
+				font-size: 46rpx;
+				border-bottom: 1px solid #e4e4e4;
+				margin-bottom: 30rpx;
+				color: #000;
+			}
+			.placeholderClass {
+				color: #e0e0e0;
+			}
+		}
+		.content {
+			.myEdit {
+				height: calc(100vh - 500rpx);
+				margin-bottom: 30rpx;
+			}
+		}
+		.tools {
+			width: 100%;
+			height: 80rpx;
+			background: #fff;
+			border-top: 1rpx solid #f4f4f4;
+			position: fixed;
+			left: 0;
+			bottom: 0;
+			display: flex;
+			justify-content: space-around;
+			align-items: center;
+			.iconfont {
+				font-size: 36rpx;
+				color: #333;
+				// 选择按钮的高亮
+				&.active {
+					color: #0199fe;
+				}
+			}
+		}
+	}
+</style>

+ 244 - 0
pages/demo/fwblz.vue

@@ -0,0 +1,244 @@
+<template>
+	<view class="container">
+		<view class="page-body">
+			<view class='wrapper'>
+				<view class='toolbar' @tap="format" style="height: 150px;overflow-y: auto;">
+					<view :class="formats.bold ? 'ql-active' : ''" class="iconfont icon-zitijiacu" data-name="bold">
+					</view>
+					<view :class="formats.italic ? 'ql-active' : ''" class="iconfont icon-zitixieti" data-name="italic">
+					</view>
+					<view :class="formats.underline ? 'ql-active' : ''" class="iconfont icon-zitixiahuaxian"
+						data-name="underline"></view>
+					<view :class="formats.strike ? 'ql-active' : ''" class="iconfont icon-zitishanchuxian"
+						data-name="strike"></view>
+					<!-- #ifndef MP-BAIDU -->
+					<view :class="formats.align === 'left' ? 'ql-active' : ''" class="iconfont icon-zuoduiqi"
+						data-name="align" data-value="left"></view>
+					<!-- #endif -->
+					<view :class="formats.align === 'center' ? 'ql-active' : ''" class="iconfont icon-juzhongduiqi"
+						data-name="align" data-value="center"></view>
+					<view :class="formats.align === 'right' ? 'ql-active' : ''" class="iconfont icon-youduiqi"
+						data-name="align" data-value="right"></view>
+					<view :class="formats.align === 'justify' ? 'ql-active' : ''" class="iconfont icon-zuoyouduiqi"
+						data-name="align" data-value="justify"></view>
+					<!-- #ifndef MP-BAIDU -->
+					<view :class="formats.lineHeight ? 'ql-active' : ''" class="iconfont icon-line-height"
+						data-name="lineHeight" data-value="2"></view>
+					<view :class="formats.letterSpacing ? 'ql-active' : ''" class="iconfont icon-Character-Spacing"
+						data-name="letterSpacing" data-value="2em"></view>
+					<view :class="formats.marginTop ? 'ql-active' : ''" class="iconfont icon-722bianjiqi_duanqianju"
+						data-name="marginTop" data-value="20px"></view>
+					<view :class="formats.marginBottom ? 'ql-active' : ''" class="iconfont icon-723bianjiqi_duanhouju"
+						data-name="marginBottom" data-value="20px"></view>
+					<!-- #endif -->
+ 
+					<view class="iconfont icon-clearedformat" @tap="removeFormat"></view>
+ 
+					<!-- #ifndef MP-BAIDU -->
+					<view :class="formats.fontSize === '24px' ? 'ql-active' : ''" class="iconfont icon-fontsize"
+						data-name="fontSize" data-value="24px"></view>
+					<!-- #endif -->
+					<view :class="formats.color === '#0000ff' ? 'ql-active' : ''" class="iconfont icon-text_color"
+						data-name="color" data-value="#0000ff"></view>
+					<view :class="formats.backgroundColor === '#00ff00' ? 'ql-active' : ''"
+						class="iconfont icon-fontbgcolor" data-name="backgroundColor" data-value="#00ff00"></view>
+					<view class="iconfont icon-date" @tap="insertDate"></view>
+					<view class="iconfont icon--checklist" data-name="list" data-value="check"></view>
+					<view :class="formats.list === 'ordered' ? 'ql-active' : ''" class="iconfont icon-youxupailie"
+						data-name="list" data-value="ordered"></view>
+					<view :class="formats.list === 'bullet' ? 'ql-active' : ''" class="iconfont icon-wuxupailie"
+						data-name="list" data-value="bullet"></view>
+ 
+					<view class="iconfont icon-undo" @tap="undo"></view>
+					<view class="iconfont icon-redo" @tap="redo"></view>
+ 
+					<view class="iconfont icon-outdent" data-name="indent" data-value="-1"></view>
+					<view class="iconfont icon-indent" data-name="indent" data-value="+1"></view>
+					<view class="iconfont icon-fengexian" @tap="insertDivider"></view>
+					<view class="iconfont icon-charutupian" @tap="insertImage"></view>
+					<view :class="formats.header === 1 ? 'ql-active' : ''" class="iconfont icon-format-header-1"
+						data-name="header" :data-value="1"></view>
+					<view :class="formats.script === 'sub' ? 'ql-active' : ''" class="iconfont icon-zitixiabiao"
+						data-name="script" data-value="sub"></view>
+					<view :class="formats.script === 'super' ? 'ql-active' : ''" class="iconfont icon-zitishangbiao"
+						data-name="script" data-value="super"></view>
+ 
+					<view class="iconfont icon-shanchu" @tap="clear"></view>
+ 
+					<view :class="formats.direction === 'rtl' ? 'ql-active' : ''" class="iconfont icon-direction-rtl"
+						data-name="direction" data-value="rtl"></view>
+				</view>
+ 
+				<view class="editor-wrapper">
+					<editor id="editor" class="ql-container" placeholder="开始输入..." show-img-size show-img-toolbar
+						show-img-resize @statuschange="onStatusChange" :read-only="readOnly" @ready="onEditorReady" @blur="blur">
+					</editor>
+					<view class="" style="text-align: center;margin-bottom: 30rpx;">
+						<button style="" type="primary" size="medium" @click="submitInfo()">发布</button>
+				</view>
+				</view>
+				
+				
+			</view>
+		</view>
+	</view>
+</template>
+ 
+ 
+<script>
+	// import quill from "quill";
+	export default {
+		data() {
+			return {
+				title: 'Hello',
+				readOnly: false,
+				formats: {},
+				info:''
+			}
+		},
+		onLoad() {
+		},
+		methods: {
+			blur(e){
+				this.info=e.detail.html
+				console.log(this.info,e,'失去焦点')
+			},
+			readOnlyChange() {
+				this.readOnly = !this.readOnly
+			},
+			onEditorReady() {
+				// #ifdef MP-BAIDU
+				this.editorCtx = requireDynamicLib('editorLib').createEditorContext('editor');
+				// #endif
+ 
+				// #ifdef APP-PLUS || MP-WEIXIN || H5
+				uni.createSelectorQuery().select('#editor').context((res) => {
+					this.editorCtx = res.context
+				}).exec()
+				// #endif
+			},
+			undo() {
+				this.editorCtx.undo()
+			},
+			redo() {
+				this.editorCtx.redo()
+			},
+			format(e) {
+				let {
+					name,
+					value
+				} = e.target.dataset
+				if (!name) return
+				// console.log('format', name, value)
+				this.editorCtx.format(name, value)
+			},
+			onStatusChange(e) {
+				const formats = e.detail
+				this.formats = formats
+			},
+			insertDivider() {
+				this.editorCtx.insertDivider({
+					success: function() {
+						console.log('insert divider success')
+					}
+				})
+			},
+			clear() {
+				uni.showModal({
+					title: '清空编辑器',
+					content: '确定清空编辑器全部内容?',
+					success: res => {
+						if (res.confirm) {
+							this.editorCtx.clear({
+								success: function(res) {
+									console.log("clear success")
+								}
+							})
+						}
+					}
+				})
+			},
+			removeFormat() {
+				this.editorCtx.removeFormat()
+			},
+			insertDate() {
+				const date = new Date()
+				const formatDate = `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`
+				this.editorCtx.insertText({
+					text: formatDate
+				})
+			},
+			insertImage() {
+				uni.chooseImage({
+					count: 1,
+					success: (res) => {
+						this.editorCtx.insertImage({
+							src: res.tempFilePaths[0],
+							alt: '图像',
+							success: function() {
+								console.log('insert image success')
+							}
+						})
+					}
+				})
+			},
+			submitInfo(){
+				this.info = "我已获取到内容,内容如下:"+this.info
+			}
+		}
+	}
+</script>
+ 
+<style>
+	@import "../../static/editor/editor-icon.css";
+	.page-body {
+		height: calc(100vh - var(--window-top) - var(--status-bar-height));
+	}
+ 
+	.wrapper {
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-between;
+	}
+ 
+	.editor-wrapper {
+		height: calc(100vh - var(--window-top) - var(--status-bar-height) - 140px);
+		background: #fff;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-between;
+	}
+ 
+	.iconfont {
+		display: inline-block;
+		padding: 26rpx 26rpx;
+		width: 80rpx;
+		height:80rpx;
+		cursor: pointer;
+		font-size: 20px;
+	}
+ 
+	.toolbar {
+		box-sizing: border-box;
+		border-bottom: 0;
+		font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
+	}
+ 
+	.ql-container {
+		flex:1;
+		box-sizing: border-box;
+		padding: 12px 15px;
+		width: 100%;
+		min-height: 30vh;
+		/* height: auto; */
+		/* height: 80%; */
+		margin-top: 20px;
+		font-size: 16px;
+		line-height: 1.5;
+	}
+ 
+	.ql-active {
+		color: #06c;
+	}
+</style>

+ 76 - 0
pages/demo/index.vue

@@ -0,0 +1,76 @@
+<template>
+	<view class="gg-container">
+		<view class="gg-tit">
+			<view class="gg-title">
+				吉农宝
+			</view>
+			<view>
+				<uni-list>
+					<uni-list :border="true">
+						<!-- 显示圆形头像 -->
+						<uni-list-chat :avatar-circle="true" title="uni-app" avatar="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png" note="您收到一条新的消息" time="2020-02-02 20:20" ></uni-list-chat>
+						<!-- 右侧带角标 -->
+						<uni-list-chat title="uni-app" avatar="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png" note="您收到一条新的消息" time="2020-02-02 20:20" badge-text="12"></uni-list-chat>
+						<!-- 头像显示圆点 -->
+						<uni-list-chat title="uni-app" avatar="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png" note="您收到一条新的消息" time="2020-02-02 20:20" badge-positon="left" badge-text="dot"></uni-list-chat>
+						<!-- 头像显示角标 -->
+						<uni-list-chat title="uni-app" avatar="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png" note="您收到一条新的消息" time="2020-02-02 20:20" badge-positon="left" badge-text="99" to="/pages/demo/fwblz?id=123"></uni-list-chat>
+						<!-- 显示多头像 -->
+						<uni-list-chat title="uni-app" :avatar-list="avatarList" note="您收到一条新的消息" time="2020-02-02 20:20" badge-positon="left" badge-text="dot"></uni-list-chat>
+						<!-- 自定义右侧内容 -->
+						<uni-list-chat title="uni-app" :avatar-list="avatarList" note="您收到一条新的消息" time="2020-02-02 20:20" badge-positon="left" badge-text="dot">
+							<view class="chat-custom-right">
+								<text class="chat-custom-text">刚刚</text>
+								<!-- 需要使用 uni-icons 请自行引入 -->
+								<uni-icons type="star-filled" color="#999" size="18"></uni-icons>
+							</view>
+						</uni-list-chat>
+					</uni-list>
+				</uni-list>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				avatarList: [{
+								url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png'
+							}, {
+								url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png'
+							}, {
+								url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png'
+							}]
+			}
+		},
+		onLoad(options) {
+			this.userInfo = getApp().globalData.userInfo
+		},
+		methods: {
+			tiaozhuan(){
+				uni.navigateTo({
+					url:"/pages/delis"
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.chat-custom-right {
+		flex: 1;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		justify-content: space-between;
+		align-items: flex-end;
+	}
+	
+	.chat-custom-text {
+		font-size: 12px;
+		color: #999;
+	}
+</style>

+ 122 - 0
pages/demo/my.vue

@@ -0,0 +1,122 @@
+<template>
+	<view class="gg-container">
+		<view class="gg-tit">
+			<view class="gg-title">
+				我的吉农宝
+			</view>
+			<view>
+			  <image class="userinfo-avatar" :src="userInfo.avatarUrl" mode="cover"></image>
+			  <text class="userinfo-nickname">{{userInfo.nickName}}</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		components: {
+		},
+		data() {
+			return {
+				userInfo: {}
+			}
+		},
+		onLoad() {
+			this.userInfo = getApp().globalData.userInfo
+		},
+		methods: {
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.gg-container {
+		background-color: #fff;
+		display: flex;
+		flex-direction: column;
+	}
+
+	.gg-tit {
+		width: 100%;
+		position: relative;
+		top: 0;
+		height: 40vh;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.gg-body {
+		display: flex;
+		position: absolute;
+		bottom: 25rpx;
+		width: 728rpx;
+		height: 80rpx;
+		background: linear-gradient(0deg, #90BDFF, #3F93FD, #20B9D5);
+		border-radius: 40rpx;
+		justify-content: center;
+		align-items: center;
+
+		.gg-body-tt {
+			text-align: left;
+			margin-left: 5px;
+			width: 25%;
+			display: flex;
+			align-items: center;
+			color: #FFFFFF;
+			font-weight: bold;
+			font-size: 30rpx;
+		}
+	}
+
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.background {
+		border: 15px solid hsla(0, 0%, 100%, .5);
+		background: white;
+		background-clip: padding-box;
+		/*从padding开始往外面裁剪背景*/
+
+	}
+
+	.container {
+		display: flex;
+		margin-left: 10px;
+		margin-top: 10px;
+		margin-right: 10px;
+		align-items: flex-start;
+		justify-content: space-between;
+	}
+
+	.gg-title {
+		width: 100%;
+		position: absolute;
+		z-index: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		font-size: 40rpx;
+		font-weight: bold;
+		color: #FFFFFF;
+	}
+
+
+
+	.notice {
+		margin: 20rpx;
+		padding: 20rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx 8rpx 17rpx 0rpx rgba(0, 0, 0, 0.04);
+		border-radius: 10rpx;
+	}
+
+	.text {
+		border-left: 15rpx solid #3857F3;
+		padding-left: 20rpx;
+	}
+</style>

ファイルの差分が大きいため隠しています
+ 236 - 0
static/editor/editor-icon.css