修改样式

main
junhong 1 week ago
parent 265d44477c
commit bef1f49532
  1. 3
      src/App.vue
  2. 3
      src/components/prompt/index.vue
  3. 4
      src/layout/index.vue
  4. 2
      src/utils/request.js
  5. 34
      src/views/constructionScheduling/progress-monitoring/index.vue
  6. 3
      src/views/large-screen/echartsOptions.js
  7. 145
      src/views/large-screen/index.vue
  8. 163
      src/views/sitePersonnel/access-control/index.vue
  9. 7
      src/views/sitePersonnel/work-attendance/index.vue
  10. 10
      src/views/sitePersonnel/work-attendance/options.js
  11. 4
      vite.config.js

@ -1,11 +1,12 @@
<template>
<router-view />
<promptfrom></promptfrom>
</template>
<script setup>
import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme'
import promptfrom from "@/components/prompt/index";
onMounted(() => {
nextTick(() => {
//

@ -24,9 +24,8 @@ onMounted(() => {
notify.value[item.id] = ElNotification({
title: "进度预警提示",
zIndex: 999999999999,
duration: 0,
duration: 10000,
position: "bottom-right",
// message: ' ' + item.name + '' + item.endTime + '',
message: h("div", [
h(
"p",

@ -6,12 +6,12 @@
<template v-else>
<LeftRight></LeftRight>
</template>
<promptfrom></promptfrom>
</div>
</template>
<script setup>
import promptfrom from "../components/prompt/index";
import useSettingsStore from '@/store/modules/settings'
import LeftRight from './components/LeftRight.vue'
import UpDown from './components/UpDown.vue'

@ -102,7 +102,7 @@ service.interceptors.response.use(res => {
type: 'error'
})
return Promise.reject(new Error(msg))
} else if (code !== 200) {
} else if (code !== 200 && code !== 0) {
ElMessage({
message: res.data.message?res.data.message:msg,
type: 'error'

@ -34,8 +34,9 @@ const state = reactive({
hideselection: true,
pageInfo: { total: 0, base: { limit: 7, current: 1 } },
planList: [],
tableData: [],
loading: false
tableData: {},
loading: false,
})
const table = ref()
onMounted(async () => {
@ -44,22 +45,29 @@ onMounted(async () => {
function getList(params) {
state.loading = true
iresourcescheduleList().then((res) => {
state.tableData = res.data.namelist
let ydata1 = []
let ydata2 = []
const groupedData = res.data.reduce((acc, item) => {
const { name } = item;
if (!acc[name]) {
acc[name] = [];
}
acc[name].push(item);
return acc;
}, {});
state.tableData = groupedData
let num = 0
for (const key in groupedData) {
nextTick(() => {
console.log(res.data.datelist);
res.data.namelist.map((item, index) => {
state.echart({
id: 'staff' + index,
id: 'staff' + key,
grid: state.echartsZhe({
ydata1: res.data.actuallist,
ydata2: res.data.planlist,
xdata: res.data.datelist
ydata1: groupedData[key].map(item => item.plan),
ydata2: groupedData[key].map(item => item.sj),
xdata: groupedData[key].map(item => item.date)
}),
});
})
})
num++
}
state.loading = false
})
}
@ -73,7 +81,7 @@ function getList(params) {
</BaseFilter> -->
<div class="dispatch-box" ref="table">
<div class="dispatch-item" v-for="item,index in state.tableData">
<div>{{ item }}</div>
<div>{{ item[0].name }}</div>
<div class="echarts" :id="'staff' + index"></div>
</div>
</div>

@ -4,6 +4,9 @@ export function echartsBing({ data, total }) {
return {
color: ['#fff17d', '#23BDF9'],
// 图表标题
tooltip: {
formatter: "{b} :{c}",
},
title: {
text: '总数:' + (total ? total : 0),
// subtext: '总数',

@ -249,7 +249,7 @@
<div>
{{ item.maskState == 3 ? '带口罩' : item.maskState == 2 ? '没带口罩' : '未识别' }}
</div>
<div>
<div :style="{color: item.overTemp ? 'red' : 'green'}">
{{ item.overTemp ? '是' : '否' }}
</div>
</div>
@ -296,7 +296,140 @@ const state = reactive({
echartsZhu,
echart,
loading: true,
tableData: [],
tableData: [{
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:1,
openType:43,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:2,
openType:42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:1,
openType:42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:1,
openType:42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:2,
openType:42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:1,
openType:42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType:1,
openType:42,
startSwingTime: "2025-05-13 02:17:55",
}],
warnList: [],
monitorList: [],
logList: [],
@ -317,7 +450,7 @@ onMounted(async () => {
await getQuerywarn()
await getStatistics()
await getVehiclestat()
await accessControl()
// await accessControl()
state.loading = false
})
function Jump() {
@ -399,7 +532,7 @@ function getQuerywarn(params) {
//
function accessControl() {
getRecordPage().then((res) => {
state.tableData = res.data.pageData
// state.tableData = res.data.pageData
})
}
//
@ -497,7 +630,7 @@ function engineeringLog(params) {
width: 100%;
background: rgba(35, 92, 96, 0.6);
display: grid;
grid-template-columns: 1fr 1.5fr 2fr 4.5fr 2fr 3.5fr 2.5fr;
grid-template-columns: 1fr 2.5fr 2fr 4.5fr 2fr 3.5fr 1.5fr;
min-height: 2rem;
font-weight: 400;
font-size: .875rem;
@ -530,7 +663,7 @@ function engineeringLog(params) {
height: 2rem;
background: rgba(50, 165, 210, 0.4);
display: grid;
grid-template-columns: 1fr 1.5fr 2fr 4.5fr 2fr 3.5fr 2.5fr;
grid-template-columns: 1fr 2.5fr 2fr 4.5fr 2fr 3.5fr 1.5fr;
}
.center-item {

@ -44,6 +44,140 @@ const state = reactive({
res.data.list = res.data.pageData
return res.data.list
},
tableData: [{
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 1,
openType: 43,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 2,
openType: 42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 1,
openType: 42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 1,
openType: 42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 2,
openType: 42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 1,
openType: 42,
startSwingTime: "2025-05-13 02:17:55",
}, {
"id": 17,
"personId": 21059,
"personCode": "112325",
"personName": "小高测试用例1",
"departmentId": 53,
"deptName": "小高测试用例部门1",
"cardNo": "40D3989B",
"siteId": "1",
"siteName": "门禁测试",
"attendanceType": "51",
"actionTime": "2023-08-24 02:17:55",
"reportTime": "2023-08-24 02:17:56",
"dataSource": 1,
"supplementFormId": null,
"number": null,
imageType: 1,
openType: 42,
startSwingTime: "2025-05-13 02:17:55",
}],
})
onMounted(() => {
@ -52,8 +186,31 @@ onMounted(() => {
<template>
<div class="app-container">
<BaseTablePage :tableOptions="state">
<el-table :data="state.tableData">
<el-table-column type="index" align="center" label="序号" width="70" />
<el-table-column label="姓名" align="center" prop="personName" />
<el-table-column label="进出门类型" align="center" prop="enterOrExit">
<template #default="scope">
<span>{{ stausList().find((item) =>
item.value == scope.row.openType)?.label || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="刷卡时间" align="center" prop="startSwingTime" />
<el-table-column label="人员类型" align="center" prop="imageType">
<template #default="scope">
<span>{{ scope.row.imageType == 1 ? '内部人员' : scope.row.imageType == 2 ? '访客' : '-' }}</span>
</template>
</el-table-column>
<el-table-column label="是否佩戴口罩" align="center" prop="createTime">
<template #default="scope">
<span>{{ scope.row.maskState == 3 ? '带口罩' : scope.row.maskState == 2 ? '没带口罩' : '未识别' }}</span>
</template>
</el-table-column>
<el-table-column label="是否超温" align="center" prop="overTemp">
<span>{{ '否' }}</span>
</el-table-column>
</el-table>
<!-- <BaseTablePage :tableOptions="state">
<template v-slot:column>
<el-table-column type="index" align="center" label="序号" width="70" />
<el-table-column label="姓名" align="center" prop="personName" />
@ -78,7 +235,7 @@ onMounted(() => {
<span>{{ scope.row.overTemp ? '是' : '否' }}</span>
</el-table-column>
</template>
</BaseTablePage>
</BaseTablePage> -->
</div>
</template>

@ -4,7 +4,11 @@ import { getRecordPage, iuserAdd, IuserUpdate, iuserDelete, iuserGetById } from
import { baseModelOptions, baseFilterOptions, stausList } from './options'
// const { proxy } = getCurrentInstance();
const currentTime = new Date();
const year = currentTime.getFullYear();
const month = String(currentTime.getMonth() + 1).padStart(2, '0');
const day = String(currentTime.getDate()).padStart(2, '0');
const formattedTime = `${year}-${month}-${day}`;
const state = reactive({
baseModelOptions: baseModelOptions(),
baseFilterOptions: baseFilterOptions(),
@ -39,6 +43,7 @@ const state = reactive({
detail: 'workAttendance:page:list',
},
pageInfo: { total: 0, base: { limit: 8, current: 1 } },
baseQuery: { actionTimeAfter:formattedTime + ' 00:00:00',actionTimeBefore:formattedTime + ' 23:59:59' },
beforeFilter: (params) => {
//1. 使
return new Promise((resolve) => {

@ -33,6 +33,11 @@ export const stausList = () => {
{ "value": 8890, "label": "异地打卡" }
]
}
const currentTime = new Date();
const year = currentTime.getFullYear();
const month = String(currentTime.getMonth() + 1).padStart(2, '0');
const day = String(currentTime.getDate()).padStart(2, '0');
const formattedTime = `${year}-${month}-${day}`;
export const baseFilterOptions = () => {
return [
{
@ -67,9 +72,10 @@ export const baseFilterOptions = () => {
tag: 'el-date-picker',
label: '时间:',
key: 'params',
value: '',
default: '',
value: [formattedTime + ' 00:00:00', formattedTime + ' 23:59:59'],
value: [formattedTime + ' 00:00:00', formattedTime + ' 23:59:59'],
attribute: {//属性
clearable:false,
valueFormat: "YYYY-MM-DD HH:mm:ss",
type: "datetimerange",
rangeSeparator: "-",

@ -43,9 +43,9 @@ export default defineConfig(({ mode, command }) => {
},
proxy: {
'/dev-api': {
// target: 'http://192.168.2.39:8581',
target: 'http://192.168.2.39:8581',
// target: 'http://192.168.2.223:8080',
target: 'http://39.100.74.100:8581',
// target: 'http://39.100.74.100:8581',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
}

Loading…
Cancel
Save