You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
6.3 KiB
Vue

<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag width="500px" powerId="form" :title="title+'部门'" :append-to-body="true" :visible.sync="dialogFormVisible" :before-close="handleClose">
<div>
<el-form :model="form" ref="form" :rules="rules" label-width="80px">
<div class="form">
<el-form-item label="部门名称" prop="regionName">
<el-input ref="regionName" v-model="form.regionName" @change="handleChange" autocomplete="on" style='width:192px'></el-input>
</el-form-item>
<el-form-item label="部门编码" prop="regionNum">
<el-input ref="regionName" v-model="form.regionNum" @change="handleChange" autocomplete="on" style='width:192px'></el-input>
</el-form-item>
<el-form-item label="北森部门id" >
<el-input ref="beisenId" v-model="form.beisenId" autocomplete="on" style='width:192px'></el-input>
</el-form-item>
<el-form-item label="部门管理员:">
<el-select @change="handleOptChange" v-model="form.manageId" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="部门地址:">
<el-input placeholder="请输入详细地址" v-model="form.regionAddress" autocomplete="off" style='width:192px'></el-input>
<el-button type="primary" size="mini" @click="dialogVisible2 = true">
<i style="font-size:20px;" class="el-icon-location-information"></i>
</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="(dialogFormVisible = false)">取 消</el-button>
<el-button size="mini" type="primary" @click="confirm()" :loading="confirmLoad" >确 定</el-button>
</div>
<el-dialog title="提示" :visible.sync="dialogVisible2" width="80%" :before-close="handleClose" :append-to-body="true">
<div style="height:50vh;overflow: auto;">
<BMap @getAddrByPoint="getAddrByPoint"></BMap>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="danger" size="small" @click="(dialogVisible2 = false,form.regionAddress = '')"> </el-button>
<el-button size="mini" type="primary" @click="(dialogVisible2 = false)" > </el-button>
</span>
</el-dialog>
</el-dialog>
</template>
<script>
import loadBMap from "../../../../loadBMap.js";
import BMap from "../../../../components/BMap/BMap";
import { addStore } from "../../../../api/storeManage.js";
import { getphonecode } from "../../../../api/user.js";
import { staffPage,regionList,updateRegionList } from "@/api/storeManage.js";
export default {
components:{
BMap
},
props:{
rowId:{
default:"",
type:String
}
},
data() {
return {
rules:{
regionName: [
{ required: true, message: '请输入部门名称', trigger: 'change' },
],
regionNum: [
{ required: true, message: '请输入部门编码', trigger: 'change' },
],
},
options:[],
dialogVisible2:false,
confirmLoad:false,
dialogFormVisible: false, //弹窗开关
form: {}, //主对象
title: "添加",
};
},
created(){
this.getPage()
},
methods: {
handleOptChange(val){
let index = this.options.findIndex(item=>item.value == val)
this.form.manageName = this.options[index].label
this.form.mobilePhone = this.options[index].mobilePhone
},
getPage() {
let params = {
pageNum: 1,
pageSize: 999,
state:1
}
staffPage(params).then((res) => {
res.pageInfo.list.forEach((item) => {
if (item.row == 1) {
item.row = true;
} else if (item.row == 0) {
item.row = false;
}
});
this.options = res.pageInfo.list.map(item=>{
return {
label:item.staffName,
value:item.id,
mobilePhone:item.mobilePhone
}
});
})
.catch((err) => {
console.log(err);
});
},
getAddrByPoint(res) {
this.form.regionAddress =res.addressComponents.street + "-" + res.addressComponents.streetNumber;
},
handleChange(){
if(this.title == '添加'){
if(this.form.cashPassword){
this.$refs.form.clearValidate();
}
}
},
//关闭弹窗前的回调方法
handleClose() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
//组件传值
show(row,parentId) {
parentId = parentId||null
if (row.id ) {
this.title = "修改";
this.form = {...row}
} else {
this.title =parentId? "新增多级":'新增';
this.form = {
parentId
}
}
this.dialogFormVisible = true;
},
//确定返回方法
confirm() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.confirmLoad = true
if (this.title == "新增" || this.title =='新增多级') {
let params = {
...this.form,
storeId:this.rowId
}
regionList(params).then(res=>{
this.confirmLoad = false
if(res.code == '000000'){
this.$emit('init')
this.$message.success({ message: "操作成功" });
this.dialogFormVisible = false
}
})
} else {
let params = {
...this.form,
storeId:this.rowId
}
updateRegionList(params).then(res=>{
this.confirmLoad = false
if(res.code == '000000'){
this.$emit('init')
this.$message.success({ message: "修改成功" });
this.dialogFormVisible = false
}
})
}
}
});
},
},
};
</script>
<style scoped>
.el-input {
width: 260px;
}
</style>