fix: BUG修改
This commit is contained in:
parent
215a6ac3d5
commit
ad9957a2d0
@ -344,3 +344,25 @@ export const memberInfo = (params: any) => {
|
|||||||
export const updateMember = (params: any) => {
|
export const updateMember = (params: any) => {
|
||||||
return http.post(BASEURL + `/project/workerInfo/edit`, params);
|
return http.post(BASEURL + `/project/workerInfo/edit`, params);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 考勤设备管理分页列表
|
||||||
|
export const equipmentList = (params: any) => {
|
||||||
|
return http.post(BASEURL + `/project/attendanceDev/page`, params);
|
||||||
|
};
|
||||||
|
// 考勤设备管理新增
|
||||||
|
export const addEquipment = (params: any) => {
|
||||||
|
return http.post(BASEURL + `/project/attendanceDev/add`, params);
|
||||||
|
};
|
||||||
|
// 考勤设备管理编辑
|
||||||
|
export const updateEquipment = (params: any) => {
|
||||||
|
return http.post(BASEURL + `/project/attendanceDev/edit`, params);
|
||||||
|
};
|
||||||
|
// 考勤设备管理删除
|
||||||
|
export const deleteEquipment = (params: { id: string }) => {
|
||||||
|
return http.post(BASEURL + `/project/attendanceDev/delete`, params);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 考勤统计分页列表
|
||||||
|
export const statisticsList = (params: any) => {
|
||||||
|
return http.post(BASEURL + `/project/workerInfo/attendStat`, params);
|
||||||
|
};
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="allEngList">
|
<div class="allEngList">
|
||||||
<el-icon><CaretBottom /> </el-icon>
|
<el-icon><CaretLeft /> </el-icon>
|
||||||
<span>查</span>
|
<span>查</span>
|
||||||
<span>看</span>
|
<span>看</span>
|
||||||
<span>所</span>
|
<span>所</span>
|
||||||
|
|||||||
@ -221,19 +221,22 @@
|
|||||||
font-family: siyuan_Medium;
|
font-family: siyuan_Medium;
|
||||||
}
|
}
|
||||||
.allEngList {
|
.allEngList {
|
||||||
width: 176px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 176px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: -78px;
|
right: 0;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 224;
|
z-index: 224;
|
||||||
// display: flex;
|
// display: flex;
|
||||||
transform: rotate(90deg);
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: rgba(0, 0, 0, 0.2);
|
background: rgba(0, 0, 0, 0.2);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
span {
|
span {
|
||||||
margin: 0px 2px;
|
margin: 0px 2px;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="table-box">
|
<div class="table-box">
|
||||||
<ProTable
|
<ProTable
|
||||||
ref="proTable"
|
ref="proTable"
|
||||||
title="参建单位列表"
|
title="考勤设备列表"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:requestApi="getTableList"
|
:requestApi="getTableList"
|
||||||
:dataCallback="dataCallback"
|
:dataCallback="dataCallback"
|
||||||
@ -10,16 +10,16 @@
|
|||||||
:pagination="true"
|
:pagination="true"
|
||||||
background
|
background
|
||||||
:isShowSearch="false"
|
:isShowSearch="false"
|
||||||
|
:initParam="initParam"
|
||||||
:onReset="true"
|
:onReset="true"
|
||||||
>
|
>
|
||||||
<template #formButton="scope">
|
<template #formButton="scope">
|
||||||
<el-button class="addButtonStyle" @click="handleAddItem(1)">新增</el-button>
|
<el-button class="addButtonStyle" @click="handleAddItem(1)">新增</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
<template #position="{ row }">
|
||||||
|
<span>{{ "经度:" + row.longitude + "," + "维度:" + row.latitude }}</span>
|
||||||
|
</template>
|
||||||
<template #operation="{ row }">
|
<template #operation="{ row }">
|
||||||
<el-button type="primary" link @click="handleEditItem(row)">
|
|
||||||
<img src="@/assets/images/tableIcon/配置权限.png" alt="" class="configureIcon" />
|
|
||||||
<span>配置权限</span>
|
|
||||||
</el-button>
|
|
||||||
<el-button type="primary" link @click="handleAddItem(2, row)">
|
<el-button type="primary" link @click="handleAddItem(2, row)">
|
||||||
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
|
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
|
||||||
<span>编辑</span>
|
<span>编辑</span>
|
||||||
@ -43,7 +43,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
<engineeringDrawer v-model="engVisable" ref="engDrawer" :request="getengineering">
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
||||||
|
</template>
|
||||||
|
</engineeringDrawer>
|
||||||
|
<allEngineering @click="engVisable = true" />
|
||||||
<DialogForm
|
<DialogForm
|
||||||
:title="title"
|
:title="title"
|
||||||
:formConfig="formConfig"
|
:formConfig="formConfig"
|
||||||
@ -53,7 +58,13 @@
|
|||||||
width="700px"
|
width="700px"
|
||||||
@confirm="saveItem"
|
@confirm="saveItem"
|
||||||
>
|
>
|
||||||
|
<template #mapIcon>
|
||||||
|
<div class="diaMapIcon" @click="openMap">
|
||||||
|
<el-icon style="font-size: 19px"><Location /></el-icon>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</DialogForm>
|
</DialogForm>
|
||||||
|
<AMap v-model="isOpen" @get-address="getAddress" :default-address="address" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -64,20 +75,15 @@ import { useRouter } from "vue-router";
|
|||||||
import { ColumnProps } from "@/components/ProTable/interface";
|
import { ColumnProps } from "@/components/ProTable/interface";
|
||||||
import { useHandleData } from "@/hooks/useHandleData";
|
import { useHandleData } from "@/hooks/useHandleData";
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
import ProTable from "@/components/ProTable/index.vue";
|
||||||
|
import { getRelevanceList } from "@/api/modules/common";
|
||||||
import { jxj_User } from "@/api/types";
|
import { jxj_User } from "@/api/types";
|
||||||
|
import engineeringDrawer from "@/components/engineeringDrawer/index.vue";
|
||||||
|
import allEngineering from "@/components/allEngineering/index.vue";
|
||||||
import TreeFilter from "@/components/TreeFilter/index.vue";
|
import TreeFilter from "@/components/TreeFilter/index.vue";
|
||||||
import {
|
import AMap from "@/components/AMap/AMap.vue";
|
||||||
getRoleList,
|
import { editRolePermissions, getTreemRoleList, getTreeByIdList } from "@/api/modules/goverment";
|
||||||
addRole,
|
|
||||||
editRole,
|
|
||||||
deleteRole,
|
|
||||||
editRolePermissions,
|
|
||||||
getSystemRole,
|
|
||||||
getTreemRoleList,
|
|
||||||
getTreeByIdList
|
|
||||||
} from "@/api/modules/goverment";
|
|
||||||
import DialogForm from "@/components/DialogForm/index.vue";
|
import DialogForm from "@/components/DialogForm/index.vue";
|
||||||
// import { getProjectRecordPage } from "@/api/modules/project";
|
import { addEquipment, equipmentList, updateEquipment, deleteEquipment } from "@/api/modules/project";
|
||||||
|
|
||||||
import { Delete } from "@element-plus/icons-vue";
|
import { Delete } from "@element-plus/icons-vue";
|
||||||
import { GlobalStore } from "@/stores";
|
import { GlobalStore } from "@/stores";
|
||||||
@ -95,11 +101,23 @@ const store = GlobalStore();
|
|||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const drawerVisible = ref(false);
|
const drawerVisible = ref(false);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
|
const engVisable = ref(false);
|
||||||
|
const initParam = reactive({
|
||||||
|
solveFlag: 1,
|
||||||
|
engineeringSn: ""
|
||||||
|
});
|
||||||
|
const isOpen = ref(false);
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
roleName: "",
|
devName: "",
|
||||||
priority: 1,
|
code: "",
|
||||||
state: 0,
|
address: "",
|
||||||
roleDesc: ""
|
longitude: "",
|
||||||
|
latitude: "",
|
||||||
|
position: ""
|
||||||
|
});
|
||||||
|
const address = ref({
|
||||||
|
lng: undefined,
|
||||||
|
lat: undefined
|
||||||
});
|
});
|
||||||
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
|
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
|
||||||
const proTable = ref();
|
const proTable = ref();
|
||||||
@ -110,36 +128,21 @@ const getId = ref<number | undefined>(undefined);
|
|||||||
const columns: ColumnProps[] = [
|
const columns: ColumnProps[] = [
|
||||||
{ type: "index", label: "序号", width: 80 },
|
{ type: "index", label: "序号", width: 80 },
|
||||||
{
|
{
|
||||||
prop: "roleName",
|
prop: "devName",
|
||||||
label: "单位名称",
|
label: "设备名称",
|
||||||
search: { el: "input" }
|
search: { el: "input" }
|
||||||
},
|
},
|
||||||
// 多级 prop
|
|
||||||
{ prop: "priority", label: "显示顺序" },
|
|
||||||
{ prop: "state", label: "使用状态" },
|
|
||||||
{
|
{
|
||||||
prop: "state",
|
prop: "code",
|
||||||
label: "状态",
|
label: "设备编码"
|
||||||
search: { el: "select" },
|
|
||||||
isShow: false,
|
|
||||||
enum: [
|
|
||||||
{ label: "启用", value: 1 },
|
|
||||||
{ label: "禁用", value: 0 }
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: "createTime",
|
prop: "address",
|
||||||
label: "创建时间",
|
label: "设备位置"
|
||||||
search: {
|
},
|
||||||
el: "date-picker",
|
{
|
||||||
|
prop: "position",
|
||||||
props: {
|
label: "经纬度"
|
||||||
type: "daterange",
|
|
||||||
format: "YYYY-MM-DD",
|
|
||||||
valueFormat: "YYYY-MM-DD"
|
|
||||||
// defaultTime: defaultTime2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{ prop: "operation", label: "操作", fixed: "right", width: 260 }
|
{ prop: "operation", label: "操作", fixed: "right", width: 260 }
|
||||||
];
|
];
|
||||||
@ -148,50 +151,63 @@ const columns: ColumnProps[] = [
|
|||||||
const formConfig = {
|
const formConfig = {
|
||||||
formItemConfig: [
|
formItemConfig: [
|
||||||
{
|
{
|
||||||
label: "角色名称",
|
label: "设备名称",
|
||||||
prop: "roleName",
|
prop: "devName",
|
||||||
type: "input"
|
type: "input"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "角色顺序",
|
label: "设备编码",
|
||||||
prop: "priority",
|
prop: "code",
|
||||||
type: "number"
|
type: "input"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "状态",
|
label: "设置位置",
|
||||||
prop: "state",
|
prop: "address",
|
||||||
type: "radio",
|
|
||||||
data: [
|
|
||||||
{ label: "启用", value: 1 },
|
|
||||||
{ label: "禁用", value: 0 }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "备注",
|
|
||||||
prop: "roleDesc",
|
|
||||||
type: "input",
|
type: "input",
|
||||||
mapIcon: true
|
mapIcon: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "设置经纬度",
|
||||||
|
prop: "position",
|
||||||
|
type: "input",
|
||||||
|
disabled: true
|
||||||
// 标记dialog
|
// 标记dialog
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
roleName: [
|
devName: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入角色名称",
|
message: "请输入",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
priority: [
|
code: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入角色顺序",
|
message: "请输入",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// 打开地图
|
||||||
|
const openMap = () => {
|
||||||
|
isOpen.value = true;
|
||||||
|
};
|
||||||
|
// 获取地址
|
||||||
|
const getAddress = async (e: any) => {
|
||||||
|
formData.value.address = e.address;
|
||||||
|
formData.value.longitude = e.lng;
|
||||||
|
formData.value.latitude = e.lat;
|
||||||
|
formData.value.position = "经度:" + e.lng + "," + "维度:" + e.lat;
|
||||||
|
isOpen.value = false;
|
||||||
|
ElMessage.success("获取经纬度成功");
|
||||||
|
};
|
||||||
|
const getengineering = (params: any) => {
|
||||||
|
// let newParams = JSON.parse(JSON.stringify(params));
|
||||||
|
return getRelevanceList();
|
||||||
|
};
|
||||||
// dataCallback 是对于返回的表格数据做处理,如果你后台返回的数据不是 list && total && pageNum && pageSize 这些字段,那么你可以在这里进行处理成这些字段
|
// dataCallback 是对于返回的表格数据做处理,如果你后台返回的数据不是 list && total && pageNum && pageSize 这些字段,那么你可以在这里进行处理成这些字段
|
||||||
// 或者直接去 hooks/useTable.ts 文件中把字段改为你后端对应的就行
|
// 或者直接去 hooks/useTable.ts 文件中把字段改为你后端对应的就行
|
||||||
const dataCallback = (data: any) => {
|
const dataCallback = (data: any) => {
|
||||||
@ -247,21 +263,22 @@ const getTableList = (params: any) => {
|
|||||||
newParams.createTime_end = newParams.createTime[1];
|
newParams.createTime_end = newParams.createTime[1];
|
||||||
delete newParams.createTime;
|
delete newParams.createTime;
|
||||||
}
|
}
|
||||||
return getRoleList(newParams);
|
return equipmentList(newParams);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleAddItem = (index: number, row: any) => {
|
const handleAddItem = (index: number, row: any) => {
|
||||||
if (index === 1) {
|
if (index === 1) {
|
||||||
title.value = "新增角色";
|
title.value = "新增设备";
|
||||||
formData.value = reactive({
|
formData.value = reactive({
|
||||||
roleName: "",
|
devName: "",
|
||||||
priority: 1,
|
code: "",
|
||||||
state: 1,
|
address: "",
|
||||||
roleDesc: ""
|
position: ""
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
title.value = "编辑角色";
|
title.value = "编辑设备";
|
||||||
formData.value = reactive({ ...row });
|
formData.value = reactive({ ...row });
|
||||||
|
formData.value.position = "经度:" + row.longitude + "," + "维度:" + row.latitude;
|
||||||
}
|
}
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
};
|
};
|
||||||
@ -283,13 +300,14 @@ const handleEditItem = async (row: any) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const saveItem = async (form: any) => {
|
const saveItem = async (form: any) => {
|
||||||
if (form.roleId) {
|
form.engineeringSn = initParam.engineeringSn;
|
||||||
|
if (form.id) {
|
||||||
// console.log(form.dictCode);
|
// console.log(form.dictCode);
|
||||||
const res = await editRole(form);
|
const res = await updateEquipment(form);
|
||||||
proTable.value.getTableList();
|
proTable.value.getTableList();
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
} else {
|
} else {
|
||||||
const res = await addRole(form);
|
const res = await addEquipment(form);
|
||||||
ElMessage.success("新增成功");
|
ElMessage.success("新增成功");
|
||||||
proTable.value.getTableList();
|
proTable.value.getTableList();
|
||||||
}
|
}
|
||||||
@ -298,10 +316,15 @@ const saveItem = async (form: any) => {
|
|||||||
|
|
||||||
// 删除用户信息
|
// 删除用户信息
|
||||||
const deleteAccount = async (params: jxj_User.ResUserList) => {
|
const deleteAccount = async (params: jxj_User.ResUserList) => {
|
||||||
await useHandleData(deleteRole, { roleId: params.roleId }, `删除【${params.roleName}】`);
|
await useHandleData(deleteEquipment, { id: params.id }, `删除【${params.devName}】`);
|
||||||
proTable.value.getTableList();
|
proTable.value.getTableList();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 点击抽屉的工程名称更新页面
|
||||||
|
const onUpdate = async row => {
|
||||||
|
initParam.engineeringSn = row.engineeringSn;
|
||||||
|
ElMessage.success("页面已更新");
|
||||||
|
};
|
||||||
const changeTreeFilter = () => {
|
const changeTreeFilter = () => {
|
||||||
console.log(11);
|
console.log(11);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -9,12 +9,7 @@
|
|||||||
:tool-button="false"
|
:tool-button="false"
|
||||||
:pagination="true"
|
:pagination="true"
|
||||||
background
|
background
|
||||||
:isShowSearch="false"
|
|
||||||
:onReset="true"
|
|
||||||
>
|
>
|
||||||
<template #formButton="scope">
|
|
||||||
<el-button class="addButtonStyle" @click="handleAddItem(1)">新增</el-button>
|
|
||||||
</template>
|
|
||||||
<template #operation="{ row }">
|
<template #operation="{ row }">
|
||||||
<el-button type="primary" link @click="handleEditItem(row)">
|
<el-button type="primary" link @click="handleEditItem(row)">
|
||||||
<img src="@/assets/images/tableIcon/配置权限.png" alt="" class="configureIcon" />
|
<img src="@/assets/images/tableIcon/配置权限.png" alt="" class="configureIcon" />
|
||||||
@ -29,7 +24,23 @@
|
|||||||
<template #state="{ row }">
|
<template #state="{ row }">
|
||||||
<span :class="row.state === 1 ? '' : 'redText'">{{ row.state == 1 ? "启用" : "禁用" }}</span>
|
<span :class="row.state === 1 ? '' : 'redText'">{{ row.state == 1 ? "启用" : "禁用" }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
<template #day1="{ row }" v-for="index in 30" :key="index">
|
||||||
|
<span class="cirle" @click="showAttendance(row)"></span>
|
||||||
|
</template>
|
||||||
</ProTable>
|
</ProTable>
|
||||||
|
<div class="table">
|
||||||
|
<h4>考勤明细</h4>
|
||||||
|
<el-table
|
||||||
|
:data="attendanceSingles"
|
||||||
|
border
|
||||||
|
max-height="340"
|
||||||
|
class="el-table"
|
||||||
|
:header-cell-style="{ backgroundColor: '#e1eeff', textAlign: 'center' }"
|
||||||
|
:cell-style="{ textAlign: 'center' }"
|
||||||
|
>
|
||||||
|
<el-table-column prop="name" label="单体工程名称" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
<el-drawer v-model="drawerVisible" :destroy-on-close="true" :before-close="closeDrawer" size="450px" title="配置权限">
|
<el-drawer v-model="drawerVisible" :destroy-on-close="true" :before-close="closeDrawer" size="450px" title="配置权限">
|
||||||
<span class="title sle">所拥有的权限</span>
|
<span class="title sle">所拥有的权限</span>
|
||||||
<el-scrollbar :style="{ height: title ? `calc(100% - 95px)` : `calc(100% - 56px)` }">
|
<el-scrollbar :style="{ height: title ? `calc(100% - 95px)` : `calc(100% - 56px)` }">
|
||||||
@ -58,7 +69,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
||||||
import { ref, reactive, nextTick } from "vue";
|
import { ref, reactive, nextTick, onBeforeMount } from "vue";
|
||||||
import { ElMessage, ElMessageBox, ElTree } from "element-plus";
|
import { ElMessage, ElMessageBox, ElTree } from "element-plus";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import { ColumnProps } from "@/components/ProTable/interface";
|
import { ColumnProps } from "@/components/ProTable/interface";
|
||||||
@ -67,7 +78,6 @@ import ProTable from "@/components/ProTable/index.vue";
|
|||||||
import { jxj_User } from "@/api/types";
|
import { jxj_User } from "@/api/types";
|
||||||
import TreeFilter from "@/components/TreeFilter/index.vue";
|
import TreeFilter from "@/components/TreeFilter/index.vue";
|
||||||
import {
|
import {
|
||||||
getRoleList,
|
|
||||||
addRole,
|
addRole,
|
||||||
editRole,
|
editRole,
|
||||||
deleteRole,
|
deleteRole,
|
||||||
@ -77,13 +87,12 @@ import {
|
|||||||
getTreeByIdList
|
getTreeByIdList
|
||||||
} from "@/api/modules/goverment";
|
} from "@/api/modules/goverment";
|
||||||
import DialogForm from "@/components/DialogForm/index.vue";
|
import DialogForm from "@/components/DialogForm/index.vue";
|
||||||
// import { getProjectRecordPage } from "@/api/modules/project";
|
import { statisticsList } from "@/api/modules/project";
|
||||||
|
|
||||||
import { Delete } from "@element-plus/icons-vue";
|
import { Delete } from "@element-plus/icons-vue";
|
||||||
import { GlobalStore } from "@/stores";
|
import { GlobalStore } from "@/stores";
|
||||||
|
|
||||||
const treeRef = ref(null);
|
const treeRef = ref(null);
|
||||||
|
|
||||||
const datas = reactive([]);
|
const datas = reactive([]);
|
||||||
|
|
||||||
const defaultProps = {
|
const defaultProps = {
|
||||||
@ -95,6 +104,7 @@ const store = GlobalStore();
|
|||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const drawerVisible = ref(false);
|
const drawerVisible = ref(false);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
|
const attendanceSingles = ref([]);
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
roleName: "",
|
roleName: "",
|
||||||
priority: 1,
|
priority: 1,
|
||||||
@ -110,38 +120,42 @@ const getId = ref<number | undefined>(undefined);
|
|||||||
const columns: ColumnProps[] = [
|
const columns: ColumnProps[] = [
|
||||||
{ type: "index", label: "序号", width: 80 },
|
{ type: "index", label: "序号", width: 80 },
|
||||||
{
|
{
|
||||||
prop: "roleName",
|
prop: "personName",
|
||||||
label: "单位名称",
|
label: "姓名",
|
||||||
search: { el: "input" }
|
search: { el: "input" }
|
||||||
},
|
},
|
||||||
// 多级 prop
|
|
||||||
{ prop: "priority", label: "显示顺序" },
|
|
||||||
{ prop: "state", label: "使用状态" },
|
|
||||||
{
|
{
|
||||||
prop: "state",
|
prop: "teamName",
|
||||||
label: "状态",
|
label: "班组",
|
||||||
search: { el: "select" },
|
search: { el: "input" }
|
||||||
isShow: false,
|
|
||||||
enum: [
|
|
||||||
{ label: "启用", value: 1 },
|
|
||||||
{ label: "禁用", value: 0 }
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: "createTime",
|
prop: "month",
|
||||||
label: "创建时间",
|
label: "月份",
|
||||||
|
isShow: false,
|
||||||
search: {
|
search: {
|
||||||
el: "date-picker",
|
el: "date-picker",
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
type: "daterange",
|
type: "datetime",
|
||||||
format: "YYYY-MM-DD",
|
format: "YYYY-MM-DD",
|
||||||
valueFormat: "YYYY-MM-DD"
|
valueFormat: "YYYY-MM-DD"
|
||||||
// defaultTime: defaultTime2
|
// defaultTime: defaultTime2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ prop: "operation", label: "操作", fixed: "right", width: 260 }
|
{
|
||||||
|
prop: "lateDay",
|
||||||
|
label: "迟到天数"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: "earlyDay",
|
||||||
|
label: "早退天数"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: "workerHour",
|
||||||
|
label: "总工时"
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
// 弹窗中的配置
|
// 弹窗中的配置
|
||||||
@ -213,7 +227,10 @@ const cacel = () => {
|
|||||||
drawerVisible.value = false;
|
drawerVisible.value = false;
|
||||||
datas.length = 0;
|
datas.length = 0;
|
||||||
};
|
};
|
||||||
|
// 展示考勤数据
|
||||||
|
const showAttendance = row => {
|
||||||
|
console.log(row);
|
||||||
|
};
|
||||||
const transfrom = (arr: Array<any>) => {
|
const transfrom = (arr: Array<any>) => {
|
||||||
const result = [];
|
const result = [];
|
||||||
return arr
|
return arr
|
||||||
@ -247,7 +264,7 @@ const getTableList = (params: any) => {
|
|||||||
newParams.createTime_end = newParams.createTime[1];
|
newParams.createTime_end = newParams.createTime[1];
|
||||||
delete newParams.createTime;
|
delete newParams.createTime;
|
||||||
}
|
}
|
||||||
return getRoleList(newParams);
|
return statisticsList(newParams);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleAddItem = (index: number, row: any) => {
|
const handleAddItem = (index: number, row: any) => {
|
||||||
@ -305,4 +322,42 @@ const deleteAccount = async (params: jxj_User.ResUserList) => {
|
|||||||
const changeTreeFilter = () => {
|
const changeTreeFilter = () => {
|
||||||
console.log(11);
|
console.log(11);
|
||||||
};
|
};
|
||||||
|
onBeforeMount(() => {
|
||||||
|
for (let i = 0; i < 31; i++) {
|
||||||
|
columns.push({
|
||||||
|
prop: "day" + (i + 1),
|
||||||
|
label: "" + (i + 1)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.table-box {
|
||||||
|
.cirle {
|
||||||
|
display: inline-block;
|
||||||
|
width: 11px;
|
||||||
|
height: 11px;
|
||||||
|
background: #008bff;
|
||||||
|
opacity: 1;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.table {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #fff;
|
||||||
|
h4 {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 6px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
border-left: 3px solid #008bff;
|
||||||
|
}
|
||||||
|
.el-table {
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
|
:disabledDate="disabledDate"
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -605,6 +606,11 @@ const resetForm = (formEl: FormInstance | undefined) => {
|
|||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
formEl.resetFields();
|
formEl.resetFields();
|
||||||
};
|
};
|
||||||
|
// 设置出生日期只能选择今天之前
|
||||||
|
const disabledDate = time => {
|
||||||
|
let current = new Date().getTime();
|
||||||
|
return time > current;
|
||||||
|
};
|
||||||
// 监听父组件的visible,用来简介控制el-dialog的弹框开关,一般是用于开
|
// 监听父组件的visible,用来简介控制el-dialog的弹框开关,一般是用于开
|
||||||
watch(
|
watch(
|
||||||
() => props.newMemberDialog,
|
() => props.newMemberDialog,
|
||||||
|
|||||||
@ -15,10 +15,10 @@
|
|||||||
>
|
>
|
||||||
<template #formButton="scope">
|
<template #formButton="scope">
|
||||||
<el-button class="addButtonStyle" @click="handleAddItem(1)">新增</el-button>
|
<el-button class="addButtonStyle" @click="handleAddItem(1)">新增</el-button>
|
||||||
<el-button type="primary" :disabled="!scope.isSelected" @click="batchOperate(1, scope.selectedListIds)"
|
<!-- <el-button type="primary" :disabled="!scope.isSelected" @click="batchOperate(1, scope.selectedListIds)"
|
||||||
>批量复职</el-button
|
>批量复职</el-button
|
||||||
>
|
>
|
||||||
<el-button type="primary" :disabled="!scope.isSelected" @click="batchOperate(2, scope)">批量离场</el-button>
|
<el-button type="primary" :disabled="!scope.isSelected" @click="batchOperate(2, scope)">批量离场</el-button> -->
|
||||||
</template>
|
</template>
|
||||||
<template #operation="{ row }">
|
<template #operation="{ row }">
|
||||||
<el-button type="primary" link @click="handleAddItem(2, row)">
|
<el-button type="primary" link @click="handleAddItem(2, row)">
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<img src="@/assets/images/tableIcon/调动.png" alt="" class="configureIcon" />
|
<img src="@/assets/images/tableIcon/调动.png" alt="" class="configureIcon" />
|
||||||
<span>调动</span>
|
<span>调动</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" link @click="handleEditItem(2, row)">
|
<el-button type="primary" link @click="handleEditItem(2, row)" v-if="row.inServiceType == 1">
|
||||||
<img src="@/assets/images/tableIcon/离场.png" alt="" class="configureIcon" />
|
<img src="@/assets/images/tableIcon/离场.png" alt="" class="configureIcon" />
|
||||||
<span>离场</span>
|
<span>离场</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -160,7 +160,9 @@ const initParam = reactive({
|
|||||||
// 调动-表单
|
// 调动-表单
|
||||||
const moveFormData = ref({});
|
const moveFormData = ref({});
|
||||||
// 离场-表单
|
// 离场-表单
|
||||||
const exitFormData = ref({});
|
const exitFormData = ref({
|
||||||
|
exitTime: ""
|
||||||
|
});
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
personName: "",
|
personName: "",
|
||||||
sex: 1,
|
sex: 1,
|
||||||
@ -226,23 +228,31 @@ const exitFormConfig = {
|
|||||||
formItemConfig: [
|
formItemConfig: [
|
||||||
{
|
{
|
||||||
label: "离场人员",
|
label: "离场人员",
|
||||||
prop: "ids",
|
prop: "personName",
|
||||||
type: "input"
|
type: "input",
|
||||||
|
disabled: true
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// label: "离场时间",
|
||||||
|
// prop: "exitType",
|
||||||
|
// type: "radio",
|
||||||
|
// data: [
|
||||||
|
// {
|
||||||
|
// label: "立即离场",
|
||||||
|
// value: 1
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// label: "延时离场",
|
||||||
|
// value: 2
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
label: "离场时间",
|
label: "离场日期",
|
||||||
prop: "ids",
|
prop: "exitTime",
|
||||||
type: "radio",
|
type: "date",
|
||||||
data: [
|
format: "YYYY-MM-DD",
|
||||||
{
|
valueFormat: "YYYY-MM-DD"
|
||||||
label: "立即离场",
|
|
||||||
value: 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "延时离场",
|
|
||||||
value: 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
@ -445,30 +455,33 @@ const handleEditItem = async (index: number, row: any) => {
|
|||||||
moveVisible.value = true;
|
moveVisible.value = true;
|
||||||
} else if (index == 2) {
|
} else if (index == 2) {
|
||||||
exitVisible.value = true;
|
exitVisible.value = true;
|
||||||
|
exitFormData.value = { ...row };
|
||||||
}
|
}
|
||||||
objRow.value = row;
|
objRow.value = row;
|
||||||
};
|
};
|
||||||
// 调动表单提交
|
// 调动表单提交
|
||||||
const saveMoveItem = async (form: any) => {
|
const saveMoveItem = async (form: any) => {
|
||||||
const res = await updateMember(form);
|
const requestData = {
|
||||||
|
id: objRow.value.id,
|
||||||
|
...form
|
||||||
|
};
|
||||||
|
const res = await updateMember(requestData);
|
||||||
proTable.value.getTableList();
|
proTable.value.getTableList();
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
newMemberDialog.value = false;
|
moveVisible.value = false;
|
||||||
};
|
};
|
||||||
// TODO: 提交表单操作
|
// TODO: 提交表单操作
|
||||||
const saveItem = async (form: any) => {
|
const saveItem = async (form: any) => {
|
||||||
form.engineeringSn = initParam.engineeringSn;
|
// form.engineeringSn = initParam.engineeringSn;
|
||||||
if (form.id) {
|
console.log(form);
|
||||||
// console.log(form.dictCode);
|
const requestData = {
|
||||||
const res = await updateClassGroup(form);
|
id: form.id,
|
||||||
proTable.value.getTableList();
|
...form
|
||||||
ElMessage.success("编辑成功");
|
};
|
||||||
} else {
|
const res = await updateMember(requestData);
|
||||||
const res = await addMember(form);
|
proTable.value.getTableList();
|
||||||
ElMessage.success("新增成功");
|
ElMessage.success("编辑成功");
|
||||||
proTable.value.getTableList();
|
exitVisible.value = false;
|
||||||
}
|
|
||||||
newMemberDialog.value = false;
|
|
||||||
};
|
};
|
||||||
// 点击抽屉的工程名称更新页面
|
// 点击抽屉的工程名称更新页面
|
||||||
const onUpdate = async row => {
|
const onUpdate = async row => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user