特易招,招聘小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

153 lines
3.1 KiB

<template>
<view class="page">
<navbar title="编辑模板" leftClick @leftClick="$utils.navigateBack" />
<view style="padding: 25rpx;background-color: #fff;">
<canvas-drag ref="canvasRef"
id="canvas-drag" :graph="graph"
:width="width" :height="height"
@onDrawArrChange="onDrawArrChange"
enableUndo="true"></canvas-drag>
</view>
<view class="btn-list">
<view class="uni-color-btn" @tap="onAddImage">新建签名</view>
<view class="uni-color-btn" @tap="onChangeBgImage">导入合同</view>
<view class="uni-color-btn" @tap="onUndo">后退</view>
<view class="uni-color-btn" @tap="onClearCanvas">清空</view>
<view class="uni-color-btn" @tap="submit">保存</view>
<!-- <view class="uni-color-btn" @tap="onExportJSON">导出模板</view> -->
<!-- <view class="uni-color-btn" @tap="onAddText">添加文字</view> -->
</view>
</view>
</template>
<script>
import canvasDrag from "@/components/canvas-drag/index";
import setData from "@/components/canvas-drag/setData.js";
export default {
components: {
canvasDrag
},
mixins : [setData],
data() {
return {
height: 750,
width: 700,
drawArr : [],
}
},
onLoad() {
},
mounted() {},
methods: {
// 签名位置更新时
onDrawArrChange(arr){
this.drawArr = arr
},
/**
* 添加签名位置
*/
onAddImage() {
wx.chooseImage({
success: res => {
this.setData({
graph: {
w: 100,
h: 50,
type: 'image',
url: res.tempFilePaths[0]
}
});
}
});
},
/**
* 导入合同
*/
onChangeBgImage() {
let self = this
wx.chooseImage({
success: res => {
uni.getImageInfo({
src: res.tempFilePaths[0],
success: image => {
console.log(image);
let allwh = image.height + image.width
let imgw = (image.width / allwh).toFixed(2)
let imgh = (image.height / allwh).toFixed(2)
self.height = imgh * Math.ceil(this.width / imgw)
self.$nextTick(() => {
this.$refs.canvasRef.changeBgImage(image.path)
})
}
})
}
});
},
// 后退
onUndo(event) {
this.$refs.canvasRef.undo();
},
/**
* 导出当前画布为模板
*/
onExportJSON() {
this.$refs.canvasRef.exportFun().then(imgArr => {
console.log(imgArr);
uni.previewImage({
urls: [imgArr],
current: 0,
})
}).catch(e => {
console.error(e);
});
},
/**
* 添加文本
*/
onAddText() {
this.setData({
graph: {
type: 'text',
text: 'helloworld'
}
});
},
onClearCanvas(event) {
let _this = this;
_this.setData({
canvasBg: null
});
this.$refs.canvasRef.clearCanvas();
},
submit() {
uni.setStorageSync('drawArrJson', JSON.stringify(this.drawArr))
uni.navigateBack(-1)
},
}
}
</script>
<style scoped lang="scss">
.page {
padding-bottom: 100rpx;
.btn-list {
display: flex;
flex-wrap: wrap;
padding: 20rpx;
gap: 20rpx;
.uni-color-btn {
margin: 0;
border-radius: 10rpx;
}
}
}
</style>