2 changed files with 200 additions and 2 deletions
@ -0,0 +1,185 @@ |
|||||
|
<template> |
||||
|
<el-dialog :visible.sync="visible" |
||||
|
:title="'选择客户'" |
||||
|
:close-on-click-modal="false" |
||||
|
:close-on-press-escape="false"> |
||||
|
|
||||
|
<div class="customerDiv"> |
||||
|
<div class="customerItem" |
||||
|
v-for="(item,index) in customerList" |
||||
|
:key="index"> |
||||
|
<el-checkbox class="item_check" |
||||
|
v-model="item.check"></el-checkbox> |
||||
|
<span class="item_span">{{item.customerName}}</span> |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- <el-row> |
||||
|
<el-col :span="12"> |
||||
|
<el-form-item size="mini" |
||||
|
:label="$t('role.menuList')"> |
||||
|
<el-tree :data="menuList" |
||||
|
:props="{ label: 'name', children: 'children' }" |
||||
|
node-key="id" |
||||
|
ref="menuListTree" |
||||
|
accordion |
||||
|
show-checkbox> |
||||
|
</el-tree> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> --> |
||||
|
|
||||
|
<template slot="footer"> |
||||
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
||||
|
<el-button type="primary" |
||||
|
@click="saveMenuList()">{{ $t('confirm') }}</el-button> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { Loading } from 'element-ui' // 引入Loading服务 |
||||
|
import { requestPost } from "@/js/dai/request"; |
||||
|
|
||||
|
let loading // 加载动画 |
||||
|
export default { |
||||
|
data () { |
||||
|
return { |
||||
|
visible: false, |
||||
|
|
||||
|
tableId: "",//选中的表单id,从父组件传过来 |
||||
|
customerList: [],//客户列表 |
||||
|
menuList: [],//客户选中的菜单列表 |
||||
|
// deptList: [], |
||||
|
checkCustomerList: [] |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
}, |
||||
|
methods: { |
||||
|
async init (tableId) { |
||||
|
this.visible = true |
||||
|
this.tableId = tableId |
||||
|
this.startLoading() |
||||
|
// this.$refs.menuListTree.setCheckedKeys([]) |
||||
|
// this.$refs.deptListTree.setCheckedKeys([]) |
||||
|
this.customerList = [] |
||||
|
this.menuList = [] |
||||
|
await this.getMenuList() |
||||
|
await this.getCustomerList() |
||||
|
this.endLoading() |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
// 获取菜单列表 |
||||
|
async getMenuList () { |
||||
|
// const url = "https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/gov/access/govcustomermenu/getcustomerids" |
||||
|
const url = "/gov/access/govcustomermenu/getcustomerids" |
||||
|
const params = { |
||||
|
tableId: this.tableId |
||||
|
} |
||||
|
const { data, code, msg, internalMsg } = await requestPost(url, params) |
||||
|
if (code === 0) { |
||||
|
this.menuList = data |
||||
|
} else { |
||||
|
this.$message.error(msg + ":" + internalMsg) |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
async getCustomerList () { |
||||
|
window.app.ajax.get( |
||||
|
"/oper/crm/customer/getvalidcustomerlist", |
||||
|
{}, |
||||
|
(data, rspMsg) => { |
||||
|
this.customerList = data; |
||||
|
if (this.menuList.length > 0) { |
||||
|
|
||||
|
this.customerList.forEach(item => { |
||||
|
|
||||
|
for (let i = 0; i < this.menuList.length; i++) { |
||||
|
|
||||
|
|
||||
|
console.log(this.menuList[i]) |
||||
|
if (item.customerId === this.menuList[i]) { |
||||
|
|
||||
|
item.check = true |
||||
|
// break |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
console.log(this.customerList) |
||||
|
}, |
||||
|
(rspMsg, data) => { |
||||
|
this.$message.error(rspMsg) |
||||
|
} |
||||
|
) |
||||
|
}, |
||||
|
|
||||
|
async saveMenuList () { |
||||
|
this.checkCustomerList = [] |
||||
|
// const url = "https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/gov/access/govcustomermenu/addcustomermenu" |
||||
|
const url = "/gov/access/govcustomermenu/addcustomermenu" |
||||
|
// this.upOrDownForm.roleList = roleList |
||||
|
|
||||
|
this.customerList.forEach(element => { |
||||
|
|
||||
|
if (element.check) { |
||||
|
this.checkCustomerList.push(element.customerId) |
||||
|
} |
||||
|
}); |
||||
|
const parmas = { |
||||
|
tableId: this.tableId, |
||||
|
customerIds: this.checkCustomerList |
||||
|
} |
||||
|
|
||||
|
const { data, code, msg, internalMsg } = await requestPost(url, parmas) |
||||
|
|
||||
|
if (code === 0) { |
||||
|
this.$message.success("保存成功") |
||||
|
this.visible = false |
||||
|
|
||||
|
} else { |
||||
|
this.$message.error(msg + ":" + internalMsg) |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
// 开启加载动画 |
||||
|
startLoading () { |
||||
|
loading = Loading.service({ |
||||
|
lock: true, // 是否锁定 |
||||
|
text: '正在加载……', // 加载中需要显示的文字 |
||||
|
background: 'rgba(0,0,0,.7)' // 背景颜色 |
||||
|
}) |
||||
|
}, |
||||
|
// 结束加载动画 |
||||
|
endLoading () { |
||||
|
// clearTimeout(timer); |
||||
|
if (loading) { |
||||
|
loading.close() |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.customerDiv { |
||||
|
margin-left: 100px; |
||||
|
} |
||||
|
.customerItem { |
||||
|
margin: 20px; |
||||
|
font-size: 15px; |
||||
|
} |
||||
|
|
||||
|
.item_check { |
||||
|
} |
||||
|
.item_span { |
||||
|
margin-left: 20px; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue