diff --git a/.env.development b/.env.development index 00d46af..ad77649 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,4 @@ # 开发环境 # 请求接口地址 -# VITE_REQUEST_BASE_URL = https://36.112.48.190 -VITE_REQUEST_BASE_URL = http://10.75.15.249:8080 +VITE_REQUEST_BASE_URL = https://36.112.48.190 +#VITE_REQUEST_BASE_URL = http://10.75.15.249:8080 diff --git a/api/shengchan.js b/api/shengchan.js new file mode 100644 index 0000000..ffff675 --- /dev/null +++ b/api/shengchan.js @@ -0,0 +1,11 @@ +import { + https +} from '@/utils/http.js'; + +export function queryJinriShengchansj(orgCode) { // 获取今日生产数据 + return https({ + url: '/scdt.CxcScdtChart/cxcScdtChart/list', + method: 'get', + data: orgCode + }) +} \ No newline at end of file diff --git a/bpm/leaveApplication/index.vue b/bpm/leaveApplication/index.vue index 9e033aa..9470cc7 100644 --- a/bpm/leaveApplication/index.vue +++ b/bpm/leaveApplication/index.vue @@ -3,7 +3,7 @@ 申请信息 - 历史查询 + 历史查询 @@ -49,7 +49,7 @@ - 审批人: + {{examineleader}}: {{info.examineleader_dictText}} @@ -125,6 +125,7 @@ default: '' }, }) + const examineleader = ref('') const imageValue = ref([]) const ifShowFj = ref(false) const imageStyles = { @@ -144,6 +145,12 @@ id: props.dataId }).then((res) => { if (res.success) { + if (res.result.records[0].zwmc == '单位专家' || res.result.records[0].zwmc == '基层正职' || + res.result.records[0].zwmc == '高级主管') { + examineleader.value = '分管领导'; + } else { + examineleader.value = '审批领导'; + } info.value = res.result.records[0] // 构造 imageValue 数组 if (info.value.path) { @@ -195,7 +202,7 @@ qjQueryById() extActFlowData() }) - + const goToHis = () => { uni.navigateTo({ url: `/pages/views/renliziyuan/qingjiaxinxi/index?username=${info.value.username}` diff --git a/manifest.json b/manifest.json index 5de65f6..ca61bfb 100644 --- a/manifest.json +++ b/manifest.json @@ -1,123 +1,122 @@ { - "name" : "数智产销", - "appid" : "__UNI__9F097F0", - "description" : "", - "versionName" : "1.1.9", - "versionCode" : 20250302, - "transformPx" : false, - /* 5+App特有相关 */ - "app-plus" : { - "usingComponents" : true, - "nvueStyleCompiler" : "uni-app", - "compilerVersion" : 3, - "splashscreen" : { - "alwaysShowBeforeRender" : true, - "waiting" : true, - "autoclose" : true, - "delay" : 0 - }, - "compatible" : { - "ignoreVersion" : true - }, - /* 模块配置 */ - "modules" : { - "Geolocation" : {}, - "Fingerprint" : {}, - "Camera" : {}, - "Barcode" : {} - }, - /* 应用发布信息 */ - "distribute" : { - /* android打包配置 */ - "android" : { - "permissions" : [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ] - }, - /* ios打包配置 */ - "ios" : { - "dSYMs" : false - }, - /* SDK配置 */ - "sdkConfigs" : { - "ad" : {}, - "geolocation" : { - "system" : { - "__platform__" : [ "android" ] - } - } - }, - "icons" : { - "android" : { - "hdpi" : "unpackage/res/icons/72x72.png", - "xhdpi" : "unpackage/res/icons/96x96.png", - "xxhdpi" : "unpackage/res/icons/144x144.png", - "xxxhdpi" : "unpackage/res/icons/192x192.png" - }, - "ios" : { - "appstore" : "unpackage/res/icons/1024x1024.png", - "ipad" : { - "app" : "unpackage/res/icons/76x76.png", - "app@2x" : "unpackage/res/icons/152x152.png", - "notification" : "unpackage/res/icons/20x20.png", - "notification@2x" : "unpackage/res/icons/40x40.png", - "proapp@2x" : "unpackage/res/icons/167x167.png", - "settings" : "unpackage/res/icons/29x29.png", - "settings@2x" : "unpackage/res/icons/58x58.png", - "spotlight" : "unpackage/res/icons/40x40.png", - "spotlight@2x" : "unpackage/res/icons/80x80.png" - }, - "iphone" : { - "app@2x" : "unpackage/res/icons/120x120.png", - "app@3x" : "unpackage/res/icons/180x180.png", - "notification@2x" : "unpackage/res/icons/40x40.png", - "notification@3x" : "unpackage/res/icons/60x60.png", - "settings@2x" : "unpackage/res/icons/58x58.png", - "settings@3x" : "unpackage/res/icons/87x87.png", - "spotlight@2x" : "unpackage/res/icons/80x80.png", - "spotlight@3x" : "unpackage/res/icons/120x120.png" - } - } - } - } - }, - /* 快应用特有相关 */ - "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" : "3" + "name": "数智产销", + "appid": "__UNI__9F097F0", + "description": "", + "versionName": "1.1.11", + "versionCode": 20250303, + "transformPx": false, + /* 5+App特有相关 */ + "app-plus": { + "usingComponents": true, + "nvueStyleCompiler": "uni-app", + "compilerVersion": 3, + "splashscreen": { + "alwaysShowBeforeRender": true, + "waiting": true, + "autoclose": true, + "delay": 0 + }, + "compatible": { + "ignoreVersion": true + }, + /* 模块配置 */ + "modules": { + "Geolocation": {}, + "Fingerprint": {}, + "Camera": {}, + "Barcode": {} + }, + /* 应用发布信息 */ + "distribute": { + /* android打包配置 */ + "android": { + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios": { + "dSYMs": false + }, + /* SDK配置 */ + "sdkConfigs": { + "ad": {}, + "geolocation": { + "system": { + "__platform__": ["android"] + } + } + }, + "icons": { + "android": { + "hdpi": "unpackage/res/icons/72x72.png", + "xhdpi": "unpackage/res/icons/96x96.png", + "xxhdpi": "unpackage/res/icons/144x144.png", + "xxxhdpi": "unpackage/res/icons/192x192.png" + }, + "ios": { + "appstore": "unpackage/res/icons/1024x1024.png", + "ipad": { + "app": "unpackage/res/icons/76x76.png", + "app@2x": "unpackage/res/icons/152x152.png", + "notification": "unpackage/res/icons/20x20.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "proapp@2x": "unpackage/res/icons/167x167.png", + "settings": "unpackage/res/icons/29x29.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "spotlight": "unpackage/res/icons/40x40.png", + "spotlight@2x": "unpackage/res/icons/80x80.png" + }, + "iphone": { + "app@2x": "unpackage/res/icons/120x120.png", + "app@3x": "unpackage/res/icons/180x180.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "notification@3x": "unpackage/res/icons/60x60.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "settings@3x": "unpackage/res/icons/87x87.png", + "spotlight@2x": "unpackage/res/icons/80x80.png", + "spotlight@3x": "unpackage/res/icons/120x120.png" + } + } + } + } + }, + /* 快应用特有相关 */ + "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": "3" } -/* 模块配置 */ - +/* 模块配置 */ \ No newline at end of file diff --git a/pages.json b/pages.json index 9987e01..0092067 100644 --- a/pages.json +++ b/pages.json @@ -26,6 +26,12 @@ "navigationStyle": "custom" } }, + { + "path": "pages/tab/product", + "style": { + "navigationStyle": "custom" + } + }, { "path": "pages/tab/my", "style": { @@ -110,14 +116,6 @@ "navigationBarTextStyle": "white" } }, - { - "path": "pages/leave/application", - "style": { - "navigationBarTitleText": "请假申请", - "enablePullDownRefresh": false, - "navigationBarTextStyle": "white" - } - }, { "path": "pages/checkin/index", "style": { @@ -256,6 +254,14 @@ "navigationBarTitleText": "请假详情", "navigationBarTextStyle": "white" } + }, + { + "path": "pages/views/renliziyuan/qingjiaxinxi/application", + "style": { + "navigationBarTitleText": "请假申请", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } } ], "tabBar": { @@ -270,17 +276,23 @@ "iconPath": "static/tab/index1.png", "selectedIconPath": "static/tab/index2.png" }, + { - "text": "任务", - "pagePath": "pages/task/todotask", - "iconPath": "static/tab/office1.png", - "selectedIconPath": "static/tab/office2.png" + "text": "生产", + "pagePath": "pages/tab/product", + "iconPath": "/static/tab/product.png", + "selectedIconPath": "/static/tab/product1.png" }, { "text": "办公", "pagePath": "pages/tab/office", - "iconPath": "static/tab/product1.png", - "selectedIconPath": "static/tab/product2.png" + "iconPath": "static/tab/OA.png", + "selectedIconPath": "static/tab/OA1.png" + }, { + "text": "任务", + "pagePath": "pages/task/todotask", + "iconPath": "static/tab/office1.png", + "selectedIconPath": "static/tab/office2.png" }, { "text": "我的", diff --git a/pages/login/login.vue b/pages/login/login.vue index a3df2cb..fd2b532 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -202,7 +202,6 @@ } } } - console.log(deviceIp) return deviceIp; // #endif } diff --git a/pages/product/index.vue b/pages/product/index.vue index 1dccfc7..33539f0 100644 --- a/pages/product/index.vue +++ b/pages/product/index.vue @@ -1,32 +1,234 @@ \ No newline at end of file diff --git a/pages/tab/product.vue b/pages/tab/product.vue index ee9359d..210ca30 100644 --- a/pages/tab/product.vue +++ b/pages/tab/product.vue @@ -1,140 +1,11 @@ \ No newline at end of file diff --git a/pages/leave/application.vue b/pages/views/renliziyuan/qingjiaxinxi/application.vue similarity index 96% rename from pages/leave/application.vue rename to pages/views/renliziyuan/qingjiaxinxi/application.vue index cca4f36..1854a6c 100644 --- a/pages/leave/application.vue +++ b/pages/views/renliziyuan/qingjiaxinxi/application.vue @@ -51,10 +51,10 @@ - + - 审批领导: + {{examineleader}}: @@ -155,8 +155,8 @@ /**审批领导*/ const typeArr = ref([]) const typeIndex = ref(null) - /**判断是否显示审批领导字段*/ - const ifShow = ref(true) + /**判断显示审批 / 分管 领导*/ + const examineleader = ref(true) /**职位层级*/ const zwcj = ref('') /**出发地*/ @@ -205,10 +205,8 @@ if (!type.value) return proxy.$toast('请选择请假类型') if (!beginTime.value) return proxy.$toast('请选择开始时间') if (!endTime.value) return proxy.$toast('请选择结束时间') - if (ifShow.value) { - if (typeIndex.value == null) { //副职、员工需要选择审批领导 - return proxy.$toast('请选择审批领导') - } + if (typeIndex.value == null) { //副职、员工需要选择审批领导 + return proxy.$toast('请选择' + examineleader.value) } if (!departure.value.trim()) return proxy.$toast('请输入出发地') if (!destination.value.trim()) return proxy.$toast('请输入目的地') @@ -270,7 +268,9 @@ typeArr.value = res.result.list zwcj.value = res.result.zwmc if (zwcj.value == '单位专家' || zwcj.value == '基层正职' || zwcj.value == '高级主管') { - ifShow.value = false; + examineleader.value = '分管领导'; + }else{ + examineleader.value = '审批领导'; } } else { proxy.$toast(res.message); diff --git a/pages/views/zhongheguanli/zhiban/index.vue b/pages/views/zhongheguanli/zhiban/index.vue index 84ddae1..a2cf23e 100644 --- a/pages/views/zhongheguanli/zhiban/index.vue +++ b/pages/views/zhongheguanli/zhiban/index.vue @@ -120,43 +120,50 @@ \ No newline at end of file diff --git a/static/tab/OA.png b/static/tab/OA.png new file mode 100644 index 0000000..f52b601 Binary files /dev/null and b/static/tab/OA.png differ diff --git a/static/tab/product2.png b/static/tab/OA1.png similarity index 100% rename from static/tab/product2.png rename to static/tab/OA1.png diff --git a/static/tab/product.png b/static/tab/product.png index 7272719..8e39f73 100644 Binary files a/static/tab/product.png and b/static/tab/product.png differ diff --git a/static/tab/product1.png b/static/tab/product1.png index f52b601..aa176ca 100644 Binary files a/static/tab/product1.png and b/static/tab/product1.png differ diff --git a/utils/dateTime.js b/utils/dateTime.js new file mode 100644 index 0000000..9095266 --- /dev/null +++ b/utils/dateTime.js @@ -0,0 +1,59 @@ +// 日期格式化函数 by liaody 2025-3-5 +// 使用示例 +///const now = new Date(); +//const formattedDate = formatDate(now); +//console.log(formattedDate); + +function formatDate(date, format = 'YYYY-MM-DD') { + if (!(date instanceof Date)) { + date = new Date(date); + } + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + const hour = String(date.getHours()).padStart(2, '0'); + const minute = String(date.getMinutes()).padStart(2, '0'); + const second = String(date.getSeconds()).padStart(2, '0'); + + return format + .replace('YYYY', year) + .replace('MM', month) + .replace('DD', day) + .replace('HH', hour) + .replace('mm', minute) + .replace('ss', second); +} + + +// 计算两个日期之间相差的天数 +// 使用示例 +// const dateA = '2025-01-01'; +// const dateB = '2025-01-10'; +// const daysDiff = getDaysDifference(dateA, dateB); +// console.log(daysDiff); +function getDaysDifference(date1, date2) { + const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 + const firstDate = new Date(date1); + const secondDate = new Date(date2); + const diffDays = Math.round(Math.abs((firstDate - secondDate) / oneDay)); + return diffDays; +} + +// 使用示例 +// const startDate = '2025-03-01'; +// const daysToAdd = 5; +// const futureDate = getDateAfterDays(startDate, daysToAdd); +// const formattedFutureDate = formatDate(futureDate); +// console.log(formattedFutureDate); +// 获取指定日期之后 n 天的日期 +function getDateAfterDays(date, days) { + const newDate = new Date(date); + newDate.setDate(newDate.getDate() + days); + return newDate; +} + +export { + formatDate, + getDateAfterDays, + getDaysDifference +} \ No newline at end of file