From 17b1c347ea9c6d3efd566b62bcaf7b3aa07dfa54 Mon Sep 17 00:00:00 2001
From: wjt <1797368093@qq.com>
Date: 星期二, 25 六月 2024 10:22:54 +0800
Subject: [PATCH] 二维码修改
---
src/views/system/user/index.vue | 19 +++++++--
src/views/infomanger/companymanger/components/createQrcode.vue | 47 ++++++++++++++++++++++-
src/views/infomanger/companymanger/index.vue | 2
src/views/index/index.vue | 8 ++--
4 files changed, 64 insertions(+), 12 deletions(-)
diff --git a/src/views/index/index.vue b/src/views/index/index.vue
index e54b052..b6dc4c8 100644
--- a/src/views/index/index.vue
+++ b/src/views/index/index.vue
@@ -6,11 +6,11 @@
<div>鍏ラ┗浼佷笟鎬绘暟</div>
</div>
<div class="box">
- <div>{{dataInfo.enforceOrderCheckedNum|| 0}}</div>
+ <div>{{dataInfo.enforceCompanyNum|| 0}}</div>
<div>宸叉鏌ヤ紒涓氭暟</div>
</div>
<div class="box">
- <div>{{dataInfo.enforceCompanyNum|| 0}}</div>
+ <div>{{dataInfo.enforceDeptNum|| 0}}</div>
<div>鎵ф硶鍗曚綅鏁�</div>
</div>
<div class="box">
@@ -18,11 +18,11 @@
<div>鎵ф硶浜哄憳鏁�</div>
</div>
<div class="box">
- <div>{{dataInfo.enforceOrderNum|| 0}}</div>
+ <div>{{dataInfo.enforce0rderNum|| 0}}</div>
<div>鎵ф硶璁板綍鎬绘暟</div>
</div>
<div class="box">
- <div>{{dataInfo.enforceOrderCompleteNum|| 0}}</div>
+ <div>{{dataInfo.complaintNum|| 0}}</div>
<div>鎶曡瘔璁板綍鏁�</div>
</div>
<div class="box">
diff --git a/src/views/infomanger/companymanger/components/createQrcode.vue b/src/views/infomanger/companymanger/components/createQrcode.vue
index 0df20e8..d567ff7 100644
--- a/src/views/infomanger/companymanger/components/createQrcode.vue
+++ b/src/views/infomanger/companymanger/components/createQrcode.vue
@@ -1,18 +1,20 @@
<template>
<el-dialog title="浜岀淮鐮�" v-model="dialogVisible" width="300px" @close="closeDialog">
<div class="text-center">
- <vueQr ref="query" :text="info.companyCode"></vueQr>
+ <vueQr ref="query" background="#fff" :text="info.companyCode"></vueQr>
<div>{{ info.companyName }}</div>
<div style="margin-top: 10px;">
<el-link @click="downImage" type="primary">涓嬭浇浼佷笟鐮�</el-link>
</div>
</div>
+ <canvas ref="canvasRef" style="position: absolute; left: 0; top: 2210px;background-color: white;"></canvas>
</el-dialog>
</template>
<script lang="ts" setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
let dialogVisible = ref(false)
+const canvasRef = ref()
const info = ref({})
const query = ref()
function openDialog(row) {
@@ -24,9 +26,11 @@
dialogVisible.value = false
}
function downImage() {
+ drawText()
+ const imageUrl = canvasRef.value.toDataURL('image/png')
// console.log(query.value.imgUrl)
let aLink = document.createElement('a')
- let blob = base64ToBlob(query.value.imgUrl)
+ let blob = base64ToBlob(imageUrl)
let evt = document.createEvent("HTMLEvents")
evt.initEvent("click", true, true) // initEvent 涓嶅姞鍚庝袱涓弬鏁板湪FF涓嬩細鎶ラ敊 浜嬩欢绫诲瀷锛屾槸鍚﹀啋娉★紝鏄惁闃绘娴忚鍣ㄧ殑榛樿琛屼负
aLink.download = "浜岀淮鐮�.png"
@@ -34,6 +38,45 @@
// aLink.dispatchEvent(evt);
aLink.click()
}
+function drawText() {
+ const canvas = canvasRef.value;
+ canvas.width = 350;
+ canvas.height = 350;
+ canvas.style.width = '350px';
+ canvas.style.height = '350px';
+ const ctx = canvas.getContext('2d');
+ ctx.fillStyle = "#fff"
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
+ let img = new Image();
+ img.src = query.value.imgUrl;
+ const text = info.value.companyName;
+
+ ctx.drawImage(img, 10, 0, 320, 320);
+ ctx.font = '20px Arial';
+ ctx.textAlign = 'center';
+ ctx.fillStyle = '#000';
+ wrapText(ctx, text, 180, 320, 350, 20)
+ }
+ function wrapText(context, text, x, y, maxWidth, lineHeight) {
+ var words = text.split('');
+ var line = '';
+ for(var n = 0; n < words.length; n++) {
+ var testLine = line + words[n] + ' ';
+ var metrics = context.measureText(testLine);
+ var testWidth = metrics.width;
+ if (testWidth > maxWidth && n > 0) {
+ context.fillText(line, x, y);
+ line = words[n] + ' ';
+ y += lineHeight;
+ }
+ else {
+ line = testLine;
+ }
+ }
+ if(line) {
+ context.fillText(line, x, y);
+ }
+}
function base64ToBlob(code) {
let parts = code.split(';base64,')
let contentType = parts[0].split(':')[1]
diff --git a/src/views/infomanger/companymanger/index.vue b/src/views/infomanger/companymanger/index.vue
index b477358..46c77d5 100644
--- a/src/views/infomanger/companymanger/index.vue
+++ b/src/views/infomanger/companymanger/index.vue
@@ -139,7 +139,7 @@
import exportRecord from './components/exportRecord'
import createQrcode from './components/createQrcode'
import judgeCom from './components/judge'
-import { listCompany,addCompany, updStatus, delCompany } from "@/api/system/company/company";
+import { listCompany,addCompany, updStatus, delCompany, updateCompany } from "@/api/system/company/company";
import exportExcelCom from './components/export'
import { computed } from "vue";
import { judgeStatus, companyStatus, scopeList } from '@/utils/mapList/index.ts'
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index a8c29b0..b4d712b 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -316,11 +316,12 @@
{ required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
{ min: 2, max: 20, message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", trigger: "blur" },
],
+ deptId: [{ required: true, message: "閮ㄩ棬涓嶈兘涓虹┖", trigger: "blur" }],
nickName: [{ required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }],
- password: [
- { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
- { min: 5, max: 20, message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", trigger: "blur" },
- ],
+ // password: [
+ // { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
+ // { min: 5, max: 20, message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", trigger: "blur" },
+ // ],
email: [{ type: "email", message: "璇疯緭鍏ユ纭殑閭鍦板潃", trigger: ["blur", "change"] }],
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", trigger: "blur" }],
},
@@ -379,7 +380,8 @@
function resetQuery() {
dateRange.value = [];
proxy.resetForm("queryRef");
- queryParams.value.deptId = undefined;
+ // queryParams.value.deptId = undefined;
+ queryParams.value.deptId = deptOptions.value[0].id;
proxy.$refs.deptTreeRef.setCurrentKey(null);
handleQuery();
}
@@ -605,6 +607,13 @@
}
function batchUserDeptTreeHttp(deptId) {
batchUserDeptTree({deptId}).then(val => {
+ if(val.data.deptId == deptId) {
+ val.data.disabled = true
+ val.data.child.forEach(item => {
+ item.disabled = true
+
+ })
+ }
val.data.child.forEach(item => {
// item.disabled = true
if(item.deptId == deptId) {
--
Gitblit v1.9.1