From 91032708956ebf374463d7c4d26ff7d9fb0e5c81 Mon Sep 17 00:00:00 2001
From: hezhidong <1531792767@qq.com>
Date: Tue, 15 Apr 2025 17:04:08 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 27 ++++++
.hbuilderx/launch.json | 16 ++++
App.vue | 25 ++++++
api/baseUrl.js | 4 +
api/create.js | 25 ++++++
api/index.js | 44 ++++++++++
api/uploadImage.js | 42 +++++++++
com/index.js | 84 ++++++++++++++++++
components/form/date-li.vue | 103 ++++++++++++++++++++++
components/form/input-li.vue | 99 +++++++++++++++++++++
components/form/select-li.vue | 122 ++++++++++++++++++++++++++
index.html | 20 +++++
main.js | 107 +++++++++++++++++++++++
manifest.json | 73 ++++++++++++++++
pages.json | 55 ++++++++++++
pages/index/index.vue | 157 ++++++++++++++++++++++++++++++++++
static/logo.png | Bin 0 -> 4023 bytes
subPackages/sub/sub.vue | 17 ++++
uni.scss | 76 ++++++++++++++++
19 files changed, 1096 insertions(+)
create mode 100644 .gitignore
create mode 100644 .hbuilderx/launch.json
create mode 100644 App.vue
create mode 100644 api/baseUrl.js
create mode 100644 api/create.js
create mode 100644 api/index.js
create mode 100644 api/uploadImage.js
create mode 100644 com/index.js
create mode 100644 components/form/date-li.vue
create mode 100644 components/form/input-li.vue
create mode 100644 components/form/select-li.vue
create mode 100644 index.html
create mode 100644 main.js
create mode 100644 manifest.json
create mode 100644 pages.json
create mode 100644 pages/index/index.vue
create mode 100644 static/logo.png
create mode 100644 subPackages/sub/sub.vue
create mode 100644 uni.scss
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..96a7795
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+node_modules
+.DS_Store
+/dist
+unpackage
+uni_modules
+
+# local env files
+.env.local
+.env.*.local
+.env.development
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+.env.development
\ No newline at end of file
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..d4a72df
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-alipay" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..700aa9d
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,25 @@
+
+
+
diff --git a/api/baseUrl.js b/api/baseUrl.js
new file mode 100644
index 0000000..a98e357
--- /dev/null
+++ b/api/baseUrl.js
@@ -0,0 +1,4 @@
+
+const baseUrl = "http://192.168.31.166:8189"
+// const baseUrl = "http://192.168.31.166:8188"
+export default baseUrl
\ No newline at end of file
diff --git a/api/create.js b/api/create.js
new file mode 100644
index 0000000..1cb6706
--- /dev/null
+++ b/api/create.js
@@ -0,0 +1,25 @@
+/*首页*/
+import { request } from "./index.js";
+
+// 登录
+export function getToken(code){
+ return request({
+ method: "get",
+ url: "/user/getToken",
+ data: {
+ code
+ },
+ Header1: {
+
+ }
+ })
+}
+
+// 创建工单
+export function postCreatOrder(data){
+ return request({
+ method: "post",
+ url: "creatOrder/add",
+ data
+ })
+}
diff --git a/api/index.js b/api/index.js
new file mode 100644
index 0000000..4b1a765
--- /dev/null
+++ b/api/index.js
@@ -0,0 +1,44 @@
+// const baseUrl = "https://pandamimi.lzyyj.com/prod-api";
+// const baseUrl = "http://192.168.31.121:9221";
+
+import baseUrl from "./baseUrl.js"
+// const baseUrl = bootUrl
+export function request ( optaions ) {
+ let { url, method, data, header1 } = optaions
+ method = method || "GET"
+ data = data || {}
+ header1 = header1 || {
+ Authorization: uni.getStorageSync('token')
+ }
+ // console.log(com.getCacheToken("userInfo").token)
+ return new Promise((reslove,reject)=>{
+ uni.request({
+ url: baseUrl + url,
+ method,
+ header: header1,
+ data,
+ success: (res) => {
+ if(res.data.code == 401 ){
+ uni.showToast({ title: '登录已失效,请重新登录!', icon: 'none' });
+ uni.removeStorageSync('userInfo');
+ uni.removeStorageSync('token');
+ setTimeout(()=>{
+ uni.navigateTo({ url: '/pages/user/login' });
+ }, 1000);
+ }else if(res.data.code != 200){
+ reject(res)
+ uni.showToast({ title: res.data.msg, icon: 'none', duration: 2000 });
+ }else {
+ reslove(res.data)
+ }
+
+ },
+ fail: () => {
+ reject()
+ },
+ complete: () => {
+ uni.hideLoading()
+ }
+ })
+ })
+}
\ No newline at end of file
diff --git a/api/uploadImage.js b/api/uploadImage.js
new file mode 100644
index 0000000..b8b1af8
--- /dev/null
+++ b/api/uploadImage.js
@@ -0,0 +1,42 @@
+import baseUrl from "./baseUrl.js"
+
+export function uploadImage (urls,) {
+ return new Promise( (resovle, reject) =>{
+ let urlArr = []
+ for(let i = 0; i < urls.length; i ++){
+ uni.uploadFile({
+ url: baseUrl + '/file/upload',
+ fileName: 'file',
+ header: {
+ 'content-type': 'multipart/form-data'
+ },
+ fileType: "image", // 必填
+ filePath: urls[i],
+ success: (res) => {
+ urlArr.push(res.data)
+ if( urls.length == urlArr.length){
+ uni.hideLoading();
+ uni.showToast({ title: '上传成功', icon: 'success', duration: 2000 });
+ resovle(urlArr)
+ }
+ },
+ fail: (err) =>{
+ console.log('--------')
+ console.log(err)
+ uni.showToast({ title: '上传失败', icon: 'error', duration: 2000 });
+ uni.hideLoading();
+ uni.showModal({
+ title: '提示',
+ content: err.msg,
+ });
+ resovle([])
+ },
+ complete: () => {
+
+ }
+ });
+ }
+
+ })
+
+}
diff --git a/com/index.js b/com/index.js
new file mode 100644
index 0000000..7676293
--- /dev/null
+++ b/com/index.js
@@ -0,0 +1,84 @@
+
+/*
+ 表单验证
+ form为表单
+ rules为需要验证的表单
+ rules:{ name: '请输入名称' } name为需要验证的字段
+ */
+export function rulesFun ( form, rules ) {
+ console.log('-------------------------------')
+ let flage = true
+ let JSONrules = JSON.stringify(rules)
+ if(JSONrules !== JSON.stringify({})){
+ for( let key in rules){
+ if(Array.isArray( form[key] ) && form[key].length == 0 ){
+ uni.showToast({
+ title: rules[key],
+ })
+ flage = false
+ break;
+ }else if( !form[key] && form[key] !== 0 ){
+ uni.showToast({
+ title: rules[key],
+ })
+ flage = false
+ break;
+ }
+ }
+ }
+ return flage
+}
+
+/* 手机号验证 */
+export function rulesPhone ( phoneVal ) {
+ let phoneReg = /(^1\d{10}$)|(^[0-9]\d{7}$)/;
+ if(!phoneReg.test(phoneVal)) {
+ uni.showToast({
+ title: '请输入正确的手机号',
+ })
+ return false;
+ }else{
+ return true
+ }
+}
+
+/* 身份证验证 */
+export function rulesIdCard ( IdcardVal ) {
+ var idCardReg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;
+ if(!idCardReg.test(IdcardVal)) {
+ uni.showToast({
+ title: '身份证号码格式错误!',
+ })
+ return false;
+ } else{
+ return true
+ }
+}
+
+// 计算
+export function calculator ( startNum, endNum, operator = '+'){
+ if(operator == '+'){
+ return (Number(startNum * 1000) + Number(endNum * 1000)) / 1000
+ }else if( operator == '-' ){
+ return (Number(startNum * 1000) - Number(endNum * 1000)) / 1000
+ }else if( operator == '/' ){
+ return (Number(startNum * 1000) / Number(endNum * 1000)) / 1000
+ }else if( operator == '*' ){
+ return (Number(startNum * 1000) * Number(endNum * 1000)) / 1000
+ }
+}
+// timeStr表示时间 separator表示分隔符 type == yaer表示只返回年月日
+export function formatDate (timeStr = (new Date()), separator = '-', type){
+ const date = new Date(timeStr)
+ let yaer = date.getFullYear()
+ let month = date.getMonth() + 1
+ let day = date.getDate()
+ let hour = date.getHours()
+ let minute = date.getMinutes()
+ let second = date.getSeconds()
+ if(type == 'year'){
+ return yaer + separator + month + separator + day
+ }else {
+ return yaer + separator + month + separator + day + ' ' + hour + ':' + minute + ':' + second
+ }
+}
diff --git a/components/form/date-li.vue b/components/form/date-li.vue
new file mode 100644
index 0000000..1e6a753
--- /dev/null
+++ b/components/form/date-li.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+ * {{label}}
+
+ {{value}}
+ 请选择{{label}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/form/input-li.vue b/components/form/input-li.vue
new file mode 100644
index 0000000..8a41373
--- /dev/null
+++ b/components/form/input-li.vue
@@ -0,0 +1,99 @@
+
+
+-->
+
+
+ * {{ label }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/form/select-li.vue b/components/form/select-li.vue
new file mode 100644
index 0000000..989c897
--- /dev/null
+++ b/components/form/select-li.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ * {{ label }}
+
+
+
+ {{ array[index].name }}
+ 请选择{{label}}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..3cc0c5f
--- /dev/null
+++ b/main.js
@@ -0,0 +1,107 @@
+import App from './App'
+import Inputli from './components/form/input-li.vue';
+import Selectli from './components/form/select-li.vue';
+import Dateli from './components/form/date-li.vue';
+import { getToken } from './api/create.js'
+import { formatDate, calculator } from './com/index.js'
+
+// #ifndef VUE3
+import Vue from 'vue'
+Vue.config.productionTip = false
+Vue.prototype.a = '1234456'
+const msg = (title,icon = 'none', duration = 1500, mask = false, ) => {
+ //统一提示方便全局修改
+ if (Boolean(title) === false) {
+ return;
+ }
+ uni.showToast({
+ title,
+ duration,
+ mask,
+ icon
+ });
+}
+
+const setNavigationBar = ( title = '教育平台', backgroundColor = '#ffffff') =>{
+ my.setNavigationBar({
+ title,
+ backgroundColor
+ });
+}
+const navTo = (url, skip = 'navigateTo') =>{
+ uni[skip]({
+ url
+ });
+}
+const login = () =>{
+ return new Promise((reslove,reject)=>{
+ uni.getAuthCode({
+ success:(user)=>{
+ console.log(user)
+ getToken(user.authCode).then((res)=>{
+ if(res){
+ reslove(res.data)
+ console.log(res.data)
+ }
+ }).catch(err =>{
+ reject(err)
+ })
+ },
+ })
+ })
+
+}
+// 提示框 点击确定进入resolve 取消进入reject
+const showModel = (content) =>{
+ return new Promise((resolve, reject)=>{
+ uni.showModal({
+ title: '提示',
+ content: content,
+ cancelText: '取消',
+ confirmText: '确定',
+ success: function (res) {
+ if (res.confirm) {
+ console.log('用户点击确定');
+ resolve('affirm')
+ } else if (res.cancel) {
+ console.log('用户点击取消');
+ reject('cancal')
+ }
+ }
+ });
+ })
+}
+
+Vue.prototype.$navTo = navTo // 页面跳转
+Vue.prototype.$msg = msg
+Vue.prototype.$setNavigationBar = setNavigationBar
+Vue.prototype.$login = login
+Vue.prototype.$calculator = calculator // 计算数
+Vue.prototype.$formatDate = formatDate // 日期格式修改
+Vue.prototype.$showModel = showModel // 提示框
+
+
+
+Vue.component("Inputli",Inputli)
+Vue.component("Selectli",Selectli)
+Vue.component("Dateli",Dateli)
+
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+
+
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..f5ca3e6
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,73 @@
+{
+ "name": "template",
+ "appid": "__UNI__9F20DF1",
+ "description": "",
+ "versionName": "1.0.0",
+ "versionCode": "100",
+ "transformPx": false,
+ /* 5+App特有相关 */
+ "app-plus": {
+ "usingComponents": true,
+ "nvueStyleCompiler": "uni-app",
+ "compilerVersion": 3,
+
+ "splashscreen": {
+ "alwaysShowBeforeRender": true,
+ "waiting": true,
+ "autoclose": true,
+ "delay": 0
+ },
+ /* 模块配置 */
+ "modules": {},
+ /* 应用发布信息 */
+ "distribute": {
+ /* android打包配置 */
+ "android": {
+ "permissions": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios": {},
+ /* SDK配置 */
+ "sdkConfigs": {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp": {},
+ /* 小程序特有相关 */
+ "mp-weixin": {
+ "appid": "",
+ "setting": {
+ "urlCheck": false
+ },
+ "usingComponents": true
+ },
+ "mp-alipay": {
+ "usingComponents": true
+ },
+ "mp-baidu": {
+ "usingComponents": true
+ },
+ "mp-toutiao": {
+ "usingComponents": true
+ },
+ "uniStatistics": {
+ "enable": false
+ },
+ "vueVersion": "2"
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..bb63e2a
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,55 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ // 示例模版页面
+ {
+ "path": "pages/index/index",
+ "style": {
+ // 顶部标题字
+ "navigationBarTitleText": "uni-app",
+ // 开启下拉加载
+ "enablePullDownRefresh": true,
+ // 下拉的距离触发下拉事件
+ "pull-distance": 50,
+ // 设置背景颜色
+ "backgroundColor": "#ffffff",
+ // 上拉触底的距离
+ "onReachBottomDistance": 100
+ }
+ }
+ ],
+ "subPackages": [
+ {
+ "root":"subPackages",
+ "pages":[{
+ "path" : "sub/sub",
+ "style" :
+ {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+
+ }
+ ]
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {},
+ "uni-app": {
+ "scripts": {
+ "mp-dingtalk": {
+ "title": "钉钉小程序",
+ "env": {
+ "UNI_PLATFORM": "mp-alipay"
+ },
+ "define": {
+ "MP-DINGTALK": true
+ }
+ }
+ }
+ }
+}
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..b73c0cd
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/logo.png b/static/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5771e209bb677e2ebd5ff766ad5ee11790f305a
GIT binary patch
literal 4023
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
SYs}WS&%*SCNx89m_
+
+ 12355555555555
+
+
+
+
+
+
+
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..a05adb4
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
From 44cba1950d083bbf09a5f7068091293d3cfa931d Mon Sep 17 00:00:00 2001
From: hezhidong <1531792767@qq.com>
Date: Fri, 18 Apr 2025 18:01:03 +0800
Subject: [PATCH 2/3] 4.18
---
package.json | 5 +
pages.json | 47 +-
.../attendanceManagement.vue | 469 ++++++++++++++++++
pages/homePage/homePage.vue | 331 ++++++++++++
pages/index/index.vue | 6 +-
pages/salaryDetails/salaryDetails.vue | 260 ++++++++++
pages/sign/sign.vue | 216 ++++++++
static/WorkAtt.png | Bin 0 -> 656 bytes
static/arr.png | Bin 0 -> 484 bytes
static/money.png | Bin 0 -> 1732 bytes
10 files changed, 1327 insertions(+), 7 deletions(-)
create mode 100644 package.json
create mode 100644 pages/attendanceManagement/attendanceManagement.vue
create mode 100644 pages/homePage/homePage.vue
create mode 100644 pages/salaryDetails/salaryDetails.vue
create mode 100644 pages/sign/sign.vue
create mode 100644 static/WorkAtt.png
create mode 100644 static/arr.png
create mode 100644 static/money.png
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..6ea5c6e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "mini-smooth-signature": "^1.2.3"
+ }
+}
diff --git a/pages.json b/pages.json
index bb63e2a..898f92e 100644
--- a/pages.json
+++ b/pages.json
@@ -1,8 +1,23 @@
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
// 示例模版页面
+ // {
+ // "path": "pages/index/index",
+ // "style": {
+ // // 顶部标题字
+ // "navigationBarTitleText": "uni-app",
+ // // 开启下拉加载
+ // "enablePullDownRefresh": true,
+ // // 下拉的距离触发下拉事件
+ // "pull-distance": 50,
+ // // 设置背景颜色
+ // "backgroundColor": "#ffffff",
+ // // 上拉触底的距离
+ // "onReachBottomDistance": 100
+ // }
+ // },
{
- "path": "pages/index/index",
+ "path": "pages/homePage/homePage",
"style": {
// 顶部标题字
"navigationBarTitleText": "uni-app",
@@ -16,7 +31,35 @@
"onReachBottomDistance": 100
}
}
- ],
+ ,{
+ "path" : "pages/attendanceManagement/attendanceManagement",
+ "style" :
+ {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+
+ }
+ ,{
+ "path" : "pages/salaryDetails/salaryDetails",
+ "style" :
+ {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+
+ }
+
+ ,{
+ "path" : "pages/sign/sign",
+ "style" :
+ {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+
+ }
+ ],
"subPackages": [
{
"root":"subPackages",
diff --git a/pages/attendanceManagement/attendanceManagement.vue b/pages/attendanceManagement/attendanceManagement.vue
new file mode 100644
index 0000000..a80c2c5
--- /dev/null
+++ b/pages/attendanceManagement/attendanceManagement.vue
@@ -0,0 +1,469 @@
+
+
+
+
+
+ {{ selectedYear }}年{{
+ selectedMonth < 10 ? "0" + selectedMonth : selectedMonth
+ }}月
+
+
+ 月度
+
+
+
+
+ 打卡统计
+
+
+ 迟到
+ 4次
+
+
+ 严重迟到
+ 3次
+
+
+ 旷工迟到
+ 0次
+
+
+ 早退
+ 1天
+
+
+ 未打卡
+ 2次
+
+
+
+
+
+
+ 请假统计
+
+
+ 事假
+ 4次
+
+
+ 病假
+ 3次
+
+
+ 婚假
+ 0次
+
+
+ 产假
+ 1天
+
+
+ 陪产假
+ 2次
+
+
+ 丧假
+ 2次
+
+
+
+
+
+
+ 加班、调休统计
+
+
+ 节假日加班
+ 4次
+
+
+ 休息日加班
+ 3次
+
+
+ 工作日加班
+ 0次
+
+
+ 调休
+ 1天
+
+
+
+
+
+ 说明:请核实当月考勤记录,确认无误请签字确认
+
+
+
+
+
+ 员工签字
+ /保留员工签字
+
+
+
+
+
+
+ 签字确认
+
+
+
+
+ {{
+ currentStep === "year" ? "选择年份" : "选择月份"
+ }}
+
+
+
+
+
+ {{ year }}年
+
+
+
+
+
+
+
+
+ {{ tempSelectedYear }}年{{ month < 10 ? "0" + month : month }}月
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/homePage/homePage.vue b/pages/homePage/homePage.vue
new file mode 100644
index 0000000..d76e1a0
--- /dev/null
+++ b/pages/homePage/homePage.vue
@@ -0,0 +1,331 @@
+
+
+
+
+
+
+ {{ selectedYear }}年{{ selectedMonth < 10 ? '0' + selectedMonth : selectedMonth }}月考勤统计
+
+ 查看详情
+
+
+
+
+
+
+
+
+
+ {{ selectedYear }}年{{ selectedMonth < 10 ? '0' + selectedMonth : selectedMonth }}月工资条
+
+ ⚠
+ 工资表为系统自动生成,如有疑问请联系财务部门
+
+
+ 查看明细
+
+
+
+
+
+ {{ currentStep === 'year' ? '选择年份' : '选择月份' }}
+
+
+
+
+
+ {{ year }}年
+
+
+
+
+
+
+
+
+ {{ tempSelectedYear }}年{{ month < 10 ? '0' + month : month }}月
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/index.vue b/pages/index/index.vue
index b73c0cd..5666a47 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -8,12 +8,8 @@
-
+
-
-
-
-
diff --git a/pages/salaryDetails/salaryDetails.vue b/pages/salaryDetails/salaryDetails.vue
new file mode 100644
index 0000000..417d4ee
--- /dev/null
+++ b/pages/salaryDetails/salaryDetails.vue
@@ -0,0 +1,260 @@
+
+
+
+
+ 2025年04月实发工资
+ 3000.00
+ 感谢您为公司的付出,辛苦了
+
+
+
+
+ 收入项目
+
+
+ 基本工资
+ 2500
+
+
+ 年度绩效奖金
+ 500
+
+
+ 月度绩效奖金
+ 500
+
+
+ 其他奖金
+ 1000
+
+
+ 总经理补贴
+ 0
+
+
+ 交通补贴
+ 50
+
+
+ 其他补贴
+ 0
+
+
+ 工龄工资
+ 50
+
+
+ 加班工资
+ 0
+
+
+ 应发小计
+ 5000
+
+
+
+
+
+
+ 扣除项目
+
+
+ 年度绩效奖金
+ 2500
+
+
+ 月度绩效奖金
+ 500
+
+
+ 事假
+ 500
+
+
+ 病假
+ 1000
+
+
+ 婚假、丧假、陪产假
+ 0
+
+
+ 迟到、早退
+ 50
+
+
+ 签到、签退
+ 0
+
+
+ 缺卡
+ 50
+
+
+ 旷工
+ 0
+
+
+ 违纪
+ 0
+
+
+
+
+
+
+ 福利
+
+
+ 基本养老
+ 2500
+
+
+ 失业保险
+ 500
+
+
+ 基本医疗
+ 500
+
+
+ 大额医疗
+ 1000
+
+
+ 住房公积金
+ 0
+
+
+
+
+
+
+ 其他
+
+
+ 其他扣款
+ 2500
+
+
+ 个税
+ 500
+
+
+ 扣款小计
+ 2000
+
+
+
+
+
+ 备注
+
+
+
+
+
+
diff --git a/pages/sign/sign.vue b/pages/sign/sign.vue
new file mode 100644
index 0000000..ccfad5a
--- /dev/null
+++ b/pages/sign/sign.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+ 请在空白区域内横向签字
+
+ 清空
+ 确认
+
+
+
+
+
+
+
diff --git a/static/WorkAtt.png b/static/WorkAtt.png
new file mode 100644
index 0000000000000000000000000000000000000000..f469cb4a5fcc0b423e8880c013096ddbb67ae725
GIT binary patch
literal 656
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
a0sI4zKCM92Y&q}%0000
Date: Wed, 23 Apr 2025 18:00:35 +0800
Subject: [PATCH 3/3] 4.23
---
api/baseUrl.js | 4 +-
api/create.js | 30 +-
api/index.js | 92 +-
main.js | 41 +-
.../attendanceManagement.vue | 879 +++++++++---------
pages/homePage/homePage.vue | 22 +-
6 files changed, 609 insertions(+), 459 deletions(-)
diff --git a/api/baseUrl.js b/api/baseUrl.js
index a98e357..7a694cf 100644
--- a/api/baseUrl.js
+++ b/api/baseUrl.js
@@ -1,4 +1,4 @@
-const baseUrl = "http://192.168.31.166:8189"
-// const baseUrl = "http://192.168.31.166:8188"
+// 肖兴越开发环境
+const baseUrl = "https://paystubs.vip.cpolar.top"
export default baseUrl
\ No newline at end of file
diff --git a/api/create.js b/api/create.js
index 1cb6706..cccc390 100644
--- a/api/create.js
+++ b/api/create.js
@@ -1,25 +1,31 @@
/*首页*/
-import { request } from "./index.js";
+import { request, requestLogin } from "./index.js";
// 登录
-export function getToken(code){
- return request({
- method: "get",
- url: "/user/getToken",
+export function getToken(authCode){
+ return requestLogin({
+ method: "GET",
+ url: `/login?code=${authCode}`,
data: {
- code
},
Header1: {
}
})
}
-
-// 创建工单
-export function postCreatOrder(data){
+// 获取用户信息
+export function getUser(authCode){
return request({
- method: "post",
- url: "creatOrder/add",
- data
+ method: "get",
+ url: "/user",
+ data: {
+ },
})
}
+// 获取绩效考勤统计
+export function getPerformanceAttendanceApi(year,month){
+ return request({
+ method: "get",
+ url: `/performance/attendance/detail/${year}/${month}`,
+ })
+}
\ No newline at end of file
diff --git a/api/index.js b/api/index.js
index 4b1a765..dcec410 100644
--- a/api/index.js
+++ b/api/index.js
@@ -1,31 +1,101 @@
-// const baseUrl = "https://pandamimi.lzyyj.com/prod-api";
-// const baseUrl = "http://192.168.31.121:9221";
-import baseUrl from "./baseUrl.js"
+import allUrl from "./baseUrl.js"
// const baseUrl = bootUrl
export function request ( optaions ) {
let { url, method, data, header1 } = optaions
method = method || "GET"
data = data || {}
+ let newData = {}
+ for( let key in data){
+ if( data[key] !== null && data[key] !== ''){
+ newData[key] = data[key]
+ }
+ }
+ data = newData || {}
header1 = header1 || {
- Authorization: uni.getStorageSync('token')
+ Authorization: 'Bearer ' + uni.getStorageSync('token')
}
- // console.log(com.getCacheToken("userInfo").token)
return new Promise((reslove,reject)=>{
uni.request({
- url: baseUrl + url,
+ url: allUrl + url,
method,
header: header1,
data,
success: (res) => {
- if(res.data.code == 401 ){
- uni.showToast({ title: '登录已失效,请重新登录!', icon: 'none' });
+ if(res.data.errcode == 401 ){
+ uni.showToast({ title: '登录已失效,即将重新登录!', icon: 'none' });
uni.removeStorageSync('userInfo');
uni.removeStorageSync('token');
setTimeout(()=>{
- uni.navigateTo({ url: '/pages/user/login' });
+ uni.reLaunch({ url: '/pages/newHomePage/newHomePage' });
}, 1000);
- }else if(res.data.code != 200){
+ }else if(res.data.errcode != 0){
+ console.log('不正确走的')
+ reject(res)
+ uni.showToast({ title: res.data.errmsg, icon: 'none', duration: 2000 });
+ }else {
+ reslove(res.data)
+ }
+
+ },
+ fail: (err) => {
+ console.log('请求失败',err)
+ uni.hideLoading()
+ if(err.statusCode == 401 ){
+ uni.showToast({ title: '登录已失效,即将重新登录!', icon: 'none' });
+ uni.removeStorageSync('userInfo');
+ uni.removeStorageSync('token');
+ setTimeout(()=>{
+ uni.reLaunch({ url: '/pages/newHomePage/newHomePage' });
+ }, 1000);
+ }
+ if(err.data.errcode == 401 ){
+ uni.showToast({ title: '登录已失效,即将重新登录!', icon: 'none' });
+ uni.removeStorageSync('userInfo');
+ uni.removeStorageSync('token');
+ setTimeout(()=>{
+ uni.reLaunch({ url: '/pages/newHomePage/newHomePage' });
+ }, 1000);
+ }else{
+ uni.showToast({ title: err.data.errmsg, icon: 'none' });
+ }
+ reject()
+ },
+ complete: () => {
+ setTimeout(()=>{
+ uni.hideLoading()
+ }, 2000)
+ }
+ })
+ })
+}
+
+
+export function requestLogin ( optaions ) {
+ let { url, method, data } = optaions
+ method = method || "GET"
+ data = data || {}
+ let newData = {}
+ for( let key in data){
+ if( data[key] !== null && data[key] !== ''){
+ newData[key] = data[key]
+ }
+ }
+ data = newData || {}
+ return new Promise((reslove,reject)=>{
+ uni.request({
+ url: allUrl + url,
+ method,
+ data,
+ success: (res) => {
+ if(res.statusCode == 401 ){
+ uni.showToast({ title: '登录已失效,即将返回首页!', icon: 'none' });
+ uni.removeStorageSync('userInfo');
+ uni.removeStorageSync('token');
+ setTimeout(()=>{
+ uni.reLaunch({ url: '/pages/newHomePage/newHomePage' });
+ }, 1000);
+ }else if(res.statusCode != 200){
reject(res)
uni.showToast({ title: res.data.msg, icon: 'none', duration: 2000 });
}else {
@@ -41,4 +111,4 @@ export function request ( optaions ) {
}
})
})
-}
\ No newline at end of file
+}
diff --git a/main.js b/main.js
index 3cc0c5f..f9866a9 100644
--- a/main.js
+++ b/main.js
@@ -2,7 +2,7 @@ import App from './App'
import Inputli from './components/form/input-li.vue';
import Selectli from './components/form/select-li.vue';
import Dateli from './components/form/date-li.vue';
-import { getToken } from './api/create.js'
+import { getToken,getUser } from './api/create.js'
import { formatDate, calculator } from './com/index.js'
// #ifndef VUE3
@@ -33,23 +33,38 @@ const navTo = (url, skip = 'navigateTo') =>{
url
});
}
-const login = () =>{
- return new Promise((reslove,reject)=>{
+const login = () => {
+ // uni.showLoading({
+ // mask: true,
+ // title: '登录中...'
+ // })
+ return new Promise((reslove, reject) => {
uni.getAuthCode({
- success:(user)=>{
- console.log(user)
- getToken(user.authCode).then((res)=>{
- if(res){
- reslove(res.data)
- console.log(res.data)
+ success: (user) => {
+ getToken(user.authCode).then((res) => {
+ if (res.errcode == 0) {
+ uni.setStorageSync('token', res.result.token)
+ getUser().then(data => {
+ console.log(data)
+ uni.setStorageSync('user',data)
+ uni.hideLoading()
+ // uni.showToast({
+ // title: '登录成功',
+ // icon: 'success'
+ // })
+ })
+ reslove(res)
}
- }).catch(err =>{
- reject(err)
+ }).catch(err => {
+ uni.showToast({
+ title: '登录失败,服务器出错了',
+ icon: 'error'
+ })
})
},
})
})
-
+
}
// 提示框 点击确定进入resolve 取消进入reject
const showModel = (content) =>{
@@ -72,7 +87,7 @@ const showModel = (content) =>{
})
}
-Vue.prototype.$navTo = navTo // 页面跳转
+Vue.prototype.$navTo = navTo //
Vue.prototype.$msg = msg
Vue.prototype.$setNavigationBar = setNavigationBar
Vue.prototype.$login = login
diff --git a/pages/attendanceManagement/attendanceManagement.vue b/pages/attendanceManagement/attendanceManagement.vue
index a80c2c5..3b388c2 100644
--- a/pages/attendanceManagement/attendanceManagement.vue
+++ b/pages/attendanceManagement/attendanceManagement.vue
@@ -1,469 +1,516 @@
-
-
-
-
- {{ selectedYear }}年{{
- selectedMonth < 10 ? "0" + selectedMonth : selectedMonth
- }}月
-
-
- 月度
-
+
+
+
+
+ {{ selectedYear }}年{{ selectedMonth < 10 ? '0' + selectedMonth : selectedMonth }}月
+
+
+ 月度
+
-
-
- 打卡统计
-
-
- 迟到
- 4次
-
-
- 严重迟到
- 3次
-
-
- 旷工迟到
- 0次
-
-
- 早退
- 1天
-
-
- 未打卡
- 2次
-
-
-
+
+
+ 打卡统计
+
+
+ 迟到
+ {{ attendanceData.late }}次
+
+
+ 严重迟到
+ {{ attendanceData.seriousLate }}次
+
+
+ 旷工
+ {{ attendanceData.absenteeism }}次
+
+
+ 早退
+ {{ attendanceData.early }}次
+
+
+ 未打卡
+ {{ attendanceData.absenceCount }}次
+
+
+ 未签到签退
+ {{ attendanceData.missedCount }}次
+
+
+ 未提交日志
+ {{ attendanceData.missingLogCount }}次
+
+
+
-
-
- 请假统计
-
-
- 事假
- 4次
-
-
- 病假
- 3次
-
-
- 婚假
- 0次
-
-
- 产假
- 1天
-
-
- 陪产假
- 2次
-
-
- 丧假
- 2次
-
-
-
+
+
+ 请假统计
+
+
+ 事假
+ {{ attendanceData.personalLeave }}小时
+
+
+ 病假
+ {{ attendanceData.sickLeave }}天
+
+
+ 婚假
+ {{ attendanceData.marriageLeave }}天
+
+
+ 产假
+ {{ attendanceData.maternityLeave }}天
+
+
+ 陪产假
+ {{ attendanceData.paternityLeave }}天
+
+
+ 丧假
+ {{ attendanceData.bereavementLeave }}天
+
+
+ 年休假
+ {{ attendanceData.annualLeave }}天
+
+
+ 年休假(管理岗)
+ {{ attendanceData.managementAnnualLeave }}天
+
+
+
-
-
- 加班、调休统计
-
-
- 节假日加班
- 4次
-
-
- 休息日加班
- 3次
-
-
- 工作日加班
- 0次
-
-
+
+
+ 加班、调休统计
+
+
+ 节假日加班
+ {{ attendanceData.holidayOvertime }}小时
+
+
+ 休息日加班
+ {{ attendanceData.restdayOvertime }}小时
+
+
+ 工作日加班
+ {{ attendanceData.workdayOvertime }}小时
+
+
+
+
-
- 说明:请核实当月考勤记录,确认无误请签字确认
+
+ 说明:请核实当月考勤记录,确认无误请签字确认
-
+
-
-
- 员工签字
- /保留员工签字
-
+
+
+ 员工签字
+ /保留员工签字
+
-
-
+
+
-
- 签字确认
+
+ 签字确认
-
-
-
- {{
- currentStep === "year" ? "选择年份" : "选择月份"
- }}
+
+
+
+ {{ currentStep === 'year' ? '选择年份' : '选择月份' }}
-
-
-
-
- {{ year }}年
-
-
-
+
+
+
+
+ {{ year }}年
+
+
+
-
-
-
-
- {{ tempSelectedYear }}年{{ month < 10 ? "0" + month : month }}月
-
-
-
+
+
+
+
+ {{ tempSelectedYear }}年{{ month < 10 ? '0' + month : month }}月
+
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/pages/homePage/homePage.vue b/pages/homePage/homePage.vue
index d76e1a0..3540bb9 100644
--- a/pages/homePage/homePage.vue
+++ b/pages/homePage/homePage.vue
@@ -10,7 +10,7 @@
月度考勤
- {{ selectedYear }}年{{ selectedMonth < 10 ? '0' + selectedMonth : selectedMonth }}月考勤统计
+ {{ thisYear }}年{{ thisMonth }}月考勤统计
查看详情
@@ -71,24 +71,35 @@