feat:增加二维码弹窗

This commit is contained in:
lixg
2022-11-14 21:15:18 +08:00
parent 2d095e4391
commit 4574d93c96
15 changed files with 11628 additions and 3350 deletions

View File

@@ -0,0 +1,270 @@
<template>
<div class="twoDimensionalCode">
<!--二维码页面 -->
<a-modal
:visible="codevisible"
:footer="null"
:closable="closableQR"
wrapClassName="codeModal"
style="margin-top: 400px"
:zIndex="9999"
@cancel="qr_exit"
>
<div id="qrcode" class="QR">
<div class="qr_header"></div>
<div class="qr_main">
<div class="qrm_header">
<span style="title">{{codeInfo.title?codeInfo.title:''}}</span>
<div class="close_exit" @click="closeCodeModal"></div>
</div>
<div class="qrm_body">
<div class="codename">{{codeInfo.name?codeInfo.name:''}}</div>
<qrcode-vue
:value="codeInfo.url?codeInfo.url:''"
:size="qrcodeSize"
style="width: 200px; height: 200px"
></qrcode-vue>
</div>
<div class="qrm_footer">
<span style="margin-left: 52px">下载二维码</span>
<div class="qrmbtn" @click="downloadQr(200)">
<div class="btntext">200*200</div>
</div>
<div class="qrmbtn" @click="downloadQr(200)">
<div class="btntext">400*400</div>
</div>
<div class="qrmbtn" @click="downloadQr(200)">
<div class="btntext">800*800</div>
</div>
</div>
</div>
</div>
</a-modal>
<!--二维码页面 -->
</div>
</template>
<script>
import { reactive, toRefs, watch } from "vue";
import QrcodeVue from "qrcode.vue";
// import html2canvas from "html2canvas";
export default {
name: "TwoDimensionalCode",
components: {
QrcodeVue,
},
props: {
codevisible: {
type: Boolean,
default: false,
},
codeInfo: {
type: Object,
default: function () {
return {};
},
},
index: {
type: String,
default: "",
},
},
setup(props, ctx) {
const state = reactive({
qrcodeUrl: "https://www.baidu.com/",
qrcodeSize: 800,
codeInfo: {},
});
//下载二维码图片
const downloadQr = (num) => {
state.qrcodeSize = num;
// let filename = `${new Date().getTime()}.png`;
// let canvas = document.getElementsByTagName("canvas")[0];
// let imageUrl = canvas.toDataURL("image/png");
// let canvasBox = document.createElement("canvas");
// let ctx = canvasBox.getContext("2d");
// var img = new Image();
// // 需要添加文字的图片
// img.src = imageUrl;
// // 等待图片加载完成
// img.onload = function () {
// // 将图片添加到canvas
// ctx.drawImage(img, 0, 0, 1240, 2208);
// // 设置字体
// ctx.font = "73px 微软雅黑 bolder";
// // 设置字体颜色
// ctx.fillStyle = "#955f17";
// ctx.textAlign = "center";
// // 添加文字和位置
// ctx.fillText("微信名", 621, 1050);
// // 导出为图片
// let url = canvasBox.toDataURL("image/png");
// let a = document.createElement("a");
// a.style.display = "none";
// a.download = filename;
// a.href = url;
// document.body.appendChild(a);
// a.click();
// };
// // let a = document.createElement("a");
// // a.style.display = "none";
// // a.download = filename;
// // a.href = imageUrl;
// // document.body.appendChild(a);
// // a.click();
// html2canvas(document.querySelector("#qrcode"), {
// useCORS: true, //支持图片跨域
// }).then((canvas) => {
// // var extra_canvas = document.createElement("canvas");
// // extra_canvas.setAttribute('width',num);
// // extra_canvas.setAttribute('height',num);
// // var ctx = extra_canvas.getContext('2d');
// // ctx.drawImage(canvas,0,0,num,num);
// // let filename = `${new Date().getTime()}.png`;
// // var imageUrl = extra_canvas.toDataURL("image/png",1.0);
// console.log("canvas", canvas, canvas.width, canvas.style.width);
// // // let ctx = canvas.getContext('2d');
// // // ctx.drawImage(canvas,0,0,canvas.width, canvas.height);
// // // canvas.width=num
// // // canvas.height=num
// // // canvas.style.width=num+'px'
// // // canvas.style.height=num+'px'
// // let filename = `${new Date().getTime()}.png`;
// // let imageUrl = canvas.toDataURL("image/png");
// // let a = document.createElement("a");
// // a.style.display = "none";
// // a.download = filename;
// // a.href = imageUrl;
// // document.body.appendChild(a);
// // a.click();
// });
console.log('document.getElementsByClassName',document.getElementsByClassName('codeModal'),Number(props.index))
let canvas =document.getElementsByClassName('codeModal')[Number(props.index)].getElementsByTagName('canvas')[0];
let filename = `${new Date().getTime()}.png`;
let imageUrl = canvas.toDataURL("image/png");
let a = document.createElement("a");
a.style.display = "none";
a.download = filename;
a.href = imageUrl;
document.body.appendChild(a);
a.click();
};
const closeCodeModal = () => {
ctx.emit("update:codevisible", false);
};
watch(() => {
let obj = {
title: "",
name: "",
url: "",
};
state.codeInfo = Object.assign(obj, props.codeInfo);
console.log("codeInfo22222", state.codeInfo,props.index);
});
return {
...toRefs(state),
downloadQr,
closeCodeModal,
};
},
};
</script>
<style scoped lang="scss">
.twoDimensionalCode {
}
.codeModal {
.ant-modal {
.ant-modal-content {
width: 479px !important;
.ant-modal-body {
.QR {
z-index: 9999;
width: 520px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
position: absolute;
left: 50%;
top: 10%;
transform: translate(-50%, -50%);
.qr_header {
position: absolute;
width: calc(100%);
height: 40px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.qr_main {
width: 100%;
position: relative;
.qrm_header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.title {
font-size: 16px;
font-weight: 600;
color: #333333;
line-height: 22px;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.qrm_body {
width: 100%;
margin-top: 22px;
margin-bottom: 32px;
display: flex;
flex-direction: column;
align-items: center;
.codename {
font-size: 18px;
font-weight: 400;
color: #333333;
line-height: 25px;
margin-bottom: 20px;
}
}
.qrm_footer {
display: flex;
align-items: center;
margin-bottom: 44px;
.qrmbtn {
width: 80px;
height: 32px;
display: flex;
line-height: 32px;
justify-content: center;
border-radius: 4px;
border: 1px solid #387df7;
margin-left: 16px;
cursor: pointer;
.btntext {
color: #387df7;
}
}
}
}
}
}
}
}
}
</style>

View File

@@ -16,49 +16,45 @@
@click="closeDrawer" @click="closeDrawer"
/> />
</div> </div>
<div class="contentMain"> <div class="main">
<div class="main_items"> <div class="search">
<div class="mi_ipts"> <div class="leftchoose">
<div class="mii_ipt"> <div class="namecon" style="margin-right: 30px">
<div class="ipt_name">姓名</div> <div class="name">姓名</div>
<div class="fi_input">
<a-input <a-input
v-model:value="inputV1" v-model:value="name"
style="width: 264px; height: 40px; border-radius: 8px" style="width: 270px; height: 40px; border-radius: 8px"
placeholder="请输入姓名" placeholder="请输入姓名"
/> />
</div> </div>
</div> </div>
</div>
<div class="mi_btns"> <div class="btns">
<div class="btn btn1"> <div class="btn btn1" style="margin-right: 20px">
<div class="search"></div> <div class="img1"></div>
<div class="btnText">搜索</div> <div class="wz">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2">
<div class="search"></div> <div class="img2"></div>
<div class="btnText">重置</div> <div class="wz">重置</div>
</div> </div>
</div> </div>
</div> </div>
<div class="main_table"> <div class="tableBox" style="margin-top: 10px">
<a-table <a-table
:row-selection="{ style="border: 1px solid #f2f6fe"
selectedRowKeys: selectedRowKeys, :columns="tableDataFunc()"
onChange: onSelectChange, :data-source="tableData"
}"
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 900 }"
:pagination="false" :pagination="false"
>
<template #bodyCell="{ column }"> />
<template v-if="column.key === 'opacation'"> </div>
<a>取消授权</a>
</template>
</template>
</a-table>
<div class="tableBox"> <div class="tableBox">
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
@@ -72,9 +68,57 @@
/> />
</div> </div>
</div> </div>
<!-- <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900, y: 350 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div> -->
</div>
<!-- 取消授权弹窗 -->
<a-modal
v-model:visible="cancelModal"
:footer="null"
:closable="closeCancel"
wrapClassName="copyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeCancelModal"></div>
</div>
<div class="body">
<span>您确定要取消该用户的授权吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div> </div>
</div> </div>
<div class="main_btns"> </div>
</div>
</a-modal>
<div class="botm"></div>
<div class="btnn">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
@@ -83,60 +127,7 @@
</template> </template>
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs } from "vue";
const columns1 = [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: "10%",
align: "left",
},
{
title: "归属组织",
dataIndex: "organization",
key: "organization",
width: "19%",
align: "center",
},
{
title: "岗位",
dataIndex: "position",
key: "position",
width: "19%",
align: "center",
},
{
title: "拥有权限",
dataIndex: "authority",
key: "authority",
width: "19%",
align: "center",
},
{
title: "操作",
dataIndex: "opacation",
key: "opacation",
width: "34%",
align: "center",
},
];
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows);
},
});
export default { export default {
name: "CorPoerlist", name: "CorPoerlist",
props: { props: {
@@ -147,60 +138,203 @@
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
tableData1: [ name: null,
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
selectedRowKeys: [],
cancelModal: false, //取消授权弹窗
closeCancel: false, //取消授权弹窗关闭图标
tableData: [
{ {
key: 1, key: 1,
name: "李明", name: "张三",
organization: "-", com: "产研部",
position: "产品经理", gang: "产品经理",
authority: "归属权", number: "20201234",
state: "管理权",
}, },
{ {
key: 2, key: 2,
name: "李洋", name: "张三",
organization: "-", com: "产研部",
position: "产品经理", gang: "产品经理",
authority: "查看权", number: "20201234",
state: "管理权",
}, },
{ {
key: 3, key: 3,
name: "小李", name: "张三",
organization: "-", com: "产研部",
position: "产品经理", gang: "产品经理",
authority: "管理权", number: "20201234",
state: "管理权",
}, },
{ {
key: 4, key: 4,
name: "雄安名", name: "张三",
organization: "-", com: "产研部",
position: "产品经理", gang: "产品经理",
authority: "管理权", number: "20201234",
state: "管理权",
}, },
{ {
key: 5, key: 5,
name: "王哥", name: "张三",
organization: "-", com: "产研部",
position: "产品经理", gang: "产品经理",
authority: "管理权", number: "20201234",
state: "管理权",
},
{
key: 6,
name: "张三",
com: "产研部",
gang: "产品经理",
number: "20201234",
state: "归属权",
},
{
key: 7,
name: "张三",
com: "产研部",
gang: "产品经理",
number: "20201234",
state: "查看权",
},
{
key: 8,
name: "张三",
com: "产研部",
gang: "产品经理",
number: "20201234",
state: "管理权",
},
{
key: 9,
name: "张三",
com: "产研部",
gang: "产品经理",
number: "20201234",
state: "管理权",
},
{
key: 10,
name: "张三",
com: "产研部",
gang: "产品经理",
number: "20201234",
state: "管理权",
}, },
], ],
currentPage: 1,
tableDataTotal: 100,
pageSize: 10,
inputV1:'',
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:corpowerlistVisible", false); ctx.emit("update:corpowerlistVisible", false);
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
const showCancelModal = () => {
state.cancelModal = true;
};
const closeCancelModal = () => {
state.cancelModal = false;
};
const tableDataFunc = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 70,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
return (
<div class="racona">
<span> {text.record.name}</span>
</div>
);
},
},
{
title: "工号",
dataIndex: "number",
// width: "30%",
key: "number",
width: 100,
align: "center",
className: "h",
},
{
title: "归属组织",
dataIndex: "com",
// width: "30%",
key: "com",
width: 100,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gang",
key: "gang",
width: 100,
align: "center",
className: "h",
},
{
title: "拥有权限",
dataIndex: "state",
key: "state",
width: 100,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 100,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div
class="opa"
onClick={() => {
showCancelModal();
}}
>
取消授权
</div>
);
},
},
];
return columns;
}; };
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange,
closeDrawer, closeDrawer,
columns1, onSelectChange,
rowSelection, tableDataFunc,
showCancelModal,
closeCancelModal,
afterVisibleChange,
}; };
}, },
}; };
@@ -209,117 +343,234 @@
// .ant-table-striped :deep(.table-striped) td { // .ant-table-striped :deep(.table-striped) td {
// background-color: #fafafa !important; // background-color: #fafafa !important;
// } // }
.copyModal {
.ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 424px;
height: 258px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
// position: absolute;
// left: 50%;
// top: 10%;
// transform: translate(-50%, -50%);
.del_header {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/notice.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
.del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
margin-right: 14px;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
}
}
}
}
}
}
}
.corpowerlistDrawer { .corpowerlistDrawer {
// width: 80%;
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain { .drawerMain {
// overflow: auto;
min-width: 500px;
margin: 0px 32px 0px 32px;
overflow-x: auto;
display: flex;
flex-direction: column;
.header { .header {
height: 73px; height: 73px;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-shrink: 0;
// background-color: red;
margin-bottom: 20px;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
color: #333333; color: #333333;
line-height: 25px; line-height: 25px;
margin-left: 24px; // margin-left: 24px;
background-color: #ffffff;
} }
} }
.contentMain { .main {
margin-top: 32px; width: 100%;
padding-right: 20px; // height: 100%;
.main_items { // background-color: #bfa;
overflow-y: auto;
margin-bottom: 80px;
.search {
width: 100%;
display: flex; display: flex;
justify-content: space-between;
margin-bottom: 12px;
flex-wrap: wrap; flex-wrap: wrap;
.mi_ipts { margin-top: 10px;
//justify-content: space-between;
.leftchoose {
display: flex; display: flex;
margin-bottom: 20px; margin-right: 20px;
.mii_ipt { .namecon {
display: flex; display: flex;
align-items: center; flex-wrap: nowrap;
margin-right: 24px; margin-bottom: 10px;
.ipt_name { .name {
margin-top: 8px;
white-space: nowrap; white-space: nowrap;
} }
// .name {
// margin-top: 8px;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
} }
} }
.mi_btns {
.btns {
display: flex; display: flex;
margin-left: 38px; flex-wrap: nowrap;
margin-bottom: 20px;
cursor: pointer;
.btn { .btn {
padding: 0px 26px 0px 26px; cursor: pointer;
height: 38px; width: 100px;
height: 40px;
border-radius: 8px; border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex; display: flex;
align-items: center;
justify-content: center; justify-content: center;
margin-left: 14px; align-items: center;
flex-shrink: 0; .img1 {
.search { width: 15px;
background-size: 100%; height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-size: 100% 100%;
margin-right: 7px;
} }
.btnText { .img2 {
font-size: 14px; width: 16px;
font-weight: 400; height: 18px;
line-height: 36px; background-image: url(../../assets/images/courseManage/reset1.png);
margin-left: 5px; background-size: 100% 100%;
margin-right: 7px;
} }
} }
.btn1 { .btn1 {
background: rgb(64, 158, 255); background: #409eff;
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png");
}
.btnText {
color: rgb(255, 255, 255);
}
}
.btn2 {
background: rgb(255, 255, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png");
}
.btnText {
color: rgb(64, 158, 255);
}
}
.btn1:hover {
background: rgb(255, 255, 255);
.search {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("@/assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff; color: #ffffff;
} }
.btn2 {
background: #ffffff;
color: #409eff;
border: 1px solid #409eff;
} }
} }
} }
.main_table {
position: relative; .tableBox {
padding-bottom: 80px; // margin-bottom: 80px;
.classify { .classify {
margin-left: 10px !important; // margin-left: 11px !important;
padding-left: 9px !important; // padding-left: 9px !important;
padding-left: 20px !important;
} }
.ant-checkbox-wrapper { .ant-checkbox-wrapper {
align-items: center; align-items: center;
@@ -327,7 +578,7 @@
} }
.ant-table-selection-column { .ant-table-selection-column {
padding: 0px !important; padding: 0px !important;
padding-left: 60px !important; // padding-left: 45px !important;
} }
.ant-table-thead > tr > th { .ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1); background-color: rgba(239, 244, 252, 1);
@@ -341,24 +592,65 @@
> td { > td {
background: #f6f9fd; background: #f6f9fd;
} }
.tableBox{ .opa {
// background-color: #bfa;
font-size: 14px;
font-weight: 400;
color: #388be1;
cursor: pointer;
}
}
.tableBox {
.pa { .pa {
left: 0; // left: 0;
margin-top: 25px;
// margin-bottom: 70px;
width: 100%; width: 100%;
// height: 20px; // height: 20px;
// background-color: red; // background-color: red;
display: flex; display: flex;
justify-content: center; justify-content: center;
position: absolute; // position: absolute;
bottom: 20px; // bottom: 20px;
} // margin-bottom: 20px;
.ant-pagination-prev,
.ant-pagination-next,
.ant-pagination-options {
margin-bottom: 10px;
}
.ant-pagination-item {
margin-bottom: 10px;
} }
} }
} }
// .tab {
// .ant-table-thead > tr > th {
// background-color: rgba(239, 244, 252, 1) !important;
// }
.main_btns { // th.h {
// background-color: #eff4fc !important;
// }
// .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
}
}
// .botm {
// width: 100%;
// height: 200px;
// background-color: red;
// }
.btnn {
height: 72px; height: 72px;
width: 100%; width: 100%;
position: absolute;
background-color: #fff;
bottom: 0; bottom: 0;
left: 0; left: 0;
display: flex; display: flex;
@@ -378,7 +670,7 @@
cursor: pointer; cursor: pointer;
width: 100px; width: 100px;
height: 40px; height: 40px;
background: #4ea6ff; background: #409eff;
border-radius: 8px; border-radius: 8px;
border: 0; border: 0;
margin-left: 15px; margin-left: 15px;
@@ -386,5 +678,4 @@
} }
} }
} }
}
</style> </style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -153,7 +153,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -161,7 +161,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -169,7 +169,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -177,7 +177,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -185,7 +185,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -193,7 +193,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "归属权", state: "归属权",
}, },
{ {
@@ -201,7 +201,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "查看权", state: "查看权",
}, },
{ {
@@ -209,6 +209,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -216,6 +217,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -223,6 +225,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
], ],
@@ -262,6 +265,15 @@ export default {
</div> </div>
); );
}, },
},
{
title: "工号",
dataIndex: "number",
// width: "30%",
key: "number",
width: 100,
align: "center",
className: "h",
}, },
{ {
title: "归属组织", title: "归属组织",
@@ -326,11 +338,7 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.me {
.ant-modal-body {
padding: 0px;
}
}
.copyModal { .copyModal {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -42,7 +42,7 @@
<div class="tableBox" style="margin-top: 10px"> <div class="tableBox" style="margin-top: 10px">
<a-table <a-table
style="border: 1px solid #f2f6fe;" style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()" :columns="tableDataFunc()"
:data-source="tableData" :data-source="tableData"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
@@ -50,7 +50,6 @@
@expand="expandTable" @expand="expandTable"
:scroll="{ x: 900 }" :scroll="{ x: 900 }"
:pagination="false" :pagination="false"
/> />
</div> </div>
<div class="tableBox"> <div class="tableBox">
@@ -153,7 +152,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -161,7 +160,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -169,7 +168,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -177,7 +176,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -185,7 +184,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -193,7 +192,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "归属权", state: "归属权",
}, },
{ {
@@ -201,7 +200,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "查看权", state: "查看权",
}, },
{ {
@@ -209,6 +208,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -216,6 +216,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
{ {
@@ -223,6 +224,7 @@ export default {
name: "张三", name: "张三",
com: "产研部", com: "产研部",
gang: "产品经理", gang: "产品经理",
number: "20201234",
state: "管理权", state: "管理权",
}, },
], ],
@@ -257,12 +259,21 @@ export default {
customRender: (text) => { customRender: (text) => {
// console.log(text.record.checked1); // console.log(text.record.checked1);
return ( return (
<div class="racona" > <div class="racona">
<span> {text.record.name}</span> <span> {text.record.name}</span>
</div> </div>
); );
}, },
}, },
{
title: "工号",
dataIndex: "number",
// width: "30%",
key: "number",
width: 100,
align: "center",
className: "h",
},
{ {
title: "归属组织", title: "归属组织",
dataIndex: "com", dataIndex: "com",
@@ -376,7 +387,7 @@ export default {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px; margin-top: 10px;
justify-content: space-between; // justify-content: space-between;
.leftchoose { .leftchoose {
display: flex; display: flex;
margin-right: 20px; margin-right: 20px;

View File

@@ -665,31 +665,31 @@ export default {
//根据右侧快速选人高度,判断是否显示更多 //根据右侧快速选人高度,判断是否显示更多
const selectedsHeight = () => { const selectedsHeight = () => {
let resize = elementResizeDetectorMaker(); let resize = elementResizeDetectorMaker();
resize.listenTo(document.getElementById('Ownership').querySelector("#selecteds"), function (ele) { resize.listenTo(document.getElementById('ProjOwnership').querySelector("#selecteds"), function (ele) {
console.log("ele", ele.offsetHeight); console.log("ele", ele.offsetHeight);
if (ele.offsetHeight > 160 && !state.showHidden) { if (ele.offsetHeight > 160 && !state.showHidden) {
state.showMore = true; state.showMore = true;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden"; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px"; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
} else if (ele.offsetHeight < 160) { } else if (ele.offsetHeight < 160) {
state.showMore = false; state.showMore = false;
state.showHidden = false; state.showHidden = false;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden"; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px"; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
} }
}); });
}; };
const morePeopleShow = () => { const morePeopleShow = () => {
state.showMore = false; state.showMore = false;
state.showHidden = true; state.showHidden = true;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = ""; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = ""; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "";
}; };
const morePeopleHidden = () => { const morePeopleHidden = () => {
state.showMore = true; state.showMore = true;
state.showHidden = false; state.showHidden = false;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden"; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px"; document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
}; };
// 结束 快速选人------------------------------------------------------------------ // 结束 快速选人------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

View File

@@ -1673,6 +1673,13 @@
<!-- 添加授权侧弹窗 --> <!-- 添加授权侧弹窗 -->
<corpowerlist v-model:corpowerlistVisible="corpowerlistvisible" /> <corpowerlist v-model:corpowerlistVisible="corpowerlistvisible" />
<!-- 添加授权侧弹窗 --> <!-- 添加授权侧弹窗 -->
<!-- 添加查看权侧弹窗 -->
<course-view v-model:courseviewvisible="courseviewvisible" />
<!-- 添加查看权侧弹窗 -->
<!-- 添加归属权侧弹窗 -->
<course-owner v-model:courseownervisible="courseownervisible" />
<!-- 添加归属权侧弹窗 -->
</div> </div>
</template> </template>
<script> <script>
@@ -1688,6 +1695,8 @@ import {
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import OwnPower from "../../components/drawers/OwnPower.vue"; import OwnPower from "../../components/drawers/OwnPower.vue";
import Corpowerlist from "../../components/drawers/CorPowerlist.vue"; import Corpowerlist from "../../components/drawers/CorPowerlist.vue";
import CourseView from "../../components/drawers/CourseView.vue"
import CourseOwner from "../../components/drawers/CourseOwner.vue"
import { import {
// list, // list,
edit, edit,
@@ -2130,6 +2139,8 @@ export default defineComponent({
Corpowerlist, Corpowerlist,
Editor, Editor,
Toolbar, Toolbar,
CourseView,
CourseOwner,
}, },
setup() { setup() {
const state = reactive({ const state = reactive({
@@ -2426,7 +2437,8 @@ export default defineComponent({
//抽屉状态 //抽屉状态
ownpowervisible: false, ownpowervisible: false,
corpowerlistvisible: false, corpowerlistvisible: false,
courseviewvisible:false,
courseownervisible:false,
offcourseId: null, offcourseId: null,
projectName: "", projectName: "",
name: "", name: "",
@@ -2747,14 +2759,18 @@ export default defineComponent({
value="查看权" value="查看权"
label="查看权" label="查看权"
style="padding-left:30px;" style="padding-left:30px;"
> onClick={()=>{
state.courseviewvisible=true
}}>
<div>查看权</div> <div>查看权</div>
</a-select-option> </a-select-option>
<a-select-option <a-select-option
value="管理权" value="管理权"
label="管理权" label="管理权"
style="padding-left:30px;" style="padding-left:30px;"
> onClick={()=>{
state.courseownervisible=true
}}>
<div>管理权</div> <div>管理权</div>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -2852,14 +2868,18 @@ export default defineComponent({
value="查看权" value="查看权"
label="查看权" label="查看权"
style="padding-left:30px;" style="padding-left:30px;"
> onClick={()=>{
state.courseviewvisible=true
}}>
<div>查看权</div> <div>查看权</div>
</a-select-option> </a-select-option>
<a-select-option <a-select-option
value="管理权" value="管理权"
label="管理权" label="管理权"
style="padding-left:30px;" style="padding-left:30px;"
> onClick={()=>{
state.courseownervisible=true
}}>
<div>管理权</div> <div>管理权</div>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -2988,14 +3008,18 @@ export default defineComponent({
value="查看权" value="查看权"
label="查看权" label="查看权"
style="padding-left:30px;" style="padding-left:30px;"
> onClick={()=>{
state.courseviewvisible=true
}}>
<div>查看权</div> <div>查看权</div>
</a-select-option> </a-select-option>
<a-select-option <a-select-option
value="管理权" value="管理权"
label="管理权" label="管理权"
style="padding-left:30px;" style="padding-left:30px;"
> onClick={()=>{
state.courseownervisible=true
}}>
<div>管理权</div> <div>管理权</div>
</a-select-option> </a-select-option>
</a-select> </a-select>

View File

@@ -1,6 +1,6 @@
<!---- 创建单层子项目页面 ---> <!---- 创建单层子项目页面 --->
<template> <template>
<div class="projectAdd"> <div class="sonproject">
<div class="header"> <div class="header">
<span class="title">创建/编辑单层子项目</span> <span class="title">创建/编辑单层子项目</span>
<div @click="backPage" style="cursor: pointer;" to="/projectmanage" class="goback"> <div @click="backPage" style="cursor: pointer;" to="/projectmanage" class="goback">
@@ -765,7 +765,7 @@ export default {
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.projectAdd { .sonproject {
width: 100%; width: 100%;
// height: inherit; // height: inherit;
// flex: 1; // flex: 1;

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="allCon"> <div class="taskadd">
<div class="left clearfix"> <div class="left clearfix">
<div class="leftmain"> <div class="leftmain">
<div class="tit"> <div class="tit">
@@ -794,7 +794,7 @@
v-model:visible="visiblene" v-model:visible="visiblene"
:footer="null" :footer="null"
centered="true" centered="true"
wrapClassName="changeModal" wrapClassName="moveModal"
> >
<div class="con"> <div class="con">
<div class="header"> <div class="header">
@@ -1837,8 +1837,78 @@ export default {
} }
} }
} }
.name {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 20px;
align-items: center;
//height: 40px;
// border: 1px solid black;
.namebox {
width: 120px;
display: flex;
align-items: center;
justify-content: flex-end;
flex-shrink: 0;
.nameimg {
width: 10px;
height: 10px;
}
}
.d {
margin-top: 8px;
font-size: 25px;
color: #ff4e4e;
}
.box {
position: relative;
margin-left: 14px;
.box1 {
position: absolute;
left: 50%;
top: 50%;
width: 50px;
margin-left: -25px;
margin-top: -5px;
border-top: 2px solid rgba(78, 166, 255, 1);
}
.box2 {
position: absolute;
left: 50%;
top: 50%;
height: 50px;
//margin-left: -5px;
margin-top: -25px;
border-left: 2px solid rgba(78, 166, 255, 1);
}
}
.inname {
color: #000000;
font-size: 14px;
margin-left: 7px;
}
.in {
margin-left: 14px;
flex: 1;
// .ant-radio-wrapper {
// }
.ant-input-affix-wrapper {
width: 384px;
border-radius: 8px;
}
.ant-input {
border-radius: 8px;
// height: 120%;
//width: 384px;
height: 30px;
}
}
} }
.changeModal {
}
.moveModal {
.ant-modal { .ant-modal {
width: 549px !important; width: 549px !important;
height: 245px !important; height: 245px !important;
@@ -1939,179 +2009,112 @@ export default {
} }
} }
} }
.info { // .info {
width: 78%; // width: 78%;
// background-color: lightcoral; // // background-color: lightcoral;
display: flex; // display: flex;
margin-top: 30px; // margin-top: 30px;
// align-items: center; // // align-items: center;
// height: 40px; // // height: 40px;
// border: 1px solid black; // // border: 1px solid black;
.inname { // .inname {
color: #6f6f6f; // color: #6f6f6f;
font-size: 14px; // font-size: 14px;
margin-left: 26px; // margin-left: 26px;
margin-top: 15px; // margin-top: 15px;
} // }
.in { // .in {
margin-left: 14px; // margin-left: 14px;
width: 81%; // width: 81%;
position: relative; // position: relative;
.ant-input { // .ant-input {
border-radius: 5px; // border-radius: 5px;
// height: 120%; // // height: 120%;
width: 100%; // width: 100%;
height: 130px; // height: 130px;
resize: none; // resize: none;
} // }
} // }
} // }
.name {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 20px;
align-items: center;
//height: 40px;
// border: 1px solid black;
.namebox {
width: 120px;
display: flex;
align-items: center;
justify-content: flex-end;
flex-shrink: 0;
.nameimg {
width: 10px;
height: 10px;
}
}
.d {
margin-top: 8px;
font-size: 25px;
color: #ff4e4e;
}
.box {
position: relative;
margin-left: 14px;
.box1 {
position: absolute;
left: 50%;
top: 50%;
width: 50px;
margin-left: -25px;
margin-top: -5px;
border-top: 2px solid rgba(78, 166, 255, 1);
}
.box2 {
position: absolute;
left: 50%;
top: 50%;
height: 50px;
//margin-left: -5px;
margin-top: -25px;
border-left: 2px solid rgba(78, 166, 255, 1);
}
}
.inname {
color: #000000;
font-size: 14px;
margin-left: 7px;
}
.in {
margin-left: 14px;
flex: 1;
// .ant-radio-wrapper {
// }
.ant-input-affix-wrapper {
width: 384px;
border-radius: 8px;
}
.ant-input {
border-radius: 8px;
// height: 120%;
//width: 384px;
height: 30px;
}
}
}
.drawerStyle {
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
overflow-x: auto;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.drawerbox {
margin: 20px 38px 30px;
th {
background-color: #eff4fc !important;
}
.ant-table-tbody // .drawerStyle {
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) // .ant-drawer-content-wrapper {
> td { // // max-width: 1000px;
background: #f6f9fd; // .ant-drawer-header {
} // display: none !important;
} // }
.btnn { // .ant-drawer-body {
height: 72px; // padding: 0;
width: 100%; // }
position: absolute; // }
bottom: 0; // .drawerMain {
left: 0; // min-width: 600px;
display: flex; // margin: 0px 32px 0px 32px;
align-items: center; // overflow-x: auto;
justify-content: center; // display: flex;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); // flex-direction: column;
.btn1 { // .header {
width: 100px; // height: 73px;
height: 40px; // border-bottom: 1px solid #e8e8e8;
border: 1px solid #4ea6ff; // display: flex;
border-radius: 8px; // justify-content: space-between;
color: #4ea6ff; // align-items: center;
background-color: #fff; // // background-color: red;
cursor: pointer; // margin-bottom: 20px;
} // .headerTitle {
.btn2 { // font-size: 18px;
cursor: pointer; // font-weight: 600;
width: 100px; // color: #333333;
height: 40px; // line-height: 25px;
background: #4ea6ff; // // margin-left: 24px;
border-radius: 8px; // }
border: 0; // }
margin-left: 15px; // .drawerbox {
color: #fff; // margin: 20px 38px 30px;
} // th {
} // background-color: #eff4fc !important;
} // }
}
.allCon { // .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
// .btnn {
// height: 72px;
// width: 100%;
// position: absolute;
// bottom: 0;
// left: 0;
// display: flex;
// align-items: center;
// justify-content: center;
// box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
// .btn1 {
// width: 100px;
// height: 40px;
// border: 1px solid #4ea6ff;
// border-radius: 8px;
// color: #4ea6ff;
// background-color: #fff;
// cursor: pointer;
// }
// .btn2 {
// cursor: pointer;
// width: 100px;
// height: 40px;
// background: #4ea6ff;
// border-radius: 8px;
// border: 0;
// margin-left: 15px;
// color: #fff;
// }
// }
// }
// }
.taskadd {
width: 100%; width: 100%;
display: flex; display: flex;
min-width: 933px; min-width: 933px;

View File

@@ -89,6 +89,12 @@
<div @click="downloadQr(400)">下载400</div> <div @click="downloadQr(400)">下载400</div>
<div @click="downloadQr(800)">下载800</div> <div @click="downloadQr(800)">下载800</div>
</div> </div>
<div @click="changeCodevisible">显示二维码弹窗</div>
<two-dimensional-code v-model:codevisible="codevisible" :codeInfo="codeInfo" index="0"/>
<div @click="changeCodevisible2">显示二维码弹窗22</div>
<two-dimensional-code v-model:codevisible="codevisible2" :codeInfo="codeInfo2" index="1"/>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs } from "vue";
@@ -105,6 +111,8 @@ import { useRouter } from "vue-router";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import QrcodeVue from "qrcode.vue"; import QrcodeVue from "qrcode.vue";
import html2canvas from "html2canvas"; import html2canvas from "html2canvas";
import TwoDimensionalCode from '../../components/TwoDimensionalCode.vue'
export default { export default {
name: "SystemManage", name: "SystemManage",
components: { components: {
@@ -113,6 +121,7 @@ export default {
// PlusOutlined, // PlusOutlined,
draggable, draggable,
QrcodeVue, QrcodeVue,
TwoDimensionalCode
}, },
setup() { setup() {
const state = reactive({ const state = reactive({
@@ -148,8 +157,14 @@ export default {
name: "拖拽六", name: "拖拽六",
}, },
], ],
qrcodeUrl: "https://www.baidu.com/", qrcodeUrl: "https://www.baidu.com/",
qrcodeSize:800, qrcodeSize:800,
codevisible:false,
codeInfo:{},
codevisible2:false,
codeInfo2:{}
}); });
const showDrawer = () => { const showDrawer = () => {
@@ -303,6 +318,24 @@ let canvasBox = document.createElement('canvas');
// a.click(); // a.click();
}); });
}; };
//显示二维码弹窗
const changeCodevisible=()=>{
state.codevisible=true
state.codeInfo={
title:"签到二维码",
name:'管理者进阶面授课程',
url:"https://www.baidu.com/",
}
}
const changeCodevisible2=()=>{
state.codevisible2=true
state.codeInfo2={
title:"签到二维码2222",
name:'管理者进阶面授课程2222',
url:"https://blog.csdn.net/qq_44034384/article/details/93612152",
}
}
return { return {
...toRefs(state), ...toRefs(state),
showDrawer, showDrawer,
@@ -311,6 +344,8 @@ let canvasBox = document.createElement('canvas');
beforeUpload, beforeUpload,
golearningpath, golearningpath,
downloadQr, downloadQr,
changeCodevisible,
changeCodevisible2,
}; };
}, },
}; };