From 0187cbec681fffcd6a77190b5ed35d185d5bcfcb Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 14 一月 2026 13:37:04 +0800
Subject: [PATCH] 1
---
.gitignore | 1
pages/MJGL/mujubaoyangjiludan/Sc_MouldMaintainBill.vue | 2
pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue | 2
utils/WebSocketServices.js | 65 ++
pages.json | 14
utils/BasicInfo.js | 37 +
pages/ZLGL/style/MJListStyle.scss | 193 ++++++
pages/index/tab4.vue | 14
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackBill/OA_ErrMsgBackBill.vue | 2
App.vue | 9
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue | 2
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackReceiveBill/OA_ErrMsgBackReceiveBill.vue | 2
utils/common.js | 15
pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList.vue | 483 +++++++++++++++++
pages/ZLGL/style/MJBillStyle.scss | 310 +++++++++++
pages/ZLGL/OA_WorkLink/OA_WorkLinkBill.vue | 474 ++++++++++++++++
manifest.json | 10
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue | 2
pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill.vue | 3
pages/ZLGL/AanDengHujiao/OA_ErrMsgBackSignBill/OA_ErrMsgBackSignBill.vue | 2
pages/index/login.vue | 8
21 files changed, 1,634 insertions(+), 16 deletions(-)
diff --git a/.gitignore b/.gitignore
index f8d66e1..b99a29d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
node_modules
/package-lock.json
/unpackage
+
diff --git a/App.vue b/App.vue
index c4c1fff..0e962d5 100644
--- a/App.vue
+++ b/App.vue
@@ -11,6 +11,15 @@
},
onShow: function() {
console.log('App Show')
+ // let content = "鎮ㄦ湁涓�鏉℃柊鐨勬秷鎭紒";
+ // let options = {
+ // title: "閫氱煡鏍囬",
+ // cover: false, // 鏄惁瑕嗙洊涓婁竴娆$殑閫氱煡
+ // when: new Date() // 閫氱煡鏄剧ず鏃堕棿
+ // };
+ // let payload = JSON.stringify({ id: "123", key: "value" });
+
+ // plus.push.createMessage(content, payload, options);
},
onHide: function() {
console.log('App Hide')
diff --git a/manifest.json b/manifest.json
index 1cbe8d4..10b5c50 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
"name" : "鏅轰簯LMES",
"appid" : "__UNI__B002F49",
"description" : "",
- "versionName" : "2.0.46",
- "versionCode" : 246,
+ "versionName" : "2.0.52",
+ "versionCode" : 252,
"transformPx" : false,
/* 5+App鐗规湁鐩稿叧 */
"app-plus" : {
@@ -21,7 +21,8 @@
"Camera" : {},
"Contacts" : {},
"Bluetooth" : {},
- "Barcode" : {}
+ "Barcode" : {},
+ "Push" : {}
},
/* 搴旂敤鍙戝竷淇℃伅 */
"distribute" : {
@@ -57,7 +58,8 @@
},
/* SDK閰嶇疆 */
"sdkConfigs" : {
- "ad" : {}
+ "ad" : {},
+ "push" : {}
},
"icons" : {
"android" : {
diff --git a/pages.json b/pages.json
index 2bf5370..c6105d1 100644
--- a/pages.json
+++ b/pages.json
@@ -1548,6 +1548,20 @@
{
"navigationBarTitleText" : "鍣ㄥ叿缁翠慨楠屾敹鍗曠紦瀛�"
}
+ },
+ {
+ "path" : "pages/ZLGL/OA_WorkLink/OA_WorkLinkBill",
+ "style" :
+ {
+ "navigationBarTitleText" : "宸ヤ綔鑱旂郴鍗�"
+ }
+ },
+ {
+ "path" : "pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList",
+ "style" :
+ {
+ "navigationBarTitleText" : "宸ヤ綔鑱旂郴鍗曞垪琛�"
+ }
}
],
diff --git a/pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill.vue b/pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill.vue
index a651419..63cf5a0 100644
--- a/pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill.vue
+++ b/pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill.vue
@@ -424,9 +424,6 @@
message: err
})
}
-
-
-
},
toCheckFile() {
if (this.hform.HEquipID == 0) {
diff --git a/pages/MJGL/mujubaoyangjiludan/Sc_MouldMaintainBill.vue b/pages/MJGL/mujubaoyangjiludan/Sc_MouldMaintainBill.vue
index be9739d..37d6acd 100644
--- a/pages/MJGL/mujubaoyangjiludan/Sc_MouldMaintainBill.vue
+++ b/pages/MJGL/mujubaoyangjiludan/Sc_MouldMaintainBill.vue
@@ -273,7 +273,6 @@
import {
MpaasScan
} from "@/utils/mpaasScan.js"
- import "@/pages/MJGL/style/MJBillStyle.scss"
import {
getUserInfo
} from "../../../utils/auth";
@@ -869,4 +868,5 @@
</script>
<style lang="scss">
+ @import "@/pages/MJGL/style/MJBillStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue b/pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue
index 6d8027b..792f7d2 100644
--- a/pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue
+++ b/pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue
@@ -309,7 +309,6 @@
import {
MpaasScan
} from "@/utils/mpaasScan.js"
- import "@/pages/MJGL/style/MJBillStyle.scss"
import {
getUserInfo
} from "../../../utils/auth";
@@ -951,4 +950,5 @@
</script>
<style lang="scss">
+ @import "@/pages/MJGL/style/MJBillStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackBill/OA_ErrMsgBackBill.vue b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackBill/OA_ErrMsgBackBill.vue
index 5b4afdd..48535d4 100644
--- a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackBill/OA_ErrMsgBackBill.vue
+++ b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackBill/OA_ErrMsgBackBill.vue
@@ -277,7 +277,6 @@
import {CommonUtils} from "@/utils/common";
import getDateTime from '@/utils/getdateTime.js';
import {getUserInfo} from "../../../../utils/auth";
- import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
export default {
data() {
return {
@@ -1040,4 +1039,5 @@
</script>
<style lang="scss">
+ @import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue
index 977fc23..cad1a85 100644
--- a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue
+++ b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackCheckBill/OA_ErrMsgBackCheckBill.vue
@@ -232,7 +232,6 @@
import {
getUserInfo
} from "../../../../utils/auth";
- import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
export default {
data() {
return {
@@ -1020,4 +1019,5 @@
</script>
<style lang="scss">
+ @import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue
index dc0a762..1eb2a83 100644
--- a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue
+++ b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackHandleBill/OA_ErrMsgBackHandleBill.vue
@@ -239,7 +239,6 @@
import {
getUserInfo
} from "../../../../utils/auth";
- import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
export default {
data() {
return {
@@ -1044,4 +1043,5 @@
</script>
<style lang="scss">
+ @import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackReceiveBill/OA_ErrMsgBackReceiveBill.vue b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackReceiveBill/OA_ErrMsgBackReceiveBill.vue
index aaff83c..1d9f27f 100644
--- a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackReceiveBill/OA_ErrMsgBackReceiveBill.vue
+++ b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackReceiveBill/OA_ErrMsgBackReceiveBill.vue
@@ -240,7 +240,6 @@
import {
getUserInfo
} from "../../../../utils/auth";
- import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
export default {
data() {
return {
@@ -905,4 +904,5 @@
</script>
<style lang="scss">
+ @import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackSignBill/OA_ErrMsgBackSignBill.vue b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackSignBill/OA_ErrMsgBackSignBill.vue
index d9c5c84..1025f80 100644
--- a/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackSignBill/OA_ErrMsgBackSignBill.vue
+++ b/pages/ZLGL/AanDengHujiao/OA_ErrMsgBackSignBill/OA_ErrMsgBackSignBill.vue
@@ -227,7 +227,6 @@
import {
getUserInfo
} from "../../../../utils/auth";
- import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
export default {
data() {
return {
@@ -986,4 +985,5 @@
</script>
<style lang="scss">
+ @import "@/pages/ZLGL/AanDengHujiao/style/OA_ErrMsgStyle.scss"
</style>
\ No newline at end of file
diff --git a/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill.vue b/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill.vue
new file mode 100644
index 0000000..1678a02
--- /dev/null
+++ b/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill.vue
@@ -0,0 +1,474 @@
+<template>
+ <view>
+ <view class="tabs" id="tabs">
+ <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">鍩烘湰淇℃伅</view>
+ <!-- <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">鏄庣粏淇℃伅</view> -->
+ <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">鍏朵粬淇℃伅</view>
+ <!-- <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">闄勪欢淇℃伅</view> -->
+ </view>
+ <!-- 鍩烘湰淇℃伅 -->
+ <template v-if="tabs == 0">
+ <view class="form" :style="{
+ height: containerHeight + 'px',
+ overflow: 'auto'
+ }">
+ <view class="form-item">
+ <view class="title">涓婚:</view>
+ <view class="right">
+ <input type="text" v-model="hform.HContext" placeholder="璇疯緭鍏ヤ富棰�..." />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">鍙戦�佷汉:</view>
+ <zxz-uni-data-select class="right" :localdata="HEmpList" dataKey="HName" dataValue="HName"
+ v-model="hform.HSendMan" :filterable="true">
+ </zxz-uni-data-select>
+ <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+ </view>
+ <view class="form-item">
+ <view class="title">鎺ユ敹浜�:</view>
+ <zxz-uni-data-select class="right" :localdata="HEmpList" dataKey="HName" dataValue="HName"
+ v-model="hform.HReceiveMan" :filterable="true">
+ </zxz-uni-data-select>
+ <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+ </view>
+ <view class="form-item">
+ <view class="title">绱ф�ョ被鍨�:</view>
+ <zxz-uni-data-select class="right" :localdata="[
+ {value: '鏅��'},
+ {value: '绱ф��'}
+ ]" dataKey="value" dataValue="value" v-model="hform.HLevel">
+ </zxz-uni-data-select>
+ <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+ </view>
+ <view class="form-item">
+ <view class="title">鍙戦�佺被鍨�:</view>
+ <zxz-uni-data-select class="right" :localdata="[
+ {value: '鍏叡'},
+ {value: '涓汉'}
+ ]" dataKey="value" dataValue="value" v-model="hform.HSendType">
+ </zxz-uni-data-select>
+ <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+ </view>
+ <view class="form-item">
+ <view class="title">鎶勯�佷汉:</view>
+ <zxz-uni-data-select class="right" :localdata="HEmpList" dataKey="HName" dataValue="HName"
+ :filterable="true"
+ :multiple="true" placeholder="璇烽�夋嫨鎶勯�佷汉..."
+ @input="HCopyManChange">
+ </zxz-uni-data-select>
+ <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+ </view>
+ <view class="form-item">
+ <view class="title">鍗曟嵁鍙�:</view>
+ <view class="righton">
+ <input disabled v-model="hform.HBillNo" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">鍗曟嵁鏃ユ湡:</view>
+ <view class="righton">
+ <input disabled v-model="hform.HDate" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">鎺ㄨ崘瀹屾垚鏃ユ湡:</view>
+ <view class="right">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HCommDate">
+ <input :value="hform.HCommDate" />
+ </uni-datetime-picker>
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">鍙戦�侀儴闂�:</view>
+ <zxz-uni-data-select class="right" :localdata="HDeptList" dataKey="閮ㄩ棬鍚嶇О" dataValue="HItemID"
+ v-model="hform.HDeptID" :filterable="true">
+
+ </zxz-uni-data-select>
+ <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+ </view>
+ <view class="form-item">
+ <view class="title">璇︾粏鍐呭:</view>
+ <view class="right">
+ <textarea v-model="hform.HDescription" placeholder="璇疯緭鍏ヨ缁嗗唴瀹�" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">澶囨敞:</view>
+ <view class="right">
+ <textarea v-model="hform.HRemark" placeholder="璇疯緭鍏ュ娉�" />
+ </view>
+ </view>
+
+ </view>
+ </template>
+ <!-- 鍏朵粬淇℃伅 -->
+ <template v-if="tabs == 2">
+ <view class="form" :style="{
+ height: containerHeight + 'px',
+ overflow: 'auto'
+ }">
+ <view class="form-item">
+ <view class="title">鍒涘缓浜�:</view>
+ <view class="righton">
+ <input v-model="hform.HMaker" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">鍒涘缓鏃ユ湡:</view>
+ <view class="righton">
+ <input v-model="hform.HMakeDate" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">淇敼浜�:</view>
+ <view class="righton">
+ <input v-model="hform.HUpDater" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">淇敼鏃ユ湡:</view>
+ <view class="righton">
+ <input v-model="hform.HUpDateDate" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">瀹℃牳浜�:</view>
+ <view class="righton">
+ <input v-model="hform.HChecker" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">瀹℃牳鏃堕棿:</view>
+ <view class="righton">
+ <input v-model="hform.HCheckDate" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">浣滃簾浜�:</view>
+ <view class="righton">
+ <input v-model="hform.HDeleteMan" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">浣滃簾鏃ユ湡:</view>
+ <view class="righton">
+ <input v-model="hform.HDeleteDate" />
+ </view>
+ </view>
+ </view>
+
+ </template>
+ <!-- 鎿嶄綔鎸夐挳 -->
+ <view class="buttons" id="buttons">
+ <button class="btn-a" size="mini" @tap="submit">鎻愪氦</button>
+ <view style="flex: 1;"></view>
+ <button class="btn-a" size="mini" @tap="addNew">鏂板</button>
+ <button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button>
+ </view>
+ </view>
+</template>
+
+<script>
+ import dayjs from "dayjs";
+ import {
+ CommonUtils
+ } from "@/utils/common";
+ import {
+ MpaasScan
+ } from "@/utils/mpaasScan.js"
+ import {
+ getUserInfo
+ } from "../../../utils/auth";
+ import {
+ getEmpList
+ } from "@/utils/BasicInfo.js"
+ export default {
+ name: 'OA_WorkLinkBill',
+ data() {
+ return {
+ tabs: 0,
+ HMainSourceBillType: "",
+ btnTop: 0,
+ tabsBottom: 0,
+ HModName: "OA_WorkLinkBill",
+ HBillType: '4501',
+ operationType: 1,
+ refSav: 'Add', // 鎵ц鎻愪氦鐨勬搷浣滅被鍨嬶紝涓巓perationType绫讳技
+ enableEdit: true,
+ uploadOptions: {},
+
+ HEmpList: [],
+ HDeptList: [],
+ HShiftsList: [],
+ HCheckFileList: [],
+ attachmentInfo: [],
+
+ hform: {
+ HBarCode: "",
+ HBillNo: "",
+ HInterID: "",
+ HEntryID: "",
+ HDate: dayjs(new Date()).format("YYYY-MM-DD"),
+ HContext: "",
+ HSendMan: getUserInfo()["HEmpName"],
+ HReceiveMan: "",
+ HLevel: "鏅��",
+ HSendType: "鍏叡",
+ HCopyMan: "",
+ HDescription: "",
+ HRemark: "",
+ HCommDate: "",
+ HEvaluateStatusName: "",
+ HEvaluateStatusID: "0",
+ HRelationBillNo: "",
+ HRelationInterID: "0",
+ HRelationEntryID: "0",
+ HRelationBillType: "",
+ HDeptName: "",
+ HDeptID: "0",
+ HHasten: "0",
+ HMaker: getUserInfo()['Czymc'],
+ HMakeDate: dayjs(new Date()).format("YYYY-MM-DD"),
+ HUpDater: "",
+ HUpDateDate: "",
+ HChecker: "",
+ HCheckDate: "",
+ HDeleteMan: "",
+ HDeleteDate: "",
+ }
+ };
+ },
+ computed: {
+ containerHeight: {
+ get() {
+ return this.btnTop - this.tabsBottom - 5
+ }
+ },
+ calcHLastResult: {
+ get() {
+ if (this.HCheckFileList.length == 0) {
+ return 'OK'
+ } else {
+ let okCount = this.HCheckFileList.reduce((acc, item) => {
+ if (item.HMaintainResult) {
+ return acc + 1
+ }
+ return acc
+ }, 0)
+ if (okCount == this.HCheckFileList.length) {
+ return 'OK'
+ }
+ return 'NG'
+ }
+ }
+ }
+
+ },
+ methods: {
+ // 鎶勯�佷汉淇敼
+ HCopyManChange(e) {
+ this.hform.HCopyMan = e.join(',')
+ },
+ ValidCheck() {
+ if (this.hform.HContext == "") {
+ return {
+ Message: "鏈綍鍏ヤ富棰橈紝璇峰厛褰曞叆涓婚!",
+ state: false
+ }
+ }
+ if (this.hform.HSendMan == "") {
+ return {
+ Message: "鏈綍鍏ヤ富棰橈紝璇峰厛褰曞叆涓婚!",
+ state: false
+ }
+ }
+ if (this.hform.HReceiveMan == "") {
+ return {
+ Message: "鏈�夋嫨鎺ユ敹浜猴紝璇峰厛閫夋嫨鎺ユ敹浜�!",
+ state: false
+ }
+ }
+ if (this.hform.HDeptID == 0) {
+ return {
+ Message: "鏈�夋嫨鍙戦�侀儴闂紝璇峰厛閫夋嫨鍙戦�侀儴闂�",
+ state: false
+ }
+ }
+
+ return {
+ Message: "",
+ state: true
+ }
+ },
+ addNew() {
+ uni.redirectTo({
+ url: './OA_WorkLinkBill?operationType=1'
+ })
+ },
+ goBack() {
+ uni.navigateBack()
+ },
+ //鑾峰彇浣跨敤閮ㄩ棬鏁版嵁
+ async getHDeptList() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: '/Gy_Department/list',
+ data: {
+ sWhere: "",
+ user: uni.getStorageSync('HUserName'),
+ Organization: uni.getStorageSync('Organization')
+ }
+ })
+
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count == 1) {
+ this.HDeptList = data
+ } else {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: Message
+ })
+ }
+ } catch (err) {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: err
+ })
+ }
+ },
+ async getMaxNum() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: "/Web/GetMAXNum",
+ data: {
+ "HBillType": this.HBillType
+ }
+ })
+
+ let {
+ count,
+ data,
+ Message
+ } = res.data
+ console.log('data: ', data);
+ this.hform.HInterID = 0
+ this.hform.HBillNo = data[0]["HBillNo"]
+ } catch (err) {
+ CommonUtils.showTips({
+ title: "娓╅Θ鎻愮ず",
+ message: "鑾峰彇鍗曟嵁淇℃伅寮傚父: " + err
+ })
+ }
+ },
+ async submit() {
+ let valid = this.ValidCheck()
+ if (!valid.state) {
+ return CommonUtils.showTips({
+ message: valid.Message
+ })
+ }
+
+ try {
+ let oMain = JSON.stringify(this.hform);
+ let sMainSub = oMain + ';' + getUserInfo()['Czymc'] + ';' + this.refSav;
+ let res = await CommonUtils.doRequest2Sync({
+ url: "/Sc_MESTransFerWorkBill/SaveOA_WorkLinkBill",
+ data: {
+ "msg": sMainSub
+ },
+ method: "POST"
+ })
+
+ if (!res) {
+ return
+ }
+
+ let {
+ count,
+ Message
+ } = res.data
+ if (count == 1) {
+ uni.showModal({
+ title: '鎻愮ず',
+ content: res.data.Message + '銆傛槸鍚︾户缁柊澧烇紵(鐐瑰嚮鍙栨秷杩斿洖涓婄骇椤甸潰)',
+ success: (res) => {
+ if (res.confirm) {
+ console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+ uni.redirectTo({
+ url: './OA_WorkLinkBill?operationType=1'
+ })
+ } else if (res.cancel) {
+ console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ setTimeout(() => {
+ uni.navigateBack();
+ }, 50)
+ }
+ }
+ });
+ } else {
+ CommonUtils.showTips({
+ title: "娓╅Θ鎻愮ず",
+ message: "鎻愪氦鍗曟嵁澶辫触: " + Message
+ })
+ }
+
+
+ } catch (err) {
+ CommonUtils.showTips({
+ title: "娓╅Θ鎻愮ず",
+ message: "鎻愪氦鍗曟嵁澶辫触: " + err
+ })
+ }
+ }
+ },
+ async onLoad(e) {
+ console.log('e: ', e);
+ if (!e.operationType) {
+ this.operationType = 1
+ } else {
+ this.operationType = e.operationType
+ }
+
+ if (this.operationType == 1) {
+ // 鏂板
+ this.getMaxNum()
+ } else if (this.operationType == 2) {
+ // 澶嶅埗
+ } else if (this.operationType == 3) {
+ // 缂栬緫
+
+ } else if (this.operationType == 4) {
+ // 娴忚
+
+ }
+
+ this.getHDeptList()
+ try {
+ this.HEmpList = await getEmpList()
+ } catch (err) {
+
+ }
+
+ },
+ onReady() {
+ const query = uni.createSelectorQuery().in(this)
+ query.select("#buttons")
+ .boundingClientRect()
+ .select("#tabs")
+ .boundingClientRect()
+ .exec(res => {
+ this.btnTop = Math.floor(res[0].top)
+ this.tabsBottom = Math.ceil(res[1].bottom)
+ })
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import "@/pages/ZLGL/style/MJBillStyle.scss"
+</style>
\ No newline at end of file
diff --git a/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList.vue b/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList.vue
new file mode 100644
index 0000000..b0356ab
--- /dev/null
+++ b/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList.vue
@@ -0,0 +1,483 @@
+<template>
+ <view class="content">
+ <view class="form">
+ <view class="form-item">
+ <view class="title">寮�濮嬫椂闂�:</view>
+ <view class="right">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HBeginDate">
+ <input :value="hform.HBeginDate" />
+ </uni-datetime-picker>
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="title">缁撴潫鏃堕棿:</view>
+ <view class="right">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HEndDate">
+ <input :value="hform.HEndDate" />
+ </uni-datetime-picker>
+ </view>
+ </view>
+ <view v-if="showmore">
+ <view class="form-item">
+ <view class="title">鍗曟嵁鍙�:</view>
+ <view class="right">
+ <input v-model="hform.HBillNo" placeholder="璇疯緭鍏ュ崟鎹彿" />
+ </view>
+ </view>
+
+ </view>
+ <view class="other">
+ <view v-if="!showmore" @tap="changeShowMore">
+ 灞曞紑鍏朵粬鏉′欢<uni-icons color="#1890FF" style="margin-left: 8rpx;" type="bottom"></uni-icons>
+ </view>
+ <view v-if="showmore" @tap="changeShowMore">
+ 鎶樺彔鍏朵粬鏉′欢<uni-icons color="#1890FF" style="margin-left: 8rpx;" type="top"></uni-icons>
+ </view>
+ </view>
+
+ <view class="buttons">
+ <button class="btn-a" size="mini" type="default" @tap="clear">閲嶇疆</button>
+ <button class="btn-b" size="mini" type="default" @tap="add">鏂板</button>
+ <button class="btn-c" size="mini" type="default" @tap="search">鏌ヨ</button>
+ </view>
+ </view>
+
+ <view id="divide" style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+ <view :style="{
+ height: calcContentHeight + 'px',
+ overflowY: 'auto'
+ }">
+ <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
+ <uni-card :title="item.鍒跺崟鏃ユ湡.substr(0,10)" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+ @tap="showDetail = showDetail==index?-1:index">
+ <view class="card-detail">
+ <view class="detail" v-if="item.涓婚">
+ <text>涓婚锛�</text>{{item.涓婚}}
+ </view>
+ <view class="detail" v-if="item.绱ф�ョ▼搴�">
+ <text>绱ф�ョ▼搴︼細</text>{{item.绱ф�ョ▼搴}
+ </view>
+ <view class="detail" v-if="item.鍙戦�佺被鍨�">
+ <text>鍙戦�佺被鍨嬶細</text>{{item.鍙戦�佺被鍨媫}
+ </view>
+ <view class="detail" v-if="item.鍒跺崟浜�">
+ <text>鍒跺崟浜猴細</text>{{item.鍒跺崟浜簘}
+ </view>
+ <view class="detail" v-if="item.闃呰鐘舵��">
+ <text>闃呰鐘舵�侊細</text>{{item.闃呰鐘舵�亇}
+ </view>
+ <view class="detail" v-if="item.鍙戦�侀儴闂�">
+ <text>鍙戦�侀儴闂細</text>{{item.鍙戦�侀儴闂▆}
+ </view>
+ <view class="detail" v-if="item.鍙戦�佷汉">
+ <text>鍙戦�佷汉锛�</text>{{item.鍙戦�佷汉}}
+ </view>
+ <view class="detail" v-if="item.鎺ユ敹浜�">
+ <text>鎺ユ敹浜猴細</text>{{item.鎺ユ敹浜簘}
+ </view>
+ <view class="detail" v-if="item.鎶勯�佹帴鏀朵汉">
+ <text>鎶勯�佹帴鏀朵汉锛�</text>{{item.鎶勯�佹帴鏀朵汉}}
+ </view>
+ <view class="detail" v-if="item.鎵�鏈夋妱閫佷汉">
+ <text>鎵�鏈夋妱閫佷汉锛�</text>{{item.鎵�鏈夋妱閫佷汉}}
+ </view>
+ <view class="card-detail" v-if="showDetail == index">
+ <view class="detail" v-if="item.鍐呭">
+ <text>鍐呭锛�</text>{{item.鍐呭}}
+ </view>
+ <view class="detail" v-if="item.琛ㄥご澶囨敞">
+ <text>琛ㄥご澶囨敞锛�</text>{{item.琛ㄥご澶囨敞}}
+ </view>
+ <view class="detail" v-if="item.寤鸿瀹屾垚鏃ユ湡">
+ <text>寤鸿瀹屾垚鏃ユ湡锛�</text>{{dayjs(item.寤鸿瀹屾垚鏃ユ湡).format("YYYY-MM-DD HH:mm:DD")}}
+ </view>
+ <view class="detail" v-if="item.鍌績娆℃暟">
+ <text>鍌績娆℃暟锛�</text>{{item.鍌績娆℃暟}}
+ </view>
+ <view class="detail" v-if="item.hmainid">
+ <text>鍐呴儴鍗曟嵁鍙凤細</text>{{item.hmainid}}
+ </view>
+ </view>
+ </view>
+
+ <view class="more" v-if="showDetail == index && operations != index">
+ <view class="part" style="border-right: 1px solid #eee;">
+ <uni-icons type="top" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>鏀惰捣
+ </view>
+ <view class="part" @tap.stop="operations = operations==index?-1:index">
+ <uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
+ size="14"></uni-icons>鎿嶄綔
+ </view>
+ </view>
+ <view class="more" v-if="showDetail != index && operations != index">
+ <view class="part" style="border-right: 1px solid #eee;">
+ <uni-icons type="bottom" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>鏇村淇℃伅
+ </view>
+ <view class="part" @tap.stop="operations = operations==index?-1:index">
+ <uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
+ size="14"></uni-icons>鎿嶄綔
+ </view>
+ </view>
+ <view class="op" v-if="operations == index">
+ <!-- <button class="op3" size="mini" plain @tap.stop="edit(item)">缂栬緫</button> -->
+ <!-- <button class="op4" size="mini" plain @tap.stop="del(item)">鍒犻櫎</button> -->
+ <button class="op5" size="mini" plain @tap.stop="operations = -1">鍙栨秷鎿嶄綔</button>
+ </view>
+ </uni-card>
+ </view>
+ </view>
+ <view class="pagination-zone" id="pagination-zone">
+ <uni-pagination show-icon :page-size="size" :total="dataLength" :current="page"
+ @change="onPaginationChangeHandler"></uni-pagination>
+ </view>
+ <BarCodePopupVue ref="barcodePopup"></BarCodePopupVue>
+ </view>
+</template>
+
+<script>
+ import {
+ getUserInfo
+ } from "@/utils/auth.js";
+ import BarCodePopupVue from "@/components/BarCodePopup/BarCodePopup.vue";
+ import {
+ CommonUtils
+ } from "../../../utils/common";
+ import dayjs from "dayjs";
+ export default {
+ data() {
+ return {
+ dayjs,
+ userInfo: getUserInfo(),
+ serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+ tabs: 0,
+ urls: '/Sc_MESTransFerWorkBill/GetOA_WorkLinkBillListPage',
+ MvarReportTitle: '璁惧缁翠慨娲惧伐鍗曠紦瀛�',
+ hform: {
+ HBillNo: '',
+ HSourceBillNo: '',
+ HBillType: 3909,
+ user: uni.getStorageSync('HUserName'),
+ HStockOrgID: uni.getStorageSync('OrganizationID'),
+ sWhere: "",
+ HBeginDate: dayjs(new Date()).subtract(30, 'day').format("YYYY-MM-DD"),
+ HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
+ },
+ sWhere: '',
+ listData: [],
+ showList: [],
+ showDetail: -1,
+ operations: -1,
+
+ page: 1,
+ size: 20,
+ dataLength: 0,
+ divideBottom: 0,
+ paginationTop: 0,
+ showmore: false,
+ }
+ },
+ computed: {
+ calcContentHeight: {
+ get() {
+ return this.paginationTop - this.divideBottom
+ }
+ }
+ },
+ onShow() {
+ //鐢ㄦ埛妯″潡鏉冮檺鍒ゆ柇
+ this.CheckModRight()
+ this.changeTab(0)
+ console.log(this.userInfo, uni.getStorageSync('HUserName'))
+ },
+ components: {
+ BarCodePopupVue
+ },
+ onPullDownRefresh: function() {
+ this.clear()
+ setTimeout(() => {
+ uni.stopPullDownRefresh();
+ }, 1000);
+ },
+ onReady() {
+ this.getCalcHeight()
+ },
+ methods: {
+ changeShowMore() {
+ this.showmore = !this.showmore
+ this.$nextTick(() => {
+ // 閲嶆柊璁$畻鍐呭瑙嗗彛楂樺害
+ this.getCalcHeight()
+ })
+ },
+ getCalcHeight() {
+ let query = uni.createSelectorQuery().in(this)
+ query
+ .select("#divide")
+ .boundingClientRect()
+ .select("#pagination-zone")
+ .boundingClientRect()
+ .exec(res => {
+ this.divideBottom = Math.ceil(res[0].bottom)
+ this.paginationTop = Math.floor(res[1].top)
+ })
+ },
+ async qrCodeDisplay(item) {
+ this.$refs.barcodePopup.setCodeInfo(item.HBillNo)
+ await this.$nextTick()
+ this.$refs.barcodePopup.open()
+ },
+ CheckModRight() {
+ uni.request({
+ url: this.serverUrl + '/WEBSController/CheckModRight_Json',
+ data: {
+ ModRightName: 'CE_OtherOut',
+ HUserName: uni.getStorageSync('HUserName')
+ },
+ success: (res) => {
+ if (res.data.count == 1) {} else {
+ uni.showToast({
+ title: res.data.Message,
+ icon: 'none'
+ })
+ }
+ },
+ fail: (res) => {
+ console.log(res);
+ uni.showToast({
+ title: '鎺ュ彛璇锋眰澶辫触',
+ icon: 'none'
+ })
+ },
+ });
+ },
+ onPaginationChangeHandler({
+ current
+ }) {
+ this.page = current
+ // this.showList = this.getPage(current, this.size, this.listData)
+ this.getList()
+ },
+ getPage(page, size, list) {
+ let sindex = (parseInt(page) - 1) * size
+ let eindex = parseInt(page) * size
+ let newList = list.slice(sindex, eindex)
+ return newList
+ },
+ changeTab(e) {
+ this.tabs = e
+ this.page = 1
+ this.showList = []
+
+ if (this.tabs == 0) {
+ this.urls = '/Sc_MESTransFerWorkBill/GetOA_WorkLinkBillListPage'
+ }
+ // if (this.tabs == 1) {
+ // this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_Json'
+ // }
+ this.search()
+ },
+ async getList() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: this.urls,
+ data: {
+ sWhere: this.hform.sWhere,
+ user: this.hform.user,
+ page: this.page,
+ size: this.size
+ }
+ })
+
+ let {
+ count,
+ data,
+ Message
+ } = res.data
+
+ if (count > 0) {
+ if (data == null) {
+ data = []
+ }
+ this.listData = data
+ console.log('data: ', data);
+ this.showList = data
+ this.dataLength = count
+ } else {
+ CommonUtils.showTips({
+ title: "娓╅Θ鎻愮ず",
+ message: `鑾峰彇璁惧鐐规璁板綍鍗曞け璐�: ${Message}`
+ })
+ }
+ } catch (err) {
+ CommonUtils.showTips({
+ title: "娓╅Θ鎻愮ず",
+ message: `鑾峰彇璁惧鐐规璁板綍鍗曞け璐�: ${err}`
+ })
+ }
+
+ },
+ search() {
+ this.hform.sWhere = ''
+ this.listData = []
+ this.page = 1
+ this.showList = []
+
+ console.log(this.hform)
+ if (this.hform.HBillNo) {
+ this.hform.sWhere += " and 鍗曟嵁鍙� like '%" + this.hform.HBillNo + "%'";
+ }
+ if (this.hform.HBeginDate && this.hform.HEndDate) {
+ this.hform.sWhere +=
+ ` and convert(date,鏃ユ湡) between convert(date, '${this.hform.HBeginDate}') and convert(date, '${this.hform.HEndDate}')`;
+ }
+ this.getList()
+ },
+ clear() {
+ this.listData = []
+ this.page = 1
+ this.showList = []
+
+ this.sWhere = ''
+ this.hform = {
+ HBillNo: '',
+ HSourceBillNo: '',
+ HBillType: 3909,
+ user: uni.getStorageSync('HUserName'),
+ HStockOrgID: uni.getStorageSync('OrganizationID'),
+ sWhere: "",
+ HBeginDate: dayjs(new Date()).subtract(30, 'day').format("YYYY-MM-DD"),
+ HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
+ }
+ this.search()
+ },
+ add() {
+ uni.navigateTo({
+ url: '/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill?operationType=1'
+ })
+ },
+ //缂栬緫
+ edit(item) {
+ console.log(item)
+ uni.request({
+ url: this.serverUrl + '/WEBSController/TempList_Modify_Json',
+ data: {
+ "HInterID": item.HInterID,
+ "HBillNo": item.鍗曟嵁鍙�,
+ "HBillType": this.hform.HBillType
+ },
+ success: (res) => {
+ console.log(1, res);
+ if (res.data.count == 1) {
+ uni.navigateTo({
+ url: './OtherOutBill?OperationType=2&HInterID=' + item.HInterID
+ })
+ } else {
+ uni.showToast({
+ title: res.data.Message,
+ icon: 'none'
+ })
+ }
+
+ },
+ fail: (res) => {
+ console.log(res);
+ uni.hideLoading()
+ uni.showToast({
+ title: '鎺ュ彛璇锋眰澶辫触',
+ icon: 'none'
+ })
+ },
+ })
+ },
+ //鍒犻櫎
+ del(item) {
+ // console.log(item.hmainid,uni.getStorageSync('HUserName'))
+ uni.showModal({
+ title: '鎻愮ず',
+ content: '纭瑕佸垹闄よ褰曪紵鍒犻櫎鍚庝笉鑳芥仮澶�',
+ success: (res) => {
+ if (res.confirm) {
+ console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+ uni.request({
+ url: this.serverUrl +
+ '/Sb_EquipRepairSendWorkBill/DeleteWorkBill',
+ data: {
+ HInterID: item.hmainid,
+ user: uni.getStorageSync('HUserName'),
+ },
+ success: (res) => {
+ console.log(1, res);
+ if (res.data.count == 1) {
+ this.clear()
+ }
+ uni.showToast({
+ title: res.data.Message,
+ icon: 'none'
+ })
+ },
+ fail: (res) => {
+ console.log(res);
+ uni.hideLoading()
+ uni.showToast({
+ title: '鎺ュ彛璇锋眰澶辫触',
+ icon: 'none'
+ })
+ },
+ });
+ } else if (res.cancel) {
+ console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ }
+ }
+ });
+ },
+ //鎾ら攢
+ revoke(item) {
+ // console.log(item.hmainid,uni.getStorageSync('HUserName'))
+ uni.showModal({
+ title: '鎻愮ず',
+ content: '鏄惁纭鎾ら攢',
+ success: (res) => {
+ if (res.confirm) {
+ console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+ uni.request({
+ url: this.serverUrl +
+ '/WEBSController/set_DeleteICStockBillAndWMS_Json',
+ data: {
+ HInterID: item.HInterID,
+ HBillNo: item.鍗曟嵁鍙�,
+ HBillType: this.hform.HBillType,
+ HMaker: uni.getStorageSync('HUserName'),
+ MvarReportTitle: this.MvarReportTitle,
+ },
+ success: (res) => {
+ console.log(1, res);
+ if (res.data.count == 1) {
+ this.clear()
+ }
+ uni.showToast({
+ title: res.data.Message,
+ icon: 'none'
+ })
+ },
+ fail: (res) => {
+ console.log(res);
+ uni.hideLoading()
+ uni.showToast({
+ title: '鎺ュ彛璇锋眰澶辫触',
+ icon: 'none'
+ })
+ },
+ });
+ } else if (res.cancel) {
+ console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ }
+ }
+ });
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import "@/pages/ZLGL/style/MJListStyle.scss"
+</style>
\ No newline at end of file
diff --git a/pages/ZLGL/style/MJBillStyle.scss b/pages/ZLGL/style/MJBillStyle.scss
new file mode 100644
index 0000000..21ebdbb
--- /dev/null
+++ b/pages/ZLGL/style/MJBillStyle.scss
@@ -0,0 +1,310 @@
+.buttons {
+ box-sizing: border-box;
+ width: 100%;
+ height: 120rpx;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ background-color: #fff;
+ box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+ padding: 30rpx 40rpx 40rpx 40rpx;
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ button {
+ border-radius: 50rpx;
+ width: 180rpx;
+ height: 66rpx;
+ line-height: 66rpx;
+ font-size: 28rpx;
+ }
+ .btn-a {
+ background-color: #3a78ff;
+ color: #fff;
+ }
+ .btn-b {
+ background-color: #41a863;
+ color: #fff;
+ }
+ .btn-c {
+ background-color: #acacac;
+ color: #fff;
+ // position: absolute;
+ // right: 120rpx;
+ }
+ .btn-d {
+ background-color: #ff8901;
+ color: #fff;
+ }
+ .placeholder-view {
+ flex: 1;
+ }
+}
+
+.tabs {
+ width: 100%;
+ display: flex;
+ border-bottom: 1px solid #ddd;
+
+ view {
+ width: 25%;
+ font-size: 30rpx;
+ color: #555;
+ text-align: center;
+ padding: 16rpx 0;
+ }
+
+ .on {
+ color: #3a78ff;
+ font-weight: bold;
+ border-bottom: 3px solid #3a78ff;
+ }
+}
+
+.form {
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+ box-sizing: border-box;
+ padding: 20rpx 40rpx;
+}
+
+.form-item {
+ display: flex;
+ align-items: center;
+ font-size: 30rpx;
+ padding: 6rpx 0;
+ gap: 12rpx;
+
+ .title {
+ width: 208rpx;
+ flex-shrink: 0;
+
+ text {
+ color: red;
+ font-weight: bold;
+ }
+ }
+
+ .required::after{
+ content: "*";
+ color: red;
+ margin-left: 4px;
+ font-weight: bold;
+ }
+
+ .right {
+ // width: 450rpx;
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ position: relative;
+ display: flex;
+
+ picker {
+ width: 100%;
+ }
+
+ .uni-combox {
+ width: 100%
+ }
+ }
+
+ .righton {
+ width: 450rpx;
+ border-radius: 22rpx;
+ border: 1px solid #e4e4e4;
+ background-color: #e4e4e4;
+ }
+
+ input {
+ width: 100%;
+ padding: 8rpx 20rpx;
+ font-size: 30rpx;
+ }
+
+ textarea {
+ width: 98%;
+ height: 6em;
+ padding: 8rpx 20rpx;
+ font-size: 30rpx;
+ }
+
+ .icon-wrapper {
+ background-color: #3A78FF;
+ width: 52rpx;
+ height: 52rpx;
+ border-radius: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-shrink: 0;
+
+ .uni-icons {
+ color: #fff !important;
+ }
+ }
+
+ .icon-wrapper[disabled] {
+ background-color: rgba(228, 228, 228, 1);
+ pointer-events: none;
+ touch-action: none;
+ }
+
+}
+
+.none-border {
+ border: none !important;
+}
+
+.radio_Container {
+ display: flex;
+ flex-direction: row;
+ gap: 30rpx;
+}
+
+ .list {
+ width: 100%;
+
+ .card-detail {
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ line-height: 120%;
+
+ .detail {
+ // width: 50%;
+ font-size: 26rpx;
+ margin-bottom: 12rpx;
+ color: #555;
+ margin-right: 20rpx;
+
+ text {
+ color: #999;
+ font-size: 26rpx;
+ }
+ }
+ }
+
+ .more {
+ color: #888;
+ font-size: 24rpx;
+ display: flex;
+ border-top: 1px solid #eee;
+ padding-top: 20rpx;
+
+ .part {
+ width: 50%;
+ text-align: center;
+ }
+ }
+ }
+
+.card-item-wrapper {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ box-sizing: border-box;
+ padding: 20rpx 20rpx;
+
+ .card-detail {
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ line-height: 120%;
+
+ .detail {
+ // width: 50%;
+ font-size: 26rpx;
+ margin-bottom: 12rpx;
+ color: #555;
+ margin-right: 20rpx;
+
+ text {
+ color: #999;
+ font-size: 26rpx;
+ }
+ }
+
+ .operation {
+ display: flex;
+ align-items: center;
+ gap: 10rpx;
+
+ .btn-a {
+ background-color: #3A78FF;
+ color: #fff;
+ }
+
+ .btn-b {
+ background-color: rgb(255, 87, 34);
+ color: #fff;
+ }
+
+ uni-button {}
+ }
+
+ }
+
+ .more {
+ color: #888;
+ font-size: 24rpx;
+ display: flex;
+ border-top: 1px solid #eee;
+ padding-top: 20rpx;
+
+ .part {
+ width: 50%;
+ text-align: center;
+ }
+ }
+ }
+
+ .attachment-btns {
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ gap: 6rpx;
+
+ }
+
+ .card-buttons {
+ padding: 8rpx;
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: center;
+ align-items: flex-start;
+
+ button {
+ border-radius: 10rpx;
+ width: 180rpx;
+ height: 66rpx;
+ line-height: 66rpx;
+ font-size: 28rpx;
+ }
+ .btn-a {
+ background-color: #3a78ff;
+ color: #fff;
+ }
+ .btn-b {
+ background-color: #41a863;
+ color: #fff;
+ }
+ .btn-c {
+ background-color: #acacac;
+ color: #fff;
+ // position: absolute;
+ // right: 120rpx;
+ }
+ .btn-d {
+ background-color: #ff8901;
+ color: #fff;
+ }
+
+ .placeholder {
+ flex: 1
+ }
+ }
\ No newline at end of file
diff --git a/pages/ZLGL/style/MJListStyle.scss b/pages/ZLGL/style/MJListStyle.scss
new file mode 100644
index 0000000..f27e690
--- /dev/null
+++ b/pages/ZLGL/style/MJListStyle.scss
@@ -0,0 +1,193 @@
+ .form {
+ padding: 20rpx;
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .other {
+ margin-top: 8rpx;
+ text-align: center;
+ font-size: 28rpx;
+ padding: 4rpx 18rpx;
+ color: #1890FF;
+ }
+
+ .tabs {
+ width: 100%;
+ position: fixed;
+ left: 0;
+ z-index: 9;
+ display: flex;
+ background-color: #e5e5e5;
+
+ view {
+ width: 50%;
+ font-size: 30rpx;
+ color: #333;
+ text-align: center;
+ padding: 16rpx 0;
+ }
+
+ .on {
+ color: #3a78ff;
+ font-weight: bold;
+ border-bottom: 3px solid #3a78ff;
+ }
+ }
+
+ .buttons {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ margin-top: 20rpx;
+
+ button {
+ border-radius: 50rpx;
+ width: 180rpx;
+ height: 66rpx;
+ line-height: 66rpx;
+ font-size: 28rpx;
+ }
+
+ .btn-a {
+ background-color: #acacac;
+ color: #fff;
+ }
+
+ .btn-b {
+ background-color: #41a863;
+ color: #fff;
+ }
+
+ .btn-c {
+ background-color: #3a78ff;
+ color: #fff;
+ }
+ }
+
+ .form-item {
+ display: flex;
+ align-items: center;
+ font-size: 28rpx;
+ padding: 6rpx 0;
+
+ .title {
+ width: 180rpx;
+
+ text {
+ color: red;
+ font-weight: bold;
+ }
+ }
+
+ .right {
+ width: 450rpx;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ }
+
+ .righton {
+ width: 450rpx;
+ border-radius: 22rpx;
+ border: 1px solid #e4e4e4;
+ background-color: #e4e4e4;
+ }
+
+ input {
+ width: 100%;
+ padding: 8rpx 20rpx;
+ font-size: 30rpx;
+ }
+ }
+
+ .list {
+ width: 100%;
+
+ .card-detail {
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ line-height: 120%;
+
+ .detail {
+ // width: 50%;
+ font-size: 26rpx;
+ color: #555;
+ padding-bottom: 20rpx;
+
+ text {
+ color: #999;
+ font-size: 26rpx;
+ }
+ }
+ }
+
+ .more {
+ color: #888;
+ font-size: 26rpx;
+ display: flex;
+ border-top: 1px solid #eee;
+ padding-top: 20rpx;
+
+ .part {
+ width: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+
+ .op {
+ display: flex;
+ justify-content: space-around;
+ margin-top: 20rpx;
+
+ button {
+ padding: 0;
+ width: 150rpx;
+ font-size: 25rpx;
+ }
+
+ .op1 {
+ border: 1px solid #41a863;
+ color: #41a863;
+ }
+
+ .op2 {
+ border: 1px solid #d98d00;
+ color: #d98d00;
+ }
+
+ .op3 {
+ border: 1px solid #3a78ff;
+ color: #3a78ff;
+ }
+
+ .op4 {
+ border: 1px solid #da0000;
+ color: #da0000;
+ }
+
+ .op5 {
+ border: 1px solid #888;
+ color: #888;
+ }
+ }
+ }
+
+ .pagination-zone {
+ position: fixed;
+ bottom: 0;
+ box-sizing: border-box;
+ background-color: #fff;
+ box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+ padding: 20rpx 40rpx 20rpx 40rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+ justify-content: space-between;
+ width: 100%;
+ }
\ No newline at end of file
diff --git a/pages/index/login.vue b/pages/index/login.vue
index decaaab..615cdc6 100644
--- a/pages/index/login.vue
+++ b/pages/index/login.vue
@@ -81,7 +81,8 @@
import {
CommonUtils
} from "../../utils/common";
-import { getLanguagePackJson } from "../../utils/i18n";
+ import { getLanguagePackJson } from "../../utils/i18n";
+ import WebSocketServices from "../../utils/WebSocketServices";
export default {
components: {
hFormAlert
@@ -91,6 +92,7 @@
},
data() {
return {
+ WebSocketServices,
CommonUtils,
arrayDataBases: [],
DataBases: '',
@@ -115,7 +117,8 @@
"瀹佹尝鍥涚淮灏�-鍐呯綉": "http://192.168.0.236:9010/API/",
"瀹佹尝鍥涚淮灏�-澶栫綉": "http://220.189.218.155:9010/API/",
// 閿﹂殕
- "閿﹂殕-鏅鸿兘瀹跺眳": "http://192.168.1.11/API/"
+ "閿﹂殕-鏅鸿兘瀹跺眳": "http://192.168.1.11/API/",
+ "閿﹂殕-鏅鸿兘瀹跺眳-澶栫綉": "http://61.174.29.234:8880/API/"
},
serverUrlName: '娴欐睙鏅轰簯杩堟��',
@@ -328,6 +331,7 @@
uni.setStorageSync('HSecManagerID', res.data.data[0].HSecManagerID); //瀵瑰簲楠屾敹
uni.setStorageSync('HSecManagerName', res.data.data[0].HSecManagerName);
this.CommonUtils.setServerUrl(this.serverUrl)
+ // this.WebSocketServices.createConnect(res.data.data[0].Czybm)
uni.reLaunch({
url: '/pages/index/index'
})
diff --git a/pages/index/tab4.vue b/pages/index/tab4.vue
index 85dbe89..0ccf50b 100644
--- a/pages/index/tab4.vue
+++ b/pages/index/tab4.vue
@@ -154,6 +154,20 @@
"id": 15,
"hidden": false
},
+ {
+ "img": "../../static/icon/icon15.png",
+ "text": "宸ヤ綔鑱旂郴鍗�",
+ "url": "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill?OperationType=1",
+ "id": 16,
+ "hidden": false
+ },
+ {
+ "img": "../../static/icon/icon15.png",
+ "text": "宸ヤ綔鑱旂郴鍗曞垪琛�",
+ "url": "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList?OperationType=1",
+ "id": 16,
+ "hidden": false
+ },
]
}
diff --git a/utils/BasicInfo.js b/utils/BasicInfo.js
new file mode 100644
index 0000000..1d6863b
--- /dev/null
+++ b/utils/BasicInfo.js
@@ -0,0 +1,37 @@
+import { CommonUtils } from "./common"
+
+export async function getEmpList() {
+ return new Promise(async (resolve, reject) => {
+ // 鑾峰彇鑱屽憳鏁版嵁
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: '/PublicPageMethod/UserList',
+ data: {
+ sWhere: " where 1=1",
+ }
+ })
+
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count == 1) {
+ resolve(data)
+ } else {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: Message
+ })
+ reject()
+
+ }
+ } catch (err) {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: err
+ })
+ reject()
+ }
+ })
+}
\ No newline at end of file
diff --git a/utils/WebSocketServices.js b/utils/WebSocketServices.js
new file mode 100644
index 0000000..4a86605
--- /dev/null
+++ b/utils/WebSocketServices.js
@@ -0,0 +1,65 @@
+import { CommonUtils } from "@/utils/common.js";
+
+class WebSocketServices {
+ constructor() {
+ this.wsInstance = null; // WebSocket 瀹炰緥
+ this.isConnecting = false; // 閬垮厤骞跺彂閲嶈繛
+ this.isConnected = false; // 閬垮厤骞跺彂閲嶈繛
+ this.wsUrl = CommonUtils.httpFormatWs()
+ }
+
+ // 寤虹珛WebSocket杩炴帴
+ createConnect(userId) { // 浣跨敤鐢ㄦ埛鏍囪瘑 浣滀负鍚庣杩炴帴鐨勫嚟鎹�
+
+ if(this.isConnecting || !userId || this.isConnected) {
+ return
+ }
+ console.log('wsUrl: ',this.wsUrl);
+ console.log('userId: ',userId);
+ this.wsInstance = uni.connectSocket({
+ url: this.wsUrl,
+ header: {
+ "X-User-Id": userId
+ },
+ success() {
+ this.isConnecting = true
+ }
+ })
+
+ // 鐩戝惉濂楁帴瀛楄繛鎺ュ缓绔�
+ uni.onSocketOpen((res) => {
+ console.log('[webSocket]: 濂楁帴瀛楄繛鎺ュ缓绔嬫垚鍔�');
+ this.isConnecting = false
+ this.isConnected = true
+ console.log('res: ',res);
+ this.wsInstance = res.socketTask
+ })
+ }
+
+ // 閲嶈繛
+ reConnect(reCount = 1, limit = 3) {
+ if(reCount > limit) {
+ uni.showToast({
+ icon: 'none',
+ title: `瓒呭嚭鏈�澶ч噸杩炴鏁般�傚凡閫�鍑鸿繛鎺
+ })
+ this.isConnecting = false
+ return
+ }
+ uni.showToast({
+ icon: 'none',
+ title: `姝e湪灏濊瘯閲嶈繛锛岄噸杩炴鏁� ${reCount}`
+ })
+
+ reConnect(reCount+1, limit)
+
+ uni.hideToast()
+ }
+
+ // 杩炴帴娉ㄩ攢
+ disConnect() {
+
+ }
+}
+
+export default new WebSocketServices()
\ No newline at end of file
diff --git a/utils/common.js b/utils/common.js
index 2002e39..77074ff 100644
--- a/utils/common.js
+++ b/utils/common.js
@@ -494,6 +494,21 @@
return item[e.ColmCols]
})
}
+
+ httpFormatWs(httpUrl=this.serverUrl) {
+ console.log('httpUrl: ',httpUrl);
+ if(httpUrl.indexOf("http://") === 0){
+ httpUrl = httpUrl.replace("http://", "")
+ httpUrl = "ws://" + httpUrl.split(":")[0]+":18080/WS"
+ }else if(httpUrl.indexOf("https://") === 0) {
+ httpUrl = httpUrl.replace("https://", "")
+ httpUrl = "wss://" + httpUrl.split(":")[0]+":18080/WS"
+ }else{
+ // 鎻愮ず浼犲叆杩炴帴閿欒
+ }
+
+ return httpUrl
+ }
}
export const CommonUtils = new commonUtils()
\ No newline at end of file
--
Gitblit v1.9.1