commit cacc232eed898b8d2ab8cf37b05dd1fc593110c8 Author: 廖德云 Date: Fri Mar 7 02:35:00 2025 +0800 添加生产数据模块 diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..ad77649 --- /dev/null +++ b/.env.development @@ -0,0 +1,4 @@ +# 开发环境 +# 请求接口地址 +VITE_REQUEST_BASE_URL = https://36.112.48.190 +#VITE_REQUEST_BASE_URL = http://10.75.15.249:8080 diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..5ca2ca3 --- /dev/null +++ b/.env.production @@ -0,0 +1,3 @@ +# 生产环境 +# 请求接口地址 +VITE_REQUEST_BASE_URL = https://36.112.48.190 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c768048 --- /dev/null +++ b/.gitignore @@ -0,0 +1,65 @@ +/unpackage/ +/unpackage/cache/apk/__UNI__9F097F0_cm.apk +/unpackage/cache/apk/apkurl +/unpackage/cache/apk/cmManifestCache.json +/unpackage/cache/certdata +/unpackage/cache/wgt/__UNI__9F097F0/app-config-service.js +/unpackage/cache/wgt/__UNI__9F097F0/app-service.js +/unpackage/cache/wgt/__UNI__9F097F0/app.css +/unpackage/cache/wgt/__UNI__9F097F0/manifest.json +/unpackage/cache/wgt/__UNI__9F097F0/pages/checkin/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/document/detail.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/document/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/leave/application.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/login/login.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/meeting/detail.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/meeting/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/product/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/safe/detail.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/safe/manage.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/tab/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/tab/my.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/tab/office.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/talk/conversation.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/talk/message_list.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/talk/system.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/task/handle.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/task/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/task/self.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/task/todotask.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/useredit/add_address.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/useredit/address.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/useredit/addressbook.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/useredit/useredit.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/userlist/index.css +/unpackage/cache/wgt/__UNI__9F097F0/pages/views/zhongheguanli/zhiban/index.css +/unpackage/dist/build/app-plus/__uniappautomator.js +/unpackage/dist/build/app-plus/__uniappchooselocation.js +/unpackage/dist/build/app-plus/app-config-service.js +/unpackage/dist/build/app-plus/app-service.js +/unpackage/dist/build/app-plus/app.css +/unpackage/dist/build/app-plus/manifest.json +/unpackage/dist/build/app-plus/pages/document/detail.css +/unpackage/dist/build/app-plus/pages/leave/application.css +/unpackage/dist/build/app-plus/pages/login/login.css +/unpackage/dist/build/app-plus/pages/tab/index.css +/unpackage/dist/build/app-plus/pages/tab/my.css +/unpackage/dist/build/app-plus/pages/useredit/useredit.css +/unpackage/dist/build/app-plus/uni-app-view.umd.js +/unpackage/dist/dev/app-plus/__uniappautomator.js +/unpackage/dist/dev/app-plus/__uniappchooselocation.js +/unpackage/dist/dev/app-plus/app-config-service.js +/unpackage/dist/dev/app-plus/app-service.js +/unpackage/dist/dev/app-plus/app.css +/unpackage/dist/dev/app-plus/manifest.json +/unpackage/dist/dev/app-plus/uni-app-view.umd.js +/node_modules/.vite/deps/_metadata.json +/node_modules/.vite/deps/base-64.js +/node_modules/.vite/deps/base-64.js.map +/node_modules/.vite/deps/chunk-RSJERJUL.js +/node_modules/.vite/deps/chunk-RSJERJUL.js.map +/node_modules/.vite/deps/dayjs.js +/node_modules/.vite/deps/dayjs.js.map +/node_modules/.vite/deps/package.json +/uni_modules +/node_modules diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..fe7f40f --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,26 @@ +{ + // 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" : [ + { + "app-plus" : + { + "launchtype" : "local" + }, + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + }, + { + "playground" : "standard", + "type" : "uni-app:app-android" + } + ] +} diff --git a/.vite/deps/_metadata.json b/.vite/deps/_metadata.json new file mode 100644 index 0000000..8963583 --- /dev/null +++ b/.vite/deps/_metadata.json @@ -0,0 +1,13 @@ +{ + "hash": "5610b5a1", + "browserHash": "3deef0d9", + "optimized": { + "base-64": { + "src": "../../node_modules/base-64/base64.js", + "file": "base-64.js", + "fileHash": "768aae23", + "needsInterop": true + } + }, + "chunks": {} +} \ No newline at end of file diff --git a/.vite/deps/base-64.js b/.vite/deps/base-64.js new file mode 100644 index 0000000..6c66974 --- /dev/null +++ b/.vite/deps/base-64.js @@ -0,0 +1,117 @@ +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +// ../../../../Documents/HBuilderProjects/B404219-tianranqi/node_modules/base-64/base64.js +var require_base64 = __commonJS({ + "../../../../Documents/HBuilderProjects/B404219-tianranqi/node_modules/base-64/base64.js"(exports, module) { + (function(root) { + var freeExports = typeof exports == "object" && exports; + var freeModule = typeof module == "object" && module && module.exports == freeExports && module; + var freeGlobal = typeof global == "object" && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + var InvalidCharacterError = function(message) { + this.message = message; + }; + InvalidCharacterError.prototype = new Error(); + InvalidCharacterError.prototype.name = "InvalidCharacterError"; + var error = function(message) { + throw new InvalidCharacterError(message); + }; + var TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g; + var decode = function(input) { + input = String(input).replace(REGEX_SPACE_CHARACTERS, ""); + var length = input.length; + if (length % 4 == 0) { + input = input.replace(/==?$/, ""); + length = input.length; + } + if (length % 4 == 1 || // http://whatwg.org/C#alphanumeric-ascii-characters + /[^+a-zA-Z0-9/]/.test(input)) { + error( + "Invalid character: the string to be decoded is not correctly encoded." + ); + } + var bitCounter = 0; + var bitStorage; + var buffer; + var output = ""; + var position = -1; + while (++position < length) { + buffer = TABLE.indexOf(input.charAt(position)); + bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer; + if (bitCounter++ % 4) { + output += String.fromCharCode( + 255 & bitStorage >> (-2 * bitCounter & 6) + ); + } + } + return output; + }; + var encode = function(input) { + input = String(input); + if (/[^\0-\xFF]/.test(input)) { + error( + "The string to be encoded contains characters outside of the Latin1 range." + ); + } + var padding = input.length % 3; + var output = ""; + var position = -1; + var a; + var b; + var c; + var buffer; + var length = input.length - padding; + while (++position < length) { + a = input.charCodeAt(position) << 16; + b = input.charCodeAt(++position) << 8; + c = input.charCodeAt(++position); + buffer = a + b + c; + output += TABLE.charAt(buffer >> 18 & 63) + TABLE.charAt(buffer >> 12 & 63) + TABLE.charAt(buffer >> 6 & 63) + TABLE.charAt(buffer & 63); + } + if (padding == 2) { + a = input.charCodeAt(position) << 8; + b = input.charCodeAt(++position); + buffer = a + b; + output += TABLE.charAt(buffer >> 10) + TABLE.charAt(buffer >> 4 & 63) + TABLE.charAt(buffer << 2 & 63) + "="; + } else if (padding == 1) { + buffer = input.charCodeAt(position); + output += TABLE.charAt(buffer >> 2) + TABLE.charAt(buffer << 4 & 63) + "=="; + } + return output; + }; + var base64 = { + "encode": encode, + "decode": decode, + "version": "1.0.0" + }; + if (typeof define == "function" && typeof define.amd == "object" && define.amd) { + define(function() { + return base64; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { + freeModule.exports = base64; + } else { + for (var key in base64) { + base64.hasOwnProperty(key) && (freeExports[key] = base64[key]); + } + } + } else { + root.base64 = base64; + } + })(exports); + } +}); +export default require_base64(); +/*! Bundled license information: + +base-64/base64.js: + (*! https://mths.be/base64 v1.0.0 by @mathias | MIT license *) +*/ +//# sourceMappingURL=base-64.js.map diff --git a/.vite/deps/base-64.js.map b/.vite/deps/base-64.js.map new file mode 100644 index 0000000..79b0703 --- /dev/null +++ b/.vite/deps/base-64.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/base-64/base64.js"], + "sourcesContent": ["/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n"], + "mappings": "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", + "names": [] +} diff --git a/.vite/deps/package.json b/.vite/deps/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/.vite/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..4ed5d9d --- /dev/null +++ b/App.vue @@ -0,0 +1,80 @@ + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d573c06 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +数智产销APP正式版 + + +发布需要在pages/login/login.vue中 +将 +```javascript + localLoginApi({ + username: username.value, + password: password.value, + captcha: 'app' +``` +改成 + +```javascript + loginApi({ + username: un, + password: pw, + ip: getDeviceIp() +``` + diff --git a/api/api.js b/api/api.js new file mode 100644 index 0000000..f910e8d --- /dev/null +++ b/api/api.js @@ -0,0 +1,271 @@ +import { + https +} from '@/utils/http.js'; +export function taskListApi(config) { // 我的任务列表 + return https({ + url: '/act/task/list', + method: 'get', + data: config + }) +} +export function taskHistoryListApi(config) { // 我的历史任务列表 + return https({ + url: '/act/task/taskHistoryList', + method: 'get', + data: config + }) +} +export function myApplyProcessListApi(config) { // 本人发起列表 + return https({ + url: '/act/task/myApplyProcessList', + method: 'get', + data: config + }) +} + +export function taskEntrustApi(config) { // 任务委托操作 + return https({ + url: '/act/task/taskEntrust', + method: 'put', + data: config + }) +} +export function getProcessNodeInfoApi(config) { // 办理任务节点信息获取 + return https({ + url: '/process/extActProcessNode/getProcessNodeInfo', + method: 'get', + data: config + }) +} +export function getHisProcessNodeInfoApi(config) { // 历史任务详情 + return https({ + url: '/process/extActProcessNode/getHisProcessNodeInfo', + method: 'get', + data: config + }) +} +export function queryMyDeptTreeListApi(config) { // 部门 + return https({ + url: '/sys/sysDepart/queryTreeList', + method: 'get', + data: config + }) +} +export function userListApi(config) { // 所有人员列表 + return https({ + url: '/sys/user/userList', + method: 'get', + data: config + }) +} +export function queryUserByDepIdApi(config) { // 根据部门id查询该部门下的人员列表 + return https({ + url: '/sys/user/queryUserByDepId', + method: 'get', + data: config + }) +} +export function indexChartScdtDataApi(config) { // 首页 + return https({ + url: '/scdt.cxcscdtjldrb/cxcScdtJldRb/indexChartScdtData', + method: 'get', + data: config + }) +} +export function gongwenlistApi(config) { // 公文 + return https({ + url: '/cxcoagwfb/cxcOaGwfb/bpmlist', + method: 'get', + data: config + }) +} +export function gonggaolistApi(config) { // 公告 + return https({ + url: '/cxctz/cxcTz/list', + method: 'get', + data: config + }) +} +export function zhibanQueryApi(config) { // 值班按月查看 + return https({ + url: '/zhgl_zbgl/zhglZbglZbb/list', + method: 'get', + data: config + }) +} +export function zhibanApi(config) { // 首页值班 + return https({ + url: '/zhgl_zbgl/zhglZbglZbb/homepageList', + method: 'get', + data: config + }) +} +export function faguiApi(config) { // 法规 + return https({ + url: '/cxcoaflgf/cxcOaFlgf/zslist', + method: 'get', + data: config + }) +} +export function cjzhiduApi(config) { // 上级制度 + return https({ + url: '/cxcjyglsjzdgl/cxcJyglSjzdgl/zslist', + method: 'get', + data: config + }) +} +export function zhiduApi(config) { // 厂级制度 + return https({ + url: '/cxczd/cxcZdgl/list', + method: 'get', + data: config + }) +} +export function huiyilistApi(config) { // 会议 + return https({ + url: '/appConnet/app/list', + method: 'get', + data: config + }) +} +export function huiyiDetailApi(config) { // 会议详情 + return https({ + url: '/zhgl_hygl/zhglHyglHyyc/listbymainid', + method: 'get', + data: config + }) +} +export function userProfileApi(config) { // 用户信息 + return https({ + url: '/sys/user/userList', + method: 'get', + data: config + }) +} +export function userEditApi(config) { // 用户编辑 + return https({ + url: '/sys/user/editApp', + method: 'PUT', + data: config + }) +} + + +export function extActFlowDataApi(config) { // 获取审批流程所需参数 + return https({ + url: '/process/extActFlowData/getProcessInfo', + method: 'get', + data: config + }) +} + +export function processHistoryListApi(config) { // 审批流程 + return https({ + url: '/act/task/processHistoryList', + method: 'get', + data: config + }) +} +export function startMutilProcessApi(config) { // 发起流程 + return https({ + url: '/process/extActProcess/startMutilProcess', + method: 'post', + data: config + }) +} +export function processCompleteApi(config) { // 流程办理 + return https({ + url: '/act/task/processComplete', + method: 'post', + data: config + }) +} +export function claimApi(config) { // 流程签收 + return https({ + url: '/act/task/claim', + method: 'put', + data: config + }) +} +export function callBackProcessApi(config) { // 流程取回 + return https({ + url: '/act/task/callBackProcess', + method: 'put', + data: config + }) +} +export function invalidProcessApi(config) { // 流程作废 + return https({ + url: '/act/task/invalidProcess', + method: 'put', + data: config + }) +} +export function getDictItemsApi(dictCode) { // 字典标签专用 + return https({ + url: `/sys/dict/getDictItems/${dictCode}`, + method: 'get' + }) +} + +export function getCategoryItemsApi(pid) { // 分类字典专用 + return https({ + url: '/sys/category/findtree', + method: 'get', + data: { + pid + } + }) +} + +export function getProcessTaskTransInfoApi(config) { // + return https({ + url: '/act/task/getProcessTaskTransInfo', + method: 'get', + data: config + }) +} + + +export function upDateAppApi(config) { // 更新 + return https({ + url: '/sys/common/upDateApp', + method: 'get', + data: config + }) +} + + + +export function cxcDapingApi(config) { // 首页图片 + return https({ + url: '/CxcDaping/cxcDaping/list', + method: 'get', + data: config + }) +} + + + +export function dbSxxqQueryByIdApi(config) { // 督办事项详情 + return https({ + url: '/cxcdbxt/dbSxxq/queryById', + method: 'get', + data: config + }) +} +export function dbJbxxQueryByIdApi(config) { // 督办基本信息 + return https({ + url: '/cxcdbxt/dbJbxx/queryById', + method: 'get', + data: config + }) +} + +export function cxcJurisdictionApi(config) { // 是否灰化 + return https({ + url: '/CxcJurisdiction/cxcJurisdiction/queryById', + method: 'get', + data: config + }) +} \ No newline at end of file diff --git a/api/common.js b/api/common.js new file mode 100644 index 0000000..ce4c8a5 --- /dev/null +++ b/api/common.js @@ -0,0 +1,16 @@ +import { + https +} from '@/utils/http.js'; +/* +这是后端系统通用的系统类的基础性的api路径,后续的大家分类建js存放 +*/ + + + +export function initDictOption(dictCode) { // 获取部门所有人员信息 + return https({ + url: ' /sys/dict/getDictItems', + method: 'get', + data: dictCode + }) +} \ No newline at end of file diff --git a/api/depart.js b/api/depart.js new file mode 100644 index 0000000..ff6d9db --- /dev/null +++ b/api/depart.js @@ -0,0 +1,23 @@ +import { + https +} from '@/utils/http.js'; + +export function queryDepByCode(code) { // 获取部门数据 + return https({ + url: '/sys/sysDepart/queryDepNameByDepCode', + method: 'get', + data: { + code + } + }) +} + +export function queryZbDepByLdhth(ldhth) { // 获取人员主表中人员部门 + return https({ + url: '/sys/sysDepart/queryZbDepByLdhth', + method: 'get', + data: { + ldhth + } + }) +} \ No newline at end of file diff --git a/api/leaveApi.js b/api/leaveApi.js new file mode 100644 index 0000000..1d4e7d1 --- /dev/null +++ b/api/leaveApi.js @@ -0,0 +1,56 @@ +import { + https +} from '@/utils/http.js'; + +export function qjAddApi(config) { // 发起请假流程申请 + return https({ + url: '/CxcQxj/cxcQxj/add', + method: 'post', + data: config + }) +} + + +export function queryZwmcAndExaApi(username) { // 根据username获取职位名称和审批领导列表 + return https({ + url: '/CxcQxj/cxcQxj/queryZwmcByUsername', + method: 'get', + data: { + username + } + }) +} + +export function qjQueryByIdApi(config) { // 通过id查询请假数据 流程用 + return https({ + url: '/CxcQxj/cxcQxj/queryById', + method: 'get', + data: config + }) +} + +export function queryHisDateApi(username) { // 根据username获取最新请假结束日期 + return https({ + url: '/CxcQxj/cxcQxj/queryHisDate', + method: 'get', + data: { + username + } + }) +} + +export function queryLeaveListApi(params) { // 获取所有请假信息 + return https({ + url: '/CxcQxj/cxcQxj/list', + method: 'get', + data: params + }) +} + +export function countByOrgApi(params) { // 获取所有请假信息 + return https({ + url: '/CxcQxj/cxcQxj/countByOrg', + method: 'get', + data: params + }) +} \ No newline at end of file diff --git a/api/login.js b/api/login.js new file mode 100644 index 0000000..b1895f3 --- /dev/null +++ b/api/login.js @@ -0,0 +1,29 @@ +import { https } from '@/utils/http.js'; +export function loginApi(config) { // 登录 + return https({ + url: '/sys/sinopecLogin', + method: 'post', + data: config + }) +} +export function localLoginApi(config) { // 本地登录 + return https({ + url: '/sys/login', + method: 'post', + data: config + }) +} +export function queryRoleApi(config) { // 获取角色职位 + return https({ + url: '/appConnet/app/queryRoleByRoleIds', + method: 'get', + data: config + }) +} +export function getUserPermissionApi(config) { // 获取权限 + return https({ + url: '/sys/permission/getUserPermissionByToken', + method: 'get', + data: config + }) +} \ No newline at end of file diff --git a/api/pages.js b/api/pages.js new file mode 100644 index 0000000..eb755bb --- /dev/null +++ b/api/pages.js @@ -0,0 +1,39 @@ +import { + https +} from '@/utils/http.js'; + +export function qjAddApi(config) { // 发起请假流程申请 + return https({ + url: '/CxcQxj/cxcQxj/add', + method: 'post', + data: config + }) +} + +export function queryZwmcAndExaApi(username) { // 根据username获取职位名称和审批领导列表 + return https({ + url: '/CxcQxj/cxcQxj/queryZwmcByUsername', + method: 'get', + data: { + username + } + }) +} + +export function qjQueryByIdApi(config) { // 通过id查询请假数据 流程用 + return https({ + url: '/CxcQxj/cxcQxj/queryById', + method: 'get', + data: config + }) +} + +export function queryHisDateApi(username) { // 根据username获取最新请假结束日期 + return https({ + url: '/CxcQxj/cxcQxj/queryHisDate', + method: 'get', + data: { + username + } + }) +} \ No newline at end of file diff --git a/api/renyuan.js b/api/renyuan.js new file mode 100644 index 0000000..375690d --- /dev/null +++ b/api/renyuan.js @@ -0,0 +1,107 @@ +import { + https +} from '@/utils/http.js'; + +export function queryRenyuanByDepartID(orgCode) { // 获取部门所有人员信息 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/list', + method: 'get', + data: orgCode + }) +} + +export function queryGzjlByRyLdhth(ldhth) { // 获取人员工作经历信息 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/queryLl', + method: 'get', + data: ldhth + }) +} + +export function queryQzqkByRyLdhth(ldhth) { // 获取人员证件台账 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/queryZjtz', + method: 'get', + data: ldhth + }) +} + +export function queryJtzycyByRyLdhth(ldhth) { // 获取人员家庭主要成员 + return https({ + url: '/cxchrygxxtj/cxcHrYgxxtj/queryJtzycy', + method: 'get', + data: ldhth + }) +} +export function queryXlxxByRyLdhth(ldhth) { // 获取人员学历信息 + return https({ + url: '/cxchrygxxtj/cxcHrYgxxtj/listCxcXlxwxxFbByMainId', + method: 'get', + data: ldhth + }) +} + +export function queryGbxxByRyLdhth(ldhth) { // 获取人员干部信息 专业技术等级信息 + return https({ + url: '/cxc_rlzy.gbxx/cxcRlzyGbxx/queryGbxx', + method: 'get', + data: ldhth + }) +} + +export function queryZyzgdjByRyLdhth(ldhth) { // 获取人员职业资格等级 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/queryZyzgdj', + method: 'get', + data: ldhth + }) +} + + +export function queryJxkhByRyLdhth(ldhth) { // 绩效考核信息 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/listCxcRlzyJxkhByMainId', + method: 'get', + data: ldhth + }) +} + +export function cxcHrYgxxtj(parm) { // 获取员工信息统计 + return https({ + url: '/cxchrygxxtj/cxcHrYgxxtj/list', + method: 'get', + data: parm + }) +} + +export function cxcRyDataTongji(url, parm) { // 员工信息统计 + return https({ + url: url, + method: 'get', + data: parm + }) +} + +export function cxcRyDatAstatistics(parm) { // 员工分组统计 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/statistics', + method: 'get', + data: parm + }) +} + +export function cxcRyDatAstatisticsCertificate(parm) { // 员工按证件分组统计 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/getStatisticsCertificate', + method: 'get', + data: parm + }) +} + +export function cxcRyDatAstatisticsDetails(parm) { // 员工信息统计 + return https({ + url: '/cxc_rlzy.zb/cxcRlzyZb/details', + method: 'get', + data: parm + }) +} \ No newline at end of file diff --git a/api/shengchan.js b/api/shengchan.js new file mode 100644 index 0000000..ee98ee2 --- /dev/null +++ b/api/shengchan.js @@ -0,0 +1,19 @@ +import { + https +} from '@/utils/http.js'; + +export function queryJinriShengchansj(params) { // 获取今日生产数据 + return https({ + url: '/scdt.CxcScdtChart/cxcScdtChart/list', + method: 'get', + data: params + }) +} + +export function queryYearShengchansj(params) { // 获取今年以来的生产数据 + return https({ + url: '/scdt.CxcScdtChart/cxcScdtChart/getYearStatis', + method: 'get', + data: params + }) +} \ No newline at end of file diff --git a/bpm/customNav.vue b/bpm/customNav.vue new file mode 100644 index 0000000..6ccc143 --- /dev/null +++ b/bpm/customNav.vue @@ -0,0 +1,36 @@ + + + + + \ No newline at end of file diff --git a/bpm/dataCom.vue b/bpm/dataCom.vue new file mode 100644 index 0000000..8f5152b --- /dev/null +++ b/bpm/dataCom.vue @@ -0,0 +1,143 @@ + + + + + + \ No newline at end of file diff --git a/bpm/extendCom.vue b/bpm/extendCom.vue new file mode 100644 index 0000000..24ec4ba --- /dev/null +++ b/bpm/extendCom.vue @@ -0,0 +1,203 @@ + + + + + + \ No newline at end of file diff --git a/bpm/leaveApplication/index.vue b/bpm/leaveApplication/index.vue new file mode 100644 index 0000000..9470cc7 --- /dev/null +++ b/bpm/leaveApplication/index.vue @@ -0,0 +1,335 @@ + + + + + \ No newline at end of file diff --git a/bpm/processCom.vue b/bpm/processCom.vue new file mode 100644 index 0000000..6a2a72c --- /dev/null +++ b/bpm/processCom.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/bpm/safeCom.vue b/bpm/safeCom.vue new file mode 100644 index 0000000..c56f077 --- /dev/null +++ b/bpm/safeCom.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/bpm/supervise.vue b/bpm/supervise.vue new file mode 100644 index 0000000..e04519a --- /dev/null +++ b/bpm/supervise.vue @@ -0,0 +1,331 @@ + + + + + \ No newline at end of file diff --git a/bpm/tasklistCom.vue b/bpm/tasklistCom.vue new file mode 100644 index 0000000..10054c8 --- /dev/null +++ b/bpm/tasklistCom.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/certificate/book.keystore b/certificate/book.keystore new file mode 100644 index 0000000..ad6e4b6 Binary files /dev/null and b/certificate/book.keystore differ diff --git a/certificate/证书信息.txt b/certificate/证书信息.txt new file mode 100644 index 0000000..3a245d2 --- /dev/null +++ b/certificate/证书信息.txt @@ -0,0 +1,9 @@ +证书指纹: +MD5: 9A:AD:4D:78:17:EE:17:D3:62:B2:6E:B2:56:0B:18:C3 +SHA1: B1:1E:CE:4B:70:C7:88:B3:6E:8B:B9:05:98:4B:FD:67:81:C1:3A:8F +SHA256: A9:78:BD:BF:BB:DE:35:14:AA:5D:45:E9:6A:D0:E5:17:6D:BE:58:86:7A:1D:66:A2:F3:62:2F:E7:9C:9E:59:F6 + + +别名: __uni__9f097f0 +证书密码为:uZ6Stufj +包名:com.tianranqi.app \ No newline at end of file diff --git a/components/departSelect/departSelect.vue b/components/departSelect/departSelect.vue new file mode 100644 index 0000000..6a1cda2 --- /dev/null +++ b/components/departSelect/departSelect.vue @@ -0,0 +1,119 @@ + + + + + \ No newline at end of file diff --git a/components/kidoki-date-picker/kidoki-date-picker.vue b/components/kidoki-date-picker/kidoki-date-picker.vue new file mode 100644 index 0000000..5ae88a7 --- /dev/null +++ b/components/kidoki-date-picker/kidoki-date-picker.vue @@ -0,0 +1,51 @@ + + + + + \ No newline at end of file diff --git a/components/treeSelect/data-select-item.vue b/components/treeSelect/data-select-item.vue new file mode 100644 index 0000000..a65f884 --- /dev/null +++ b/components/treeSelect/data-select-item.vue @@ -0,0 +1,289 @@ + + + + diff --git a/components/treeSelect/readme.md b/components/treeSelect/readme.md new file mode 100644 index 0000000..2f01cc9 --- /dev/null +++ b/components/treeSelect/readme.md @@ -0,0 +1,240 @@ +# customthree-tree-select 使用指南 + +**提示:** 使用该插件前确保你已经导入 `uni-popup` `uni-icons` `uni-easyinput` 插件。 + +**有问题可以加 QQ 群:297080738** + +## 优势 + +💪:基于 `uni-popup`、 `uni-icons`、 `uni-easyinput` 插件进行开发,默认样式与 `uni-easyinput` 样式对标。 + +⚡:全面支持懒加载应对大量数据。 + +🚀:v-model 绑定数据、数据回显、移除选项。 + +⚙ :提供更多配置项。 + +📦:开箱即用。 + +## Props + +| 属性名 | 类型 | 默认值 | 说明 | +| :--------------------: | :-----------------: | :-------------: | :----------------------------------------------------------: | +| canSelectAll | Boolean | false | 开启一键全选功能 | +| clearResetSearch | Boolean | false | 设置为 `true` 并且搜索之后,点击输入框清除按钮,会清空搜索内容并且会直接重置整个弹窗内树形选择器内容,默认情况下只有清除之后再次进行查询才会重置选择器 | +| animation | Boolean | ture | 是否开启弹窗动画 | +| is-mask-click | Boolean | true | 点击遮罩关闭弹窗 | +| mask-background-color | String | rgba(0,0,0,0.4) | 蒙版颜色,建议使用 rgba 颜色值 | +| background-color | String | none | 主窗口背景色 | +| safe-area | Boolean | true | 是否适配底部安全区 | +| **choseParent** | **Boolean** | **false** | **父节点是否可选** | +| **linkage** | **Boolean** | **false** | **父子节点是否联动** | +| placeholder | String | 请选择 | 空状态信息提示、弹窗标题 | +| confirmText | String | 完成 | 确定按钮文字 | +| confirmTextColor | String | #007aff | 确定按钮文字颜色 | +| dataSource | Array | - | 展示的数据 | +| **dataLabel** | **String** | **name** | **dataSource 中对应数据的 label** | +| **dataValue** | **String** | **id** | **dataSource 中对应数据的 value** | +| **dataChildren** | **String** | **children** | **dataSource 中对应数据的 children** | +| clearable | Boolean | false | 是否显示清除按钮,点击清除所有已选项 | +| **mutiple** | **Boolean** | **false** | **是否可以多选** | +| **disabled** | **Boolean** | **false** | **是否允许修改** | +| search | Boolean | false | 是否可以搜索(常用于数据较多的情况) | +| showChildren | Boolean | false | 默认不展开(数据内部 showChildren 属性优先级更高,可以设置全局收起,单独展开某一条数据) | +| border | Boolean | false | 显示引导线 | +| load | Function | function(){} | lazyLoadChildren 设置为true 后,点击某个节点发送请求获取子节点数据,用法见下方异步懒加载示例 | +| lazyLoadChildren | Boolean | false | 是否开启异步懒加载节点 | +| **v-model/modelValue** | **Array \| String** | **[ ]** | **已选择的值,通过 v-model 进行绑定,例如:v-model="formData.selectedList" ,根据你绑定数据的类型自动返回相同类型的数据,String 类型通过 `,` 进行分隔** | +| deleteSource | Boolean | false | 是否可删除已选数据 +## Events + +| 事件名称 | 说明 | 返回值 | +| ----------------- | ------------------------ | ------------------------------------------- | +| change | 弹窗组件状态发生变化触发 | e={show: true | false,type:当前模式} | +| maskClick | 点击遮罩层触发 | | +| update:modelValue | 选中数据或取消选中时触发 | 以数组形式返回已选择数据的 dataValue 对应值 | +| select-change | 选中数据或取消选中时触发 | 以数组形式返回选中数据完整信息 | +| removeSelect | 从选择框内删除元素时触发 | | + +## 基础使用示例 + +```vue + + + +``` + +## 禁用某些选项,或隐藏某些选项 + +```vue + + + +``` + +## 异步懒加载 + +```vue + + + + + +``` + diff --git a/components/treeSelect/treeSelect.vue b/components/treeSelect/treeSelect.vue new file mode 100644 index 0000000..c78db9d --- /dev/null +++ b/components/treeSelect/treeSelect.vue @@ -0,0 +1,811 @@ + + + + + \ No newline at end of file diff --git a/components/treeSelect/utils.ts b/components/treeSelect/utils.ts new file mode 100644 index 0000000..c164d06 --- /dev/null +++ b/components/treeSelect/utils.ts @@ -0,0 +1,17 @@ +export function isString(data: any) { + return typeof data === 'string' +} + +// 分页 +export function paging(data: any[], PAGENUM = 50) { + if (!Array.isArray(data) || !data.length) return data + const pages: any[] = [] + data.forEach((item, index) => { + const i = Math.floor(index / PAGENUM) + if (!pages[i]) { + pages[i] = [] + } + pages[i].push(item) + }) + return pages +} 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..38cc1cd --- /dev/null +++ b/main.js @@ -0,0 +1,38 @@ +import App from './App'; +import { + toast +} from './utils/index.js'; +import { + createPinia +} from "pinia"; +import leaveApplication from '@/bpm/leaveApplication/index.vue'; +import supervise from '@/bpm/supervise.vue' +const pinia = createPinia(); + +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { + createSSRApp +} from 'vue' + +export function createApp() { + const app = createSSRApp(App) + app.use(pinia) + app.component('leaveApplication', leaveApplication) + app.component('supervise', supervise) + app.config.globalProperties.$toast = toast + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..ca61bfb --- /dev/null +++ b/manifest.json @@ -0,0 +1,122 @@ +{ + "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/package-lock.json b/package-lock.json new file mode 100644 index 0000000..10e2067 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,56 @@ +{ + "name": "cxc-szcx-uniapp", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@dcloudio/uni-ui": "^1.5.6", + "base-64": "^1.0.0", + "dayjs": "^1.11.13", + "echarts": "^5.6.0" + } + }, + "node_modules/@dcloudio/uni-ui": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@dcloudio/uni-ui/-/uni-ui-1.5.6.tgz", + "integrity": "sha512-jmb98PasFvZkrIDXGh94GbdWg2/jyhgs1HUG+bU8eyL7Ltias/5XBz4q8w9RXyWUfqepJRqapPA2IIQpLCuTIg==", + "license": "Apache-2.0" + }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/echarts": { + "version": "5.6.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz", + "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.1" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, + "node_modules/zrender": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz", + "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d40feab --- /dev/null +++ b/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "@dcloudio/uni-ui": "^1.5.6", + "base-64": "^1.0.0", + "dayjs": "^1.11.13", + "echarts": "^5.6.0" + } +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..9eb8931 --- /dev/null +++ b/pages.json @@ -0,0 +1,322 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/login/login", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/tab/index", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/task/todotask", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/tab/office", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/tab/product", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/tab/my", + "style": { + "navigationStyle": "custom" + } + }, + + { + "path": "pages/task/index", + "style": { + "enablePullDownRefresh": true, + "app-plus": { + "titleNView": { + "titleText": "我的任务", + "titleColor": "#fff" + } + } + } + }, + { + "path": "pages/task/handle", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/talk/message_list", + "style": { + "navigationBarTitleText": "消息", + "enablePullDownRefresh": true, + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/talk/conversation", + "style": { + "navigationBarTitleText": "昵称", + "enablePullDownRefresh": true, + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/talk/system", + "style": { + "navigationBarTitleText": "系统通知", + "enablePullDownRefresh": true, + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/document/index", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/document/detail", + "style": { + "navigationBarTitleText": "详情", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/document/onlinePreview", + "style": { + "navigationBarTitleText": "在线预览", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/views/zhongheguanli/meeting/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/views/zhongheguanli/meeting/detail", + "style": { + "navigationBarTitleText": "详情", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/checkin/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/useredit/useredit", + "style": { + "navigationBarTitleText": "资料编辑", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/useredit/address", + "style": { + "navigationBarTitleText": "地址", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/useredit/add_address", + "style": { + "navigationBarTitleText": "添加地址", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/useredit/addressbook", + "style": { + "navigationBarTitleText": "通讯录", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } + }, + // { + // "path": "pages/task/todotask", + // "style": { + // "navigationBarTitleText": "个人办公", + // "enablePullDownRefresh": false, + // "navigationBarTextStyle": "white" + // } + // }, + { + "path": "pages/safe/manage", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/product/index", + "style": { + "navigationStyle": "custom" + // "navigationBarTitleText": "生产数据", + // "enablePullDownRefresh": false, + // "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/userlist/index", + "style": { + "navigationBarTitleText": "", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/safe/detail", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/views/zhongheguanli/zhiban/index", + "style": { + "navigationBarTitleText": "值班信息", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/task/self", + "style": { + "navigationBarTitleText": "本人发起", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/views/renliziyuan/renyuanxinxi/index", + "style": { + "navigationBarTitleText": "人员信息", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/views/renliziyuan/renyuanxinxi/taizhang", + "style": { + "navigationBarTitleText": "台账信息", + "navigationBarTextStyle": "white" + + } + }, + { + "path": "pages/views/renliziyuan/renyuanxinxi/detail", + "style": { + "navigationBarTitleText": "人员详细信息", + "navigationBarTextStyle": "white" + + } + }, + { + "path": "pages/views/renliziyuan/renyuanxinxi/tongji", + "style": { + "navigationBarTitleText": "人员年龄分组统计信息", + "navigationBarTextStyle": "white" + + } + }, + { + "path": "pages/views/renliziyuan/renyuanxinxi/qttongji", + "style": { + "navigationBarTitleText": "其他统计信息", + "navigationBarTextStyle": "white" + + } + }, + { + "path": "pages/views/renliziyuan/qingjiaxinxi/index", + "style": { + "navigationBarTitleText": "请假信息", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/views/renliziyuan/qingjiaxinxi/detail", + "style": { + "navigationBarTitleText": "请假详情", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/views/renliziyuan/qingjiaxinxi/application", + "style": { + "navigationBarTitleText": "请假申请", + "enablePullDownRefresh": false, + "navigationBarTextStyle": "white" + } + } + ], + "tabBar": { + "color": "#333333", + "selectedColor": "#01508B", + "borderStyle": "black", + "backgroundColor": "#FFFFFF", + + "list": [{ + "text": "首页", + "pagePath": "pages/tab/index", + "iconPath": "static/tab/index1.png", + "selectedIconPath": "static/tab/index2.png" + }, + + { + "text": "生产", + "pagePath": "pages/tab/product", + "iconPath": "/static/tab/product.png", + "selectedIconPath": "/static/tab/product2.png" + }, + { + "text": "办公", + "pagePath": "pages/tab/office", + "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": "我的", + "pagePath": "pages/tab/my", + "iconPath": "static/tab/user1.png", + "selectedIconPath": "static/tab/user2.png" + } + ] + + // "midButton": { + // "width": "65px", + // "height": "75px", + // "text": "", + // "iconPath": "static/tab/todo.png", + // "iconWidth": "50px", + // } + }, + "globalStyle": { + "app-plus": { + "titleNView": { + "backgroundImage": "linear-gradient(to left , #256FBC, #044D87)" + } + } + }, + "uniIdRouter": {} +} \ No newline at end of file diff --git a/pages/checkin/index.vue b/pages/checkin/index.vue new file mode 100644 index 0000000..d7580f6 --- /dev/null +++ b/pages/checkin/index.vue @@ -0,0 +1,232 @@ + + + + + + \ No newline at end of file diff --git a/pages/document/detail.vue b/pages/document/detail.vue new file mode 100644 index 0000000..95eac60 --- /dev/null +++ b/pages/document/detail.vue @@ -0,0 +1,120 @@ + + + + + + \ No newline at end of file diff --git a/pages/document/index.vue b/pages/document/index.vue new file mode 100644 index 0000000..44cd4fe --- /dev/null +++ b/pages/document/index.vue @@ -0,0 +1,322 @@ + + + + + + \ No newline at end of file diff --git a/pages/document/onlinePreview.vue b/pages/document/onlinePreview.vue new file mode 100644 index 0000000..c6fad58 --- /dev/null +++ b/pages/document/onlinePreview.vue @@ -0,0 +1,44 @@ +