修改样式

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. 38
      src/views/constructionScheduling/progress-monitoring/index.vue
  6. 3
      src/views/large-screen/echartsOptions.js
  7. 145
      src/views/large-screen/index.vue
  8. 167
      src/views/sitePersonnel/access-control/index.vue
  9. 17
      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> <template>
<router-view /> <router-view />
<promptfrom></promptfrom>
</template> </template>
<script setup> <script setup>
import useSettingsStore from '@/store/modules/settings' import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme' import { handleThemeStyle } from '@/utils/theme'
import promptfrom from "@/components/prompt/index";
onMounted(() => { onMounted(() => {
nextTick(() => { nextTick(() => {
// //

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

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

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

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

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

@ -249,7 +249,7 @@
<div> <div>
{{ item.maskState == 3 ? '带口罩' : item.maskState == 2 ? '没带口罩' : '未识别' }} {{ item.maskState == 3 ? '带口罩' : item.maskState == 2 ? '没带口罩' : '未识别' }}
</div> </div>
<div> <div :style="{color: item.overTemp ? 'red' : 'green'}">
{{ item.overTemp ? '是' : '否' }} {{ item.overTemp ? '是' : '否' }}
</div> </div>
</div> </div>
@ -296,7 +296,140 @@ const state = reactive({
echartsZhu, echartsZhu,
echart, echart,
loading: true, 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: [], warnList: [],
monitorList: [], monitorList: [],
logList: [], logList: [],
@ -317,7 +450,7 @@ onMounted(async () => {
await getQuerywarn() await getQuerywarn()
await getStatistics() await getStatistics()
await getVehiclestat() await getVehiclestat()
await accessControl() // await accessControl()
state.loading = false state.loading = false
}) })
function Jump() { function Jump() {
@ -399,7 +532,7 @@ function getQuerywarn(params) {
// //
function accessControl() { function accessControl() {
getRecordPage().then((res) => { getRecordPage().then((res) => {
state.tableData = res.data.pageData // state.tableData = res.data.pageData
}) })
} }
// //
@ -497,7 +630,7 @@ function engineeringLog(params) {
width: 100%; width: 100%;
background: rgba(35, 92, 96, 0.6); background: rgba(35, 92, 96, 0.6);
display: grid; 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; min-height: 2rem;
font-weight: 400; font-weight: 400;
font-size: .875rem; font-size: .875rem;
@ -530,7 +663,7 @@ function engineeringLog(params) {
height: 2rem; height: 2rem;
background: rgba(50, 165, 210, 0.4); background: rgba(50, 165, 210, 0.4);
display: grid; 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 { .center-item {

@ -35,8 +35,8 @@ const state = reactive({
delete: 'accessControl:page:list', delete: 'accessControl:page:list',
detail: 'accessControl:page:list', detail: 'accessControl:page:list',
}, },
tableResult:{ tableResult: {
successCode:0 successCode: 0
}, },
pageInfo: { total: 0, base: { limit: 8, current: 1 } }, pageInfo: { total: 0, base: { limit: 8, current: 1 } },
tableDataFormatter: function (params, res) { tableDataFormatter: function (params, res) {
@ -44,6 +44,140 @@ const state = reactive({
res.data.list = res.data.pageData res.data.list = res.data.pageData
return res.data.list 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(() => { onMounted(() => {
@ -52,8 +186,31 @@ onMounted(() => {
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table :data="state.tableData">
<BaseTablePage :tableOptions="state"> <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> <template v-slot:column>
<el-table-column type="index" align="center" label="序号" width="70" /> <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="personName" />
@ -78,7 +235,7 @@ onMounted(() => {
<span>{{ scope.row.overTemp ? '是' : '否' }}</span> <span>{{ scope.row.overTemp ? '是' : '否' }}</span>
</el-table-column> </el-table-column>
</template> </template>
</BaseTablePage> </BaseTablePage> -->
</div> </div>
</template> </template>

@ -4,7 +4,11 @@ import { getRecordPage, iuserAdd, IuserUpdate, iuserDelete, iuserGetById } from
import { baseModelOptions, baseFilterOptions, stausList } from './options' import { baseModelOptions, baseFilterOptions, stausList } from './options'
// const { proxy } = getCurrentInstance(); // 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({ const state = reactive({
baseModelOptions: baseModelOptions(), baseModelOptions: baseModelOptions(),
baseFilterOptions: baseFilterOptions(), baseFilterOptions: baseFilterOptions(),
@ -29,8 +33,8 @@ const state = reactive({
showEditBtn: false, showEditBtn: false,
showDelBtn: false showDelBtn: false
}, },
tableResult:{ tableResult: {
successCode:0 successCode: 0
}, },
permission: {// permission: {//
add: 'workAttendance:page:list', add: 'workAttendance:page:list',
@ -39,15 +43,16 @@ const state = reactive({
detail: 'workAttendance:page:list', detail: 'workAttendance:page:list',
}, },
pageInfo: { total: 0, base: { limit: 8, current: 1 } }, pageInfo: { total: 0, base: { limit: 8, current: 1 } },
baseQuery: { actionTimeAfter:formattedTime + ' 00:00:00',actionTimeBefore:formattedTime + ' 23:59:59' },
beforeFilter: (params) => { beforeFilter: (params) => {
//1. 使 //1. 使
return new Promise((resolve) => { return new Promise((resolve) => {
//dosomething... //dosomething...
resolve({ resolve({
attendanceType:params.attendanceType, attendanceType: params.attendanceType,
personName: params.personName, personName: params.personName,
actionTimeAfter:params.params && params.params.length>0?params.params[0]:null, actionTimeAfter: params.params && params.params.length > 0 ? params.params[0] : null,
actionTimeBefore:params.params && params.params.length>0?params.params[1]:null, actionTimeBefore: params.params && params.params.length > 0 ? params.params[1] : null,
}) })
}) })
}, },

@ -33,6 +33,11 @@ export const stausList = () => {
{ "value": 8890, "label": "异地打卡" } { "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 = () => { export const baseFilterOptions = () => {
return [ return [
{ {
@ -67,9 +72,10 @@ export const baseFilterOptions = () => {
tag: 'el-date-picker', tag: 'el-date-picker',
label: '时间:', label: '时间:',
key: 'params', key: 'params',
value: '', value: [formattedTime + ' 00:00:00', formattedTime + ' 23:59:59'],
default: '', value: [formattedTime + ' 00:00:00', formattedTime + ' 23:59:59'],
attribute: {//属性 attribute: {//属性
clearable:false,
valueFormat: "YYYY-MM-DD HH:mm:ss", valueFormat: "YYYY-MM-DD HH:mm:ss",
type: "datetimerange", type: "datetimerange",
rangeSeparator: "-", rangeSeparator: "-",

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

Loading…
Cancel
Save