|
@@ -201,14 +201,41 @@
|
|
|
marginTop:
|
|
|
changeType == 'text' || changeType == 'luminance' ? 0 : '32px',
|
|
|
}"
|
|
|
- ></div>
|
|
|
+ >
|
|
|
+ <canvas
|
|
|
+ id="canvas"
|
|
|
+ ref="imgCanvas"
|
|
|
+ :style="{
|
|
|
+ width: form.width + 'px',
|
|
|
+ height: form.height + 'px',
|
|
|
+ background: form.bg_color,
|
|
|
+ }"
|
|
|
+ ></canvas>
|
|
|
+ </div>
|
|
|
<div class="bottom">
|
|
|
<div>
|
|
|
<img src="../../assets/teacherdev/sfds-tailoring.png" alt="" />
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <img src="../../assets/teacherdev/sfds-image.png" alt="" />
|
|
|
- </div>
|
|
|
+ <el-upload
|
|
|
+ :accept="'.png,.jpg'"
|
|
|
+ class="upload-demo"
|
|
|
+ :show-file-list="false"
|
|
|
+ :action="url"
|
|
|
+ :on-preview="handlePreview"
|
|
|
+ :on-remove="handleRemove"
|
|
|
+ :multiple="true"
|
|
|
+ :on-exceed="handleExceed"
|
|
|
+ :on-success="handleSuccess"
|
|
|
+ :file-list="fileList"
|
|
|
+ :before-remove="beforeRemove"
|
|
|
+ :limit="1"
|
|
|
+ :before-upload="handlebeforeUplaod"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <img src="../../assets/teacherdev/sfds-image.png" alt="" />
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+
|
|
|
<div @click="addText">
|
|
|
<img src="../../assets/teacherdev/sfds-text.png" alt="" />
|
|
|
</div>
|
|
@@ -229,6 +256,8 @@
|
|
|
//例如:import 《组件名称》from ‘《组件路径》';
|
|
|
import Header from "@/components/Header";
|
|
|
import DragLine from "@/components/DragLine";
|
|
|
+import { getToken, removeToken } from "@/utils/auth";
|
|
|
+
|
|
|
export default {
|
|
|
//import引入的组件需要注入到对象中才能使用
|
|
|
components: {
|
|
@@ -331,10 +360,29 @@ export default {
|
|
|
fontColor: "#FFFFFF",
|
|
|
},
|
|
|
FontFamilySele: false,
|
|
|
+ loading: false,
|
|
|
+ fileList: [],
|
|
|
+ imgCtx: null,
|
|
|
};
|
|
|
},
|
|
|
//计算属性 类似于data概念
|
|
|
- computed: {},
|
|
|
+ computed: {
|
|
|
+ url() {
|
|
|
+ let userInfor = JSON.parse(getToken());
|
|
|
+ let UserCode = "",
|
|
|
+ UserType = "",
|
|
|
+ SessionID = "";
|
|
|
+ if (userInfor) {
|
|
|
+ UserCode = userInfor.user_code;
|
|
|
+ UserType = userInfor.user_type;
|
|
|
+ SessionID = userInfor.session_id;
|
|
|
+ }
|
|
|
+ return (
|
|
|
+ process.env.VUE_APP_BASE_API +
|
|
|
+ `/GCLSFileServer/WebFileUpload?UserCode=${UserCode}&UserType=${UserType}&SessionID=${SessionID}&SecurityLevel=Mid"`
|
|
|
+ );
|
|
|
+ },
|
|
|
+ },
|
|
|
//监控data中数据变化
|
|
|
watch: {},
|
|
|
//方法集合
|
|
@@ -392,6 +440,52 @@ export default {
|
|
|
return Math.abs(Math.abs(this.luminanceNumber) - 100) / 100;
|
|
|
}
|
|
|
},
|
|
|
+ initCanvasImage() {
|
|
|
+ let imgCanvas = this.$refs.imgCanvas; //绘制图片的canvas
|
|
|
+ this.imgCtx = imgCanvas.getContext("2d");
|
|
|
+ let img = new Image();
|
|
|
+ img.src = this.fileList[0].file_url;
|
|
|
+ img.onload = () => {
|
|
|
+ //图片加载完成后开始绘制图片
|
|
|
+ this.imgCtx.drawImage(img, 0, 0, this.form.width, this.form.height);
|
|
|
+ };
|
|
|
+ },
|
|
|
+ handlebeforeUplaod(file) {
|
|
|
+ if (file.size > 20 * 1024 * 1024) {
|
|
|
+ this.$message.warning("上传文件大小不能超过20M");
|
|
|
+ return false; //必须返回false
|
|
|
+ }
|
|
|
+ this.loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: "Loading",
|
|
|
+ spinner: "el-icon-loading",
|
|
|
+ background: "rgba(0, 0, 0, 0.7)",
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleSuccess(response, file, fileList) {
|
|
|
+ if (response.status == 1) {
|
|
|
+ this.fileList = response.file_info_list;
|
|
|
+ this.loading.close();
|
|
|
+ this.initCanvasImage();
|
|
|
+ } else if (response.status == -1) {
|
|
|
+ this.loading.close();
|
|
|
+ removeToken();
|
|
|
+ this.$message.warning(response.error);
|
|
|
+ this.$router.push("/login");
|
|
|
+ } else {
|
|
|
+ this.loading.close();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleRemove(file, fileList) {},
|
|
|
+ handlePreview(file) {},
|
|
|
+ handleExceed(files, fileList) {
|
|
|
+ this.$message.warning(
|
|
|
+ `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
|
|
|
+ files.length + fileList.length
|
|
|
+ } 个文件`
|
|
|
+ );
|
|
|
+ },
|
|
|
+ beforeRemove(file, filleList) {},
|
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
|
created() {},
|
|
@@ -637,6 +731,9 @@ export default {
|
|
|
.canvas {
|
|
|
height: 500px;
|
|
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
}
|
|
|
.bottom {
|
|
|
margin-top: 40px;
|