Commit ba4fb74e authored by chenqikuai's avatar chenqikuai

调配

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