Commit a8f5ade5 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/confucius into master

parents 28a62dac fe664ebd
......@@ -330,6 +330,18 @@ export function SetSynvEduEmployee(data) {
})
}
/**
* 初始化同步企业微信标签
*
*/
export function getWeChatChannelCoustomerPageList(data) {
return request({
url: '/QYWeChat/GetWeChatChannelCoustomerPageList',
method: 'post',
data
})
}
......
......@@ -6,18 +6,18 @@
</div>
</div> -->
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat :wrap-cells='true'
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table" separator="none" title="" :data="dataList" :columns="columns"
row-key="name">
<template v-slot:body-cell-title="props">
<q-td :props="props" style="max-width: 200px;">
<span>{{getType(props.row,'title')}}</span>
<q-td :props="props" style="max-width: 200px;white-space: normal;word-break:break-all">
{{getType(props.row,'title')}}
</q-td>
</template>
<template v-slot:body-cell-Content="props">
<q-td :props="props" style="max-width: 500px;">
<q-td :props="props" style="max-width: 500px;white-space: normal;word-break:break-all">
<div >
<span v-if="props.row.Type==1">{{getType(props.row,'content')}}</span>
<q-img v-if="props.row.Type==2 || props.row.Type==3 || props.row.Type==6"
......
......@@ -11,12 +11,12 @@
label="添加文本" @click="goadd()"></q-btn>
</template>
<template v-slot:body-cell-title="props">
<q-td :props="props" style="max-width: 200px">
<q-td :props="props" style="max-width: 200px;white-space: normal;word-break:break-all">
<span>{{props.row.TextModel && props.row.TextModel.Title?props.row.TextModel.Title:''}}</span>
</q-td>
</template>
<template v-slot:body-cell-Content="props">
<q-td :props="props" style="max-width: 500px;">
<q-td :props="props" style="max-width: 500px;white-space: normal;word-break:break-all">
<span>{{props.row.TextModel && props.row.TextModel.Content?props.row.TextModel.Content:''}}</span>
</q-td>
</template>
......
......@@ -7,7 +7,7 @@
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row wrap">
<q-input filled stack-label maxlength="50" :dense="false" v-model="objOption.PaperName" ref="PaperName"
class="col-12 q-pr-lg q-pb-lg" label="文件夹名称" :rules="[val => !!val || '请填写文件夹名称']" />
class="col-12 q-pb-lg" label="文件夹名称" :rules="[val => !!val || '请填写文件夹名称']" />
</div>
</q-card-section>
<q-separator />
......@@ -30,6 +30,10 @@
saveObj: {
type: Object,
default: null
},
FaParentId: {
type: Number,
default: null
}
},
data() {
......@@ -41,12 +45,14 @@
PaperType: 1, //试卷类型(1-文件夹,2-试卷)
ParentId: 0, //上级文件夹编号
},
saveLoading: false
}
},
created() {
},
mounted() {
this.initObj()
},
methods: {
......@@ -66,7 +72,12 @@
this.persistent = false
},
setPaperFolderInfo() {
this.saveLoading = true
this.$refs.PaperName.validate();
if (!this.$refs.PaperName.hasError) {
this.saveLoading = true;
if (this.FaParentId) {
this.objOption.ParentId = this.FaParentId;
}
savePaperFolderInfo(this.objOption).then(res => {
this.saveLoading = false
this.$q.notify({
......@@ -81,9 +92,11 @@
}).catch(() => {
this.saveLoading = false
})
}
},
},
}
</script>
<style>
</style>
......@@ -178,14 +178,14 @@
</span>
</div>
<div class="Item_Main">
<div class="role_ItemList" v-for="(subItem,subIndex) in SubMenuList">
<div class="role_ItemList" v-for="(subItem,subIndex) in SubMenuList" :key="subIndex">
<div class="role_SecondItem">
<span>{{subItem.MenuName}}</span>
<q-checkbox v-model="subItem.IsChecked" @input="twocheck(subIndex)" />
</div>
<div class="role_TreeList">
<ul>
<li v-for="(x,j) in subItem.SubList">
<li v-for="(x,j) in subItem.SubList" :key="j">
<span style="width: 15px;display: inline-block"
@click="x.showChildren=!x.showChildren,$forceUpdate()">
<i class="iconfont icon-sanjiaoxing-you" v-if="x.showChildren==false && x.SubList.length>0"
......@@ -197,7 +197,7 @@
@input="threecheck(subIndex,j)"></q-checkbox>
<span>{{x.MenuName}}</span>
<ul v-if="x.SubList.length>0&& x.showChildren==true" style="margin-left: 35px">
<li v-for="(a,b) in x.SubList">
<li v-for="(a,b) in x.SubList" :key="b">
<q-checkbox v-model="a.IsChecked" size="30px" style="margin-bottom: 2px"
@input="fourcheck(subIndex,j,b)"></q-checkbox>
<span>{{a.MenuName}}</span>
......@@ -415,9 +415,9 @@
type2 = true
}
})
if (type2 == false) {
AuthMenuList[checkedIndex].SubList[twoindex].IsChecked = false
}
// if (type2 == false) {
// AuthMenuList[checkedIndex].SubList[twoindex].IsChecked = false
// }
let type = false //找第二级有选择的内容
AuthMenuList[checkedIndex].SubList.forEach(x => {
if (x.IsChecked == true) {
......
......@@ -487,7 +487,7 @@
</div>
<div class="page-body">
<q-btn color="accent" class="q-mr-md" label="保存" @click="savemove()" style="width: 100px;"
:loading="loading" />
:loading="loading2" />
<q-btn class="q-mr-md" label="返回" @click="goblck()" style="width: 60px;" />
</div>
<chaneelcodeform v-if="ismember" @close="getclose()" :peopletype='addMsg.Type' :lsday="lsday"
......@@ -532,6 +532,7 @@
data() {
return {
loading: false,
loading2:false,
radiolist:[{Id:1,Name:"开启"},{Id:2,Name:'关闭'}],
radiolist2:[{Id:1,Name:"需验证"},{Id:2,Name:'自动添加'}],
radiolist3:[{Id:1,Name:"单人"},{Id:2,Name:'多人'}],
......@@ -972,6 +973,7 @@
if(this.addMsg.WelcomeEnable==1 && this.isall == false){
this.welcometverification()
}
this.loading2 = true
if(this.isall == false){
console.log(this.addMsg,'最后打印')
//调用接口
......@@ -984,9 +986,11 @@
message: res.Message,
position: 'top'
})
this.loading2 = false
this.goblck()
}
}).catch(() => {
this.loading2 = false
})
}
......
<template>
<div class="channelcodeList page-body">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<!-- <div class="col-3">
<q-input @keyup.enter.native="changePage(1)" clearable standout="bg-primary text-white" v-model="msg.Name"
label="渠道码名称" @clear="changePage(1)" maxlength="20" />
</div> -->
</div>
</div>
<div class="page-content">
</div>
</div>
</template>
<script>
import {
} from '../../api/system/wechat';
export default {
meta: {
title: "渠道码统计"
},
name: "channelCodeStatistics",
data() {
return {
loading: false,
}
},
created() {
console.log(this.$route.query)
},
methods: {
}
}
</script>
<style>
</style>
\ No newline at end of file
......@@ -42,7 +42,7 @@
</template>
<template v-slot:body-cell-LabelList="props">
<q-td :props="props">
<div style="max-width: 300px;" v-if="props.row.LabelList.length>0">
<div style="max-width: 300px;white-space: normal;word-break:break-all" v-if="props.row.LabelList.length>0">
<span v-for="(x,y) in props.row.LabelList" :key='y'>
{{x}}{{props.row.LabelList.length!=y+1?'、':''}}
</span>
......@@ -65,8 +65,25 @@
<q-td :props="props">
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" label="编辑"
@click="goedit(props.row)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="goDetailed(props.row)" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left: 10px">
<q-list>
<q-item clickable v-close-popup @click="showcustomer(props.row)">
<q-item-section>
<q-item-label>客户</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="downs(props.row)">
<q-item-section>
<q-item-label>下载</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="statistics(props.row)">
<q-item-section>
<q-item-label>统计</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</q-td>
</template>
<template v-slot:bottom>
......@@ -76,19 +93,44 @@
</q-table>
</div>
<q-dialog v-model="isDetails">
<q-card style="width: 450px;">
<q-card style="width: 450px;" v-if="Detailsobj && Detailsobj.WXQRCode">
<q-card-section class="row items-center q-pb-none">
<div class="text-h6">图片详情</div>
<div class="text-h6">{{Detailsobj.Name}}</div>
<q-space />
<q-btn icon="close" flat round dense v-close-popup />
</q-card-section>
<q-card-section v-if="Detailsobj && Detailsobj.WXQRCode">
<q-card-section >
<q-img :src="Detailsobj.WXQRCode" style="width:400px;height: 400px;margin-left: 9px;"></q-img>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-model="isCustom">
<q-card style="width: 850px;max-width: 80vw;">
<q-card-section class="row items-center q-pb-none">
<div class="text-h6">扫码客户</div>
<q-space />
<q-btn icon="close" flat round dense v-close-popup />
</q-card-section>
<q-card-section >
<q-table
title=""
:data="customdata"
:columns="columns2"
row-key="name"
:loading="loading" no-data-label="暂无相关数据"
>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="customMsg.pageIndex" color="primary" :max="custompageCount"
:input="true" @input="changePage2" />
</template>
</q-table>
</q-card-section>
</q-card>
</q-dialog>
</div>
</template>
......@@ -98,7 +140,8 @@
getWeChatChannelPageList,
getWeChatChannelGroupList
getWeChatChannelGroupList,
getWeChatChannelCoustomerPageList
} from '../../api/system/wechat';
import {
queryEmployee
......@@ -113,8 +156,11 @@
return {
loading: false,
ISsystem: false,
isCustom:false,
data: [],
pageCount: 0,
customdata:[],
custompageCount:0,
msg: {
pageIndex: 1,
pageSize: 15,
......@@ -123,6 +169,11 @@
Name:'',
Type: 0,
},
customMsg:{
pageIndex: 1,
pageSize: 10,
ChannelId:0
},
typeList: [
{ Id: 0, Name: '不限' },
{ Id: 1, Name: '单人' },
......@@ -151,7 +202,7 @@
{
name: 'Type',
field: 'Type',
label: '分组',
label: '类型',
align: 'left'
},
{
......@@ -184,6 +235,32 @@
field: 'DeptId'
}
],
columns2:[
{
name: 'DeptName',
label: '部门',
field: 'DeptName',
align: 'left'
},
{
name: 'EmpName',
label: '归属成员',
field: 'EmpName',
align: 'left'
},
{
name: 'CustomerName',
label: '客户名称',
field: 'CustomerName',
align: 'left'
},
{
name: 'CreateTime',
label: '添加时间',
field: 'CreateTime',
align: 'left'
},
],
GroupList: [],
isDetails: false,
Detailsobj: null
......@@ -208,9 +285,13 @@
},
changePage(e) {
this.msg.pageIndex = 1
this.msg.pageIndex = e
this.getList()
},
changePage2(e){
this.msg.pageIndex = e
this.getcustomerList()
},
getList() {
this.loading = true
getWeChatChannelPageList(this.msg).then(res => {
......@@ -256,9 +337,52 @@
});
},
showcustomer(row){//客户
this.customMsg.ChannelId = row.Id
this.getcustomerList()
},
getcustomerList(){
getWeChatChannelCoustomerPageList(this.customMsg).then(res => {
this.loading = false
this.customdata = res.Data.PageData;
this.custompageCount = res.Data.PageCount
this.isCustom = true
})
},
viewDetails(row) {
this.Detailsobj = row
this.isDetails = true
},
downs(row){//二维码下载
this.downloadIamge(row.WXQRCode, row.Name)
},
downloadIamge(imgsrc, name) {//下载图片地址和图片名
var image = new Image();
// 解决跨域 Canvas 污染问题
image.setAttribute("crossOrigin", "anonymous");
image.onload = function() {
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0, image.width, image.height);
var url = canvas.toDataURL("image/png"); //得到图片的base64编码数据
var a = document.createElement("a"); // 生成一个a元素
var event = new MouseEvent("click"); // 创建一个单击事件
a.download = name || "photo"; // 设置图片名称
a.href = url; // 将生成的URL设置为a.href属性
a.dispatchEvent(event); // 触发a的单击事件
};
image.src = imgsrc;
},
statistics(row){//统计
this.$router.push({
path: '/enterprise/channelCodeStatistics',
query: {
Id: row.Id
}
});
}
}
......
......@@ -73,8 +73,8 @@
</div>
</div>
<div class="page-option">
<q-btn color="accent" size="sm" class="q-mr-md" label="新增文件夹" @click="showExamFolder(null)" />
<q-btn-dropdown flat size="xs" color="dark" label="新增试卷" style="margin-left:10px;">
<q-btn color="accent" size="sm" v-if="IsCreateFolder" class="q-mr-md" label="新增文件夹" @click="showExamFolder(null)" />
<q-btn-dropdown flat size="xs" color="dark" label="新增试卷" v-if="IsCreatePaper" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="CreatePaper()">
<q-item-section>
......@@ -215,7 +215,7 @@
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</div>
<paperfolderForm v-if="isShowExamFolder" :saveObj="examObj"  @close="closeExamForm"  @success="refreshPage">
<paperfolderForm v-if="isShowExamFolder" :saveObj="examObj" :FaParentId="msg.ParentId"  @close="closeExamForm"  @success="refreshPage">
</paperfolderForm>
<movefolderForm v-if="isShowMoveFolder" :saveObj="examObj"  @close="closeExamForm"  @success="refreshPage">
</movefolderForm>
......@@ -255,9 +255,20 @@
isShowMoveFolder: false, //是否显示
examObj: {}, //弹窗对象
navList: [], //导航列表
IsCreateFolder:false, //是否试卷创建文件夹权限
IsCreatePaper:false //是否创建试卷权限
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "Paper_CreateManager"){//判断是否试卷创建文件夹权限
this.IsCreateFolder = true;
}
if(x.FunctionCode == "Paper_CreatePaper"){//判断是否创建
this.IsCreatePaper = true;
}
})
},
mounted() {
......@@ -269,7 +280,9 @@
},
//创建试卷
CreatePaper() {
this.OpenNewUrl('/exam/paperCreate', {})
this.OpenNewUrl('/exam/paperCreate', {
ToParentId:this.msg.ParentId
})
},
//翻页
changePage(val) {
......@@ -307,7 +320,8 @@
PaperId = item.PaperId
}
this.OpenNewUrl('/exam/paperEdit', {
Id: PaperId
Id: PaperId,
ToParentId: this.msg.ParentId
})
},
//新增修改文件夹
......
......@@ -66,7 +66,7 @@
<template v-if="templateMsg&&templateMsg.TemplateData&&templateMsg.TemplateData.length>0">
<div v-for="(item,index) in templateMsg.TemplateData" :key="index" class="examTi_List">
<div class="examCreat_Top">
<span>{{item.QuestionTypeName}}</span> &nbsp;&nbsp;<i class="iconfont icon-img_delete_small"></i>
<span>{{item.QuestionTypeName}}</span> &nbsp;&nbsp;<i @click="delQuestion(templateMsg.TemplateData,index)" class="iconfont icon-img_delete_small"></i>
</div>
<div style="padding:0 20px 10px 20px;">
<div class="row">
......@@ -102,9 +102,16 @@
<div class="row">
<q-select filled option-value="QId" option-label="Name" :options="questionTypeList" emit-value map-options
label="更多题型" class="col-6 q-pr-lg" use-input clearable v-model="MoreQuestionTypeId" @input="changeQuestion" />
<div class="row col-6" style="align-items:center;">
<div class="col-6">
<q-radio v-model="templateMsg.IsOpen" :val="1" label="私有" />
<q-radio v-model="templateMsg.IsOpen" :val="2" label="公开" />
</div>
<div class="col-6">
<q-checkbox v-model="templateMsg.IsSaveTemplate" label="同时保存为组卷模板" />
</div>
</div>
</div>
<br />
<div class="row">
<q-btn color="accent" size="sm" @click="setPaperTemplate" class="q-mr-md" label="保存" :loading="saveLoading" />
......@@ -150,6 +157,8 @@
TemplateData: [],
TemplateBankIds: "",
IsSaveTemplate: false,
ParentId:0,
IsOpen:1 //(1-私有,2-开放)
},
ShowBankName: "", //显示题库名称
BankList: [],
......@@ -160,6 +169,9 @@
}
},
created() {
if(this.$route.query.ToParentId){
this.templateMsg.ParentId = parseInt(this.$route.query.ToParentId);
}
this.getQuestionType();
this.getDifficultyType();
},
......@@ -424,6 +436,10 @@
}
});
}
},
//删除
delQuestion(item,index){
item.splice(index,1);
}
}
}
......
......@@ -10,13 +10,14 @@
.Exam-main {
width: 100%;
min-width: 1000px;
height: auto !important;
overflow: hidden;
margin-top: 20px;
}
.Exam-left {
width: 29%;
width: 33%;
border-right: 1px solid #d9d9d9;
border-bottom: 1px solid #d9d9d9;
border-radius: 3px;
......@@ -232,6 +233,10 @@
<q-select filled option-value="Id" option-label="Name" :options="questionDifficultyTypeList" emit-value
map-options label="难度" use-input clearable v-model="DataObj.DifficultyType" />
</div>
<div style="margin:8px 0 0 20px">
<q-radio v-model="DataObj.IsOpen" :val="1" label="私有" />
<q-radio v-model="DataObj.IsOpen" :val="2" label="公开" />
</div>
</div>
<div style="width:20%;text-align:right;">
<q-btn color="accent" size="sm" class="q-mr-md" label="预览" />
......@@ -243,9 +248,9 @@
<div class="Exam-left f1">
<p class="Left-ptitel">
<span>题量:<i>{{examNum}}</i></span>
<span>  总分:<i>{{examScore}}</i></span>
<span>  总分:<i>{{examScore.toFixed(2)}}</i></span>
</p>
<div class="Left-list" style="height:740px;overflow:auto;">
<div class="Left-list" style="min-height:740px;overflow:auto;">
<template v-if="DataObj&&DataObj.GroupList&&DataObj.GroupList.length>0">
<div class="List-con1" v-for="(gItem,gIndex) in DataObj.GroupList" :key="gIndex">
<div class="List-bt">
......@@ -254,7 +259,7 @@
(共{{ gItem.DetailsList?gItem.DetailsList.length:0 }}题,{{gItem.GScore}}分)</template>
<template v-else>
<input style="width:160px;margin-right:10px;" v-model="gItem.GroupName" />
<input style="width:40px;" filled v-model="gItem.GScore" @input="changeGroupScore(gItem)" />
<input style="width:40px;" filled v-model="gItem.GScore" @change="changeGroupScore(gItem)" />
</template>
</strong>
<i class="iconfont icon-edit" title="编辑" style="font-size:18px;margin-right:5px;"
......@@ -502,6 +507,7 @@
PaperType: 2, //试卷类型(1-文件夹,2-试卷)
ParentId: 0, //父节点编号,
GroupList: [], //试卷答题分类
IsOpen:1 //(1-私有,2-开放)
},
//点击问题对象
ChooseItem: null,
......@@ -524,7 +530,10 @@
},
created() {
if (this.$route.query && this.$route.query.Id) {
this.msg.PaperId = decodeURI(this.$route.query.Id)
this.msg.PaperId = decodeURI(this.$route.query.Id);
}
if (this.$route.query && this.$route.query.ToParentId){
this.DataObj.ParentId = parseInt(this.$route.query.ToParentId);
}
this.getQuestionType();
this.getDifficultyType();
......@@ -572,7 +581,7 @@
sItem.Score = avgScore;
})
}
this.calcPaper();
// this.calcPaper();
},
//上移下移(IsUp:0上移,1下移)
MoveFatherItem(subIndex, IsUp) {
......@@ -846,12 +855,12 @@
this.examNum += x.DetailsList.length;
x.DetailsList.forEach(y => {
if (y.Score) {
tempGScore += Number(y.Score)
tempGScore += Number(y.Score);
this.examScore += Number(y.Score);
}
})
}
x.GScore = tempGScore;
x.GScore = tempGScore.toFixed(2);
})
}
},
......
......@@ -77,6 +77,8 @@
<div class="col-2 q-table__title">员工管理</div>
<q-space />
<div class="page-option">
<!-- <q-btn color="accent" size="sm" class="q-mr-md" label="同步到微信" @click="synchronization()" /> -->
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="新增员工" @click="EditManager(null,0)" />
<q-btn-dropdown outline size="sm" color="dark" label="更多">
<q-list>
......@@ -204,6 +206,9 @@
GetLeaveStatus,
getEduEmployeeNumList
} from '../../api/school/index'
import {
SetSynvEduEmployee,
} from '../../api/system/wechat';
import {
BatchResetUserPassword
} from '../../api/users/user.js'
......@@ -218,6 +223,10 @@
import employeeSet from '../../components/school/manager/employee-set'
import employeeInfo from '../../components/school/manager/employee-info'
import selectTree from '../../components/common/select-tree'
import {
Loading,
QSpinnerPie
} from 'quasar'
export default {
meta: {
title: "员工管理"
......@@ -681,7 +690,30 @@
this.$router.push({
path: tempStr
});
},
synchronization(){
Loading.show({
message: '数据正在同步中,请稍后进入企业微信查看',
spinner:QSpinnerPie
})
SetSynvEduEmployee({}).then(res => {
if (res.Code == 1) {
that.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '操作成功',
position: 'top'
})
Loading.hide()
}
})
.catch(err=>{
Loading.hide()
})
},
},
}
......
......@@ -34,6 +34,7 @@
<div class="col-2 q-table__title">部门信息</div>
<q-space />
<div class="page-option">
<!-- <q-btn color="accent" size="sm" class="q-mr-md" label="同步到微信" @click="synchronization()" /> -->
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="新增部门" @click="EditDept(null)" />
<q-btn color="secondary" flat size="sm" icon="iconfont icon-zuzhijiagou" label="组织机构图"
@click="gotoRelation()" />
......@@ -80,6 +81,9 @@
setDeptStatusInfo,
getDeptTree
} from '../../api/system/dept'
import {
setSyncEduDepartment,
} from '../../api/system/wechat';
import {
getSchoolDropdown,
} from '../../api/school/index'
......@@ -89,6 +93,10 @@
import deptForm from '../../components/system/dept-form'
import selectTree from '../../components/common/select-tree'
import selectSearch from '../../components/common/select-search'
import {
Loading,
QSpinnerPie
} from 'quasar'
export default {
meta: {
title: "部门管理"
......@@ -295,6 +303,29 @@
}
this.isShowDeptForm = true;
},
synchronization(){
Loading.show({
message: '数据正在同步中,请稍后进入企业微信查看',
spinner:QSpinnerPie
})
setSyncEduDepartment({}).then(res => {
if (res.Code == 1) {
that.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '操作成功',
position: 'top'
})
Loading.hide()
}
})
.catch(err=>{
Loading.hide()
})
},
//关闭弹窗
closeDeptSaveForm() {
this.isShowDeptForm = false;
......
......@@ -1219,6 +1219,11 @@ const routes = [{
component: () =>
import("pages/enterprise/addchannelcode")
},
{
path: "/enterprise/channelCodeStatistics", //企微 渠道码的统计页面
component: () =>
import("pages/enterprise/channelCodeStatistics")
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment