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