数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

298 lines
7.9 KiB

<!--
@ 作者: 秦东
@ 时间: 2025-08-12 15:48:52
@ 备注: 编辑排班记录
-->
<script lang="ts" setup>
import { geiOrgAllPeople, saveEditDutyInfo, getDutyCont } from "@/api/hr/paiban/index";
import { get_org } from "@/api/opk/zxy/news/api";
const props = defineProps({
isOpen: {
type: Boolean,
default: false,
},
cumpanyId: {
type: Number,
default: "",
},
dutyCont: {
type: Object,
default() {
return {};
},
},
});
const loading = ref(false);
const emits = defineEmits(["update:isOpen", "pickRefresh"]);
const isShow = computed({
get() {
// console.log("对话框状态",props.isOpen);
return props.isOpen;
},
set(val: boolean) {
// console.log("对话框状态",props.isOpen);
emits("update:isOpen", val);
},
});
const currtOrg = ref(props.cumpanyId);
const saveInfo = ref(props.dutyCont);
const orgPeopleList = ref([]);
//关闭比阿尼系统
const closeSavePage = () => {
emits("update:isOpen", false);
};
//监听
watch(
() => props.isOpen,
(val: boolean) => {
if (val) {
getOrgPeople();
}
},
{
deep: true,
}
);
//获取行政组织人员信息
const getOrgPeople = () => {
loading.value = true;
getDutyCont({ id: saveInfo.value.id.toString() })
.then((res) => {
console.log("获取单一排版信息", res);
saveInfo.value.allDay = res.data.allDayAry;
saveInfo.value.baiTian = res.data.baiTianAry;
saveInfo.value.night = res.data.nightAry;
saveInfo.value.morning = res.data.morningAry;
saveInfo.value.afternoon = res.data.afternoonAry;
saveInfo.value.isCompany = 1;
})
.finally(() => {
console.log("------------>", saveInfo.value.isCompany);
if (saveInfo.value.isCompany == 1) {
get_org({
id: props.cumpanyId.toString(),
all: 1,
})
.then((res: any) => {
console.log("获取行政组织人员信息get_org", res);
orgPeopleList.value = res.data;
loading.value = false;
})
.finally(() => {
loading.value = false;
});
} else {
geiOrgAllPeople({
orgId: saveInfo.value.orgid * 1,
companyId: currtOrg.value * 1,
isAll: saveInfo.value.isCompany * 1,
})
.then((res: any) => {
console.log("获取行政组织人员信息geiOrgAllPeople", res);
orgPeopleList.value = res.data;
loading.value = false;
})
.finally(() => {
loading.value = false;
});
}
});
};
//提交数据
const saveCenter = () => {
console.log("提交数据", saveInfo.value);
saveInfo.value.holiday = saveInfo.value.holiday.toString();
saveEditDutyInfo(saveInfo.value).then((res: any) => {
closeSavePage();
emits(
"pickRefresh",
props.cumpanyId,
saveInfo.value.years,
saveInfo.value.month,
saveInfo.value.orgid
);
});
};
const orgTreeProps = {
children: "child",
label: "name",
}; //行政组织树对照值
</script>
<template>
<el-dialog
v-model="isShow"
:title="
saveInfo.years + '年' + saveInfo.month + '月' + saveInfo.days + '日编辑值班信息'
"
width="500"
:before-close="closeSavePage"
>
<el-form ref="ruleFormRef" :model="saveInfo">
<el-form-item label="行政组织" prop="orgname">
<el-input v-model="saveInfo.orgname" disabled />
</el-form-item>
<el-form-item label="节假日" prop="holiday">
<el-switch
v-model="saveInfo.holiday"
active-value="1"
inline-prompt
inactive-value="2"
active-text="是"
inactive-text="否"
v-loading="loading"
/>
</el-form-item>
<el-form-item v-show="saveInfo.holiday == 1" label="长白" prop="baiTian">
<el-tree-select
v-if="saveInfo.isCompany == 1"
v-model="saveInfo.baiTian"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="id"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
<el-tree-select
v-else
v-model="saveInfo.baiTian"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="userKey"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
</el-form-item>
<el-form-item v-show="saveInfo.holiday == 1" label="夜晚" prop="night">
<el-tree-select
v-if="saveInfo.isCompany == 1"
v-model="saveInfo.night"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="id"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
<el-tree-select
v-else
v-model="saveInfo.night"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="userKey"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
</el-form-item>
<el-form-item v-show="saveInfo.holiday != 1" label="值班" prop="allDay">
<el-tree-select
v-if="saveInfo.isCompany == 1"
v-model="saveInfo.allDay"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="id"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
<el-tree-select
v-else
v-model="saveInfo.allDay"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="userKey"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
</el-form-item>
<el-form-item label="上午" prop="morning">
<el-tree-select
v-if="saveInfo.isCompany == 1"
v-model="saveInfo.morning"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="id"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
<el-tree-select
v-else
v-model="saveInfo.morning"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="userKey"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
</el-form-item>
<el-form-item label="下午" prop="afternoon">
<el-tree-select
v-if="saveInfo.isCompany == 1"
v-model="saveInfo.afternoon"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="id"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
<el-tree-select
v-else
v-model="saveInfo.afternoon"
:data="orgPeopleList"
multiple
clearable
filterable
:props="orgTreeProps"
node-key="userKey"
:render-after-expand="false"
style="width: 300px"
v-loading="loading"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="closeSavePage">取消</el-button>
<el-button type="primary" @click="saveCenter"> 确定 </el-button>
</div>
</template>
</el-dialog>
</template>
<style lang="scss" scoped></style>