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>
<template>
<div class="main">
<!-- 搜索区 -->
<div class="searchs">
<div class="buttons">
<el-button class="button buttonlight" size="small" @click="orgMainAdd">添加组织</el-button>
<el-button class="button buttondark" size="small" @click="orgMainDels">批量删除</el-button>
</div>
<el-form class="searchzone" :inline="true" :model="zdata.searchPost" label-width="auto">
<el-form-item label="关键词">
<el-input
size="small"
v-model="zdata.search.post.keyword"
style="width:160px"
:placeholder="zcache.search.keywordTip"
/>
</el-form-item>
<el-button
class="button buttondark"
size="small"
@click="orgMainSearch"
style="margin-top:4px;"
>搜索</el-button>
</el-form>
</div>
<!-- 列表区 -->
<div class="lists">
<el-table
stripe
class="list"
ref="multipleTable"
:data="zlist.org"
tooltip-effect="dark"
style="width: 100%"
height="calc(100vh - 360px)"
row-key="id"
:tree-props="{children: 'children',hasChildren: 'hasChildren'}"
>
<el-table-column prop="name" label="名称" align="left"></el-table-column>
<el-table-column prop="typeName" label="类型" align="center"></el-table-column>
<el-table-column prop="bossName" label="主管" align="center"></el-table-column>
<el-table-column prop="bossWxId" label="主管微信ID" align="center"></el-table-column>
<el-table-column prop="bossPhoneNum" label="主管电话" align="center"></el-table-column>
<el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
@current-change="storePageIndexChange"
:current-page="zcache.page.nowPage"
:page-size="zcache.page.pageSize"
layout="total, prev, pager, next, jumper"
:total="zcache.page.allItem"
></el-pagination>
</div>
<add-store ref="addStore"></add-store>
<store-detail ref="storeDetail"></store-detail>
<!-- 对话框区 -->
<div class="ztask-dialogs">
<!-- New -->
<el-dialog
title="新建品牌"
:visible.sync="zcache.status.newDialog"
width="65%"
:before-close="dialogNewClose"
>
<div class="dialogMain">
<!-- <el-form :model="zdata.post" label-width="auto" ref="addStore" :rules="zrule"> -->
<el-form
:model="zdata.newPost"
label-width="auto"
ref="newStore"
style="border: 0px solid red;"
>
<!-- <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.newPost.storeName"
style="width:240px;"
placeholder="请输入品牌名称"
/>
</el-form-item>
<el-form-item label="品牌类型:" prop="storeType">
<el-select
size="small"
v-model="zdata.newPost.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.newPost.storeBossId"
placeholder="请选择品牌负责人"
style="width:240px"
@change="ztestman"
>
<el-option
v-for="item in zlist.unGroupMan"
:key="item.id"
:label="item.userName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属柜组:" prop="counter">
<el-select
size="small"
v-model="zdata.newPost.storeFromBarId"
placeholder="请选择所属柜组"
style="width:240px"
>
<el-option
v-for="item in zlist.bar"
: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.newPost.storeDoorCode"
style="width:240px"
placeholder="请输入门牌号"
/>
</el-form-item>
<el-form-item label="位置:" prop="area">
<el-input
size="small"
v-model="zdata.newPost.storeAddress"
style="width:240px"
placeholder="请输入位置"
/>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogNewCancel">取 消</el-button>
<!-- <el-button type="primary" @click="addStoreSubmit('createForm')" size="small">确 定</el-button> -->
<el-button type="primary" @click="dialogNewSubmit" size="small">确 定</el-button>
</span>
</el-dialog>
<!-- See -->
<el-dialog
title="品牌详情"
:visible.sync="zcache.status.seeDialog"
width="50%"
:before-close="dialogSeeClose"
>
<div class="dialogMain">
<el-form :model="zdata.see" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="品牌名称:">
<el-input
:disabled="true"
v-model="zdata.see.storeName"
autocomplete="off"
placeholder="品牌名称缺失"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="品牌类型:">
<el-input
:disabled="true"
v-model="zdata.see.storeType"
autocomplete="off"
placeholder="品牌类型为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="所属柜组:">
<el-input
:disabled="true"
v-model="zdata.see.storeFromBar"
autocomplete="off"
placeholder="柜组信息未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="品牌负责人:">
<el-input
:disabled="true"
v-model="zdata.see.storeBossName"
autocomplete="off"
placeholder="品牌负责人未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="门牌号:">
<el-input
:disabled="true"
v-model="zdata.see.storeDoorId"
autocomplete="off"
placeholder="门牌号未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="位置:">
<el-input
:disabled="true"
v-model="zdata.see.storeAddress"
autocomplete="off"
placeholder="位置未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="店员:">
<el-table class="list" :data="zdata.see.storeManList" tooltip-effect="dark">
<el-table-column type="index" width="50" align="center"></el-table-column>
<el-table-column prop="userName" label="品牌名称" align="center"></el-table-column>
<el-table-column prop="userId" label="品牌类型" align="center"></el-table-column>
<el-table-column prop="mobile" label="品牌类型" align="center"></el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogSeeClose">关 闭</el-button>
<!-- <el-button size="small" type="primary" @click="dialogSeeSubmitSend('seeForm')">任务下发</el-button> -->
</span>
</el-dialog>
<!-- Edit -->
<el-dialog
title="编辑品牌"
:visible.sync="zcache.status.editDialog"
width="65%"
:before-close="dialogEditClose"
>
<div class="dialogMain">
<!-- <el-form :model="zdata.post" label-width="auto" ref="addStore" :rules="zrule"> -->
<el-form
:model="zdata.editPost"
label-width="auto"
ref="editStore"
style="border: 0px solid red;"
>
<!-- <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.editPost.storeName"
style="width:240px;"
placeholder="请输入品牌名称"
/>
</el-form-item>
<el-form-item label="品牌类型:" prop="storeType">
<el-select
size="small"
v-model="zdata.editPost.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.editPost.storeBossId"
placeholder="请选择品牌负责人"
style="width:240px"
>
<el-option
v-for="item in zlist.unGroupMan"
:key="item.id"
:label="item.userName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属柜组:" prop="counter">
<el-select
size="small"
v-model="zdata.editPost.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.editPost.storeDoorCode"
style="width:240px"
placeholder="请输入门牌号"
/>
</el-form-item>
<el-form-item label="位置:" prop="area">
<el-input
size="small"
v-model="zdata.editPost.storeAddress"
style="width:240px"
placeholder="请输入位置"
/>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogEditCancel">取 消</el-button>
<!-- <el-button type="primary" @click="addStoreSubmit('createForm')" size="small">确 定</el-button> -->
<el-button type="primary" @click="dialogEditSubmit" size="small">确 定</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import AddStore from "./components/addStore";
import StoreDetail from "./components/storeDetail";
import {
ApiStoreGetMainList,
ApiStoreGetStoreDetail,
ApiStoreDelStore,
ApiStoreGetUnGroupManList,
ApiStoreAddStore,
ApiStoreEditStore,
ApiStoreGetBarList,
ApiStoreSearch
} from "@api/in/org";
import axios from "axios";
const zlog = console.log.bind(console);
export default {
components: {
AddStore,
StoreDetail
},
data() {
return {
zcache: {
search: {
keywordTip: "F请输入关键词"
}
},
zdata: {
search: {
post: {
keyword: ""
}
}
},
zlist: {
org: [
{
id: "01000000",
name: "欧亚万豪购物中心",
typeId: "",
typeName: "门店",
bossId: "",
bossName: "Alice",
bossWxId: "WxAlice",
bossPhoneNum: "18800000001",
createTime: "2019/01/01",
children: [
{
id: "01010000",
name: "品牌店",
typeId: "",
typeName: "商场",
bossId: "",
bossName: "Bob",
bossWxId: "WxBob",
bossPhoneNum: "18800000002",
createTime: "2019/02/01",
children: [
{
id: "01010100",
name: "精品男装",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Clid",
bossWxId: "WxClid",
bossPhoneNum: "18800000003",
createTime: "2019/03/01",
children: [
{
id: "01010101",
name: "Asics",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Dive",
bossWxId: "WxDive",
bossPhoneNum: "18800000004",
createTime: "2019/04/01"
},
{
id: "01010102",
name: "Adidas",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Eva",
bossWxId: "WxEva",
bossPhoneNum: "18800000005",
createTime: "2019/04/02"
},
{
id: "01010103",
name: "Nike",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Fox",
bossWxId: "WxFox",
bossPhoneNum: "18800000006",
createTime: "2019/04/03"
},
]
},
{
id: "01010200",
name: "精品女装",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Gome",
bossWxId: "WxGome",
bossPhoneNum: "18800000007",
createTime: "2019/03/02",
children: [
]
},
{
id: "01010300",
name: "皮鞋柜组",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Hola",
bossWxId: "WxHola",
bossPhoneNum: "18800000008",
createTime: "2019/03/03",
children: [
]
},
{
id: "01010400",
name: "护肤美颜",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Ink",
bossWxId: "WxInk",
bossPhoneNum: "18800000009",
createTime: "2019/03/04",
children: [
]
},
]
},
]
},
]
}
};
},
watch: {
// addStoreDialog() {
addStoreDialog() {
// if ((this.$refs.addStore.addStoreDialog = false)) {
// this.storeGetMainList();
// }
},
"": {
handler: function() {},
deep: true
}
},
// created() {
// this.storeGetMainList();
// zlog('--->Created!')
// },
mounted() {
// this.storeGetMainList();
this.storeSearch();
this.storeReadyBarList();
this.storeGetUnGroupManList();
},
methods: {
orgMainAdd() {},
orgMainDels() {},
orgMainSearch() {},
storeReadyBarList() {
ApiStoreGetBarList()
.then(res => {
this.zlist.bar = res.data;
})
.catch(err => {});
},
storeGetUnGroupManList() {
let postData = {};
ApiStoreGetUnGroupManList(postData)
.then(res => {
this.zlist.unGroupMan = res.data;
})
.catch(err => {});
},
storeGetBarList() {},
matchManIdAndManName(inId) {
let manList = this.list.man;
let manName = "未知";
for (let i = 0; i < this.list.man.length; i++) {
let item = manList[i];
if (item != null && item.id != null) {
if (item.id == inId) {
manName = item.userName;
}
}
}
return manName;
},
transManIdToManName() {
let mainList = this.list.main;
let id = "";
let name = "";
for (let i = 0; i < mainList.length; i++) {
if (
this.list.main[i].adminStall.principal &&
this.list.main[i].adminStall.principal != null
) {
id = this.list.main[i].adminStall.principal;
name = this.matchManIdAndManName(id);
this.list.main[i].adminStall.principal = name;
} else {
this.list.main[i].adminStall.principal = "未知";
}
}
},
storeSearch() {
if (this.zdata.searchPost.keywords == "") {
this.zcache.status.isSearch = false;
this.zcache.page.nowPage = 1;
this.storeGetMainList();
} else {
this.zcache.status.isSearch = true;
let postData = {
keyWords: this.zdata.searchPost.keywords,
pageNum: 1
};
ApiStoreSearch(postData)
.then(res => {
// let result = [];
// result.push(res.data.stallInfo);
// this.list.main = result;
// this.list.main = res.data.list;
this.list.main = res.data.pageInfo_adminStalls.list;
this.zcache.page.allItem = Number(
res.data.pageInfo_adminStalls.total
);
this.zcache.page.pageSize = res.data.pageInfo_adminStalls.pageSize;
this.zcache.page.nowPage = res.data.pageInfo_adminStalls.pageNum;
})
.catch(err => {});
}
},
storeGetMainList() {
// zlog("--->In Get API!");
let postData = {
pageNum: this.zcache.page.nowPage
};
ApiStoreGetMainList(postData).then(res => {
// this.list.main = res.data.pageInfo_adminStalls.list[0];
// this.list.man = res.data.pageInfo_principals.list[0];
this.list.main = res.data.pageInfo_adminStalls.list;
this.list.man = res.data.adminStall_principals;
this.transManIdToManName();
this.zcache.page.allItem = Number(res.data.pageInfo_adminStalls.total);
this.zcache.page.pageSize = res.data.pageInfo_adminStalls.pageSize;
this.zcache.page.nowPage = res.data.pageInfo_adminStalls.pageNum;
});
},
storePageIndexChange(inData) {
console.log("--->page: inData =", inData);
this.zcache.page.nowPage = inData;
if (this.zcache.status.isSearch) {
let postData = {
keyWords: this.zdata.searchPost.keywords,
pageNum: inData
};
ApiStoreSearch(postData)
.then(res => {
// let result = [];
// result.push(res.data.stallInfo);
// this.list.main = result;
// this.list.main = res.data.list;
this.list.main = res.data.pageInfo_adminStalls.list;
this.zcache.page.allItem = Number(
res.data.pageInfo_adminStalls.total
);
this.zcache.page.pageSize = res.data.pageInfo_adminStalls.pageSize;
this.zcache.page.nowPage = res.data.pageInfo_adminStalls.pageNum;
})
.catch(err => {});
} else {
this.zcache.page.nowPage = inData;
this.storeGetMainList();
}
},
storeGetStoreDetail(inData) {
let postData = {
isDetail: true,
stallId: inData
};
ApiStoreGetStoreDetail(postData)
.then(res => {
this.zdata.see.storeName = res.data.adminStall.name;
this.zdata.see.storeType = res.data.adminStall.type;
// this.zdata.see.storeFromBar = res.data.adminStall.shopId;
this.zdata.see.storeFromBar = res.data.shopName;
this.zdata.see.storeBossName = res.data.principal.userName;
this.zdata.see.storeDoorId = res.data.adminStall.signNum;
this.zdata.see.storeAddress = res.data.adminStall.location;
this.zdata.see.storeManList = res.data.clerks_unselected;
})
.catch(err => {});
this.zcache.status.seeDialog = true;
},
storeEditStore(inData) {
this.storeGetUnGroupManList();
this.zdata.editPost.id = Number(inData);
let postData = {
isDetail: true,
stallId: inData
};
ApiStoreGetStoreDetail(postData)
.then(res => {
this.zdata.edit = res;
let timeStoreTypeId = "";
if (res.data.adminStall.type == "普通") {
timeStoreTypeId = "0";
} else {
timeStoreTypeId = "1";
}
this.zdata.editPost.storeName = res.data.adminStall.name;
this.zdata.editPost.storeTypeId = timeStoreTypeId;
this.zdata.editPost.storeBossId = res.data.adminStall.principal;
this.zdata.editPost.storeFromBarId = res.data.adminStall.shopId;
this.zdata.editPost.storeDoorCode = res.data.adminStall.signNum;
this.zdata.editPost.storeAddress = res.data.adminStall.location;
})
.catch(err => {});
this.zcache.status.editDialog = true;
},
storeDelStore(inData) {
let delArr = [];
delArr.push(String(inData));
let postData = {
stallIds: delArr
};
ApiStoreDelStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "删除成功",
type: "success"
});
this.storeGetMainList();
} else {
this.$message({
message: "删除失败!",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "删除失败!",
type: "error"
});
});
},
listPick(inData) {
this.zlist.listPick = inData;
},
storeDelStoreArr() {
let delArr = this.zlist.listPick;
let delIdsArr = [];
for (let i = 0; i < delArr.length; i++) {
delIdsArr.push(String(delArr[i].id));
}
let postData = {
stallIds: delIdsArr
};
ApiStoreDelStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "删除成功",
type: "success"
});
this.storeGetMainList();
} else {
this.$message({
message: "删除失败!",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "删除失败!",
type: "error"
});
});
},
ztestman(inData) {
console.log("--->ManList =", this.zlist.unGroupMan);
console.log("--->PickId =", inData, " type =", typeof inData);
// this.zdata.newPost.storeBossId = Number(inData)
},
dialogNewClose() {
this.zcache.status.newDialog = false;
this.zdata.newPost = JSON.parse(
JSON.stringify(this.zdata.newPostDefault)
);
},
dialogNewCancel() {
this.zcache.status.newDialog = false;
this.zdata.newPost = JSON.parse(
JSON.stringify(this.zdata.newPostDefault)
);
},
dialogNewSubmit() {
// console.log('--->PostId =', this.zdata.newPost.storeBossId * 1)
let postData = {
name: this.zdata.newPost.storeName,
// stallType: Number(this.zdata.newPost.storeTypeId),
stallType: this.zdata.newPost.storeTypeId,
principal: this.zdata.newPost.storeBossId,
shopId: this.zdata.newPost.storeFromBarId,
signNum: this.zdata.newPost.storeDoorCode,
location: this.zdata.newPost.storeAddress
};
console.log("--->postData =", postData);
ApiStoreAddStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "添加成功",
type: "success"
});
this.zcache.status.newDialog = false;
this.zdata.newPost = JSON.parse(
JSON.stringify(this.zdata.newPostDefault)
);
this.storeSearch();
}
})
.catch(err => {});
},
dialogEditClose() {
this.zcache.status.editDialog = false;
this.zdata.editPost = JSON.parse(
JSON.stringify(this.zdata.editPostDefault)
);
},
dialogEditCancel() {
this.zcache.status.editDialog = false;
this.zdata.editPost = JSON.parse(
JSON.stringify(this.zdata.editPostDefault)
);
},
dialogEditSubmit() {
let postData = {
stallId: Number(this.zdata.editPost.id),
name: this.zdata.editPost.storeName,
type: String(this.zdata.editPost.storeTypeId),
principal: Number(this.zdata.editPost.storeBossId),
shopId: Number(this.zdata.editPost.storeFromBarId),
signNum: String(this.zdata.editPost.storeDoorCode),
location: this.zdata.editPost.storeAddress
};
ApiStoreEditStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "编辑成功",
type: "success"
});
this.zdata.editPost = JSON.parse(
JSON.stringify(this.zdata.editPostDefault)
);
this.zcache.status.editDialog = false;
this.storeGetMainList();
} else {
this.$message({
message: "编辑失败!",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "编辑失败!",
type: "error"
});
});
},
testButtonClick() {},
pagesSizeChange() {},
pagesNowPageChange() {},
setListsHeadStyle({ row, column, rowIndex, columnIndex }) {
if (rowIndex === 0) {
return "background-color: #0B0F32; border-right: 1px solid white;color: white;";
} else {
return "";
}
},
addStore() {
// this.$refs.addStore.addStoreDialog = true;
this.zcache.status.newDialog = true;
},
handleDetail() {
this.$refs.storeDetail.detailDialog = true;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
dialogSeeClose() {
this.zcache.status.seeDialog = false;
}
}
};
</script>
<style lang="scss" scoped>
.btn {
font-size: 14px;
font-weight: bold;
color: rgba(102, 102, 102, 1);
}
.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;
}
.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;
}
.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>
<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;
......
<template>
<div class="main">
<!-- 搜索区 -->
<div class="searchs">
<div class="buttons">
<el-button class="button buttonlight" size="small" @click="orgMainAdd">添加组织</el-button>
<el-button class="button buttondark" size="small" @click="orgMainDels">批量删除</el-button>
</div>
<el-form class="searchzone" :inline="true" :model="zdata.searchPost" label-width="auto">
<el-form-item label="关键词">
<el-input
size="small"
v-model="zdata.search.post.keyword"
style="width:160px"
:placeholder="zcache.search.keywordTip"
/>
</el-form-item>
<el-button
class="button buttondark"
size="small"
@click="orgMainSearch"
style="margin-top:4px;"
>搜索</el-button>
</el-form>
</div>
<!-- 列表区 -->
<div class="lists">
<el-table
stripe
class="list"
ref="multipleTable"
:data="zlist.org"
tooltip-effect="dark"
style="width: 100%"
height="calc(100vh - 312px)"
row-key="id"
:tree-props="{children: 'children',hasChildren: 'hasChildren'}"
>
<el-table-column prop="name" label="名称" align="left"></el-table-column>
<el-table-column prop="typeName" label="类型" align="center"></el-table-column>
<el-table-column prop="bossName" label="主管" align="center"></el-table-column>
<el-table-column prop="bossWxId" label="主管微信ID" align="center"></el-table-column>
<el-table-column prop="bossPhoneNum" label="主管电话" align="center"></el-table-column>
<el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="200">
<template slot-scope="scope">
<el-button type="text" @click="orgMainSee(scope.row.id)" class="btn">详情</el-button>
<el-button type="text" @click="orgMainEdit(scope.row.id)" class="btn">编辑</el-button>
<el-button
type="text"
@click="orgMainDel(scope.row.id)"
class="listButtonRed"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
@current-change="orgMainPageChange"
:current-page="zcache.page.nowPage"
:page-size="zcache.page.pageSize"
layout="total, prev, pager, next, jumper"
:total="zcache.page.allItem"
></el-pagination>
</div>
<!-- 对话框区 -->
<div class="dialogs">
<el-dialog
title="新建组织"
:visible.sync="zcache.status.dialog.new"
width="65%"
:before-close="orgNewClose"
>
<div class="dialogMain">
<el-form :model="zdata.new.post" label-width="auto" ref="orgNewForm">
<el-form-item label="名称:" prop="name">
<el-input
size="small"
v-model="zdata.new.post.name"
style="width:240px;"
:placeholder="zcache.new.nameTip"
/>
</el-form-item>
<!-- <el-form-item label="类型:" prop="type">
<el-select
size="small"
v-model="zdata.new.post.typeId"
placeholder="请选择品牌类型"
style="width:240px"
>
<el-option
v-for="item in ztrans.orgType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>-->
<!-- <el-form-item v-if="zdata.new.post.typeId == '2'" label="所属门店:" prop="type">
<el-select
size="small"
v-model="zdata.new.post.typeId"
placeholder="请选择品牌类型"
style="width:240px"
>
<el-option
v-for="item in ztrans.orgType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>-->
<el-form-item label="所属上级:" prop="from">
<el-tree
:data="ztrans.org"
show-checkbox
default-expand-all
node-key="id"
:props="ztrans.new.from"
@node-click="orgNewFromPick"
></el-tree>
</el-form-item>
<el-form-item label="品牌负责人:" prop="people"></el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="orgNewCancel">取 消</el-button>
<el-button type="primary" @click="orgNewSubmit" size="small">确 定</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import {} from "@api/in/org";
const zlog = console.log.bind(console);
export default {
components: {},
data() {
return {
zcache: {
status: {
dialog: {
new: false,
see: false,
edit: false
}
},
search: {
keywordTip: "请输入关键词"
},
page: {
pageSize: 10,
allItem: 9,
nowPage: 1
},
new: {
nameTip: "请输入名称"
}
},
ztrans: {
new: {
from: {
label: "name",
children: "children",
disabled: true,
isLeaf: true,
}
},
orgS: [
{
id: 1001,
name: 'A',
children: [
{
id: 2001,
name: 'A1',
}
]
}
],
org: [
{
id: "01000000",
name: "欧亚万豪购物中心",
typeId: "",
typeName: "门店",
bossId: "",
bossName: "Alice",
bossWxId: "WxAlice",
bossPhoneNum: "18800000001",
createTime: "2019/01/01",
children: [
{
id: "01010000",
name: "品牌店",
typeId: "",
typeName: "商场",
bossId: "",
bossName: "Bob",
bossWxId: "WxBob",
bossPhoneNum: "18800000002",
createTime: "2019/02/01",
children: [
{
id: "01010100",
name: "精品男装",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Clid",
bossWxId: "WxClid",
bossPhoneNum: "18800000003",
createTime: "2019/03/01",
children: [
{
id: "01010101",
name: "Asics",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Dive",
bossWxId: "WxDive",
bossPhoneNum: "18800000004",
createTime: "2019/04/01"
},
{
id: "01010102",
name: "Adidas",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Eva",
bossWxId: "WxEva",
bossPhoneNum: "18800000005",
createTime: "2019/04/02"
},
{
id: "01010103",
name: "Nike",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Fox",
bossWxId: "WxFox",
bossPhoneNum: "18800000006",
createTime: "2019/04/03"
}
]
},
{
id: "01010200",
name: "精品女装",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Gome",
bossWxId: "WxGome",
bossPhoneNum: "18800000007",
createTime: "2019/03/02",
children: []
},
{
id: "01010300",
name: "皮鞋柜组",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Hola",
bossWxId: "WxHola",
bossPhoneNum: "18800000008",
createTime: "2019/03/03",
children: []
},
{
id: "01010400",
name: "护肤美颜",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Ink",
bossWxId: "WxInk",
bossPhoneNum: "18800000009",
createTime: "2019/03/04",
children: []
}
]
}
]
}
],
orgType: [
{
id: "01",
name: "门店"
},
{
id: "02",
name: "商场"
},
{
id: "03",
name: "柜组"
},
{
id: "04",
name: "品牌店"
}
]
},
zdata: {
search: {
post: {
keyword: ""
},
default: {
keyword: ""
}
},
new: {
post: {
name: "",
typeId: "",
typeName: "",
fromType1Id: "",
formType1Name: "",
fromType2Id: "",
formType2Name: "",
fromType3Id: "",
formType3Name: "",
fromType4Id: "",
formType4Name: "",
bossId: "",
bossName: ""
},
default: {
name: "",
typeId: "",
typeName: "",
fromType1Id: "",
formType1Name: "",
fromType2Id: "",
formType2Name: "",
fromType3Id: "",
formType3Name: "",
fromType4Id: "",
formType4Name: "",
bossId: "",
bossName: ""
}
}
},
zlist: {
org: [
{
id: "01000000",
name: "欧亚万豪购物中心",
typeId: "",
typeName: "门店",
bossId: "",
bossName: "Alice",
bossWxId: "WxAlice",
bossPhoneNum: "18800000001",
createTime: "2019/01/01",
children: [
{
id: "01010000",
name: "品牌店",
typeId: "",
typeName: "商场",
bossId: "",
bossName: "Bob",
bossWxId: "WxBob",
bossPhoneNum: "18800000002",
createTime: "2019/02/01",
children: [
{
id: "01010100",
name: "精品男装",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Clid",
bossWxId: "WxClid",
bossPhoneNum: "18800000003",
createTime: "2019/03/01",
children: [
{
id: "01010101",
name: "Asics",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Dive",
bossWxId: "WxDive",
bossPhoneNum: "18800000004",
createTime: "2019/04/01"
},
{
id: "01010102",
name: "Adidas",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Eva",
bossWxId: "WxEva",
bossPhoneNum: "18800000005",
createTime: "2019/04/02"
},
{
id: "01010103",
name: "Nike",
typeId: "",
typeName: "专柜",
bossId: "",
bossName: "Fox",
bossWxId: "WxFox",
bossPhoneNum: "18800000006",
createTime: "2019/04/03"
}
]
},
{
id: "01010200",
name: "精品女装",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Gome",
bossWxId: "WxGome",
bossPhoneNum: "18800000007",
createTime: "2019/03/02",
children: []
},
{
id: "01010300",
name: "皮鞋柜组",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Hola",
bossWxId: "WxHola",
bossPhoneNum: "18800000008",
createTime: "2019/03/03",
children: []
},
{
id: "01010400",
name: "护肤美颜",
typeId: "",
typeName: "柜组",
bossId: "",
bossName: "Ink",
bossWxId: "WxInk",
bossPhoneNum: "18800000009",
createTime: "2019/03/04",
children: []
}
]
}
]
}
]
}
};
},
watch: {},
created() {},
mounted() {},
methods: {
orgMainAdd() {},
orgMainDels() {},
orgMainSearch() {},
orgMainPageChange() {},
orgMainSee(inData) {
this.zcache.status.dialog.new = true;
},
orgMainEdit() {},
orgMainDel() {},
orgNewClose() {
this.zcache.status.dialog.new = false;
this.zdata.new.post = JSON.parse(JSON.stringify(this.zdata.new.default));
},
orgNewFromPick() {},
orgNewCancel() {
this.zcache.status.dialog.new = false;
this.zdata.new.post = JSON.parse(JSON.stringify(this.zdata.new.default));
},
orgNewSubmit() {
this.zcache.status.dialog.new = false;
this.zdata.new.post = JSON.parse(JSON.stringify(this.zdata.new.default));
}
}
};
</script>
<style lang="scss" scoped>
.btn {
font-size: 14px;
font-weight: bold;
color: rgba(102, 102, 102, 1);
}
.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;
}
.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;
}
.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>
<template>
<div class="main">
<div class="title">全部品牌( 共{{zcache.page.allItem}}个 )</div>
<!-- 搜索区 -->
<div class="searchs">
<div class="buttons">
<el-button class="button buttonlight" size="small" @click="addStore">添加品牌</el-button>
<el-button class="button buttondark" size="small" @click="storeDelStoreArr">批量删除</el-button>
</div>
<el-form class="searchzone" :inline="true" :model="data.search" label-width="auto">
<el-form-item label="关键词">
<el-input
size="small"
v-model="zdata.searchPost.keywords"
style="width:160px"
placeholder="请输入关键词"
/>
</el-form-item>
<el-button
class="button buttondark"
size="small"
@click="storeSearch"
style="margin-top:4px;"
>搜索</el-button>
</el-form>
</div>
<!-- 列表区 -->
<div class="lists">
<el-table
stripe
class="list"
ref="multipleTable"
:data="list.main"
tooltip-effect="dark"
style="width: 100%"
@selection-change="listPick"
height="calc(100vh - 360px)"
>
<el-table-column type="selection" width="60"></el-table-column>
<el-table-column prop="adminStall.name" label="品牌名称" align="center"></el-table-column>
<el-table-column prop="adminStall.type" label="品牌类型" align="center" width="120"></el-table-column>
<el-table-column prop="adminStall.principal" label="品牌负责人" align="center" width="120"></el-table-column>
<el-table-column prop="shopName" label="所属柜组" align="center" width="120"></el-table-column>
<el-table-column prop="adminStall.location" label="位置" align="center" width="120"></el-table-column>
<el-table-column prop="adminStall.signNum" label="门牌号" align="center" width="120"></el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="200">
<template slot-scope="scope">
<el-button type="text" @click="storeGetStoreDetail(scope.row.adminStall.id)" class="btn">详情</el-button>
<el-button type="text" @click="storeEditStore(scope.row.adminStall.id)" class="btn">编辑</el-button>
<el-button type="text" @click="storeDelStore(scope.row.adminStall.id)" class="listButtonRed">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
@current-change="storePageIndexChange"
:current-page="zcache.page.nowPage"
:page-size="zcache.page.pageSize"
layout="total, prev, pager, next, jumper"
:total="zcache.page.allItem"
></el-pagination>
</div>
<add-store ref="addStore"></add-store>
<store-detail ref="storeDetail"></store-detail>
<!-- 对话框区 -->
<div class="ztask-dialogs">
<!-- New -->
<el-dialog
title="新建品牌"
:visible.sync="zcache.status.newDialog"
width="65%"
:before-close="dialogNewClose"
>
<div class="dialogMain">
<!-- <el-form :model="zdata.post" label-width="auto" ref="addStore" :rules="zrule"> -->
<el-form
:model="zdata.newPost"
label-width="auto"
ref="newStore"
style="border: 0px solid red;"
>
<!-- <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.newPost.storeName"
style="width:240px;"
placeholder="请输入品牌名称"
/>
</el-form-item>
<el-form-item label="品牌类型:" prop="storeType">
<el-select
size="small"
v-model="zdata.newPost.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.newPost.storeBossId"
placeholder="请选择品牌负责人"
style="width:240px"
@change="ztestman"
>
<el-option
v-for="item in zlist.unGroupMan"
:key="item.id"
:label="item.userName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属柜组:" prop="counter">
<el-select
size="small"
v-model="zdata.newPost.storeFromBarId"
placeholder="请选择所属柜组"
style="width:240px"
>
<el-option
v-for="item in zlist.bar"
: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.newPost.storeDoorCode"
style="width:240px"
placeholder="请输入门牌号"
/>
</el-form-item>
<el-form-item label="位置:" prop="area">
<el-input
size="small"
v-model="zdata.newPost.storeAddress"
style="width:240px"
placeholder="请输入位置"
/>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogNewCancel">取 消</el-button>
<!-- <el-button type="primary" @click="addStoreSubmit('createForm')" size="small">确 定</el-button> -->
<el-button type="primary" @click="dialogNewSubmit" size="small">确 定</el-button>
</span>
</el-dialog>
<!-- See -->
<el-dialog
title="品牌详情"
:visible.sync="zcache.status.seeDialog"
width="50%"
:before-close="dialogSeeClose"
>
<div class="dialogMain">
<el-form :model="zdata.see" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="品牌名称:">
<el-input
:disabled="true"
v-model="zdata.see.storeName"
autocomplete="off"
placeholder="品牌名称缺失"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="品牌类型:">
<el-input
:disabled="true"
v-model="zdata.see.storeType"
autocomplete="off"
placeholder="品牌类型为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="所属柜组:">
<el-input
:disabled="true"
v-model="zdata.see.storeFromBar"
autocomplete="off"
placeholder="柜组信息未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="品牌负责人:">
<el-input
:disabled="true"
v-model="zdata.see.storeBossName"
autocomplete="off"
placeholder="品牌负责人未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="门牌号:">
<el-input
:disabled="true"
v-model="zdata.see.storeDoorId"
autocomplete="off"
placeholder="门牌号未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="位置:">
<el-input
:disabled="true"
v-model="zdata.see.storeAddress"
autocomplete="off"
placeholder="位置未知"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="店员:">
<el-table class="list" :data="zdata.see.storeManList" tooltip-effect="dark">
<el-table-column type="index" width="50" align="center"></el-table-column>
<el-table-column prop="userName" label="品牌名称" align="center"></el-table-column>
<el-table-column prop="userId" label="品牌类型" align="center"></el-table-column>
<el-table-column prop="mobile" label="品牌类型" align="center"></el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogSeeClose">关 闭</el-button>
<!-- <el-button size="small" type="primary" @click="dialogSeeSubmitSend('seeForm')">任务下发</el-button> -->
</span>
</el-dialog>
<!-- Edit -->
<el-dialog
title="编辑品牌"
:visible.sync="zcache.status.editDialog"
width="65%"
:before-close="dialogEditClose"
>
<div class="dialogMain">
<!-- <el-form :model="zdata.post" label-width="auto" ref="addStore" :rules="zrule"> -->
<el-form
:model="zdata.editPost"
label-width="auto"
ref="editStore"
style="border: 0px solid red;"
>
<!-- <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.editPost.storeName"
style="width:240px;"
placeholder="请输入品牌名称"
/>
</el-form-item>
<el-form-item label="品牌类型:" prop="storeType">
<el-select
size="small"
v-model="zdata.editPost.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.editPost.storeBossId"
placeholder="请选择品牌负责人"
style="width:240px"
>
<el-option
v-for="item in zlist.unGroupMan"
:key="item.id"
:label="item.userName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属柜组:" prop="counter">
<el-select
size="small"
v-model="zdata.editPost.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.editPost.storeDoorCode"
style="width:240px"
placeholder="请输入门牌号"
/>
</el-form-item>
<el-form-item label="位置:" prop="area">
<el-input
size="small"
v-model="zdata.editPost.storeAddress"
style="width:240px"
placeholder="请输入位置"
/>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogEditCancel">取 消</el-button>
<!-- <el-button type="primary" @click="addStoreSubmit('createForm')" size="small">确 定</el-button> -->
<el-button type="primary" @click="dialogEditSubmit" size="small">确 定</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import AddStore from "./components/addStore";
import StoreDetail from "./components/storeDetail";
import {
ApiStoreGetMainList,
ApiStoreGetStoreDetail,
ApiStoreDelStore,
ApiStoreGetUnGroupManList,
ApiStoreAddStore,
ApiStoreEditStore,
ApiStoreGetBarList,
ApiStoreSearch
} from "@api/in/store";
import axios from "axios";
const zlog = console.log.bind(console);
export default {
components: {
AddStore,
StoreDetail
},
data() {
return {
zcache: {
status: {
newDialog: false,
seeDialog: false,
editDialog: false,
isSearch: false
},
page: {
allItem: 0,
pageSize: 10,
nowPage: 1
}
},
zdata: {
searchPost: {
keywords: ""
},
newPost: {
storeName: "",
storeTypeId: "",
storeBossId: "",
storeFromBarId: "",
storeDoorCode: "",
storeAddress: ""
},
newPostDefault: {
storeName: "",
storeTypeId: "",
storeBossId: "",
storeFromBarId: "",
storeDoorCode: "",
storeAddress: ""
},
see: {
storeName: "storeName",
storeType: "storeType",
storeFromBar: "storeFromBar",
storeBossName: "storeBossName",
storeDoorId: "storeDoorId",
storeAddress: "storeAddress",
storeManList: [
{
userName: "Alice",
userId: "wx0001",
mobile: "110"
},
{
userName: "Bob",
userId: "wx0002",
mobile: "120"
}
]
},
edit: {},
editPost: {
id: "",
storeName: "",
storeTypeId: "",
storeBossId: "",
storeFromBarId: "",
storeDoorCode: "",
storeAddress: ""
},
editPostDefault: {
id: "",
storeName: "",
storeTypeId: "",
storeBossId: "",
storeFromBarId: "",
storeDoorCode: "",
storeAddress: ""
}
},
zlist: {
listPick: [],
storeType: [
{
id: "0",
name: "普通"
},
{
id: "1",
name: "专柜"
}
],
storeBossId: [
{
id: "2001200138020920001",
name: "王月云"
},
{
id: "2001200138020930002",
name: "李强"
}
],
storeFromBarId: [
{
id: "2001201134572130000",
name: "柜组一号"
},
{
id: "2001201135500920000",
name: "柜组二号"
}
],
unGroupMan: [],
bar: []
},
page: {
currentPage: 1,
size: 20,
total: 100
},
list: {
testMain: [
{
id: "1001",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
},
{
id: "1002",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
},
{
id: "1003",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
},
{
id: "1003",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
},
{
id: "1003",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
},
{
id: "1003",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
},
{
id: "1003",
taskName: "2019年男装销售任务",
taskType: "拉新",
bar: "男装",
taskContent: "任务内容任务内容任务内容...",
sendDate: "2019/02/08"
}
],
main: [],
man: [],
search: {
bar: [
{
id: "1",
name: "全部"
},
{
id: "2",
name: "测试"
}
],
taskType: [
{
id: "1",
name: "全部"
},
{
id: "2",
name: "测试"
}
]
},
listPick: []
},
tableHeight: window.innerHeight * 0.5,
data: {
search: {
bar: "",
taskType: "",
date: "",
keys: ""
},
page: {
nowPageNum: 4
}
},
msgId: "",
detailDialog: false
};
},
watch: {
// addStoreDialog() {
addStoreDialog() {
// if ((this.$refs.addStore.addStoreDialog = false)) {
// this.storeGetMainList();
// }
},
"": {
handler: function() {},
deep: true
}
},
// created() {
// this.storeGetMainList();
// zlog('--->Created!')
// },
mounted() {
// this.storeGetMainList();
this.storeSearch();
this.storeReadyBarList()
this.storeGetUnGroupManList();
},
methods: {
storeReadyBarList(){
ApiStoreGetBarList()
.then(res => {
this.zlist.bar = res.data
})
.catch(err => {
})
},
storeGetUnGroupManList() {
let postData = {};
ApiStoreGetUnGroupManList(postData)
.then(res => {
this.zlist.unGroupMan = res.data;
})
.catch(err => {});
},
storeGetBarList() {},
matchManIdAndManName(inId) {
let manList = this.list.man;
let manName = "未知";
for (let i = 0; i < this.list.man.length; i++) {
let item = manList[i];
if (item != null && item.id != null) {
if (item.id == inId) {
manName = item.userName;
}
}
}
return manName;
},
transManIdToManName() {
let mainList = this.list.main;
let id = "";
let name = "";
for (let i = 0; i < mainList.length; i++) {
if (
this.list.main[i].adminStall.principal &&
this.list.main[i].adminStall.principal != null
) {
id = this.list.main[i].adminStall.principal;
name = this.matchManIdAndManName(id);
this.list.main[i].adminStall.principal = name;
} else {
this.list.main[i].adminStall.principal = "未知";
}
}
},
storeSearch() {
if (this.zdata.searchPost.keywords == "") {
this.zcache.status.isSearch = false;
this.zcache.page.nowPage = 1;
this.storeGetMainList();
} else {
this.zcache.status.isSearch = true;
let postData = {
keyWords: this.zdata.searchPost.keywords,
pageNum: 1
};
ApiStoreSearch(postData)
.then(res => {
// let result = [];
// result.push(res.data.stallInfo);
// this.list.main = result;
// this.list.main = res.data.list;
this.list.main = res.data.pageInfo_adminStalls.list;
this.zcache.page.allItem = Number(
res.data.pageInfo_adminStalls.total
);
this.zcache.page.pageSize = res.data.pageInfo_adminStalls.pageSize;
this.zcache.page.nowPage = res.data.pageInfo_adminStalls.pageNum;
})
.catch(err => {});
}
},
storeGetMainList() {
// zlog("--->In Get API!");
let postData = {
pageNum: this.zcache.page.nowPage
};
ApiStoreGetMainList(postData).then(res => {
// this.list.main = res.data.pageInfo_adminStalls.list[0];
// this.list.man = res.data.pageInfo_principals.list[0];
this.list.main = res.data.pageInfo_adminStalls.list;
this.list.man = res.data.adminStall_principals;
this.transManIdToManName();
this.zcache.page.allItem = Number(res.data.pageInfo_adminStalls.total);
this.zcache.page.pageSize = res.data.pageInfo_adminStalls.pageSize;
this.zcache.page.nowPage = res.data.pageInfo_adminStalls.pageNum;
});
},
storePageIndexChange(inData) {
console.log("--->page: inData =", inData);
this.zcache.page.nowPage = inData;
if (this.zcache.status.isSearch) {
let postData = {
keyWords: this.zdata.searchPost.keywords,
pageNum: inData
};
ApiStoreSearch(postData)
.then(res => {
// let result = [];
// result.push(res.data.stallInfo);
// this.list.main = result;
// this.list.main = res.data.list;
this.list.main = res.data.pageInfo_adminStalls.list;
this.zcache.page.allItem = Number(
res.data.pageInfo_adminStalls.total
);
this.zcache.page.pageSize = res.data.pageInfo_adminStalls.pageSize;
this.zcache.page.nowPage = res.data.pageInfo_adminStalls.pageNum;
})
.catch(err => {});
} else {
this.zcache.page.nowPage = inData;
this.storeGetMainList();
}
},
storeGetStoreDetail(inData) {
let postData = {
isDetail: true,
stallId: inData
};
ApiStoreGetStoreDetail(postData)
.then(res => {
this.zdata.see.storeName = res.data.adminStall.name;
this.zdata.see.storeType = res.data.adminStall.type;
// this.zdata.see.storeFromBar = res.data.adminStall.shopId;
this.zdata.see.storeFromBar = res.data.shopName;
this.zdata.see.storeBossName = res.data.principal.userName;
this.zdata.see.storeDoorId = res.data.adminStall.signNum;
this.zdata.see.storeAddress = res.data.adminStall.location;
this.zdata.see.storeManList = res.data.clerks_unselected;
})
.catch(err => {});
this.zcache.status.seeDialog = true;
},
storeEditStore(inData) {
this.storeGetUnGroupManList();
this.zdata.editPost.id = Number(inData);
let postData = {
isDetail: true,
stallId: inData
};
ApiStoreGetStoreDetail(postData)
.then(res => {
this.zdata.edit = res;
let timeStoreTypeId = "";
if (res.data.adminStall.type == "普通") {
timeStoreTypeId = "0";
} else {
timeStoreTypeId = "1";
}
this.zdata.editPost.storeName = res.data.adminStall.name;
this.zdata.editPost.storeTypeId = timeStoreTypeId;
this.zdata.editPost.storeBossId = res.data.adminStall.principal;
this.zdata.editPost.storeFromBarId = res.data.adminStall.shopId;
this.zdata.editPost.storeDoorCode = res.data.adminStall.signNum;
this.zdata.editPost.storeAddress = res.data.adminStall.location;
})
.catch(err => {});
this.zcache.status.editDialog = true;
},
storeDelStore(inData) {
let delArr = [];
delArr.push(String(inData));
let postData = {
stallIds: delArr
};
ApiStoreDelStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "删除成功",
type: "success"
});
this.storeGetMainList();
} else {
this.$message({
message: "删除失败!",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "删除失败!",
type: "error"
});
});
},
listPick(inData) {
this.zlist.listPick = inData;
},
storeDelStoreArr() {
let delArr = this.zlist.listPick;
let delIdsArr = [];
for (let i = 0; i < delArr.length; i++) {
delIdsArr.push(String(delArr[i].id));
}
let postData = {
stallIds: delIdsArr
};
ApiStoreDelStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "删除成功",
type: "success"
});
this.storeGetMainList();
} else {
this.$message({
message: "删除失败!",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "删除失败!",
type: "error"
});
});
},
ztestman(inData){
console.log('--->ManList =', this.zlist.unGroupMan)
console.log('--->PickId =', inData, ' type =', typeof(inData))
// this.zdata.newPost.storeBossId = Number(inData)
},
dialogNewClose() {
this.zcache.status.newDialog = false;
this.zdata.newPost = JSON.parse(
JSON.stringify(this.zdata.newPostDefault)
);
},
dialogNewCancel() {
this.zcache.status.newDialog = false;
this.zdata.newPost = JSON.parse(
JSON.stringify(this.zdata.newPostDefault)
);
},
dialogNewSubmit() {
// console.log('--->PostId =', this.zdata.newPost.storeBossId * 1)
let postData = {
name: this.zdata.newPost.storeName,
// stallType: Number(this.zdata.newPost.storeTypeId),
stallType: this.zdata.newPost.storeTypeId,
principal: this.zdata.newPost.storeBossId,
shopId: this.zdata.newPost.storeFromBarId,
signNum: this.zdata.newPost.storeDoorCode,
location: this.zdata.newPost.storeAddress
};
console.log("--->postData =", postData);
ApiStoreAddStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "添加成功",
type: "success"
});
this.zcache.status.newDialog = false;
this.zdata.newPost = JSON.parse(
JSON.stringify(this.zdata.newPostDefault)
);
this.storeSearch();
}
})
.catch(err => {});
},
dialogEditClose() {
this.zcache.status.editDialog = false;
this.zdata.editPost = JSON.parse(
JSON.stringify(this.zdata.editPostDefault)
);
},
dialogEditCancel() {
this.zcache.status.editDialog = false;
this.zdata.editPost = JSON.parse(
JSON.stringify(this.zdata.editPostDefault)
);
},
dialogEditSubmit() {
let postData = {
stallId: Number(this.zdata.editPost.id),
name: this.zdata.editPost.storeName,
type: String(this.zdata.editPost.storeTypeId),
principal: Number(this.zdata.editPost.storeBossId),
shopId: Number(this.zdata.editPost.storeFromBarId),
signNum: String(this.zdata.editPost.storeDoorCode),
location: this.zdata.editPost.storeAddress
};
ApiStoreEditStore(postData)
.then(res => {
if (res.result == "success") {
this.$message({
message: "编辑成功",
type: "success"
});
this.zdata.editPost = JSON.parse(
JSON.stringify(this.zdata.editPostDefault)
);
this.zcache.status.editDialog = false;
this.storeGetMainList();
} else {
this.$message({
message: "编辑失败!",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "编辑失败!",
type: "error"
});
});
},
testButtonClick() {},
pagesSizeChange() {},
pagesNowPageChange() {},
setListsHeadStyle({ row, column, rowIndex, columnIndex }) {
if (rowIndex === 0) {
return "background-color: #0B0F32; border-right: 1px solid white;color: white;";
} else {
return "";
}
},
addStore() {
// this.$refs.addStore.addStoreDialog = true;
this.zcache.status.newDialog = true;
},
handleDetail() {
this.$refs.storeDetail.detailDialog = true;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
dialogSeeClose() {
this.zcache.status.seeDialog = false;
}
}
};
</script>
<style lang="scss" scoped>
.btn {
font-size: 14px;
font-weight: bold;
color: rgba(102, 102, 102, 1);
}
.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;
}
.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;
}
.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>
<template>
<div class="ztask-bars">
<div class="ztask-searchs">
<div class="ztask-searchs-items">
<el-button size="small" @click="searchsCreate">创建任务</el-button>
<el-button type="primary" size="small" @click="searchsSend">发布任务</el-button>
<el-button type="primary" size="small" @click="searchsDels">批量删除</el-button>
</div>
<div class="ztask-searchs-items">
<el-form class="ztask-searchs-forms" :inline="true" :model="data.search" label-width="auto">
<el-form-item label="柜组">
<el-select
size="small"
v-model="data.search.bar"
placeholder="请选择柜组"
style="width:160px;"
>
<el-option
v-for="item in cache.list.bar"
: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="data.search.taskType"
placeholder="请选择任务类型"
style="width:160px;"
>
<el-option
v-for="item in cache.list.taskType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="日期">
<el-date-picker
size="small"
v-model="data.search.taskDate"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width:200px;"
></el-date-picker>
</el-form-item>
<el-form-item label="状态">
<el-select
size="small"
v-model="data.search.status"
placeholder="请选择状态"
style="width:160px;"
>
<el-option
v-for="item in cache.list.status"
: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="data.search.keys"
style="width:160px"
placeholder="请输入关键词"
/>
</el-form-item>
</el-form>
<el-button type="primary" size="small" @click="searchsSearch">搜 索</el-button>
</div>
</div>
<div class="ztask-lists">
<el-table
stripe
ref="multipleTable"
:data="list.main"
tooltip-effect="dark"
style="width: 100%"
@selection-change="listsSelectChange"
>
<el-table-column type="selection" width="60"></el-table-column>
<el-table-column prop="taskName" label="任务名称" align="center" width="200"></el-table-column>
<el-table-column prop="taskType" label="任务类型" align="center" width="120"></el-table-column>
<el-table-column prop="bar" label="柜组" align="center" width="120"></el-table-column>
<el-table-column prop="createTime" label="创建日期" align="center" width="120"></el-table-column>
<el-table-column prop="taskDate" label="任务期限" align="center" width="200"></el-table-column>
<el-table-column prop="taskDetail" label="任务详情" align="center" style="min-width: 200px;"></el-table-column>
<el-table-column label="状态" align="center" width="160">
<template slot-scope="scope">{{ scope.row.taskStatus === 'send' ? '已发布' : '未发布' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="240">
<template slot-scope="scope">
<!-- <el-button
v-if="scope.row.taskStatus === 'Top'"
class="buttonTextNormal"
type="text"
@click="listsUntopClick(scope.row.id)"
>已置顶</el-button>
<el-button
v-if="scope.row.taskStatus !== 'Top'"
class="buttonTextNormal"
type="text"
@click="listsTopClick(scope.row.id)"
>置顶</el-button>-->
<el-button class="buttonTextNormal" type="text" @click="listsSeeClick(scope.row.id)">详情</el-button>
<el-button class="buttonTextNormal" type="text" @click="listsEditClick(scope.row.id)">编辑</el-button>
<el-button class="buttonTextWarning" type="text" @click="listsDelClick(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="ztask-pages">
<el-pagination
class="ztask-page"
@size-change="pagesSizeChange"
@current-change="pagesNowPageChange"
:current-page="data.page.nowPageNum"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="prev, pager, next, sizes, jumper"
:total="400"
></el-pagination>
</div>
<div class="ztask-dialogs">
<el-dialog
title="创建任务"
:visible.sync="cache.status.createDialog"
width="40%"
:before-close="dialogCreateBeforeClose"
>
<div class="dialogMain">
<el-form :model="data.create" :rules="rule.create" label-width="120px" ref="createForm">
<el-row>
<el-col :span="24">
<el-form-item label="任务名称:" prop="taskName">
<el-input v-model="data.create.taskName" autocomplete="off" placeholder="请输入任务名称"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务类型:" prop="taskType">
<el-select
v-model="data.create.taskType"
placeholder="请选择任务类型"
@change="dialogCreateTaskTypeChange"
style="width:100%;"
>
<el-option
v-for="item in cache.list.taskType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="柜组:" prop="bar">
<el-select
v-model="data.create.bar"
placeholder="请选择柜组"
@change="dialogCreateBarChange"
style="width:100%;"
>
<el-option
v-for="item in cache.list.bar"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务周期:" prop="taskTime">
<el-date-picker
v-model="data.create.taskTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width:100%;"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务详情:" prop="taskDetail">
<el-input
type="textarea"
:rows="5"
placeholder="请输入任务详情"
v-model="data.create.taskDetail"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogCreateCancel">取 消</el-button>
<el-button size="small" type="primary" @click="dialogCreateSubmit('createForm')">保 存</el-button>
<el-button size="small" type="primary" @click="dialogCreateSubmitSend('createForm')">保存并发布</el-button>
</span>
</el-dialog>
<el-dialog
title="任务详情"
:visible.sync="cache.status.seeDialog"
width="50%"
:before-close="dialogSeeBeforeClose"
>
<div class="dialogMain">
<el-form :model="data.see" :rules="rule.see" label-width="120px" ref="seeForm">
<el-row>
<el-col :span="24">
<el-form-item label="任务名称:" prop="taskName">
<el-input
:disabled="true"
v-model="data.see.taskName"
autocomplete="off"
placeholder="任务名称为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务类型:" prop="taskType">
<el-input
:disabled="true"
v-model="data.see.taskType"
autocomplete="off"
placeholder="任务类型为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="柜组:" prop="bar">
<el-input
:disabled="true"
v-model="data.see.bar"
autocomplete="off"
placeholder="柜组为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="发布日期:" prop="createTime">
<el-input
:disabled="true"
v-model="data.see.createTime"
autocomplete="off"
placeholder="发布日期为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务期限:" prop="taskTime">
<el-input
:disabled="true"
v-model="data.see.taskTime"
autocomplete="off"
placeholder="任务期限为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="状态:" prop="taskStatus">
<el-input
:disabled="true"
v-model="data.see.taskStatus"
autocomplete="off"
placeholder="任务状态为空"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务详情:" prop="taskDetail">
<el-input
:disabled="true"
type="textarea"
:rows="5"
placeholder="任务详情为空"
v-model="data.see.taskDetail"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogSeeCancel">取 消</el-button>
<el-button size="small" type="primary" @click="dialogSeeSubmitSend('seeForm')">任务下发</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import { ApiContactSync } from "@api/task/bar";
import md5 from "js-md5";
export default {
components: {},
data() {
return {
cache: {
status: {
createDialog: false,
seeDialog: false
},
list: {
bar: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "柜组1"
}
],
taskType: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "测试"
}
],
status: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "已发布"
}
]
}
},
list: {
main: [
{
id: "1001",
taskName: "TaskComAlice",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComAliceDetail",
taskStatus: "send"
},
{
id: "1002",
taskName: "TaskComBob",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComBobDetail",
taskStatus: "nosend"
},
{
id: "1003",
taskName: "TaskComClid",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComClidDetail",
taskStatus: "nosend"
},
{
id: "1004",
taskName: "TaskComDive",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComDiveDetail",
taskStatus: "nosend"
},
{
id: "1005",
taskName: "TaskComEmma",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComEmmaDetail",
taskStatus: "nosend"
},
{
id: "1006",
taskName: "TaskComFaker",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComFakerDetail",
taskStatus: "nosend"
},
{
id: "1007",
taskName: "TaskComGlass",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComGlassDetail",
taskStatus: "nosend"
},
{
id: "1008",
taskName: "TaskComHardy",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComHardyDetail",
taskStatus: "nosend"
},
{
id: "1009",
taskName: "TaskComIda",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComIdaDetail",
taskStatus: "nosend"
},
{
id: "1010",
taskName: "TaskComJoke",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComJokeDetail",
taskStatus: "nosend"
},
{
id: "1011",
taskName: "TaskComKey",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComKeyDetail",
taskStatus: "nosend"
},
{
id: "1012",
taskName: "TaskComLux",
taskType: "拉新",
bar: "男装",
createTime: "2020-01-01",
taskDate: "2020-01-01 至 2020-01-01",
taskDetail: "TaskComLuxDetail",
taskStatus: "nosend"
}
]
},
data: {
search: {
bar: "",
taskType: "",
taskDate: "",
status: "",
keys: ""
},
page: {
nowPageNum: 1
},
create: {
taskName: "",
taskType: "",
bar: "",
taskTime: "",
taskDetail: ""
},
createDefault: {
taskName: "",
taskType: "",
bar: "",
taskTime: "",
taskDetail: ""
},
see: {
taskName: "taskName",
taskType: "taskType",
bar: "bar",
createTime: "2020-01-01",
taskTime: "2020-01-05" + " 至 " + "2020-01-10",
taskStatus: "已发布",
taskDetail: "taskDetail"
},
seeDefault: {
taskName: "",
taskType: "",
bar: "",
createTime: "",
taskTime: "",
taskStatus: "",
taskDetail: ""
}
},
rule: {
create: {
taskName: [
{ required: true, message: "任务名称不能为空", trigger: "change" }
],
taskType: [
{ required: true, message: "任务类型不能为空", trigger: "change" }
],
bar: [{ required: true, message: "柜组不能为空", trigger: "change" }],
taskTime: [
{ required: true, message: "任务周期不能为空", trigger: "change" }
],
taskDetail: [
{ required: true, message: "任务详情不能为空", trigger: "change" }
]
},
see: {}
}
};
},
created() {},
methods: {
searchsCreate() {
this.cache.status.createDialog = true;
},
searchsSend() {},
searchsDels() {
ApiContactSync().then(res => {});
},
searchsSearch() {},
listsSelectChange() {},
listsUntopClick() {},
listsTopClick() {},
listsSeeClick(inData) {
this.cache.status.seeDialog = true;
},
listsEditClick() {
this.cache.status.createDialog = true;
this.data.create = {
taskName: "change",
taskType: "taskType",
bar: "bar",
taskTime: "",
taskDetail: ""
};
},
listsDelClick() {},
pagesSizeChange() {},
pagesNowPageChange() {},
dialogCreateTaskTypeChange() {},
dialogCreateBarChange() {},
dialogCreateBeforeClose() {
this.cache.status.createDialog = false;
},
dialogCreateCancel() {
this.data.create = JSON.parse(JSON.stringify(this.data.createDefault));
this.cache.status.createDialog = false;
},
dialogCreateSubmit(inForm) {
this.$refs[inForm].validate(valid => {
if (valid) {
} else {
return false;
}
});
},
dialogCreateSubmitSend() {
this.$refs[inForm].validate(valid => {
if (valid) {
} else {
return false;
}
});
},
dialogSeeBeforeClose() {
this.cache.status.seeDialog = false;
},
dialogSeeCancel() {
this.data.see = JSON.parse(JSON.stringify(this.data.seeDefault));
this.cache.status.seeDialog = false;
},
dialogSeeSubmitSend() {}
}
};
</script>
<style lang="scss" scoped>
.ztask-bars {
/*border: 2px solid cyan;*/
height: calc((100vh - 220px) * 1);
}
.ztask-searchs {
/*border: 2px solid #0ea4c5;*/
height: 70px;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.ztask-searchs-items {
/*border: 2px solid #00c561;*/
margin: 17px 0px 20px 0px;
width: auto;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.ztask-searchs-forms {
/*border: 2px solid #f900ff;*/
height: 30px;
margin-bottom: 10px;
}
.ztask-lists {
/*border: 2px solid #0dc50e;*/
height: calc((100vh - 338px) * 1);
overflow: auto;
}
.ztask-pages {
/*border: 2px solid red;*/
/*height: 56px;*/
height: 42px;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: flex-end;
}
.ztask-page {
/*border: 2px solid red;*/
position: relative;
margin-right: 0;
}
.buttonTextNormal {
color: #666666;
}
.buttonTextWarning {
color: #d0021b;
}
</style>
<template>
<div class="ztask-coms">
<div class="ztask-searchs">
<div class="ztask-searchs-items">
<el-button size="small" @click="searchsCreate">创建任务</el-button>
<el-button type="primary" size="small" @click="searchsDels">批量删除</el-button>
</div>
<div class="ztask-searchs-items">
<el-form class="ztask-searchs-forms" :inline="true" :model="data.search" label-width="auto">
<el-form-item label="柜组">
<el-select
size="small"
v-model="data.search.bar"
placeholder="请选择柜组"
style="width:160px;"
>
<el-option
v-for="item in cache.list.bar"
: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="data.search.taskType"
placeholder="请选择任务类型"
style="width:160px;"
>
<el-option
v-for="item in cache.list.taskType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="日期">
<el-date-picker
size="small"
v-model="data.search.taskDate"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width:200px;">
</el-date-picker>
</el-form-item>
<el-form-item label="关键词">
<el-input
size="small"
v-model="data.search.keys"
style="width:160px"
placeholder="请输入关键词"
/>
</el-form-item>
</el-form>
<el-button type="primary" size="small" @click="searchsSearch">搜 索</el-button>
</div>
</div>
<div class="ztask-lists">
<el-table
stripe
ref="multipleTable"
:data="list.main"
tooltip-effect="dark"
style="width: 100%"
@selection-change="listsSelectChange"
>
<el-table-column type="selection" width="60"></el-table-column>
<el-table-column prop="taskName" label="任务名称" align="center" width="200"></el-table-column>
<el-table-column prop="taskDetail" label="任务内容" align="center"></el-table-column>
<el-table-column label="创建日期" align="center" width="160">
<template slot-scope="scope">{{ scope.row.createTime }}</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="240">
<template slot-scope="scope">
<el-button v-if="scope.row.taskStatus === 'Top'" class="buttonTextNormal" type="text"
@click="listsUntopClick(scope.row.id)">已置顶
</el-button>
<el-button v-if="scope.row.taskStatus !== 'Top'" class="buttonTextNormal" type="text"
@click="listsTopClick(scope.row.id)">置顶
</el-button>
<el-button type="text" class="buttonTextNormal" @click="listsSeeClick(scope.row.id)">详情</el-button>
<el-button type="text" class="buttonTextNormal" @click="listsEditClick(scope.row.id)">编辑</el-button>
<el-button type="text" class="buttonTextWarning" @click="listsDelClick(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="ztask-pages">
<el-pagination
class="ztask-page"
@size-change="pagesSizeChange"
@current-change="pagesNowPageChange"
:current-page="data.page.nowPageNum"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="prev, pager, next, sizes, jumper"
:total="400"
></el-pagination>
</div>
<div class="ztask-dialogs">
<el-dialog
title="创建集团任务"
:visible.sync="cache.status.createDialog"
width="40%"
:before-close="dialogCreateBeforeClose"
>
<div class="dialogMain">
<el-form :model="data.create" :rules="rule.create" label-width="120px" ref="createForm">
<el-row>
<el-col :span="24">
<el-form-item label="任务标题:" prop="taskName">
<el-input v-model="data.create.taskName" autocomplete="off" placeholder="请输入任务标题"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="作者:" prop="author">
<el-select
v-model="data.create.author"
placeholder="请选择作者"
@change="dialogCreateAuthorChange"
style="width:100%;"
>
<el-option
v-for="item in list.man"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务详情:" prop="taskDetail">
<el-input
type="textarea"
:rows="5"
placeholder="请输入任务详情"
v-model="data.create.taskDetail"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogCreateCancel">取 消</el-button>
<el-button size="small" type="primary" @click="dialogCreateSubmitSend('createForm')">保存并发布</el-button>
</span>
</el-dialog>
<el-dialog
title="查看集团任务"
:visible.sync="cache.status.seeDialog"
width="60%"
:before-close="dialogSeeBeforeClose"
>
<div class="dialogMain">
<el-form :model="data.see" :rules="rule.see" label-width="120px" ref="seeForm">
<el-row>
<el-col :span="24">
<el-form-item label="任务标题:" prop="taskName">
<el-input :disabled="true" v-model="data.see.taskName" autocomplete="off" placeholder="任务标题为空"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="作者:" prop="author">
<el-input :disabled="true" v-model="data.see.authore" autocomplete="off" placeholder="作者为空"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务详情:" prop="taskDetail">
<el-input
:disabled="true"
type="textarea"
:rows="5"
placeholder="任务详情为空"
v-model="data.see.taskDetail"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogSeeCancel">取 消</el-button>
<el-button size="small" type="primary" @click="dialogSeeSubmitSend('createForm')">发 布</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
export default {
components: {},
data() {
return {
cache: {
status: {
createDialog: false,
seeDialog: false
},
list: {
bar: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "柜组1"
}
],
taskType: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "测试"
}
],
status: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "已发布"
}
],
}
},
list: {
main: [
{
id: '1001',
taskName: 'TaskComAlice',
taskDetail: 'TaskComAliceDetail',
createTime: '2020-01-01 01:01:00',
taskStatus: 'Top'
},
{
id: '1002',
taskName: 'TaskComBob',
taskDetail: 'TaskComBobDetail',
createTime: '2020-01-02 02:02:00',
taskStatus: ''
},
{
id: '1003',
taskName: 'TaskComClid',
taskDetail: 'TaskComClidDetail',
createTime: '2020-01-03 03:03:00',
taskStatus: ''
},
{
id: '1004',
taskName: 'TaskComDive',
taskDetail: 'TaskComDiveDetail',
createTime: '2020-01-04 04:04:00',
taskStatus: ''
},
{
id: '1005',
taskName: 'TaskComEmma',
taskDetail: 'TaskComEmmaDetail',
createTime: '2020-01-05 05:05:00',
taskStatus: ''
},
{
id: '1006',
taskName: 'TaskComFaker',
taskDetail: 'TaskComFakerDetail',
createTime: '2020-01-06 06:06:00',
taskStatus: ''
},
{
id: '1007',
taskName: 'TaskComGlass',
taskDetail: 'TaskComGlassDetail',
createTime: '2020-01-07 07:07:00',
taskStatus: ''
},
{
id: '1008',
taskName: 'TaskComHardy',
taskDetail: 'TaskComHardyDetail',
createTime: '2020-01-08 08:08:00',
taskStatus: ''
},
{
id: '1009',
taskName: 'TaskComIda',
taskDetail: 'TaskComIdaDetail',
createTime: '2020-01-09 09:09:00',
taskStatus: ''
},
{
id: '1010',
taskName: 'TaskComJoke',
taskDetail: 'TaskComJokeDetail',
createTime: '2020-01-10 10:10:00',
taskStatus: ''
},
{
id: '1011',
taskName: 'TaskComKey',
taskDetail: 'TaskComKeyDetail',
createTime: '2020-01-11 11:11:00',
taskStatus: ''
},
{
id: '1012',
taskName: 'TaskComLux',
taskDetail: 'TaskComLuxDetail',
createTime: '2020-01-12 12:12:00',
taskStatus: ''
},
],
man: [
{
id: '1001',
name: 'Alice'
},
{
id: '1002',
name: 'Bob'
},
{
id: '1003',
name: 'Clid'
},
{
id: '1004',
name: 'Dive'
},
]
},
data: {
search: {
bar: '',
taskType: '',
taskDate: '',
keys: '',
},
page: {
nowPageNum: 1,
},
create: {
taskName: '',
author: '',
taskDetail: '',
},
createDefault: {
taskName: '',
author: '',
taskDetail: '',
},
see: {
taskName: '',
author: '',
taskDetail: '',
},
seeDefault: {
taskName: '',
author: '',
taskDetail: '',
},
},
rule: {
create: {
taskName: [{required: true, message: '任务名称不能为空', trigger: 'change'}],
taskDetail: [{required: true, message: '任务详情不能为空', trigger: 'change'}],
},
see: {},
}
};
},
created() {
},
methods: {
searchsCreate() {
this.cache.status.createDialog = true
},
searchsDels() {
},
searchsSearch() {
},
listsSelectChange() {
},
listsUntopClick() {
},
listsTopClick() {
},
listsSeeClick(inData) {
this.cache.status.seeDialog = true
this.data.see = {
taskName: 'Bob',
author: 'author',
taskDetail: 'taskDetail',
}
},
listsEditClick(inData) {
this.cache.status.createDialog = true
this.data.create = {
taskName: 'taskName',
author: 'author',
taskDetail: 'taskDetail',
}
},
listsDelClick() {
},
pagesSizeChange() {
},
pagesNowPageChange() {
},
dialogCreateAuthorChange() {
},
dialogCreateBeforeClose() {
this.cache.status.createDialog = false
},
dialogCreateCancel() {
this.data.create = JSON.parse(JSON.stringify(this.data.createDefault))
this.cache.status.createDialog = false
},
dialogCreateSubmitSend() {
this.$refs[inForm].validate(valid => {
if (valid) {
} else {
return false
}
})
},
dialogSeeBeforeClose() {
this.cache.status.seeDialog = false
},
dialogSeeCancel() {
this.data.see = JSON.parse(JSON.stringify(this.data.seeDefault))
this.cache.status.seeDialog = false
},
dialogSeeSubmitSend() {
},
}
};
</script>
<style lang="scss" scoped>
.ztask-coms {
/*border: 2px solid cyan;*/
height: calc((100vh - 220px) * 1.0);
}
.ztask-searchs {
/*border: 2px solid #0ea4c5;*/
height: 70px;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.ztask-searchs-items {
/*border: 2px solid #00c561;*/
margin: 17px 0px 20px 0px;
width: auto;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.ztask-searchs-forms {
/*border: 2px solid #f900ff;*/
height: 30px;
margin-bottom: 10px;
}
.ztask-lists {
/*border: 2px solid #0dc50e;*/
height: calc((100vh - 338px) * 1.0);
overflow: auto;
}
.ztask-pages {
/*border: 2px solid red;*/
/*height: 56px;*/
height: 42px;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: flex-end;
}
.ztask-page {
/*border: 2px solid red;*/
position: relative;
margin-right: 0;
}
.buttonTextNormal {
color: #666666;
}
.buttonTextWarning {
color: #D0021B;
}
</style>
<template>
<div class="ztask-coms">
<div class="ztask-searchs">
<div class="ztask-searchs-items">
<el-button size="small" @click="searchsCreate">创建任务</el-button>
<el-button type="primary" size="small" @click="searchsDels">批量删除</el-button>
</div>
<div class="ztask-searchs-items">
<el-form class="ztask-searchs-forms" :inline="true" :model="data.search" label-width="auto">
<el-form-item label="柜组">
<el-select
size="small"
v-model="data.search.bar"
placeholder="请选择柜组"
style="width:160px;"
>
<el-option
v-for="item in cache.list.bar"
: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="data.search.taskType"
placeholder="请选择任务类型"
style="width:160px;"
>
<el-option
v-for="item in cache.list.taskType"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="日期">
<el-date-picker
size="small"
v-model="data.search.taskDate"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width:200px;">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="关键词">
<el-input
size="small"
v-model="data.search.keys"
style="width:160px"
placeholder="请输入关键词"
/>
</el-form-item> -->
</el-form>
<el-button type="primary" size="small" @click="searchsSearch">搜 索</el-button>
</div>
</div>
<div class="ztask-charts">
<ve-histogram class="ztask-chart" :data="list.chart" v-bind="setting.chart"></ve-histogram>
</div>
<div class="ztask-lists">
<el-table
stripe
ref="multipleTable"
:data="list.main"
tooltip-effect="dark"
style="width: 100%"
@selection-change="listsSelectChange"
>
<el-table-column type="selection" width="60"></el-table-column>
<el-table-column prop="barName" label="门店" align="center" width="200"></el-table-column>
<el-table-column prop="barType" label="门店类型" align="center"></el-table-column>
<el-table-column prop="customNew" label="拉新" align="center"></el-table-column>
<el-table-column prop="customRebuy" label="复购" align="center"></el-table-column>
</el-table>
</div>
<div class="ztask-pages">
<el-pagination
class="ztask-page"
@size-change="pagesSizeChange"
@current-change="pagesNowPageChange"
:current-page="data.page.nowPageNum"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="prev, pager, next, sizes, jumper"
:total="400"
></el-pagination>
</div>
<div class="ztask-dialogs">
<el-dialog
title="创建集团任务"
:visible.sync="cache.status.createDialog"
width="60%"
:before-close="dialogCreateBeforeClose"
>
<div class="dialogMain">
<el-form :model="data.create" :rules="rule.create" label-width="120px" ref="createForm">
<el-row>
<el-col :span="24">
<el-form-item label="任务标题:" prop="taskName">
<el-input v-model="data.create.taskName" autocomplete="off" placeholder="请输入任务标题"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="作者:" prop="author">
<el-select
v-model="data.create.author"
placeholder="请选择作者"
@change="dialogCreateAuthorChange"
style="width:100%;"
>
<el-option
v-for="item in list.man"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务详情:" prop="taskDetail">
<el-input
type="textarea"
:rows="5"
placeholder="请输入任务详情"
v-model="data.create.taskDetail"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogCreateCancel">取 消</el-button>
<el-button size="small" type="primary" @click="dialogCreateSubmitSend('createForm')">保存并发布</el-button>
</span>
</el-dialog>
<el-dialog
title="查看集团任务"
:visible.sync="cache.status.seeDialog"
width="60%"
:before-close="dialogSeeBeforeClose"
>
<div class="dialogMain">
<el-form :model="data.see" :rules="rule.see" label-width="120px" ref="seeForm">
<el-row>
<el-col :span="24">
<el-form-item label="任务标题:" prop="taskName">
<el-input :disabled="true" v-model="data.see.taskName" autocomplete="off"
placeholder="任务标题为空"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="作者:" prop="author">
<el-input :disabled="true" v-model="data.see.authore" autocomplete="off"
placeholder="作者为空"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="任务详情:" prop="taskDetail">
<el-input
:disabled="true"
type="textarea"
:rows="5"
placeholder="任务详情为空"
v-model="data.see.taskDetail"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogSeeCancel">取 消</el-button>
<el-button size="small" type="primary" @click="dialogSeeSubmitSend('createForm')">发 布</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import list from '@/pages/task/count/list.js'
export default {
mixins: [
list
],
components: {},
data() {
return {
cache: {
status: {
createDialog: false,
seeDialog: false
},
list: {
bar: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "柜组1"
}
],
taskType: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "测试"
}
],
status: [
{
id: "0",
name: "全部"
},
{
id: "1",
name: "已发布"
}
],
}
},
list: {
chart: {},
main: [
{
id: '1001',
barName: 'Asics 店',
barType: '专柜',
customNew: '10',
customRebuy: '20'
},
{
id: '1002',
barName: 'Bape 店',
barType: '专柜',
customNew: '18',
customRebuy: '10'
},
{
id: '1003',
barName: 'Champion 店',
barType: '普通门店',
customNew: '24',
customRebuy: '40'
},
{
id: '1004',
barName: 'Dior 店',
barType: '普通门店',
customNew: '40',
customRebuy: '15'
},
{
id: '1005',
barName: 'Edc 店',
barType: '专柜',
customNew: '22',
customRebuy: '8'
},
{
id: '1006',
barName: 'FILA 店',
barType: '专柜',
customNew: '30',
customRebuy: '14'
},
{
id: '1007',
barName: 'Gaucho 店',
barType: '专柜',
customNew: '20',
customRebuy: '15'
},
{
id: '1008',
barName: 'Hermes 店',
barType: '专柜',
customNew: '8',
customRebuy: '20'
},
{
id: '1009',
barName: 'Isolda 店',
barType: '普通门店',
customNew: '11',
customRebuy: '23'
},
{
id: '1010',
barName: 'Jeanswest 店',
barType: '普通门店',
customNew: '40',
customRebuy: '20'
},
{
id: '1011',
barName: 'Kevin 店',
barType: '普通门店',
customNew: '11',
customRebuy: '14'
},
{
id: '1012',
barName: 'Lux 店',
barType: '专柜',
customNew: '24',
customRebuy: '14'
},
],
man: [
{
id: '1001',
name: 'Alice'
},
{
id: '1002',
name: 'Bob'
},
{
id: '1003',
name: 'Clid'
},
{
id: '1004',
name: 'Dive'
},
]
},
data: {
search: {
bar: '',
taskType: '',
taskDate: '',
keys: '',
},
page: {
nowPageNum: 1,
},
create: {
taskName: '',
author: '',
taskDetail: '',
},
createDefault: {
taskName: '',
author: '',
taskDetail: '',
},
see: {
taskName: '',
author: '',
taskDetail: '',
},
seeDefault: {
taskName: '',
author: '',
taskDetail: '',
},
},
rule: {
create: {
taskName: [{required: true, message: '任务名称不能为空', trigger: 'change'}],
taskDetail: [{required: true, message: '任务详情不能为空', trigger: 'change'}],
},
see: {},
},
setting: {
chart: {
yAxisType: ['KMB'],
yAxisName: ['数值']
}
}
};
},
created() {
},
methods: {
searchsCreate() {
this.cache.status.createDialog = true
},
searchsDels() {
},
searchsSearch() {
this.list.chart = {}
this.list.chart = {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{'日期': '1', '访问用户': 20, '下单用户': 10, '下单率': 50, '专柜类型': '普通店铺'},
{'日期': '2', '访问用户': 30, '下单用户': 15, '下单率': 50, '专柜类型': '普通店铺'},
{'日期': '3', '访问用户': 40, '下单用户': 20, '下单率': 50, '专柜类型': '普通店铺'},
{'日期': '4', '访问用户': 50, '下单用户': 25, '下单率': 50, '专柜类型': '普通店铺'},
{'日期': '5', '访问用户': 60, '下单用户': 30, '下单率': 50, '专柜类型': '普通店铺'},
{'日期': '6', '访问用户': 70, '下单用户': 35, '下单率': 50, '专柜类型': '普通店铺'}
]
}
},
listsSelectChange() {
},
listsUntopClick() {
},
listsTopClick() {
},
listsSeeClick(inData) {
this.cache.status.seeDialog = true
this.data.see = {
taskName: 'Bob',
author: 'author',
taskDetail: 'taskDetail',
}
},
listsEditClick(inData) {
this.cache.status.createDialog = true
this.data.create = {
taskName: 'taskName',
author: 'author',
taskDetail: 'taskDetail',
}
},
listsDelClick() {
},
pagesSizeChange() {
},
pagesNowPageChange() {
},
dialogCreateAuthorChange() {
},
dialogCreateBeforeClose() {
this.cache.status.createDialog = false
},
dialogCreateCancel() {
this.data.create = JSON.parse(JSON.stringify(this.data.createDefault))
this.cache.status.createDialog = false
},
dialogCreateSubmitSend() {
this.$refs[inForm].validate(valid => {
if (valid) {
} else {
return false
}
})
},
dialogSeeBeforeClose() {
this.cache.status.seeDialog = false
},
dialogSeeCancel() {
this.data.see = JSON.parse(JSON.stringify(this.data.seeDefault))
this.cache.status.seeDialog = false
},
dialogSeeSubmitSend() {
},
}
};
</script>
<style lang="scss" scoped>
.ztask-coms {
/*border: 2px solid cyan;*/
height: calc((100vh - 220px) * 1.0);
}
.ztask-searchs {
/*border: 2px solid #0ea4c5;*/
height: 70px;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.ztask-searchs-items {
/*border: 2px solid #00c561;*/
margin: 17px 0px 20px 0px;
width: auto;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.ztask-searchs-forms {
/*border: 2px solid #f900ff;*/
height: 30px;
margin-bottom: 10px;
}
.ztask-charts {
/*border: 2px solid green;*/
background-color: rgba(220, 220, 220, 0.5);
height: 262px;
}
.ztask-chart {
/*border: 2px solid deeppink;*/
/*height: 50%;*/
height: 50px;
width: 100%;
}
.ztask-lists {
/*border: 2px solid red;*/
height: calc((100vh - 600px) * 1.0);
overflow: auto;
}
.ztask-pages {
/*border: 2px solid red;*/
/*height: 56px;*/
height: 42px;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: flex-end;
}
.ztask-page {
/*border: 2px solid red;*/
position: relative;
margin-right: 0;
}
.buttonTextNormal {
color: #666666;
}
.buttonTextWarning {
color: #D0021B;
}
</style>
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