Commit f844f059 authored by xd's avatar xd

修改侧边栏和删除后台管理系统的代码

parent 920c80e0
......@@ -155,10 +155,10 @@ export default {
}
},
barInfo: {
fans: "299",
personalFans: "77",
newFans: "11",
allNewFans: "15"
fans: "0",
personalFans: "0",
newFans: "0",
allNewFans: "0"
},
menuInfo: {
icon: {
......@@ -350,11 +350,17 @@ export default {
})
.then(res => {
console.log(res, "粉丝");
this.test.barInfo.fans = res.data.data.length;
sessionStorage.setItem("allFans", res.data.data.length);
let newList = []
res.data.data.forEach(item => {
if(item != null) {
newList.push(item)
}
})
this.test.barInfo.fans = newList.length
sessionStorage.setItem("allFans", newList.length)
})
.catch(err => {
console.log(err);
console.log(err)
});
},
getNewFans() {
......@@ -576,12 +582,10 @@ export default {
background-color: rgb(237, 239, 243);
width: 100%;
height: auto;
/*padding: ;*/
padding-bottom: 94px;
display: flex;
flex-direction: column;
justify-content: start;
overflow: auto;
}
......@@ -630,7 +634,6 @@ export default {
}
.manInfo-switch {
/*border: 1px solid greenyellow;*/
width: 100px;
height: 18px;
......@@ -727,9 +730,7 @@ export default {
}
.main-actives {
/*border: 1px solid lightcoral;*/
width: 100%;
/*margin-bottom: 94px;*/
margin-top: 36px;
padding: 0px 12px;
background-color: white;
......
<template>
<d2-container>
<div class="container">
<div class="left">
<div class="img"><img src="../img/active1.png" alt=""></div>
<div class="btn">
<div class="btn-l">配置</div>
<div class="btn-r">预览</div>
</div>
</div>
<div class="right">
<div class="img"><img src="../img/active2.png" alt=""></div>
<div class="btn">
<div class="btn-l">配置</div>
<div class="btn-r">预览</div>
</div>
</div>
</div>
</d2-container>
</template>
<script>
export default {};
</script>
<style scoped>
.container {
padding: 16px;
display: flex;
}
.left,.right{
display: flex;
flex-direction: column;
width: 440px;
height: 500px;
background: #f8f8f8;
margin-right: 24px;
box-sizing:border-box;
padding: 16px;
}
.img {
width: 408px;
height: 408px;
}
.img img {
width: 100%;
}
.btn {
height: 72px;
display: flex;
align-items: center;
justify-content: space-between;
}
.btn-l,.btn-r {
width:198px;
height:40px;
background:rgba(232,233,254,1);
box-shadow:0px 1px 3px 0px rgba(221,221,221,1);
border-radius:4px;
border:1px solid rgba(78,89,199,1);
font-size: 14px;
font-weight:800;
color:rgba(78,89,199,1);
display: flex;
align-items: center;
justify-content: center;
}
.btn-r {
background:rgba(78,89,199,1);
color:#fff;
}
</style>
<template>
<d2-container>
<template slot="header">header</template>
active/shop/index.vue
<template slot="footer">footer</template>
</d2-container>
</template>
<template>
<div class="dialogs">
<!-- <el-dialog title="创建任务" :visible.sync="dialogVisible" width="480px" -->
<el-dialog title="佣金配置" :visible.sync="dialogVisible" width="480px"
:before-close="handleClose" class="addGoods">
<div class="dialogMain">
<el-form :model="form" :rules="formRules" ref="addform" label-width="130px">
<el-form-item label="商品:" prop="goods">
<el-input v-model="form.goodName"></el-input>
</el-form-item>
<el-form-item label="价格:">
<el-input disabled="true" v-model="form.goodPrice"></el-input>
</el-form-item>
<el-form-item label="库存:">
<el-input v-model.number="form.goodNum"></el-input>
</el-form-item>
<el-form-item label="佣金:" prop="charges">
<el-radio-group v-model="form.goodBackType">
<el-radio :label="1">佣金</el-radio>
<el-radio :label="2">百分比</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.goodBackType===1" label="金额:" label-width="176px" class="chargeInput" >
<el-input v-model="form.goodBackPrice"></el-input>
<span class="unit">元 ( ¥ )</span>
</el-form-item>
<el-form-item v-if="form.goodBackType===2" label="佣金比例:" label-width="176px" class="chargeInput" >
<el-input v-model="form.goodBackPercent"></el-input>
<span class="unit">( % )</span>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="handleCancel('addform')">取 消</el-button>
<el-button size="small" type="primary" @click="handleSubmit('addform')">提交</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: 'add_goods',
data(){
return{
dialogVisible:false,
form:{
goodName: '膳魔师',
goodPrice: '200',
goodNum: '44',
goodBackType: 2,
goodBackPrice: '20',
goodBackPercent: '10',
goods:'膳魔师',
price:'200',
charges:1,
num:44
},
formRules:{
goods: [
{ required: true, message: '请输入商品', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
}
}
},
methods:{
// 弹窗关闭
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
handleSubmit(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
handleCancel(formName){
this.$refs[formName].resetFields();
this.dialogVisible = false
},
},
watch:{
dialogVisible(){
if(this.dialogVisible){
if(this.$refs.addform){
this.$refs.addform.resetFields();
}
}
}
}
}
</script>
<style scoped>
</style>
<template>
<d2-container class="pRelative">
<div class="searchs">
<!-- 搜索区 -->
<div>
<el-button class="button buttondark" size="small">批量上架</el-button>
</div>
<el-form class="searchzone" :inline="true" :model="formData" label-width="auto">
<el-form-item label="门店">
<el-select
size="small"
v-model="formData.store"
placeholder="请选择门店"
style="width:160px;"
>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态">
<el-select
size="small"
v-model="formData.status"
placeholder="请选择状态"
style="width:160px;"
>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="关键词">
<el-input size="small" v-model="formData.keys" style="width:160px" placeholder="请输入关键词" />
</el-form-item>
<el-button class="button buttondark" size="small">搜索</el-button>
</el-form>
</div>
<el-table
:data="data"
class="list"
style="width: 100%"
empty-text="暂无商品信息"
height="calc(100% - 120px)"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="goodName" label="商品名称" align="center"></el-table-column>
<el-table-column prop="goodPrice" label="门店" align="center"></el-table-column>
<el-table-column prop="goodNum" label="门店id" align="center"></el-table-column>
<el-table-column prop="goodBackMoney" label="价格" align="center"></el-table-column>
<el-table-column prop="goodStatus" label="佣金" align="center"></el-table-column>
<el-table-column prop="goodStatus" label="状态" align="center">
<template slot-scope="scope">
<span>{{scope.row.goodStatus === 'up' ? '上架' : '下架'}}</span>
</template>
</el-table-column>
<el-table-column prop="goodStatus" label="上架时间" align="center"></el-table-column>
<!-- 查看详情 -->
<el-table-column
fixed="right"
align="center"
label="操作"
width="140"
@selection-change="listPick"
>
<template slot-scope="scope">
<el-button type="text" @click="handleAdd">{{scope.row.goodStatus === 'up' ? '下架' : '上架'}}</el-button>
<el-button type="text" @click="handleAdd">佣金配置</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-size="page.size"
layout="total, prev, pager, next, jumper"
:total="page.total"
></el-pagination>
<add-goods ref="addGoods"></add-goods>
</d2-container>
</template>
<script>
import addGoods from "./components/add_goods";
export default {
data() {
return {
formData: {
status: "",
keys: ""
},
statusList: [],
data: [
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "膳魔师",
goodPrice: "200元",
goodNum: "44",
goodBackMoney: "20元",
goodStatus: "up"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "象印",
goodPrice: "180元",
goodNum: "14",
goodBackMoney: "18元",
goodStatus: "down"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "Dior",
goodPrice: "240元",
goodNum: "60",
goodBackMoney: "40元",
goodStatus: "down"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "ASICS",
goodPrice: "450元",
goodNum: "120",
goodBackMoney: "20元",
goodStatus: "up"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "NIKE",
goodPrice: "200元",
goodNum: "44",
goodBackMoney: "20元",
goodStatus: "up"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "Adidas",
goodPrice: "540元",
goodNum: "210",
goodBackMoney: "30元",
goodStatus: "down"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "膳魔师",
goodPrice: "200元",
goodNum: "44",
goodBackMoney: "20元",
goodStatus: "up"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "膳魔师",
goodPrice: "200元",
goodNum: "44",
goodBackMoney: "20元",
goodStatus: "up"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "膳魔师",
goodPrice: "200元",
goodNum: "44",
goodBackMoney: "20元",
goodStatus: "down"
},
{
imgUrl:
"http://wework.qpic.cn/bizmail/FLjpJB8Od58W5ULAIYTRstTvFOJEFUnKQ3tRCdkicxorh6dEHcpNqVw/100",
goodName: "膳魔师",
goodPrice: "200元",
goodNum: "44",
goodBackMoney: "20元",
goodStatus: "up"
}
],
page: {
currentPage: 1,
size: 20,
total: 100
}
};
},
components: { addGoods },
methods: {
handleCurrentChange(val) {
this.page.currentPage = val
console.log(`当前页: ${val}`);
},
listPick() {},
handleAdd() {
this.$refs.addGoods.dialogVisible = true;
},
handleSelectionChange(val) {
console.log(val,'批量选择');
}
}
};
</script>
<style lang="scss">
</style>
<template>
<d2-container>
<template slot="header">header</template>
home/main/index.vue
<template slot="footer">footer</template>
</d2-container>
</template>
This diff is collapsed.
<template>
<div class="ct">
<el-dialog :visible.sync="counterDialog" width="800px"
class="dialog" :show-close="false" :before-close="handleClose" top="5vh"
>
<div class="choose">
<div class="title">
<div class="cg">添加柜组</div>
<div class="circle" @click="handleClose">
<d2-icon-svg name="close" class="icon" />
</div>
</div>
<div class="br">
<el-form
class="searchzone"
:model="formData"
label-width="auto"
ref="addCounter"
:rules="rules"
>
<el-form-item label="柜组名称:" prop="name">
<el-input
size="small"
v-model="formData.name"
style="width:240px"
placeholder="请输入柜组名称"
/>
</el-form-item>
<el-form-item label="柜组负责人:" prop="principal">
<el-select
size="small"
v-model="formData.principal"
placeholder="请选择柜组负责人"
style="width:240px"
>
<el-option
v-for="item in personList"
:key="item.id"
:label="item.userName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="柜组编号:" prop="num">
<el-input
size="small"
v-model="formData.num"
style="width:240px"
placeholder="请输入柜组编号"
/>
</el-form-item>
<el-form-item label="所在区域:" prop="area">
<el-input
size="small"
v-model="formData.area"
style="width:240px"
placeholder="请输入所在区域"
/>
</el-form-item>
<div class="cs">
<el-form-item label="门店:" prop="stallIds">
<el-transfer
style="text-align: left; display: inline-block"
v-model="formData.stallIds"
:left-default-checked="[]"
:right-default-checked="[]"
:titles="['选择', '已选']"
:button-texts="['删除', '添加']"
@change="handleChange"
:data="stallData"
>
<span slot-scope="{ option }">{{ option.name }}</span
>
</el-transfer>
</el-form-item>
</div>
</el-form>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancel('addCounter')" size="small"
>取 消</el-button
>
<el-button
type="primary"
@click="handleFinish('addCounter')"
size="small"
>确 定</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import { stallDetail, stallSave } from "@/api/in/counter"
export default {
data() {
const nameValidate = (rule, value, callback) => {
let reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error('含有非法字符(只能输入字母、汉字)!'))
} else {
callback()
}
}
return {
counterDialog: false,
value4: [],
formData: {
name: "",
num: "",
principal:"",
area:'',
stallIds: [],
},
personList: [],
stallData: [],
rules: {
name: [{ required: true, message: "请输入柜组名称", trigger: "blur" },
{ max: 50, message: '长度在50个字符以内', trigger: 'blur' },
{ validator: nameValidate, trigger: "blur" }],
principal: [
{ required: true, message: "请选择活动负责人", trigger: "change" }
],
num: [{ required: true, message: "请输入柜组编号", trigger: "blur" },
{ max: 50, message: '长度在50个字符以内', trigger: 'blur' }],
stallIds:[
{ required: true, message: "请选择门店", trigger: "blur" },
{ required: true, message: "请选择门店", trigger: "change" },
],
area: [{ required: true, message: "请输入所在区域", trigger: "blur" },
{ max: 50, message: '长度在50个字符以内', trigger: 'blur' },
{ validator: nameValidate, trigger: "blur" }]
}
};
},
mounted(){
this.getPersonList()
},
methods: {
handleChange() {},
handleClose(done) {
this.$confirm("确认关闭?")
.then(_ => {
this.counterDialog = false;
})
.catch(_ => {});
},
handleCancel(formName) {
this.$refs[formName].resetFields();
this.counterDialog = false;
},
handleFinish(formName) {
let _this = this
this.$refs[formName].validate((valid) => {
if (valid) {
// 调用新增接口
// this.counterDialog = false;
let formData = JSON.parse(JSON.stringify(_this.formData))
delete formData.stallIds
formData.stallIds = _this.formData.stallIds.join(',')
stallSave(formData).then(res=>{
_this.$message(formData.res.data)
})
} else {
console.log('error submit!!');
return false;
}
});
},
// 柜组负责人 门店列表
getPersonList(){
let _this = this
stallDetail().then(res => {
_this.personList = res.data.principals_unselected
_this.stallData = res.data.stalls_unselected.map((v,i)=>{
v.key = v.id
return v
})
})
}
},
watch:{
counterDialog(){
if(this.counterDialog){
if(this.$refs.addCounter){
this.$refs.addCounter.resetFields();
}
}
}
}
};
</script>
<style scoped>
.dialog >>> .el-dialog {
height: calc(100vh - 208px);
overflow: auto;
}
.cs {
display: flex;
}
.ct >>> .el-transfer-panel {
width: 180px;
}
.choose {
padding: 16px;
font-size: 16px;
font-weight: bold;
color: rgba(56, 56, 56, 1);
box-sizing: border-box;
}
.title {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 10px;
}
.transfer-footer {
margin-left: 20px;
padding: 6px 5px;
}
.ct >>> .el-dialog__header {
padding: 0 !important;
}
.ct >>> .el-dialog__body {
padding: 0;
}
.circle {
width: 30px;
height: 30px;
line-height: 30px;
border-radius: 50%;
border: 1px solid rgba(208, 2, 27, 1);
position: relative;
}
.circle >>> .icon {
width: 28px;
height: 28px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.br {
border-top: 1px solid #f8f8f8;
border-bottom: 1px solid #f8f8f8;
padding: 24px 60px;
}
</style>
......@@ -51,7 +51,7 @@
/>
</el-form-item>
<el-form-item label="设置主管:" prop="clerkId" v-if="detail == 1">
<el-cascader :props="props" v-model="deptId" :options="parentDeptList" :show-all-levels="false" filterable style="width: 30%;margin-right:15px;" @change="handleParentChange" ></el-cascader>
<el-cascader :props="props" v-model="deptId" :disabled="ifDisabled" :options="parentDeptList" :show-all-levels="false" filterable style="width: 30%;margin-right:15px;" @change="handleParentChange" ></el-cascader>
<el-select v-model="addForm.clerkId" filterable multiple placeholder="请选择" style="width: 30%;" clearble>
<el-option
v-for="item in peopleList"
......@@ -83,15 +83,17 @@ export default {
}
},
data() {
// 中英文验证规则
const nameValidate = (rule, value, callback) => {
let reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error("含有非法字符(只能输入字母、汉字)!"))
} else {
callback()
}
}
// 检查名称
const checkLabel = (rule, value, callback) => {
let labelReg = /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/;
if (value == "") {
callback(new Error("请输入部门名称"));
} else if (!labelReg.test(value)) {//引入methods中封装的检查手机格式的方法
callback(new Error("只可以输入中文、字母、数字和减号!"));
} else {
callback();
}
}
return {
treeData: [],
group_name: "",
......@@ -114,6 +116,7 @@ export default {
clerkId: []
},
detail: 2,
ifDisabled: false,
deptId: '',
// 上级部门
parentDeptList: [],
......@@ -121,11 +124,10 @@ export default {
orgTree: [],
rules: {
label: [
{ required: true, message: "请输入部门名称", trigger: "blur" },
{ required: true, validator: checkLabel, trigger: "blur" },
{ max: 50, message: "长度在50个字符以内", trigger: "blur" }
],
parentId: [{ required: true, message: "请选择上级部门", trigger: "change" }]
},
deptOption: {
value: 'id',
......@@ -215,11 +217,16 @@ export default {
let data = Object.assign(this.addForm,{ clerkIds })
delete data.clerkId
addGroup(data).then(res => {
if(res.data.isSuccessful == 0) {
this.$message.error(res.data.msg)
}else{
this.$emit("handleAddFinish")
if(res.result == "success") {
if(res.data.isSuccessful == 0) {
this.$message.error("门店id不能重复")
}else{
this.$emit("handleAddFinish")
}
}else {
this.$message.error(res.data)
}
})
} else {
return false;
......@@ -231,9 +238,10 @@ export default {
},
// 获取所有人员
getGroupMember(id) {
getAllPeopleList({ id }).then(res => {
console.log(res,'人员')
this.ifDisabled = true
getAllPeopleList({ id }).then(res => {
this.peopleList = res.data
this.ifDisabled = false
})
}
}
......
<template>
<div class="ct">
<el-dialog
:visible.sync="addStoreDialog"
class="dialog"
width="65%"
:show-close="false"
:before-close="handleClose"
>
<div class="choose">
<div class="title">
<div class="cg">添加门店</div>
<div class="circle" @click="handleClose">
<d2-icon-svg name="close" class="icon" />
</div>
</div>
<div class="br">
<!-- <el-form :model="zdata.post" label-width="auto" ref="addStore" :rules="zrule"> -->
<el-form :model="zdata.post" label-width="auto" ref="addStore">
<!-- <el-form :model="zdata.post" label-width="auto" ref="createForm" :rules="rules"> -->
<el-form-item label="门店名称:" prop="storeName">
<el-input
size="small"
v-model="zdata.post.storeName"
style="width:240px;"
placeholder="请输入门店名称"
/>
</el-form-item>
<el-form-item label="门店类型:" prop="storeType">
<el-select
size="small"
v-model="zdata.post.storeTypeId"
placeholder="请选择门店类型"
style="width:240px"
>
<el-option
v-for="item in zlist.storeType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="门店负责人:" prop="people">
<el-select
size="small"
v-model="zdata.post.storeBossId"
placeholder="请选择门店负责人"
style="width:240px"
>
<el-option
v-for="item in zlist.storeBossId"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属柜组:" prop="counter">
<el-select
size="small"
v-model="zdata.post.storeFromBarId"
placeholder="请选择所属柜组"
style="width:240px"
>
<el-option
v-for="item in zlist.storeFromBarId"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="门牌号:" prop="number">
<el-input
size="small"
v-model="zdata.post.storeDoorCode"
style="width:240px"
placeholder="请输入门牌号"
/>
</el-form-item>
<el-form-item label="位置:" prop="area">
<el-input
size="small"
v-model="zdata.post.storeAddress"
style="width:240px"
placeholder="请输入位置"
/>
</el-form-item>
</el-form>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancel('addStore')" size="small">取 消</el-button>
<!-- <el-button type="primary" @click="addStoreSubmit('createForm')" size="small">确 定</el-button> -->
<el-button type="primary" @click="addStoreSubmit" size="small">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { ApiStoreAddStore } from "@api/in/store"
const zlog = console.log.bind(console)
export default {
data() {
// 中英文验证规则
const nameValidate = (rule, value, callback) => {
let reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error("含有非法字符(只能输入字母、汉字)!"))
} else {
callback();
}
};
return {
zlist: {
storeType: [
{
id: "0",
name: "普通"
},
{
id: "1",
name: "专柜"
}
],
storeBossId: [
{
id: "2001200138020920001",
name: "王月云"
},
{
id: "2001200138020930002",
name: "李强"
}
],
storeFromBarId: [
{
id: "2001201134572130000",
name: "柜组一号"
},
{
id: "2001201135500920000",
name: "柜组二号"
}
]
},
zdata: {
post: {
storeName: "",
storeTypeId: "",
storeBossId: "",
storeFromBarId: "",
storeDoorCode: "",
storeAddress: ""
}
},
rules: {
// name: [
// { required: true, message: "请输入柜组名称F", trigger: "blur" },
// { validator: nameValidate, trigger: "blur" },
// { max: 50, message: "长度在50个字符以内", trigger: "blur" }
// ],
type: [{ required: true, message: "请选择门店类型", trigger: "change" }]
// people: [
// { required: true, message: "请选择门店负责人", trigger: "change" }
// ],
// counter: [
// { required: true, message: "请选择所属柜组", trigger: "change" }
// ],
// number: [{ max: 50, message: "长度在50个字符以内", trigger: "blur" }],
// area: [{ max: 50, message: "长度在100个字符以内", trigger: "blur" }]
},
addStoreDialog: false
};
},
methods: {
handleClose(done) {
this.$confirm("确认关闭?")
.then(_ => {
this.addStoreDialog = false;
})
.catch(_ => {});
},
handleCancel(formName) {
this.$refs[formName].resetFields();
this.addStoreDialog = false;
},
addStoreSubmit(inDataName = "") {
let postData = {
name: this.zdata.post.storeName,
stallType: Number(this.zdata.post.storeTypeId),
principal: Number(this.zdata.post.storeBossId),
shopId: this.zdata.post.storeFromBarId,
signNum: this.zdata.post.storeDoorCode,
location: this.zdata.post.storeAddress,
};
console.log("--->postData =", postData);
ApiStoreAddStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "添加成功",
type: "success"
});
this.addStoreDialog = false;
}
})
.catch(err => {
});
},
handleChange() {}
},
watch: {
addStoreDialog() {
if (this.addStoreDialog) {
if (this.$refs.addStore) {
this.$refs.addStore.resetFields();
}
}
}
}
};
</script>
<style scoped>
.choose {
padding: 16px;
font-size: 16px;
font-weight: bold;
color: rgba(56, 56, 56, 1);
box-sizing: border-box;
}
.title {
display: flex;
align-items: center;
justify-content: space-between;
/* border-bottom: 1px solid #f8f8f8; */
padding-bottom: 10px;
}
.transfer-footer {
margin-left: 20px;
padding: 6px 5px;
}
.ct >>> .el-dialog__header {
padding: 0 !important;
}
.ct >>> .el-dialog__body {
padding: 0;
}
.ct >>> .el-transfer-panel {
width: 180px;
}
.circle {
width: 30px;
height: 30px;
line-height: 30px;
border-radius: 50%;
border: 1px solid rgba(208, 2, 27, 1);
position: relative;
}
.circle >>> .icon {
width: 28px;
height: 28px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.br {
border-top: 1px solid #f8f8f8;
border-bottom: 1px solid #f8f8f8;
padding: 24px 60px;
/* border: 2px solid red; */
}
.cs {
display: flex;
}
</style>
<template>
<div class="ct">
<el-dialog :visible.sync="detailDialog" width="65%" :show-close="false" >
<div class="choose">
<div class="title">
<div class="cg">柜组详情</div>
<div class="circle" @click="handleClose">
<d2-icon-svg name="close" class="icon" />
</div>
</div>
<div class="br">
<el-form
class="searchzone"
:model="formData"
label-width="auto"
disabled
>
<el-form-item label="柜组名称:">
<el-input
size="small"
v-model="formData.name"
style="width:240px"
placeholder="请输入柜组名称"
/>
</el-form-item>
<el-form-item label="柜组编号:">
<el-input
size="small"
v-model="formData.code"
style="width:240px"
placeholder="请输入柜组编号"
/>
</el-form-item>
<el-form-item label="柜组负责人:">
<el-input
size="small"
v-model="formData.people"
style="width:240px"
/>
</el-form-item>
<el-form-item label="所在区域:">
<el-input
size="small"
v-model="formData.area"
style="width:240px"
placeholder="请输入所在区域"
/>
</el-form-item>
<div class="tb">
<el-form-item label="门店:"> </el-form-item>
<el-table
stripe
class="list"
ref="multipleTable table"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
>
<el-table-column
type="index"
label="序号"
width="60"
></el-table-column>
<el-table-column
prop="name"
label="柜组名称"
align="center"
></el-table-column>
<el-table-column
prop="signNum"
label="门牌号"
align="center"
></el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { getDetail } from "@/api/in/counter"
export default {
props: {
msgId: {
type: String,
default: ''
}
},
data() {
return {
detailDialog: false,
formData: {
name: "",
code: "",
people: ""
},
tableData: [],
personList: [],
counter:[]
};
},
created() {
this.getDetail()
},
methods: {
getDetail() {
this.detailDialog = true
let params = {
isDetail: true,
shopId: this.msgId
}
getDetail(params).then(res => {
console.log(res,"详情");
let data = res.data
this.formData.name = data.shop.name
this.formData.code = data.shop.num
this.formData.people = data.principal.userName
this.formData.area = data.shop.area
this.tableData = data.shop.adminStallList
})
},
handleClose(done) {
this.$confirm("确认关闭?")
.then(_ => {
this.detailDialog = false;
his.$emit('handleDetailClose',"false")
})
.catch(_ => {});
},
},
watch:{
detailDialog(newValue) {
// this.getDetail()
},
}
};
</script>
<style>
</style>
<style scoped>
.tb {
display: flex;
}
.choose {
padding: 16px;
font-size: 16px;
font-weight: bold;
color: rgba(56, 56, 56, 1);
box-sizing: border-box;
}
.title {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 10px;
}
.transfer-footer {
margin-left: 20px;
padding: 6px 5px;
}
.ct >>> .el-dialog__header {
padding: 0 !important;
}
.ct >>> .el-dialog__body {
padding: 0;
}
.ct >>> .el-transfer-panel {
width: 250px;
}
.circle {
width: 30px;
height: 30px;
line-height: 30px;
border-radius: 50%;
border: 1px solid rgba(208, 2, 27, 1);
position: relative;
}
.circle >>> .icon {
width: 28px;
height: 28px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.br {
border-top: 1px solid #f8f8f8;
border-bottom: 1px solid #f8f8f8;
padding: 24px 60px;
}
</style>
<template>
<div class="ct">
<el-dialog
:visible.sync="counterDialog"
width="65%"
class="dialog"
:show-close="false"
:before-close="handleClose"
>
<div class="choose">
<div class="title">
<div class="cg">修改柜组</div>
<div class="circle" @click="handleClose">
<d2-icon-svg name="close" class="icon" />
</div>
</div>
<div class="br">
<el-form
class="searchzone"
:model="formData"
label-width="auto"
ref="addCounter"
:rules="rules"
>
<el-form-item label="柜组名称:" prop="name">
<el-input
size="small"
v-model="formData.name"
style="width:240px"
placeholder="请输入柜组名称"
/>
</el-form-item>
<el-form-item label="柜组负责人:" prop="people">
<el-select
size="small"
v-model="formData.people"
placeholder="请选择柜组负责人"
style="width:240px"
>
<el-option
v-for="item in personList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="柜组编号:" prop="code">
<el-input
size="small"
v-model="formData.code"
style="width:240px"
placeholder="请输入柜组编号"
/>
</el-form-item>
<el-form-item label="所在区域:" prop="area">
<el-input
size="small"
v-model="formData.area"
style="width:240px"
placeholder="请输入所在区域"
/>
</el-form-item>
<div class="cs">
<el-form-item label="门店:"> </el-form-item>
<div>
<el-transfer
style="text-align: left; display: inline-block"
v-model="value4"
:left-default-checked="[]"
:right-default-checked="[]"
:titles="['选择', '已选']"
:button-texts="['删除', '添加']"
@change="handleChange"
:data="data"
>
<span slot-scope="{ option }"
>{{ option.key }} - {{ option.label }}</span
>
</el-transfer>
</div>
</div>
</el-form>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancel('addCounter')" size="small"
>取 消</el-button
>
<el-button
type="primary"
@click="handleFinish('addCounter')"
size="small"
>确 定</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import { getDetail } from "@/api/in/counter"
export default {
props: {
msgId: {
type: String,
default: ''
}
},
data() {
const generateData = _ => {
const data = [];
for (let i = 1; i <= 15; i++) {
data.push({
key: i,
label: `备选项 ${i}`
});
}
return data;
}
// 中英文验证规则
const nameValidate = (rule, value, callback) => {
let reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error('含有非法字符(只能输入字母、汉字)!'))
} else {
callback()
}
}
return {
counterDialog: false,
data: generateData(),
value: [1],
value4: [1],
renderFunc(h, option) {
return (
<span>
{option.key} - {option.label}
</span>
);
},
formData: {
name: "",
code: "",
people: ""
},
personList: [
{
id: "1",
name: "张三"
},
{
id: "2",
name: "李四"
}
],
rules: {
name: [{ required: true, message: "请输入柜组名称", trigger: "blur" },
{ max: 50, message: '长度在50个字符以内', trigger: 'blur' },
{ validator: nameValidate, trigger: "blur" }],
people: [
{ required: true, message: "请选择活动负责人", trigger: "change" }
],
code: [{ required: true, message: "请输入柜组编号", trigger: "blur" },
{ max: 50, message: '长度在50个字符以内', trigger: 'blur' },
{ validator: nameValidate, trigger: "blur" }],
area: [{ required: true, message: "请输入所在区域", trigger: "blur" },
{ max: 50, message: '长度在50个字符以内', trigger: 'blur' },
{ validator: nameValidate, trigger: "blur" }]
}
};
},
created() {
this.getDetail()
},
methods: {
getDetail() {
this.counterDialog = true
let params = {
isDetail: true,
shopId: this.msgId
}
getDetail(params).then(res => {
console.log(res,"详情");
let data = res.data
this.formData.name = data.shop.name
this.formData.code = data.shop.num
this.formData.people = data.shop.principal
this.formData.area = data.shop.area
})
},
handleChange() {},
handleClose(done) {
this.$confirm("确认关闭?")
.then(_ => {
this.counterDialog = false;
this.$emit('handleEditClose',"false")
})
.catch(_ => {});
},
handleCancel(formName) {
this.$refs[formName].resetFields();
this.counterDialog = false;
this.$emit('handleEditClose',"false")
},
handleFinish(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.counterDialog = false;
this.$emit('handleEditClose',"false")
} else {
console.log('error submit!!');
return false;
}
});
},
},
watch:{
counterDialog(){
if(this.counterDialog){
if(this.$refs.addCounter){
this.$refs.addCounter.resetFields();
}
}
}
}
};
</script>
<style scoped>
.dialog >>> .el-dialog {
height: calc(100vh - 208px);
overflow: auto;
}
.cs {
display: flex;
}
.ct >>> .el-transfer-panel {
width: 180px;
}
.choose {
padding: 16px;
font-size: 16px;
font-weight: bold;
color: rgba(56, 56, 56, 1);
box-sizing: border-box;
}
.title {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 10px;
}
.transfer-footer {
margin-left: 20px;
padding: 6px 5px;
}
.ct >>> .el-dialog__header {
padding: 0 !important;
}
.ct >>> .el-dialog__body {
padding: 0;
}
.circle {
width: 30px;
height: 30px;
line-height: 30px;
border-radius: 50%;
border: 1px solid rgba(208, 2, 27, 1);
position: relative;
}
.circle >>> .icon {
width: 28px;
height: 28px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.br {
border-top: 1px solid #f8f8f8;
border-bottom: 1px solid #f8f8f8;
padding: 24px 60px;
}
</style>
......@@ -50,7 +50,7 @@
/>
</el-form-item>
<el-form-item label="设置主管:" prop="clerkId" v-if="detail == 1">
<el-cascader :props="props" v-model="deptId" :options="parentDeptList" :show-all-levels="false" filterable style="width: 30%;margin-right:15px;" @change="handleParentChange" ></el-cascader>
<el-cascader :props="props" v-model="deptId" :options="parentDeptList" :disabled="ifDisabled" :show-all-levels="false" filterable style="width: 30%;margin-right:15px;" @change="handleParentChange" ></el-cascader>
<el-select v-model="addForm.clerkId" filterable multiple placeholder="请选择" style="width: 30%;" clearble>
<el-option
v-for="item in peopleList"
......@@ -86,15 +86,17 @@ export default {
}
},
data() {
// 中英文验证规则
const nameValidate = (rule, value, callback) => {
let reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error("含有非法字符(只能输入字母、汉字)!"))
} else {
callback()
}
}
// 检查名称
const checkLabel = (rule, value, callback) => {
let labelReg = /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/;
if (value == "") {
callback(new Error("请输入部门名称"));
} else if (!labelReg.test(value)) {//引入methods中封装的检查手机格式的方法
callback(new Error("只可以输入中文、字母、数字和减号!"));
} else {
callback();
}
}
return {
treeData: [],
group_name: "",
......@@ -124,7 +126,7 @@ export default {
orgTree: [],
rules: {
label: [
{ required: true, message: "请输入部门名称", trigger: "blur" },
{ required: true, validator: checkLabel, trigger: "blur" },
{ max: 50, message: "长度在50个字符以内", trigger: "blur" }
],
parentId: [{ required: true, message: "请选择上级部门", trigger: "change" }]
......@@ -150,7 +152,8 @@ export default {
}, 1000);
}
},
props: {
ifDisabled: false,
props: {
value: 'id',
children: 'children',
lazy: true,
......@@ -248,30 +251,16 @@ export default {
} else {
return false;
}
});
})
},
// 获取所有人员
getGroupMember(id) {
getAllPeopleList({ id }).then(res => {
console.log(res,'人员')
this.ifDisabled = true
getAllPeopleList({ id }).then(res => {
this.peopleList = res.data
this.ifDisabled = false
})
},
/* handleNodeClick(item, node, self) {
// console.log(item,node,self)
this.params.d_parentId = item.id;
this.paramsForShow.father_name = item.label;
},
checkChange(item, node, self) {},
showTreeData() {
this.showTree = !this.showTree;
},
*/
}
}
};
</script>
......
<template>
<div>
<div>
<el-row class="tac">
<el-col>
<el-menu
:default-active="index"
class="el-menu-vertical-demo"
@open="handleOpen"
@close="handleClose"
>
<el-menu-item index="1">
<span class="circle"><d2-icon-svg name="mail"/></span>
<span slot="title">通讯录管理</span>
</el-menu-item>
<el-menu-item index="2">
<span class="circle"><d2-icon-svg name="counter"/></span>
<span slot="title">柜组管理</span>
</el-menu-item>
<el-menu-item index="3">
<span class="circle"><d2-icon-svg name="store"/></span>
<span slot="title">门店管理</span>
</el-menu-item>
</el-menu>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
export default {
data () {
return {
index: '1'
}
},
methods: {
handleClose () {},
handleOpen () {}
}
}
</script>
<style scoped>
.tac {
width:248px;
height: 100%;
}
.tac >>> .el-menu {
border-right: none;
}
.circle {
display: inline-block;
width: 24px;
height: 24px;
background:rgba(255,255,255,1);
box-shadow: 0px 1px 2px 0px rgba(78,89,199,1);
border-radius: 50%;
line-height: 24px;
text-align: center;
margin-right: 12px;
}
.theme-d2 .el-menu-item svg, .theme-d2 .el-submenu__title svg {
margin-right: 0;
}
</style>
<template>
<div class="ct">
<el-dialog :visible.sync="detailDialog" width="65%" :show-close="false">
<div class="choose">
<div class="title">
<div class="cg">门店详情</div>
<div class="circle" @click="handleClose">
<d2-icon-svg name="close" class="icon" />
</div>
</div>
<div class="br">
<el-form class="searchzone" :model="formData" label-width="auto" disabled>
<el-form-item label="门店名称:">
<el-input
size="small"
v-model="formData.name"
style="width:240px"
placeholder="请输入门店名称"
/>
</el-form-item>
<el-form-item label="门店类型:">
<el-select
size="small"
v-model="formData.type"
placeholder="请选择门店类型"
style="width:240px"
>
<el-option
v-for="item in personList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="门店负责人:">
<el-select
size="small"
v-model="formData.people"
placeholder="请选择柜组负责人"
style="width:240px"
>
<el-option
v-for="item in personList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属柜组:">
<el-select
size="small"
v-model="formData.counter"
placeholder="请选择所属柜组"
style="width:240px"
>
<el-option
v-for="item in counter"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="位置:">
<el-input
size="small"
v-model="formData.area"
style="width:240px"
placeholder="请输入位置"
/>
</el-form-item>
<el-form-item label="门牌号:">
<el-input
size="small"
v-model="formData.number"
style="width:240px"
placeholder="请输入门牌号"
/>
</el-form-item>
<div class="tb">
<el-form-item label="绑定店员:"></el-form-item>
<el-table
stripe
class="list"
ref="multipleTable table"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
>
<el-table-column type="index" label="序号" width="60"></el-table-column>
<el-table-column prop="taskName" label="门店名称" align="center"></el-table-column>
<el-table-column prop="number" label="门牌号" align="center"></el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
props: {
msgId: {
type: String,
default: ""
}
},
data() {
const nameValidate = (rule, value, callback) => {
let reg = /^[a-zA-Z\u4e00-\u9fa5]+$/;
if (!reg.test(value)) {
callback(new Error("含有非法字符(只能输入字母、汉字)!"));
} else {
callback();
}
};
return {
formData: {
name: "",
code: "",
people: "",
type: "",
number: "",
area: ""
},
personList: [
{
id: "1",
name: "张三"
},
{
id: "2",
name: "李四"
}
],
counter: [
{
id: "1",
name: "张三"
},
{
id: "2",
name: "李四"
}
],
tableData: [],
detailDialog: false
};
},
created() {
this.getDetail();
},
methods: {
getDetail() {
this.detailDialog = false
// let params = {
// isDetail: true,
// shopId: this.msgId
// }
// getDetail(params).then(res => {
// console.log(res,"详情");
// let data = res.data
// this.formData.name = data.shop.name
// this.formData.code = data.shop.num
// this.formData.people = data.shop.principal
// this.formData.area = data.shop.area
// this.tableData = data.stall_unselected
// })
},
handleClose() {
this.detailDialog = false;
}
}
};
</script>
<style scoped>
.tb {
display: flex;
}
.choose {
padding: 16px;
font-size: 16px;
font-weight: bold;
color: rgba(56, 56, 56, 1);
box-sizing: border-box;
}
.title {
display: flex;
align-items: center;
justify-content: space-between;
/* border-bottom: 1px solid #f8f8f8; */
padding-bottom: 10px;
}
.transfer-footer {
margin-left: 20px;
padding: 6px 5px;
}
.ct >>> .el-dialog__header {
padding: 0 !important;
}
.ct >>> .el-dialog__body {
padding: 0;
}
.ct >>> .el-transfer-panel {
width: 250px;
}
.circle {
width: 30px;
height: 30px;
line-height: 30px;
border-radius: 50%;
border: 1px solid rgba(208, 2, 27, 1);
position: relative;
}
.circle >>> .icon {
width: 28px;
height: 28px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.br {
border-top: 1px solid #f8f8f8;
border-bottom: 1px solid #f8f8f8;
padding: 24px 60px;
}
</style>
<template>
<div class="main">
<div class="title">全部柜组( 共<span>{{page.total}}</span>个 )</div>
<div class="searchs">
<div class="buttons">
<el-button class="button buttonlight" size="small" @click="addCounter">添加柜组</el-button>
<el-button class="button buttondark" size="small" v-if="multipleSelection.length>1" @click="handleDelBatch">批量删除</el-button>
</div>
<!-- 搜索区 -->
<el-form
class="searchzone"
:inline="true"
:model="form"
label-width="auto"
>
<el-form-item label="关键词">
<el-input size="small" v-model="form.keyWords" style="width:160px"
placeholder="请输入关键词" clearable/>
</el-form-item>
<el-button class="button buttondark" size="small" style="margin-top:4px;" @click="handleSearch">搜索</el-button>
</el-form>
</div>
<div class="lists">
<el-table
stripe
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%;"
height="calc(100vh - 360px)"
@selection-change="listPick"
>
<el-table-column type="selection" width="60"></el-table-column>
<el-table-column
prop="name"
label="柜组"
align="center"
></el-table-column>
<el-table-column
prop="principalName"
label="柜组负责人"
align="center"
></el-table-column>
<el-table-column
prop="num"
label="柜组编号"
align="center"
></el-table-column>
<el-table-column
prop="area"
label="所在区域"
align="center"
></el-table-column>
<el-table-column
prop="adminStallList.length"
label="门店数量"
align="center"
width="120"
></el-table-column>
<el-table-column label="创建时间" width="120" align="center" prop="createDate"/>
<el-table-column label="操作" align="center" fixed="right" width="200">
<template slot-scope="scope">
<el-button type="text" class="btn" @click="handleDetail(scope.row.id)" >详情</el-button>
<el-button type="text" class="btn" @click="handleEdit(scope.row.id)" >编辑</el-button >
<el-button type="text" @click="handleDelete(scope.row.id)" class="listButtonRed">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-size="page.size"
layout="total, prev, pager, next, jumper"
:total="page.total">
</el-pagination>
</div>
<add-counter ref="addCounter"></add-counter>
<counter-detail ref="counterDetail" :msgId="msgId" v-if="detailDialog" @handleDetailClose="handleDetailClose"></counter-detail>
<edit-counter ref="editCounter" :msgId="editId" v-if="editDialog" @handleEditClose="handleEditClose"></edit-counter>
</div>
</template>
<script>
import CounterDetail from "./components/counterDetail"
import AddCounter from "./components/addCounter"
import EditCounter from "./components/editCounter"
import { getList,stallDel } from "@/api/in/counter"
export default {
components: {
CounterDetail,
AddCounter,
EditCounter
},
data() {
return {
tableData: [],
list: {
search: {
bar: [
{
id: "1",
name: "全部"
},
{
id: "2",
name: "测试"
}
],
taskType: [
{
id: "1",
name: "全部"
},
{
id: "2",
name: "测试"
}
]
}
},
detailDialog: false,
counterDialog: false,
editDialog: false,
tableHeight: window.innerHeight * 0.5 ,
page:{
currentPage:1,
size:10,
total:0
},
form:{
keyWords:''
},
msgId: "",
editId: "",
multipleSelection:[]
};
},
mounted() {
this.getListData()
},
methods: {
getListData() {
let param = {}
let _this = this
param.keyWords = this.form.keyWords? this.form.keyWords : 0
param.pageNum = this.page.currentPage
getList(param).then(res => {
if(res.result == 'fail'){
_this.$message.error(res.errorMsg)
_this.tableData = []
}
if(res.result == 'success'){
let data = res.data.pageInfo.list
_this.tableData = data.map((v,i)=>{
let obj = {}
for(let key in v.adminShop){
obj[key] = v.adminShop[key]
obj.principalName = v.principal
}
return obj
})
_this.page.total = Number(res.data.pageInfo.total)
}
})
},
listPick(val) {
this.multipleSelection = val;
},
handleEdit(id) {
this.editId = id
this.editDialog = true
this.$refs.editCounter.counterDialog = true
},
//删除
handleDelete(id) {
let _this = this
this.$confirm('确定删除该柜组吗?', {
}).then(() => {
stallDel({shopIds:id}).then(res=>{
if(res.result == 'fail'){
_this.$message.error(res.errorMsg)
}
if(res.result == 'success'){
_this.getListData()
}
})
}).catch(() => {
this.$message.info("取消删除")
});
},
//批量删除
handleDelBatch(){
let _this = this
let delIds = this.multipleSelection.map(v=>{
return v.id
}).join(',')
this.$confirm('确定批量删除柜组吗?', {
}).then(() => {
stallDel({shopIds:delIds}).then(res=>{
if(res.result == 'fail'){
_this.$message.error(res.errorMsg)
}
if(res.result == 'success'){
_this.getListData()
}
})
}).catch(() => {
this.$message.info("取消删除")
});
},
handleEditClose() {
this.editDialog = false
},
pagesSizeChange() {},
pagesNowPageChange() {},
handleDetail(id) {
this.msgId = id
this.detailDialog = true
this.$refs.counterDetail.detailDialog = true
},
handleDetailClose() {
this.detailDialog = false
},
addCounter() {
this.$refs.addCounter.counterDialog= true
},
addCounterFinish() {
this.counterDialog = false
},
handleCurrentChange(val) {
this.page.currentPage = val
this.getListData()
},
//搜索 根据搜索条件查询
handleSearch(){
this.getListData()
},
},
/* mounted() {
this.$nextTick(() => {
this.tableHeight = window.innerHeight - 120;
})
} */
}
</script>
<style lang="scss" scoped>
.main {
position: relative;
background-color: #fff;
box-sizing: border-box;
height: 100%;
padding: 0px 16px 16px;
display: flex;
flex-direction: column;
justify-content: flex-start;
width: 100%;
box-shadow: 0px 2px 4px 0px #ddd;
}
.searchs {
height: 40px;
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.buttons {
width: 266px;
display: flex;
flex-direction: row;
justify-content: flex-start;
}
.buttonlight {
background-color: #e8e9fe;
color: #4e59c7;
border: 1px solid #4e59c7;
box-sizing: border-box;
}
.btn {
font-size:14px;
// font-weight:bold;
color:rgba(102,102,102,1);
}
.buttondark {
width: 88px;
height: 32px;
background-color: #4e59c7;
color: #ffffff;
border: 1px solid #4e59c7;
box-sizing: border-box;
}
.searchzone {
height: 40px;
width: auto;
min-width: 654px;
text-align: right;
}
.lists {
height: auto;
min-height: 70%;
width: 100%;
margin-top: 20px;
}
.listButtonRed {
color: #D0021B;
// font-weight: bold;
}
.pages {
height: 40px;
width: 100%;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
.title {
height: 48px;
line-height: 48px;
color:rgba(56,56,56,1);
border-bottom: 1px solid #f8f8f8;
margin-bottom: 16px;
}
</style>
......@@ -30,28 +30,16 @@
</div> -->
<div class="content">
<mail v-if="index == '1' && isHistoryShow == false" @isShow="contorlHistoryShow"></mail>
<counter v-if="index == '2'"></counter>
<store v-if="index == '3'"></store>
<org v-if="index == '4'"></org>
<history v-if="isHistoryShow == true" @isShow="contorlHistoryShow"></history>
<mail></mail>
</div>
</d2-container>
</template>
<script>
import Mail from "./mail";
import Store from "./store";
import Org from "./org";
import Counter from "./counter";
import History from "./components/history";
export default {
components: {
Mail,
Store,
Org,
Counter,
History
Mail
},
data () {
return {
......
......@@ -24,6 +24,7 @@
default-expand-all
expand-on-click-node
@node-click="handleTreeClick"
:highlight-current="true"
>
</el-tree>
</div>
......@@ -167,8 +168,6 @@ export default {
addDialogShow: false,
editDialogShow: false,
deleteDialogShow: false,
counterDialog: false,
storeDialog: false,
nameDialog: false,
allNumber: "",
wNumber: "",
......@@ -409,8 +408,15 @@ export default {
}
};
</script>
<style >
.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
background-color: #d0d0d0 !important;
}
</style>
<style scoped>
.trees >>> .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
background-color: #d0d0d0 !important;
}
.lines {
height: 55px;
align-items: center;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
import Vue from 'vue'
import VCharts from 'v-charts'
Vue.use(VCharts)
export default {
data () {
return {
pubSetting: {
height: '100%'
}
}
}
}
<template>
<!-- <d2-container type="card"> -->
<el-card class="box-card mains">
<el-tabs class="ztabs" v-model="cache.nowMenu" @tab-click="ztabsClick">
<el-tab-pane label="柜组任务" name="taskBar">
<task-bar />
</el-tab-pane>
<el-tab-pane label="集团任务" name="taskCom">
<task-com />
</el-tab-pane>
<el-tab-pane label="任务统计" name="taskCount">
<task-count />
</el-tab-pane>
</el-tabs>
</el-card>
</template>
<script>
import TaskBar from "../bar/index";
import TaskCom from "../com/index";
import TaskCount from "../count/index";
// import { ApiTestGet, ApiTestPost } from "@/api/task/main";
export default {
components: {
TaskBar,
TaskCom,
TaskCount
},
data() {
return {
cache: {
nowMenu: "taskBar"
}
};
},
created() {
let postData = {
brief: "停车券兑换",
orderNo: "12345678",
point: "123.321",
procType: 46,
updateType: "dec",
vipId: 1
};
// ApiTestPost(postData).then(res => {
// log("--->Api: Post: res =", res);
// });
},
methods:{
ztabsClick(){},
}
};
</script>
<style lang="scss" scoped>
.mains {
/*border: 1px solid red;*/
height: calc((100vh - 140px) * 1.0);
min-width: 1280px;
margin: 10px 20px 10px 10px;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.ztabs {
/*border: 2px solid darkviolet;*/
height: calc((100vh - 180px) * 1.0);
width: 100%;
}
</style>
......@@ -42,123 +42,6 @@ const frameIn = [
title: '通讯录管理'
}
},
// // Z-进件管理-通讯录管理
// {
// path: '/in/bar',
// name: 'inBar',
// component: () => import('@/pages/in/bar'),
// meta: {
// auth: true,
// title: '柜组管理'
// }
// },
// // Z-进件管理-通讯录管理
// {
// path: '/in/shop',
// name: 'inShop',
// component: () => import('@/pages/in/shop'),
// meta: {
// auth: true,
// title: '门店管理'
// }
// },
// Z-活动模版管理-模版中心
{
path: '/active/mode',
name: 'modeCenter',
component: () => import('@/pages/active/mode'),
meta: {
auth: true,
title: '模版中心'
}
},
// Z-活动模版管理-模版商城
{
path: '/active/shop',
name: 'modeShop',
component: () => import('@/pages/active/shop'),
meta: {
auth: true,
title: '模版商城'
}
},
// Z-任务管理-柜组任务
{
path: '/task/main',
name: 'taskMain',
component: () => import('@/pages/task/main'),
meta: {
auth: true,
title: '柜组任务'
}
},
// Z-任务管理-集团任务
{
path: '/task/com',
name: 'taskCom',
component: () => import('@/pages/task/com'),
meta: {
auth: true,
title: '集团任务'
}
},
// Z-任务管理-任务统计
{
path: '/task/count',
name: 'taskCount',
component: () => import('@/pages/task/count'),
meta: {
auth: true,
title: '任务统计'
}
},
// Z-活动商品-活动商品
// {
// path: '/goods/main',
// name: 'goodsMain',
// component: () => import('@/pages/goods/main'),
// meta: {
// auth: true,
// title: '活动商品'
// }
// },
// // 演示页面
// {
// path: 'page1',
// name: 'page1',
// meta: {
// title: '页面 1',
// auth: true
// },
// component: _import('demo/page1')
// },
// {
// path: 'page2',
// name: 'page2',
// meta: {
// title: '页面 2',
// auth: true
// },
// component: _import('demo/page2')
// },
// {
// path: 'page3',
// name: 'page3',
// meta: {
// title: '页面 3',
// auth: true
// },
// component: _import('demo/page3')
// },
// {
// path: '/page-demo',
// name: 'page-demo',
// component: () => import('@/pages/page-demo'),
// meta: {
// auth: true,
// title: '新建示例'
// }
// },
// 系统 前端日志
{
path: 'log',
......
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