Commit ba4fb74e authored by chenqikuai's avatar chenqikuai

调配

parent dccacbdf
...@@ -14,24 +14,58 @@ ...@@ -14,24 +14,58 @@
ref="addForm" ref="addForm"
:rules="addrules" :rules="addrules"
> >
<a-form-model-item label="名称" :required="true" prop="name"> <a-form-model-item
label="名称"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>{{ personalMsg.name }}</div>
</a-form-model-item>
<a-form-model-item
label="UID"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>{{ personalMsg.uid }}</div>
</a-form-model-item>
<a-form-model-item
label="手机号"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>{{ personalMsg.phone }}</div>
</a-form-model-item>
<a-form-model-item
label="名称"
:required="true"
prop="name"
v-if="modalMode === eAddManagerModalMode.create"
>
<a-input <a-input
v-model="form.name" v-model="form.name"
placeholder="请输入名称" placeholder="请输入名称"
style="width: 200px" style="width: 200px"
/> />
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="手机号" prop="tel"> <a-form-model-item
label="手机号"
prop="tel"
v-if="modalMode === eAddManagerModalMode.create"
>
<a-input <a-input
v-model="form.tel" v-model="form.tel"
placeholder="请输入手机号" placeholder="请输入手机号"
style="width: 200px" style="width: 200px"
/> />
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="初始密码" prop="password"> <a-form-model-item
label="初始密码"
prop="password"
v-if="modalMode === eAddManagerModalMode.create"
>
<a-input v-model="form.password" style="width: 200px" /> <a-input v-model="form.password" style="width: 200px" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="岗位角色"> <a-form-model-item
label="岗位角色"
v-if="modalMode === eAddManagerModalMode.create"
>
<span class="text-sm text-black mr-2">{{ theRole }}</span> <span class="text-sm text-black mr-2">{{ theRole }}</span>
<!-- <a-switch @change="onChange" v-if="isManager" /> --> <!-- <a-switch @change="onChange" v-if="isManager" /> -->
<!-- <span class="ml-2" v-if="isManager">可对同级管理员进行管理调配</span> --> <!-- <span class="ml-2" v-if="isManager">可对同级管理员进行管理调配</span> -->
...@@ -39,6 +73,66 @@ ...@@ -39,6 +73,66 @@
<a-form-model-item label="用户所在机构层级"> <a-form-model-item label="用户所在机构层级">
<span class="text-sm text-black">{{ searchLevel | filterLevel }}</span> <span class="text-sm text-black">{{ searchLevel | filterLevel }}</span>
</a-form-model-item> </a-form-model-item>
<a-form-model-item
label="现属一级分行"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>
{{ personalMsg.branchDetailMsg && personalMsg.branchDetailMsg.fb }}
</div>
</a-form-model-item>
<a-form-model-item
label="现属二级分行"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>
{{ personalMsg.branchDetailMsg && personalMsg.branchDetailMsg.sb }}
</div>
</a-form-model-item>
<a-form-model-item
label="现属一级支行"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>
{{ personalMsg.branchDetailMsg && personalMsg.branchDetailMsg.fsb }}
</div>
</a-form-model-item>
<a-form-model-item
label="现属二级支行"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>
{{ personalMsg.branchDetailMsg && personalMsg.branchDetailMsg.ssb }}
</div>
</a-form-model-item>
<a-form-model-item
label="现地址"
v-if="modalMode === eAddManagerModalMode.edit"
>
<div>
{{
personalMsg.branchDetailMsg && personalMsg.branchDetailMsg.address
}}
</div>
</a-form-model-item>
<a-form-model-item
label="选择调配级别"
v-if="modalMode === eAddManagerModalMode.edit"
>
<a-select
class="header-select-item mx-3 my-2"
placeholder="选择调配级别"
:value="form.level"
@change="handleLevelChange"
>
<a-select-option
v-for="option in levelOptions"
:value="option.value"
:key="option.value"
>{{ option.value | filterLevel }}</a-select-option
>
</a-select>
</a-form-model-item>
<HeaderSelect <HeaderSelect
ref="headerSelect" ref="headerSelect"
:setFooList="setFooList" :setFooList="setFooList"
...@@ -46,11 +140,11 @@ ...@@ -46,11 +140,11 @@
:level="level" :level="level"
:userLevel="searchLevel" :userLevel="searchLevel"
/> />
<a-form-model-item label="新地址" :required="true" prop="location"> <a-form-model-item label="新地址" prop="location">
<a-input <a-input
class="mx-3 my-2"
:disabled="true" :disabled="true"
v-model="form.location" v-model="form.location"
placeholder="请输入新地址"
style="width: 200px" style="width: 200px"
/> />
</a-form-model-item> </a-form-model-item>
...@@ -85,6 +179,55 @@ export default Vue.extend({ ...@@ -85,6 +179,55 @@ export default Vue.extend({
HeaderSelect, HeaderSelect,
}, },
computed: { computed: {
addrules() {
const rules = {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
tel: [{ required: true, message: "请输入手机号", trigger: "blur" }],
location: [],
fooProp0: [
{
required: true,
message: "请选择一级分行",
trigger: "blur",
},
],
fooProp1: [
{
required: true,
message: "请选择二级分行",
trigger: "blur",
},
],
fooProp2: [
{
required: true,
message: "请选择一级支行",
trigger: "blur",
},
],
fooProp3: [
{
required: true,
message: "请选择二级支行",
trigger: "blur",
},
],
};
if (this.modalMode === eAddManagerModalMode.create) {
} else if (this.modalMode === eAddManagerModalMode.edit) {
}
return rules;
},
levelOptions() {
const optionList = [
{ value: eLevel.firstLevel_branch },
{ value: eLevel.secondary_branch },
{ value: eLevel.firstLevel_sub_branch },
{ value: eLevel.secondary_sub_branch },
];
return optionList.filter((i) => i.value >= this.searchLevel);
},
title(): string | undefined { title(): string | undefined {
if (this.modalMode === eAddManagerModalMode.create) { if (this.modalMode === eAddManagerModalMode.create) {
return "新增"; return "新增";
...@@ -143,44 +286,9 @@ export default Vue.extend({ ...@@ -143,44 +286,9 @@ export default Vue.extend({
}, },
}, },
data() { data() {
const addrules = {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
tel: [{ required: true, message: "请输入手机号", trigger: "blur" }],
location: [
{ required: true, message: "请输入详细地址", trigger: "blur" },
],
fooProp0: [
{
required: true,
message: "请选择一级分行",
trigger: "blur",
},
],
fooProp1: [
{
required: true,
message: "请选择二级分行",
trigger: "blur",
},
],
fooProp2: [
{
required: true,
message: "请选择一级支行",
trigger: "blur",
},
],
fooProp3: [
{
required: true,
message: "请选择二级支行",
trigger: "blur",
},
],
};
return { return {
eAddManagerModalMode,
fooList, fooList,
addrules,
form: { form: {
name: "", name: "",
tel: "", tel: "",
...@@ -191,12 +299,16 @@ export default Vue.extend({ ...@@ -191,12 +299,16 @@ export default Vue.extend({
fooProp1: undefined as number | undefined, fooProp1: undefined as number | undefined,
fooProp2: undefined as number | undefined, fooProp2: undefined as number | undefined,
fooProp3: undefined as number | undefined, fooProp3: undefined as number | undefined,
level: eLevel.firstLevel_branch,
}, },
outletName: "", outletName: "",
}; };
}, },
methods: { methods: {
initFooList() { handleLevelChange(value: any) {
this.form.level = value;
},
async initFooList() {
const list = this.fooList.map((i) => { const list = this.fooList.map((i) => {
return { return {
...i, ...i,
...@@ -206,37 +318,85 @@ export default Vue.extend({ ...@@ -206,37 +318,85 @@ export default Vue.extend({
}; };
}); });
this.fooList = list; this.fooList = list;
const branchDetailMsg = this.branchDetailMsg as iBranchDetailMsg; let branchDetailMsg: iBranchDetailMsg =
undefined as unknown as iBranchDetailMsg;
if (this.modalMode === eAddManagerModalMode.create) {
branchDetailMsg = this.branchDetailMsg;
} else if (this.modalMode === eAddManagerModalMode.edit) {
branchDetailMsg = this.personalMsg.branchDetailMsg;
this.form.level = this.level;
}
if (branchDetailMsg.fb !== undefined) { if (branchDetailMsg.fb !== undefined) {
this.fooList[0].options = [ this.fooList[0].options = [
{ Name: branchDetailMsg.fb, ID: branchDetailMsg.fb_id }, { Name: branchDetailMsg.fb, ID: branchDetailMsg.fb_id },
]; ];
this.fooList[0].value = branchDetailMsg.fb_id; this.fooList[0].value = branchDetailMsg.fb_id;
this.fooList[0].disable = true; if (this.modalMode === eAddManagerModalMode.create) {
this.fooList[0].disable = true;
}
} }
if (branchDetailMsg.sb !== undefined) { if (branchDetailMsg.sb !== undefined) {
this.fooList[1].options = [ this.fooList[1].options = [
{ Name: branchDetailMsg.sb, ID: branchDetailMsg.sb_id }, { Name: branchDetailMsg.sb, ID: branchDetailMsg.sb_id },
]; ];
this.fooList[1].value = branchDetailMsg.sb_id; this.fooList[1].value = branchDetailMsg.sb_id;
this.fooList[1].disable = true; if (this.modalMode === eAddManagerModalMode.create) {
this.fooList[1].disable = true;
}
} }
if (branchDetailMsg.fsb !== undefined) { if (branchDetailMsg.fsb !== undefined) {
this.fooList[2].options = [ this.fooList[2].options = [
{ Name: branchDetailMsg.fsb, ID: branchDetailMsg.fsb_id }, { Name: branchDetailMsg.fsb, ID: branchDetailMsg.fsb_id },
]; ];
this.fooList[2].value = branchDetailMsg.fsb_id; this.fooList[2].value = branchDetailMsg.fsb_id;
this.fooList[2].disable = true; if (this.modalMode === eAddManagerModalMode.create) {
this.fooList[2].disable = true;
}
} }
if (branchDetailMsg.ssb !== undefined) { if (branchDetailMsg.ssb !== undefined) {
this.fooList[3].options = [ this.fooList[3].options = [
{ Name: branchDetailMsg.ssb, ID: branchDetailMsg.ssb_id }, { Name: branchDetailMsg.ssb, ID: branchDetailMsg.ssb_id },
]; ];
this.fooList[3].value = branchDetailMsg.ssb_id; this.fooList[3].value = branchDetailMsg.ssb_id;
this.fooList[3].disable = true; if (this.modalMode === eAddManagerModalMode.create) {
this.fooList[3].disable = true;
}
}
const fetchOptionListForEverySettledBranchEdit = async (
list: typeof fooList
) => {
list.forEach(async (item, index) => {
if (index === 0) {
const ret = await StaffService.getInstance().getBranch({
level: eLevel.firstLevel_branch,
page: 1,
page_size: 10000,
});
if (ret.code === 200) {
this.fooList[0].options = ret.data.item;
}
} else {
const ret = await StaffService.getInstance().getBranch({
level: index + 1,
page: 1,
page_size: 10000,
parent_id: this.fooList[index - 1].value,
});
if (ret.code === 200) {
this.fooList[index].options = ret.data.item;
}
}
});
};
if (this.modalMode === eAddManagerModalMode.edit) {
await fetchOptionListForEverySettledBranchEdit(this.fooList);
} }
this.fooList = [...this.fooList]; this.fooList = [...this.fooList];
this.fetchNextOptions(); await this.fetchNextOptions();
}, },
async fetchNextOptions() { async fetchNextOptions() {
const fooIndex = this.fooList.findIndex( const fooIndex = this.fooList.findIndex(
...@@ -304,6 +464,18 @@ export default Vue.extend({ ...@@ -304,6 +464,18 @@ export default Vue.extend({
refreshMark: new Date().getTime(), refreshMark: new Date().getTime(),
}); });
}); });
} else if (this.modalMode === eAddManagerModalMode.edit) {
StaffService.getInstance()
.deploy({
level: this.form.level,
second_sub_branch: this.fooList[3].value as number,
uuid: this.personalMsg.uid,
})
.then(() => {
this.save({
refreshMark: new Date().getTime(),
});
});
} }
this.setModal(false); this.setModal(false);
} else { } else {
...@@ -328,6 +500,8 @@ export default Vue.extend({ ...@@ -328,6 +500,8 @@ export default Vue.extend({
if (newV[3].value !== undefined) { if (newV[3].value !== undefined) {
this.outletName = this.outletName =
newV[3].options.find((i) => i.ID === newV[3].value)?.Name || ""; newV[3].options.find((i) => i.ID === newV[3].value)?.Name || "";
} else {
this.form.location = "";
} }
}, },
async outletName(newV, oldV) { async outletName(newV, oldV) {
......
...@@ -58,6 +58,8 @@ import { eLevel } from '@/types/level' ...@@ -58,6 +58,8 @@ import { eLevel } from '@/types/level'
import { addUser } from './const' import { addUser } from './const'
import { mapActions, mapMutations, mapState } from 'vuex' import { mapActions, mapMutations, mapState } from 'vuex'
import { nextTick } from 'vue/types/umd' import { nextTick } from 'vue/types/umd'
import { eAddManagerModalMode } from '@/store/UserManagement/types'
import {eTypeOfOperatedObject, iUserManagementState} from "@/store/UserManagement/types"
export default Vue.extend({ export default Vue.extend({
components: { addNormalManagerModal, addSuperManagerModal, timerange }, components: { addNormalManagerModal, addSuperManagerModal, timerange },
...@@ -135,6 +137,23 @@ export default Vue.extend({ ...@@ -135,6 +137,23 @@ export default Vue.extend({
}) })
}, },
showModal() { showModal() {
const rankVal = (JSON.parse(this.$route.query.rankVal as string)) as {name: string, value: number}[];
this.$store.commit('UserManagement/save', {
modalMode: eAddManagerModalMode.create,
typeOfOperatedObject: eTypeOfOperatedObject.manager, // !!!!要改
searchLevel: this.level,
branchDetailMsg: {
fb: rankVal[0].name,
fb_id: rankVal[0].value,
sb: rankVal[1] && rankVal[1].name || undefined,
sb_id: rankVal[1] && rankVal[1].value || undefined,
fsb: rankVal[2] && rankVal[2].name || undefined,
fsb_id: rankVal[2] && rankVal[2].value || undefined,
ssb: rankVal[1] && rankVal[1].name || undefined,
ssb_id: rankVal[1] && rankVal[1].value || undefined,
}
} as iUserManagementState)
;(this.$refs.addrModal as any).showModal() ;(this.$refs.addrModal as any).showModal()
}, },
}, },
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<script lang="ts"> <script lang="ts">
import Vue, { PropType } from "vue" import Vue, { PropType } from "vue"
import { firstLevelManager } from '@/mock/index' import { firstLevelManager } from '@/mock/index'
import { staff } from '@/types/staff' import { iStaffQueryResItem, staff } from '@/types/staff'
import { eUserStatusAction } from '@/types/user' import { eUserStatusAction } from '@/types/user'
import { eRole } from "@/types/role" import { eRole } from "@/types/role"
import { eLevel } from "@/types/level" import { eLevel } from "@/types/level"
...@@ -83,6 +83,7 @@ import { mapActions, mapMutations, mapState } from 'vuex' ...@@ -83,6 +83,7 @@ import { mapActions, mapMutations, mapState } from 'vuex'
// import Mixin from "@/views/Root/User/Mixin/index" // import Mixin from "@/views/Root/User/Mixin/index"
import StaffService from '@/service/StaffService' import StaffService from '@/service/StaffService'
import { message } from "ant-design-vue" import { message } from "ant-design-vue"
import { eAddManagerModalMode, eTypeOfOperatedObject } from "@/store/UserManagement/types"
const staff = new StaffService() const staff = new StaffService()
...@@ -175,8 +176,33 @@ export default Vue.extend({ ...@@ -175,8 +176,33 @@ export default Vue.extend({
}) })
this.platformQuery() this.platformQuery()
}, },
deploy(record:staff){ deploy(record:iStaffQueryResItem){
(this.$refs.deployModal as any).showModal() this.$store.commit('UserManagement/save', {
modalMode: eAddManagerModalMode.edit,
typeOfOperatedObject: eTypeOfOperatedObject.manager, //!!!!需要调整
searchLevel: this.level,
branchDetailMsg: {
fb: 'zhejiang',
fb_id: 1,
},
personalMsg: {
name: record.user_name,
uid: record.uuid,
phone: record.phone,
branchDetailMsg: {
fb: record.first_branch,
fb_id: 1,
sb: record.second_branch,
sb_id: 1,
fsb: record.first_sub_branch,
fsb_id: 1,
ssb: record.second_sub_branch,
ssb_id: 1,
address: record.location,
},
},
modalShow: true,
})
}, },
enable(key:string){ enable(key:string){
this.type = userModal.enable this.type = userModal.enable
......
...@@ -84,7 +84,7 @@ export default class StaffService { ...@@ -84,7 +84,7 @@ export default class StaffService {
return baseAxios<{data: any}>({ return baseAxios<{data: any}>({
url: '/staff/deploy', url: '/staff/deploy',
method: 'put', method: 'put',
params: data data: data
}) })
} }
......
...@@ -10,7 +10,7 @@ export default <Module<iUserManagementState, {}>>{ ...@@ -10,7 +10,7 @@ export default <Module<iUserManagementState, {}>>{
namespaced: true, namespaced: true,
state: { state: {
refreshMark: NaN, refreshMark: NaN,
modalShow: true, modalShow: false,
modalMode: eAddManagerModalMode.create, modalMode: eAddManagerModalMode.create,
typeOfOperatedObject: eTypeOfOperatedObject.manager, typeOfOperatedObject: eTypeOfOperatedObject.manager,
searchLevel: eLevel.secondary_branch, searchLevel: eLevel.secondary_branch,
......
...@@ -34,11 +34,11 @@ export interface iPersonalMsg { ...@@ -34,11 +34,11 @@ export interface iPersonalMsg {
export interface iUserManagementState { export interface iUserManagementState {
modalShow: boolean modalShow: boolean
modalMode: eAddManagerModalMode modalMode: eAddManagerModalMode /* 模态框的形态 */
typeOfOperatedObject: eTypeOfOperatedObject | undefined typeOfOperatedObject: eTypeOfOperatedObject | undefined
searchLevel: eLevel | undefined searchLevel: eLevel | undefined /* 当前搜索的层级 */
branchDetailMsg: Partial<iBranchDetailMsg> branchDetailMsg: Partial<iBranchDetailMsg> /* 分支行搜索页面所选中的信息需要设在此处 */
personalMsg: iPersonalMsg personalMsg: iPersonalMsg /* 调配人员时 该人员的个人信息 */
address: string address: string /* 新地址 */
refreshMark: number refreshMark: number /* 供表格刷新的标记,组件监听refreshMark,若变化,则刷新表格 */
} }
import { eRole } from "./role"; import { eLevel } from "./level";
import { eNewRoleRelatedToBackEnd, eRole } from "./role";
import { eUserStatus } from "./user";
enum bank{ enum bank{
'一级分行', '一级分行',
...@@ -34,6 +36,24 @@ interface staff{ ...@@ -34,6 +36,24 @@ interface staff{
state:string state:string
} }
export interface iStaffQueryResItem{
bank_name: string
created_at: number
first_branch: string
first_sub_branch: string
level: eLevel
location: string
operator_name: string
operator_uuid: string
phone: string
role: eNewRoleRelatedToBackEnd
second_branch: string
second_sub_branch: string
status: eUserStatus
user_name: string
uuid: string
}
export{ export{
bank, bank,
role, role,
......
...@@ -402,19 +402,25 @@ export default Vue.extend({ ...@@ -402,19 +402,25 @@ export default Vue.extend({
} }
}, },
methods: { methods: {
async handleInput(e: Event){ async handleInput(e: Event) {
const ret = await handle建设银行excelFileChange(e) const ret = await handle建设银行excelFileChange(e);
StaffService.getInstance().import({ StaffService.getInstance().import({
staffs: ret as any staffs: ret as any,
}) });
}, },
getLalo() { getLalo() {
window.navigator.geolocation.getCurrentPosition((position) => { if ("geolocation" in window.navigator) {
this.formData.la = position.coords.latitude.toString(); window.navigator.geolocation.getCurrentPosition((position) => {
this.formData.lo = position.coords.longitude.toString(); this.formData.la = position.coords.latitude.toString();
const form = this.$refs.form as FormModel; this.formData.lo = position.coords.longitude.toString();
form.validateField(["la", "lo"], (err) => {}); const form = this.$refs.form as FormModel;
}); form.validateField(["la", "lo"], (err) => {});
}, (error)=>{
message.error('获取失败')
});
}else{
message.error("浏览器不支持获取GPS")
}
}, },
async clickViewNote(record: any) { async clickViewNote(record: any) {
console.log(record); console.log(record);
......
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