提交 425a9e06 authored 作者: lidongxu's avatar lidongxu

feat(system/attendance): 考勤规则迁移完成

同上
上级 e300685e
......@@ -2,10 +2,10 @@
VITE_APP_TITLE = 王小卤-链路中心
# 基地址
# VITE_APP_BASE_API = '/dev-api'
VITE_APP_BASE_API = '/dev-api'
# VITE_APP_BASE_API = '/qllan'
# VITE_APP_BASE_API = '/bclan'
VITE_APP_BASE_API = '/home'
# VITE_APP_BASE_API = '/home'
# 开发环境配置
VITE_APP_ENV = 'development'
......
......@@ -13,6 +13,7 @@ export * from './monitor/online'
export * from './monitor/server'
export * from './system/dict/data'
export * from './system/dict/type'
export * from './system/attendance'
export * from './system/config'
export * from './system/dept'
export * from './system/logininfor'
......@@ -21,6 +22,5 @@ export * from './system/notice'
export * from './system/operlog'
export * from './system/post'
export * from './system/role'
export * from './system/rule'
export * from './system/user'
export * from './tool/gen'
......@@ -59,9 +59,10 @@
margin: 0 auto;
display: flex;
flex-direction: column;
height: 60vh;
height: 80vh;
padding: 20px;
.el-dialog__header{
.el-dialog__header {
padding-top: 10px;
height: 40px;
}
......@@ -69,6 +70,18 @@
.el-dialog__body {
flex: 1;
height: calc(50vh - 40px - 32px);
overflow-y: scroll;
/* 灰色滚动条背景 */
&::-webkit-scrollbar-track {
background-color: transparent;
}
.el-form {
margin-top: 20px;
}
// margin-top: 20px;
}
}
......@@ -116,7 +129,7 @@
// 覆盖默认样式
.el-select {
width: 215px;
width: 100%;
}
.el-tabs {
......@@ -136,3 +149,11 @@
font-size: var(--xl-fontsize) !important;
}
}
@media (max-width: 1400px) {
.el-form-item {
margin-bottom: 20px !important;
}
}
\ No newline at end of file
......@@ -130,7 +130,7 @@ aside {
align-items: center;
padding: 20px;
>div:first-of-type {
>.container {
width: 100%;
padding: 20px;
background-color: var(--el-bg-color-overlay);
......
<!-- 可拖拽的小球 封装 -->
<template>
<div>
<div ref="levitatedSphere"
class="wrap"
:style="{
......@@ -19,7 +18,6 @@
size="300px">
<slot></slot>
</el-drawer>
</div>
</template>
<script setup>
......@@ -118,6 +116,7 @@ const handleClick = () => {
align-items: center;
transition: all 0.5s;
font-size: 20px;
padding: 0;
}
::v-deep(.el-drawer__body) {
......
......@@ -13,6 +13,7 @@ export function generatorDayList(startDate, endDate) {
}
return dateArr;
}
/**
* 格式化时间,月日时分秒前面补零
* @param {*} cellValue 时间
......@@ -74,7 +75,12 @@ export function formatTime(time, option) {
}
}
// 日期格式化
/**
* 日期格式化
* @param {*} time 时间
* @param {*} pattern 格式化格式{y}-{m}-{d} {h}:{i}:{s}
* @returns
*/
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
......@@ -130,31 +136,31 @@ export function getTime(type) {
/**
* 时间后补 0 格式 例如:09:00 转成 09:00:00
* @param {*} s
* @param {*} time 时间字符串
* @returns
*/
export function timeAddZero(s) {
if (s === null || s === '' || s === undefined) return s
if (s.split(":").length === 3) return s
return s + ':00'
export function timeAddZero(time) {
if (time === null || time === '' || time === undefined) return time
if (time.split(":").length === 3) return time
return time + ':00'
}
/**
* 时间去 0 格式,例如:09:00:00 转成 09:00
* @param {*} s
* @param {*} time 时间字符串
* @returns
*/
export function timeDelZero(s) {
if (s === null || s === '' || s === undefined) return '00:00'
if (s.split(":").length === 2) return s
return s.split(":")[0] + ':' + s.split(":")[1]
export function timeDelZero(time) {
if (time === null || time === '' || time === undefined) return '00:00'
if (time.split(":").length === 2) return time
return time.split(":")[0] + ':' + time.split(":")[1]
}
/**
* 判断开始时间小于指定时间范围
* @param {*} startTime ["00:00:00", "02:00:00"] 时间数组
* @param {*} endTime 单个要判断的时间
* @returns
* @returns boolean
*/
export function checkStartLessEndTime(startTime, endTime) {
if (startTime === null || startTime?.length === 0 || endTime === null) return true
......@@ -214,3 +220,13 @@ export function addDateRange(params, dateRange, propName) {
return search;
}
/**
* 生成唯一字符串
* @returns {string}
*/
export function createUniqueString() {
const timestamp = +new Date() + ''
const randomNum = parseInt((1 + Math.random()) * 65536) + ''
return (+(randomNum + timestamp)).toString(32)
}
\ No newline at end of file
......@@ -13,65 +13,6 @@ export * from './ruoyi'
export * from './scroll-to'
export * from './theme'
export * from './validate'
import { parseTime } from './date'
/**
* 表格时间格式化
*/
export function formatDate(cellValue) {
if (cellValue == null || cellValue == "") return "";
var date = new Date(cellValue)
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}
/**
* @param {number} time
* @param {string} option
* @returns {string}
*/
export function formatTime(time, option) {
if (('' + time).length === 10) {
time = parseInt(time) * 1000
} else {
time = +time
}
const d = new Date(time)
const now = Date.now()
const diff = (now - d) / 1000
if (diff < 30) {
return '刚刚'
} else if (diff < 3600) {
// less 1 hour
return Math.ceil(diff / 60) + '分钟前'
} else if (diff < 3600 * 24) {
return Math.ceil(diff / 3600) + '小时前'
} else if (diff < 3600 * 24 * 2) {
return '1天前'
}
if (option) {
return parseTime(time, option)
} else {
return (
d.getMonth() +
1 +
'月' +
d.getDate() +
'日' +
d.getHours() +
'时' +
d.getMinutes() +
'分'
)
}
}
/**
* @param {string} url
......@@ -212,17 +153,7 @@ export function toggleClass(element, className) {
element.className = classString
}
/**
* @param {string} type
* @returns {Date}
*/
export function getTime(type) {
if (type === 'start') {
return new Date().getTime() - 3600 * 1000 * 24 * 90
} else {
return new Date(new Date().toDateString())
}
}
/**
* @param {Function} func
......@@ -295,15 +226,6 @@ export function uniqueArr(arr) {
return Array.from(new Set(arr))
}
/**
* @returns {string}
*/
export function createUniqueString() {
const timestamp = +new Date() + ''
const randomNum = parseInt((1 + Math.random()) * 65536) + ''
return (+(randomNum + timestamp)).toString(32)
}
/**
* Check if an element has a class
* @param {HTMLElement} elm
......
......@@ -102,3 +102,16 @@ export function toFixed2(num) {
if (num === null || num === undefined) return '0'
return Number(num).toFixed(2)
}
/**
* 随机生成 6 位数字和大写字母组合
* @returns
*/
export function randomCode() {
const str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
let code = ''
for (let i = 0; i < 6; i++) {
code += str.charAt(Math.floor(Math.random() * str.length))
}
return code
}
\ No newline at end of file
<template>
<div class="app-container">
<div class="container">
<el-tabs v-model="activeName"
class="tabs">
<el-tab-pane v-for="item in list"
......@@ -11,6 +12,7 @@
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script setup>
......@@ -61,7 +63,7 @@ provide('activeName', activeName);
width: 100%;
margin-top: 20px;
.chart{
.chart {
flex: 1;
display: flex;
flex-direction: column;
......
<template>
<div class="app-container">
<el-row :gutter="20"
class="client-fix-height">
class="client-fix-height container">
<!--商品分类-->
<category-tree :options="tagsOptions"
:defaultProps="defaultProps"
......@@ -25,8 +25,7 @@
<template #buttons>
<el-button type="primary"
icon="Plus"
@click="handleAdd"
v-hasPermi="['gen:info:add']">新增</el-button>
@click="handleAdd">新增</el-button>
</template>
</category-tree>
<el-col :span="10"
......
<template>
<div class="app-container">
<el-row :gutter="20"
class="client-fix-height">
class="client-fix-height container">
<!--商品分类-->
<category-tree :options="seriesOptions"
:defaultProps="defaultProps"
......@@ -60,30 +60,25 @@
<el-table v-loading="loading"
:data="productList">
<el-table-column label="商品编码"
align="left"
key="prdCode"
prop="prdCode"
v-if="columns[0].visible" />
<el-table-column label="商品名字"
align="left"
key="prdName"
prop="prdName"
v-if="columns[1].visible"
:show-overflow-tooltip="true" />
<el-table-column label="系列名字"
align="left"
key="series"
prop="series"
v-if="columns[2].visible"
:show-overflow-tooltip="true" />
<el-table-column label="条码"
align="left"
key="prdSpec"
prop="prdSpec"
v-if="columns[3].visible"
:show-overflow-tooltip="true" />
<el-table-column label="售卖状态"
align="center"
key="saleStatus"
v-if="columns[4].visible">
<template v-slot="scope">
......@@ -94,7 +89,6 @@
</template>
</el-table-column>
<el-table-column label="操作"
align="center"
class-name="small-padding fixed-width"
v-if="columns[5].visible">
<template slot-scope="scope">
......
<template>
<div class="app-container">
<!-- 套表 Item -->
<div class="excel_charts_item"
<div class="excel_charts_item container"
v-for="item, index in platformSalesList">
<!-- 查询表单 -->
<el-form :model="item.queryParams"
......@@ -636,7 +636,6 @@ init()
.el-form-item {
margin-bottom: 0;
}
}
/* 新增套表 */
......
<template>
<div class="app-container">
<div class="content">
<div class="content container">
<!-- 搜索表单 -->
<el-form :model="queryParams"
inline
......
<template>
<div class="app-container">
<div class="container">
<panel-group @handleSetLineChartData="handleSetLineChartData" />
<common-menu />
<el-row :gutter="20"
......@@ -33,6 +34,7 @@
</el-col>
</el-row>
</div>
</div>
</template>
<script setup>
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-row>
<el-col :span="24"
class="card-box">
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true">
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-row>
<el-col :span="12"
class="card-box">
......
差异被折叠。
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......@@ -164,7 +164,6 @@
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title"
v-model="open"
width="500px"
append-to-body>
<el-form ref="configRef"
:model="form"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......@@ -109,7 +109,6 @@
<!-- 添加或修改部门对话框 -->
<el-dialog :title="title"
v-model="open"
width="600px"
append-to-body>
<el-form ref="deptRef"
:model="form"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="字典名称" prop="dictName">
<el-input
......@@ -141,7 +141,7 @@
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-dialog :title="title" v-model="open" append-to-body>
<el-form ref="dictRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="字典名称" prop="dictName">
<el-input v-model="form.dictName" placeholder="请输入字典名称" />
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......@@ -123,7 +123,6 @@
<!-- 添加或修改菜单对话框 -->
<el-dialog :title="title"
v-model="open"
width="680px"
append-to-body>
<el-form ref="menuRef"
:model="form"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......@@ -142,7 +142,6 @@
<!-- 添加或修改公告对话框 -->
<el-dialog :title="title"
v-model="open"
width="780px"
append-to-body>
<el-form ref="noticeRef"
:model="form"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......@@ -140,7 +140,6 @@
<!-- 添加或修改岗位对话框 -->
<el-dialog :title="title"
v-model="open"
width="500px"
append-to-body>
<el-form ref="postRef"
:model="form"
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
v-show="showSearch"
......@@ -178,7 +178,6 @@
<!-- 添加或修改角色配置对话框 -->
<el-dialog :title="title"
v-model="open"
width="500px"
append-to-body>
<el-form ref="roleRef"
:model="form"
......@@ -249,7 +248,6 @@
<!-- 分配角色数据权限对话框 -->
<el-dialog :title="title"
v-model="openDataScope"
width="500px"
append-to-body>
<el-form :model="form"
label-width="80px">
......@@ -643,3 +641,15 @@
getList();
</script>
<style scoped
lang="scss">
.el-tree {
height: 210px;
overflow-y: scroll;
/* 灰色滚动条背景 */
&::-webkit-scrollbar-track {
background-color: transparent;
}
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<el-row :gutter="20" class="client-fix-height">
<el-row :gutter="20" class="client-fix-height container">
<!--部门数据-->
<category-tree :options="deptOptions"
:defaultProps="{ label: 'label', children: 'children' }"
......@@ -211,7 +211,6 @@
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title"
v-model="open"
width="600px"
append-to-body>
<el-form :model="form"
:rules="rules"
......@@ -350,7 +349,6 @@
<!-- 用户导入对话框 -->
<el-dialog :title="upload.title"
v-model="upload.open"
width="400px"
append-to-body>
<el-upload ref="uploadRef"
:limit="1"
......
<template>
<div class="app-container">
<el-row :gutter="20">
<el-row :gutter="20" class="container">
<el-col :span="6"
:xs="24">
<el-card class="box-card">
......
<template>
<div class="app-container">
<div>
<div class="container">
<el-form :model="queryParams"
ref="queryRef"
:inline="true"
......@@ -173,7 +173,6 @@
<!-- 预览界面 -->
<el-dialog :title="preview.title"
v-model="preview.open"
width="80%"
top="5vh"
append-to-body
class="scrollbar">
......
......@@ -32,7 +32,8 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/qllan/, '')
},
'/bclan': {
target: 'http://192.168.141.188:8080',
// target: 'http://192.168.141.188:8080',
target: 'http://192.168.204.205:8080',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/bclan/, '')
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论