From 0ed6900354fe20e53259bf10e6fc100f76861998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=9E=E4=B8=9C=E6=97=AD?= <850374051@qq.com> Date: Tue, 12 Mar 2024 17:25:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=B3=E5=85=89=E6=9D=91=E5=8A=A1=EF=BC=9A?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E8=B4=9F=E5=80=BA=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/index.js | 3 +- package-lock.json | 11 +- package.json | 1 + src/api/sunVillage_info/fixedAssets.js | 16 + .../images/sunVillage_info/index_block_23.png | Bin 0 -> 3726 bytes src/router/index.js | 9 + src/utils/finance.js | 259 ++++++ .../sunVillage_info/detailed_liabilities.vue | 752 ++++++++++++++++++ 8 files changed, 1047 insertions(+), 4 deletions(-) create mode 100644 src/assets/images/sunVillage_info/index_block_23.png create mode 100644 src/utils/finance.js create mode 100644 src/views/sunVillage_info/detailed_liabilities.vue diff --git a/config/index.js b/config/index.js index a6a51a11..a4cef1bf 100644 --- a/config/index.js +++ b/config/index.js @@ -14,7 +14,8 @@ module.exports = { // 请求的目标主机 // target: 'http://116.255.223.226:8082/nsgk_test/', // 公网测试环境 // target: `http://192.168.0.116:8091/nsgk_api/`, // 内网测试环境 - target: 'http://localhost:8080/', + //target: 'http://localhost:8080/', + target: 'http://192.168.0.106:8080/', changeOrigin: true, pathRewrite: { '^/api': '' diff --git a/package-lock.json b/package-lock.json index 90449a49..2f2c2ab2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1351,6 +1351,11 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, + "bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==" + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -4281,7 +4286,7 @@ "fastclick": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fastclick/-/fastclick-1.0.6.tgz", - "integrity": "sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo=", + "integrity": "sha512-cXyDBT4g0uWl/Xe75QspBDAgAWQ0lkPi/zgp6YFEUHj6WV6VIZl7R6TiDZhdOVU3W4ehp/8tG61Jev1jit+ztQ==", "dev": true }, "fastparse": { @@ -4436,7 +4441,7 @@ "font-awesome.css": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/font-awesome.css/-/font-awesome.css-4.7.2.tgz", - "integrity": "sha1-B1pCARQo8gJyVO9phgx1ergWyVI=" + "integrity": "sha512-FIyRbig4PDY15NGzejM3b8OQ/lWvId8PHnE4CnuDtc8/YYs07cvnqLCyfvIJPwJl5SA/Rq+9jAe9W+Fr1pv0DA==" }, "for-in": { "version": "1.0.2", @@ -12355,7 +12360,7 @@ "vue-html5-editor": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vue-html5-editor/-/vue-html5-editor-1.1.1.tgz", - "integrity": "sha1-WRAhCoMNjI00eaHx/shHMZKqA7M=", + "integrity": "sha512-Ckmb8djta+XQMUQaxRcCUNBXEzjPF5p6c2nQ5ICcIuR8eYz4b0HAGzXlSDfL3ZxkrVHO2Hx0VrUORLu2Lwem4g==", "dev": true }, "vue-lazyload": { diff --git a/package.json b/package.json index b7acc1be..de93cd5c 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "build": "node build/build.js" }, "dependencies": { + "bignumber.js": "^9.1.2", "@vant/area-data": "^1.2.2", "axios": "^0.21.1", "echarts": "^5.3.3", diff --git a/src/api/sunVillage_info/fixedAssets.js b/src/api/sunVillage_info/fixedAssets.js index acb99fbf..7c16ccc9 100644 --- a/src/api/sunVillage_info/fixedAssets.js +++ b/src/api/sunVillage_info/fixedAssets.js @@ -1166,4 +1166,20 @@ export function assetResourceDetail(id, parms) { }); } +// 公式科目模板分类列表 +export function expressionReportByCategory(name) { + return request({ + url: '/finance/expressionReport/category/' + name, + method: 'get', + }) +} + +//查询资产负债表(公式报表模板) +export const assetLiabilityReportByExpTpl = (data) => { + return request({ + url: '/finance/report/assetLiabilityReportByExpTpl', + method: 'get', + params: data + }) +} diff --git a/src/assets/images/sunVillage_info/index_block_23.png b/src/assets/images/sunVillage_info/index_block_23.png new file mode 100644 index 0000000000000000000000000000000000000000..611f4e34a4ca2f331d639180103c62bfb33ebbec GIT binary patch literal 3726 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 literal 0 HcmV?d00001 diff --git a/src/router/index.js b/src/router/index.js index 4019c168..bcfe9e18 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -4245,6 +4245,15 @@ export const constantRoutes = [ }, component: (resolve) => require(['@/views/sunVillage_info/resourceDetail'], resolve) }, + { ////阳光村务(新)-- 修改资源 + path: '/sunVillage_info/detailed_liabilities', + name: 'sunVillageInfoDetailedLiabilities', + meta: { + title: '负债表', + hidden: true, + }, + component: (resolve) => require(['@/views/sunVillage_info/detailed_liabilities'], resolve) + }, { ////农业综合行政执法公众平台 path: '/lawEnforcement/index_new', name: 'lawEnforcementIndexNew', diff --git a/src/utils/finance.js b/src/utils/finance.js new file mode 100644 index 00000000..8dac27d2 --- /dev/null +++ b/src/utils/finance.js @@ -0,0 +1,259 @@ +import {numFormat} from "@/utils/index"; +import BigNumber from "bignumber.js"; + +export const FINANCE = { + CONFIG_KEY: '_Finance_config', + EXPRESSION_REPORT_TEMPLATE: { + ASSET_AND_LIABILITY: "资产负债表", + QUARTER_REPORT: "季度报表", + INCOME_DISTRIBUTION_REPORT: "收益分配表", + }, + + VOUCHER_CACHE_LIFECYCLE: 300000, + + getConfig(name, defVal) { + let config = localStorage.getItem(this.CONFIG_KEY); + if(config) + { + config = JSON.parse(config); + if(config.hasOwnProperty(name)) + return config[name]; + } + return defVal; + }, + setConfig(name, val) { + let config = localStorage.getItem(this.CONFIG_KEY); + if(!config) + config = {}; + else + config = JSON.parse(config); + config[name] = val; + localStorage.setItem(this.CONFIG_KEY, JSON.stringify(config)); + }, + makeSubjectsTree(SubjectsList, subjectTypes) { + let func = (pid) => { + let arr = null; + for(let v of SubjectsList) + { + let parentId = v.parentId || v.subjectId.substr(0, v.subjectId.length - 3) || null; + if(parentId == pid) + { + if(!arr) arr = []; + let a = func(v.subjectId); + if(a) + { + v.children = a; + v.is_last = 'N'; + } + else + v.is_last = 'Y'; + v.disabled = false; + v.label = v.subjectId + ' ' + v.subjectName; + v.label2 = v.subjectId + ' ' + v.subjectNameAll; + v.id = v.subjectId; + arr.push(v); + } + } + return arr; + }; + let res = func(null) || []; + if(!subjectTypes) + return res; + let r = []; + res.forEach((x) => { + let subjectIdStart = x.subjectId[0]; + let item = r.find((y) => y.subjectId == subjectIdStart); + if(!item) + { + let type = subjectTypes.find((y) => y.dictValue == subjectIdStart); + if(!type) + return; + item = { + id: type.dictValue, + subjectId: type.dictValue, + label: type.dictLabel, + label2: type.dictLabel, + sortFlag: type.dictSort, + is_last: 'N', + subjectName: '', + subjectNameAll: '', + children: [], + disabled: true, + }; + r.push(item); + } + item.children.push(x); + }); + r.sort((a, b) => a.dictSort - b.dictSort); + return r; + }, + makeSubjectsTree_filter(SubjectsList, subjectTypes, filterFunc) { + let func = (pid) => { + let arr = null; + for(let v of SubjectsList) + { + let parentId = v.parentId || v.subjectId.substr(0, v.subjectId.length - 3) || null; + if(parentId == pid) + { + if(!arr) arr = []; + let a = func(v.subjectId); + if(a) + { + v.children = a; + v.is_last = 'N'; + } + else + v.is_last = 'Y'; + v.label = v.subjectId + ' ' + v.subjectName; + v.label2 = v.subjectId + ' ' + v.subjectNameAll; + v.disabled = !filterFunc(v); + arr.push(v); + } + } + return arr; + }; + let filter_func = (children) => { + let res = null; + if(children) + { + let newChildren = []; + for(let v of children) + { + let b = filterFunc(v); + let arr = filter_func(v.children); + if(!arr) + delete v.children; + else + { + v.children = arr; + b = true; + } + if(b) + newChildren.push(v); + } + let r = newChildren.length > 0; + if(r) + res = newChildren; + } + return res; + }; + let res = filter_func(func(null) || []) || []; + let r = []; + res.forEach((x) => { + let subjectIdStart = x.subjectId[0]; + let item = r.find((y) => y.subjectId == subjectIdStart); + if(!item) + { + let type = subjectTypes.find((y) => y.dictValue == subjectIdStart); + if(!type) + return; + item = { + id: type.dictValue, + label: type.dictLabel, + label2: type.dictLabel, + subjectId: type.dictValue, + sortFlag: type.dictSort, + is_last: 'N', + subjectNameAll: '', + children: [], + disabled: true, + }; + r.push(item); + } + item.children.push(x); + }); + r.sort((a, b) => a.dictSort - b.dictSort); + return r; + }, + /*数字每隔3位一位小数: 0返回空白 */ + formatNum(value) { + if(value === undefined || value === null) + return ''; + if(typeof(value) === "string") + { + if(value.indexOf(',') !== -1) + return value; + value = Number(value); + if(isNaN(value)) + return ''; + } + if(value === 0) + return ''; + return numFormat(value); + }, + formatList(list) { + if(!list || !Array.isArray(list) && !list.length && arguments.length > 1) + return []; + list.forEach((x) => { + for(let i = 1; i < arguments.length; i++) + { + let k = arguments[i]; + if(!x.hasOwnProperty(k)) + continue; + x[k] = this.formatNum(x[k]); + } + }); + return list; + }, + obtainAssetSubject(str) { + if(!str) + return null; + let i = str.indexOf(":"); + if(i > 0) + return str.substring(0, i); + else if(/^\d+$/g.test(str)) + return str; + else + return null; + }, + Number(a) { + return new BigNumber(a, 10); + }, + zero() { + return new BigNumber(0, 10); + }, + add(a, b) { + if(!(a instanceof BigNumber)) + a = new BigNumber(a, 10); + if(!(b instanceof BigNumber)) + b = new BigNumber(b, 10); + return a.plus(b, 10); + }, + subtract(a, b) { + if(!(a instanceof BigNumber)) + a = new BigNumber(a, 10); + if(!(b instanceof BigNumber)) + b = new BigNumber(b, 10); + return a.minus(b, 10); + }, + neg(a) { + if(!(a instanceof BigNumber)) + a = new BigNumber(a, 10); + return a.negated(); + }, + isZero(a) { + if(!(a instanceof BigNumber)) + a = new BigNumber(a, 10); + return a.isZero(); + }, + toNumber(a) { + if(typeof(a) === 'number') + return a; + if(a instanceof BigNumber) + return a.toNumber(); + return Number(a); + }, + calcFontSizeFromTextLength(text, baseSize) { + if(!text) + return baseSize; + const N = 28; + let length = 0; + for(let i = 0; i < text.length; i++) + { + length += text.charCodeAt(i) > 127 ? 2 : 1; + } + const r = Math.round(baseSize - (Math.max(length / N, 1.0)) + 1); + //console.log(text, r); + return r; + }, +}; diff --git a/src/views/sunVillage_info/detailed_liabilities.vue b/src/views/sunVillage_info/detailed_liabilities.vue new file mode 100644 index 00000000..f7c7e6c3 --- /dev/null +++ b/src/views/sunVillage_info/detailed_liabilities.vue @@ -0,0 +1,752 @@ + + + + +