From 6599a806369e623e815da611e139ba8410327e8c Mon Sep 17 00:00:00 2001 From: xyq <392009588@qq.com> Date: Tue, 7 Mar 2023 13:25:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=85=E5=9F=BA=E5=9C=B0=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E5=8A=9F=E8=83=BD=E5=A2=9E=E5=8A=A0=E5=8F=8A=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/onlineHome/homestead/circulation.js | 10 +- .../sunVillage_info/homestead/application.js | 17 +- .../homestead/homeapplynczjdpzs.js | 54 + .../homestead/homeapplyxcjsghxkz.js | 54 + src/api/sunVillage_info/homestead/paidExit.js | 2 +- src/assets/images/sunVillage_info/gscx.png | Bin 0 -> 3254 bytes src/assets/images/sunVillage_info/jfcl.png | Bin 0 -> 3134 bytes src/assets/images/sunVillage_info/wctc.png | Bin 0 -> 2636 bytes src/assets/images/sunVillage_info/xczf.png | Bin 0 -> 3684 bytes src/components/home/HomeApplyUploadCompTc.vue | 299 + src/router/index.js | 51 +- src/utils/index.js | 1208 ++++ .../homestead/circulation/circulationAdd.vue | 461 +- .../circulation/circulationDetail.vue | 750 +- .../homestead/circulation/circulationList.vue | 8 +- .../circulation/circulationModify.vue | 985 ++- .../homestead/freeExit/freeExitAdd.vue | 678 ++ .../homestead/freeExit/freeExitDetail.vue | 850 +++ .../homestead/freeExit/freeExitList.vue | 225 + .../homestead/freeExit/freeExitModify.vue | 587 ++ .../homeApplication/applicationAdd.vue | 1028 --- .../homeApplication/applicationForm.vue | 6015 ++++++++++++++--- .../homeApplication/applicationGsList.vue | 276 + .../homeApplication/applicationList.vue | 292 +- .../homeApplication/homePZSPanel.vue | 363 + .../homeApplication/homeXKZPanel.vue | 372 + .../homestead/paidExit/paidExitAdd.vue | 301 - .../homestead/paidExit/paidExitDetail.vue | 915 ++- .../homestead/paidExit/paidExitList.vue | 290 +- .../homestead/paidExit/paidExitModify.vue | 319 - .../homestead/supervision/supervisionAdd.vue | 80 +- .../supervision/supervisionDetail.vue | 43 +- .../homestead/supervision/supervisionList.vue | 5 +- .../homestead/supervision/supervisionWfxx.vue | 50 +- 34 files changed, 12962 insertions(+), 3626 deletions(-) create mode 100644 src/api/sunVillage_info/homestead/homeapplynczjdpzs.js create mode 100644 src/api/sunVillage_info/homestead/homeapplyxcjsghxkz.js create mode 100644 src/assets/images/sunVillage_info/gscx.png create mode 100644 src/assets/images/sunVillage_info/jfcl.png create mode 100644 src/assets/images/sunVillage_info/wctc.png create mode 100644 src/assets/images/sunVillage_info/xczf.png create mode 100644 src/components/home/HomeApplyUploadCompTc.vue create mode 100644 src/utils/index.js create mode 100644 src/views/yinnong/homestead/freeExit/freeExitAdd.vue create mode 100644 src/views/yinnong/homestead/freeExit/freeExitDetail.vue create mode 100644 src/views/yinnong/homestead/freeExit/freeExitList.vue create mode 100644 src/views/yinnong/homestead/freeExit/freeExitModify.vue delete mode 100644 src/views/yinnong/homestead/homeApplication/applicationAdd.vue create mode 100644 src/views/yinnong/homestead/homeApplication/applicationGsList.vue create mode 100644 src/views/yinnong/homestead/homeApplication/homePZSPanel.vue create mode 100644 src/views/yinnong/homestead/homeApplication/homeXKZPanel.vue delete mode 100644 src/views/yinnong/homestead/paidExit/paidExitAdd.vue delete mode 100644 src/views/yinnong/homestead/paidExit/paidExitModify.vue diff --git a/src/api/onlineHome/homestead/circulation.js b/src/api/onlineHome/homestead/circulation.js index e2f3f2f2..10669eff 100644 --- a/src/api/onlineHome/homestead/circulation.js +++ b/src/api/onlineHome/homestead/circulation.js @@ -3,7 +3,7 @@ import request from '@/utils/request' //查询列表 export function getList(data){ return request({ - url:'/house/mobile/lz/list', + url:'/home/lz/list', method:'get', params:data }) @@ -12,7 +12,7 @@ export function getList(data){ //删除列表项 export function removeList(id){ return request({ - url:'/house/lz/remove/'+id, + url:'/home/lz/remove/'+id, method:'get' }) } @@ -20,7 +20,7 @@ export function removeList(id){ //宅基地流转详情 export function getLz(id){ return request({ - url:'/house/lz/get/'+id, + url:'/home/lz/get/'+id, method:'get' }) } @@ -102,9 +102,9 @@ export function goApply(id){ } //修改保存宅基地流转 -export function houseAdd(data){ +export function homeLzAdd(data){ return request({ - url:'/house/lz/add', + url:'/home/lz/add', method:'post', data:data }) diff --git a/src/api/sunVillage_info/homestead/application.js b/src/api/sunVillage_info/homestead/application.js index 48ed8968..6c4992d8 100644 --- a/src/api/sunVillage_info/homestead/application.js +++ b/src/api/sunVillage_info/homestead/application.js @@ -8,7 +8,14 @@ export function getList(data){ params:data }) } - +// 查询用地建房申请公示列表 +export function getGsList(query) { + return request({ + url: '/home/homeapplyydjfsq/gsList', + method: 'get', + params: query + }) +} //获取申请单明细 export function allInformation(id){ return request({ @@ -17,6 +24,14 @@ export function allInformation(id){ }) } +// 获取用地建房申请证书 +export function getCertificate(id) { + return request({ + url: '/home/homeapplyydjfsq/certificate/' + id, + method: 'get' + }) +} + //获取申请单明细 export function allInformationAnnounce(id){ return request({ diff --git a/src/api/sunVillage_info/homestead/homeapplynczjdpzs.js b/src/api/sunVillage_info/homestead/homeapplynczjdpzs.js new file mode 100644 index 00000000..ed8ac164 --- /dev/null +++ b/src/api/sunVillage_info/homestead/homeapplynczjdpzs.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询宅基地批准书列表 +export function listHomeapplynczjdpzs(query) { + return request({ + url: '/home/homeapplynczjdpzs/list', + method: 'get', + params: query + }) +} + +// 导出宅基地批准书 +export function exportHomeapplynczjdpzs(query) { + return request({ + url: '/home/homeapplynczjdpzs/export', + method: 'get', + params: query + }) +} + +// 查询宅基地批准书详细 +export function getHomeapplynczjdpzs(id) { + return request({ + url: '/home/homeapplynczjdpzs/get/' + id, + method: 'get' + }) +} + +// 新增宅基地批准书 +export function addHomeapplynczjdpzs(data) { + return request({ + url: '/home/homeapplynczjdpzs/add', + method: 'post', + data: data + }) +} + +// 修改宅基地批准书 +export function updateHomeapplynczjdpzs(data) { + return request({ + url: '/home/homeapplynczjdpzs/edit', + method: 'post', + data: data + }) +} + +// 删除宅基地批准书 +export function delHomeapplynczjdpzs(id) { + return request({ + url: '/home/homeapplynczjdpzs/remove/' + id, + method: 'get' + }) +} + diff --git a/src/api/sunVillage_info/homestead/homeapplyxcjsghxkz.js b/src/api/sunVillage_info/homestead/homeapplyxcjsghxkz.js new file mode 100644 index 00000000..11a0ab00 --- /dev/null +++ b/src/api/sunVillage_info/homestead/homeapplyxcjsghxkz.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询建设规划许可证列表 +export function listHomeapplyxcjsghxkz(query) { + return request({ + url: '/home/homeapplyxcjsghxkz/list', + method: 'get', + params: query + }) +} + +// 导出建设规划许可证 +export function exportHomeapplyxcjsghxkz(query) { + return request({ + url: '/home/homeapplyxcjsghxkz/export', + method: 'get', + params: query + }) +} + +// 查询建设规划许可证详细 +export function getHomeapplyxcjsghxkz(id) { + return request({ + url: '/home/homeapplyxcjsghxkz/get/' + id, + method: 'get' + }) +} + +// 新增建设规划许可证 +export function addHomeapplyxcjsghxkz(data) { + return request({ + url: '/home/homeapplyxcjsghxkz/add', + method: 'post', + data: data + }) +} + +// 修改建设规划许可证 +export function updateHomeapplyxcjsghxkz(data) { + return request({ + url: '/home/homeapplyxcjsghxkz/edit', + method: 'post', + data: data + }) +} + +// 删除建设规划许可证 +export function delHomeapplyxcjsghxkz(id) { + return request({ + url: '/home/homeapplyxcjsghxkz/remove/' + id, + method: 'get' + }) +} + diff --git a/src/api/sunVillage_info/homestead/paidExit.js b/src/api/sunVillage_info/homestead/paidExit.js index a2ac7202..71835e99 100644 --- a/src/api/sunVillage_info/homestead/paidExit.js +++ b/src/api/sunVillage_info/homestead/paidExit.js @@ -12,7 +12,7 @@ export function getList(data){ //删除列表项 export function removeList(id){ return request({ - url:'/house/zyyctc/remove/'+id, + url:'/home/mobile/yctcRemove/'+id, method:'get' }) } diff --git a/src/assets/images/sunVillage_info/gscx.png b/src/assets/images/sunVillage_info/gscx.png new file mode 100644 index 0000000000000000000000000000000000000000..fa25c65de84a73a57d80af3b8a318d284cd206f4 GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/sunVillage_info/jfcl.png b/src/assets/images/sunVillage_info/jfcl.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca8f9abdd6fadea7da072efd400b957d401a672 GIT binary patch literal 3134 zcmbVOc{r4N8y-s<`!2gN6w0i|GQ(tNf+m~=dJhqV{dE1CdA zFiG(|U|YPmA1ywLhNVLtH$xnRI57bm5KtjPHjBf@3GvWxyg2cEbsGVNd@~V5;i2E1 z3h<&p2wWZjv4-2gXebOCVvB{NY>-$q#u9=?qHGaJTLj7qhD70zHaIIRr>EU7FHa~g(5pPX&c6GxNUF-;M zD3mMF&dt@$*%fVtazVQgQ7F_;ESbX>P&qW`XqD0)GZ}d)i%muTe4%T@e z{1_%!oiFKZxUDj*%oDFydoS7EX++aj?>s((GH}%}uhYe|%t&EnfulQ_p}OHItx+LA zuT-WaqvxSs>mNR!BjgRNEfvtXpocY{_lMwRj#xNC*4BMW_eJ3ea~MQcI()4UtyHs7sZVUzRc} zG#?}-FtsE{R_YqqLE6;Ka=c%u!qm3L&pKdeZb=l> z$kFNvlxVBqh1*F!$jMzsQ7o&i6c4A&t2&*b{As>iBDpBXEHZp#W%9IeSVBfpJ>^MY zBG&j~#OJuGk*mJto&-l^S78rdlVg(wsP@d7Wqs9$i{8_C{av$| zY<-unr*ivrO{-jeXgXfWvQB60H!7UY!vzH5^&YST_y479d_nbnMf&mU<_Rs4+r9Jd zn1Uv^;;ofQnTNOEoMT3x(43mW+)oWhVq`kr-{H(o(6>x()b93eTb7cmdT8(4Z66Ox`)CrT1%DdtL_c!$r$ zb#2OBK2LGWq;$g+Zb>Z^Y*DDHjhF6iWBAeVgKkNzquTV$)?0nu4MaVYw8dJGjC)Dn33#Fu?lUWws>w*O2lYW~AtK{eb(CE%5y|JT(?=~I$U@^>?JBg<6 z_B`bXXUR0CH8?3-bnS32zV4K-GSlv*aW=7fSAMI5#j@9hPgg!oX?q^yQ|nc>j!p%x zTRfLa8*nN+oExt(@n#Q6iLW(%xIq=oCWW3sr`T7C>UIjQ9s97m)5AFAOyPKk_StAJe^l zi(ws0NN|7~f!@Isx|1Xjo+Uc<(ZqmQt5N$ApC%`u>x1TRefA&E71 zkN1(5o9+v1+c0G_(uc_N`|hwBUbfF%FBq&{=~Du0w2hJ1>n4RZ@Vj?AjN8Rkvvt)Q zz#=KIS7+H{gFG8hUjyqmoo<2iV-kF%>d=IhLO{=B1Icm~&oIxjO7)1~8^1mrcDF8) z&*?w=)!p%KA;Y6{P{wkCC|XKUa_Fd&e^#Vyv~!SL>(lrug#TW6vLUG-XrS#G1Xay#I$w2f2-1sC*_Jk>CavAt`FUg>En^QRORb)-6NH3 z>r8Z}7f=m-U!^j-&R*;bN%xW*toY-OQPC%j1LnDA2R2+AN>CdJd;!X;IiMDy;@mJ% zyfyOOc#~Rx9I)tXGl#!aXmo!vLx%=_kccTXDKK7eGp1y&OqnrWB}vGDpq$rC_EWRQ P)jxW&t2eRMB{cOv5#AxW literal 0 HcmV?d00001 diff --git a/src/assets/images/sunVillage_info/wctc.png b/src/assets/images/sunVillage_info/wctc.png new file mode 100644 index 0000000000000000000000000000000000000000..37b94f267b87bdc02a1b302a63fffe1695f3d0ae GIT binary patch literal 2636 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 DGks?V literal 0 HcmV?d00001 diff --git a/src/components/home/HomeApplyUploadCompTc.vue b/src/components/home/HomeApplyUploadCompTc.vue new file mode 100644 index 00000000..7c8cf2dd --- /dev/null +++ b/src/components/home/HomeApplyUploadCompTc.vue @@ -0,0 +1,299 @@ + + + + diff --git a/src/router/index.js b/src/router/index.js index 5cc46273..d3cf7e36 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -642,7 +642,7 @@ export const constantRoutes = [ title: '农村宅基地申请表', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/homeApplication/applicationForm'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/homeApplication/applicationForm'], resolve) }, { path: '/applicationList', @@ -651,7 +651,16 @@ export const constantRoutes = [ title: '宅基地申请', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/homeApplication/applicationList'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/homeApplication/applicationList'], resolve) + }, + { + path: '/applicationGsList', + name: 'applicationGsList', + meta: { + title: '宅基地申请', + hidden: true, + }, + component: (resolve) => require(['@/views/yinnong/homestead/homeApplication/applicationGsList'], resolve) }, { path: '/certificateList', @@ -696,7 +705,7 @@ export const constantRoutes = [ title: '使用权流转', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/circulation/circulationList'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/circulation/circulationList'], resolve) }, { path: '/circulationAdd', @@ -705,7 +714,7 @@ export const constantRoutes = [ title: '添加宅基地使用权流转', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/circulation/circulationAdd'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/circulation/circulationAdd'], resolve) } , { @@ -771,6 +780,24 @@ export const constantRoutes = [ }, component: (resolve) => require(['@/views/onlineHome/homestead/homeApplication/applicationAdd'], resolve) }, + { + path: '/homeXkzPanel', + name: 'homeXkzPanel', + meta: { + title: '宅基地许可证书', + hidden: true, + }, + component: (resolve) => require(['@/views/yinnong/homestead/homeApplication/homeXKZPanel'], resolve) + }, + { + path: '/homePzsPanel', + name: 'homePzsPanel', + meta: { + title: '宅基地批准证书', + hidden: true, + }, + component: (resolve) => require(['@/views/yinnong/homestead/homeApplication/homePZSPanel'], resolve) + }, { path: '/paidExit', name: 'paidExit', @@ -778,7 +805,7 @@ export const constantRoutes = [ title: '有偿退出', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/paidExit/paidExitList'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/paidExit/paidExitList'], resolve) }, { path: '/freeExit', @@ -787,7 +814,7 @@ export const constantRoutes = [ title: '无偿退出', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/freeExit/freeExitList'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/freeExit/freeExitList'], resolve) }, { path: '/paidExitAdd', @@ -805,7 +832,7 @@ export const constantRoutes = [ title: '无偿退出', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/freeExit/freeExitAdd'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/freeExit/freeExitAdd'], resolve) }, { path: '/mortgage', @@ -904,7 +931,7 @@ export const constantRoutes = [ title: '查看宅基地使用权流转', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/circulation/circulationDetail'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/circulation/circulationDetail'], resolve) }, { path: '/circulationModify', @@ -913,7 +940,7 @@ export const constantRoutes = [ title: '修改宅基地使用权流转', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/circulation/circulationModify'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/circulation/circulationModify'], resolve) }, { path: '/mortgageDetail', @@ -940,7 +967,7 @@ export const constantRoutes = [ title: '有偿退出详情', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/paidExit/paidExitDetail'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/paidExit/paidExitDetail'], resolve) }, { path: '/freeExitDetail', @@ -949,7 +976,7 @@ export const constantRoutes = [ title: '无偿退出详情', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/freeExit/freeExitDetail'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/freeExit/freeExitDetail'], resolve) }, { path: '/paidExitModify', @@ -967,7 +994,7 @@ export const constantRoutes = [ title: '无偿退出修改', hidden: true, }, - component: (resolve) => require(['@/views/onlineHome/homestead/freeExit/freeExitModify'], resolve) + component: (resolve) => require(['@/views/yinnong/homestead/freeExit/freeExitModify'], resolve) }, { path: '/paidUtilizeList', diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 00000000..c4b7904e --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,1208 @@ + + +/** + * 表格时间格式化 + */ +export function formatDate(cellValue) { + if (cellValue == null || cellValue == "") return ""; + var date = new Date(cellValue) + var year = date.getFullYear() + var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 + var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() + var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() + var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() + var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() + return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds +} + + +/** + * @param {string} url + * @returns {Object} + */ +export function getQueryObject(url) { + url = url == null ? window.location.href : url + const search = url.substring(url.lastIndexOf('?') + 1) + const obj = {} + const reg = /([^?&=]+)=([^?&=]*)/g + search.replace(reg, (rs, $1, $2) => { + const name = decodeURIComponent($1) + let val = decodeURIComponent($2) + val = String(val) + obj[name] = val + return rs + }) + return obj +} + +/** + * @param {string} input value + * @returns {number} output value + */ +export function byteLength(str) { + // returns the byte length of an utf8 string + let s = str.length + for (var i = str.length - 1; i >= 0; i--) { + const code = str.charCodeAt(i) + if (code > 0x7f && code <= 0x7ff) s++ + else if (code > 0x7ff && code <= 0xffff) s += 2 + if (code >= 0xDC00 && code <= 0xDFFF) i-- + } + return s +} + +/** + * @param {Array} actual + * @returns {Array} + */ +export function cleanArray(actual) { + const newArray = [] + for (let i = 0; i < actual.length; i++) { + if (actual[i]) { + newArray.push(actual[i]) + } + } + return newArray +} + +/** + * @param {Object} json + * @returns {Array} + */ +export function param(json) { + if (!json) return '' + return cleanArray( + Object.keys(json).map(key => { + if (json[key] === undefined) return '' + return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]) + }) + ).join('&') +} + +/** + * @param {string} url + * @returns {Object} + */ +export function param2Obj(url) { + const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') + if (!search) { + return {} + } + const obj = {} + const searchArr = search.split('&') + searchArr.forEach(v => { + const index = v.indexOf('=') + if (index !== -1) { + const name = v.substring(0, index) + const val = v.substring(index + 1, v.length) + obj[name] = val + } + }) + return obj +} + +/** + * @param {string} val + * @returns {string} + */ +export function html2Text(val) { + const div = document.createElement('div') + div.innerHTML = val + return div.textContent || div.innerText +} + +/** + * Merges two objects, giving the last one precedence + * @param {Object} target + * @param {(Object|Array)} source + * @returns {Object} + */ +export function objectMerge(target, source) { + if (typeof target !== 'object') { + target = {} + } + if (Array.isArray(source)) { + return source.slice() + } + Object.keys(source).forEach(property => { + const sourceProperty = source[property] + if (typeof sourceProperty === 'object') { + target[property] = objectMerge(target[property], sourceProperty) + } else { + target[property] = sourceProperty + } + }) + return target +} + +/** + * @param {HTMLElement} element + * @param {string} className + */ +export function toggleClass(element, className) { + if (!element || !className) { + return + } + let classString = element.className + const nameIndex = classString.indexOf(className) + if (nameIndex === -1) { + classString += '' + className + } else { + classString = + classString.substr(0, nameIndex) + + classString.substr(nameIndex + className.length) + } + element.className = classString +} + +/** + * @param {string} type + * @returns {Date} + */ +export function getTime(type) { + if (type === 'start') { + return new Date().getTime() - 3600 * 1000 * 24 * 90 + } else { + return new Date(new Date().toDateString()) + } +} + +/** + * @param {Function} func + * @param {number} wait + * @param {boolean} immediate + * @return {*} + */ +export function debounce(func, wait, immediate) { + let timeout, args, context, timestamp, result + + const later = function () { + // 据上一次触发时间间隔 + const last = +new Date() - timestamp + + // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait + if (last < wait && last > 0) { + timeout = setTimeout(later, wait - last) + } else { + timeout = null + // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 + if (!immediate) { + result = func.apply(context, args) + if (!timeout) context = args = null + } + } + } + + return function (...args) { + context = this + timestamp = +new Date() + const callNow = immediate && !timeout + // 如果延时不存在,重新设定延时 + if (!timeout) timeout = setTimeout(later, wait) + if (callNow) { + result = func.apply(context, args) + context = args = null + } + + return result + } +} + +/** + * This is just a simple version of deep copy + * Has a lot of edge cases bug + * If you want to use a perfect deep copy, use lodash's _.cloneDeep + * @param {Object} source + * @returns {Object} + */ +export function deepClone(source) { + if (!source && typeof source !== 'object') { + throw new Error('error arguments', 'deepClone') + } + const targetObj = source.constructor === Array ? [] : {} + Object.keys(source).forEach(keys => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = deepClone(source[keys]) + } else { + targetObj[keys] = source[keys] + } + }) + return targetObj +} + +/** + * @param {Array} arr + * @returns {Array} + */ +export function uniqueArr(arr) { + return Array.from(new Set(arr)) +} + +/** + * @returns {string} + */ +export function createUniqueString() { + const timestamp = +new Date() + '' + const randomNum = parseInt((1 + Math.random()) * 65536) + '' + return (+(randomNum + timestamp)).toString(32) +} + +/** + * Check if an element has a class + * @param {HTMLElement} elm + * @param {string} cls + * @returns {boolean} + */ +export function hasClass(ele, cls) { + return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) +} + +/** + * Add class to element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function addClass(ele, cls) { + if (!hasClass(ele, cls)) ele.className += ' ' + cls +} + +/** + * Remove class from element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function removeClass(ele, cls) { + if (hasClass(ele, cls)) { + const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') + ele.className = ele.className.replace(reg, ' ') + } +} + +export function makeMap(str, expectsLowerCase) { + const map = Object.create(null) + const list = str.split(',') + for (let i = 0; i < list.length; i++) { + map[list[i]] = true + } + return expectsLowerCase + ? val => map[val.toLowerCase()] + : val => map[val] +} + +/*数字每隔3位一位小数*/ +export function numFormat(value) { + if (value == null) { + return ""; + } + if (!value) return "0.00"; + value = value.toFixed(2); + let is_neg = value < 0; + var intPart = Math.abs(Math.trunc(value)); // 获取整数部分 + var intPartFormat = intPart.toString() + .replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); // 将整数部分逢三一断 + if(is_neg) + intPartFormat = '-' + intPartFormat; + var floatPart = ".00"; // 预定义小数部分 + var value2Array = value.split("."); + // =2表示数据有小数位 + if (value2Array.length === 2) { + floatPart = value2Array[1].toString(); // 拿到小数部分 + if (floatPart.length === 1) { + // 补0,实际上用不着 + return intPartFormat + "." + floatPart + "0"; + } else { + return intPartFormat + "." + floatPart; + } + } else { + return intPartFormat + floatPart; + } +} + +/* 文件大小格式化 */ +export function formatFileSize(size) { + const Unit = ["Bytes", "Kb", "Mb", "Gb", "Tb"]; + //const Unit = ["byte", "K", "M", "G", "T"]; + let s, i; + for(s = size, i = 0; s >= 1024 && i < Unit.length - 1; s /= 1024, i++); + return s.toFixed(2).replace(/\.00$/, '') + Unit[i]; +} + +export function intFormat(value) { + if (value == null) { + return ""; + } + if (!value) return "0" + return Math.trunc(value) + .toString() + .replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); // 将整数部分逢三一断 +} + +/** + * 支持的时间日期格式占位符: + * 支持通用占位符和MySQL占位符(可以混合) + * 格式化时以下都支持, 解析时不支持星期几 + * 不支持时区, 保留z Z zz ZZ zzz ZZZ zzzz ZZZZ %z %Z + * + * 4位年: yyyy %Y + * 2位年: yy %y + * 2位月: MM %m + * 数字月: M %c + * 英文月: MMMM %M + * 简写英文月: MMM %b + * 2位日: dd %d + * 数字日: d + * 2位时(24): HH %H + * 数字时(24): H %k + * 2位时(12): hh %I %h + * 数字时(12): h %l + * 2位分: mm ii %i + * 数字分: m i + * 2位秒: ss %s %S + * 数字秒: s + * 3位毫秒: sss + * 小写上下午(AM/PM): a p + * 大写上下午(AM/PM): A P %p + * 星期几(周一为1, 周日为7): u + * 星期几(周日为0): %w + * 英文星期几: dddd %W + * 简写英文星期几: ddd %a + * %: %% // MySQL特殊占位符% + */ +// Eng/lish +const DATE_TIME_FORMAT_TYPE_IGNORE = 'ign'; +const DATE_TIME_FORMAT_TYPE_EXPRESSION = 'exp'; +const DATE_TIME_FORMAT_TYPE_RAW = 'raw'; +const DAYS_SIMPLE = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; +const DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; +const MONTHS_SIMPLE = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; +function parseDateTimeFormatter(format) +{ + let expect = function(target, str, range) { + let i = 0; + if(!range) + range = 1; + if(!Array.isArray(range)) + { + let arr = []; + for(let m = 1; m <= range; m++) + arr.push(m); + range = arr; + } + let res = 0; + let max = Math.max(...range); + let min = Math.min(...range); + while(i < str.length) + { + let ch = str[i++]; + if(target.indexOf(ch) === -1) + break; + if(range.indexOf(i) === -1) + { + if(i >= max) + break; + } + if(range.indexOf(i) !== -1) + res = i; + } + if(res > 0) + { + return res; + } + return false; + }; + let i = 0; + let arr = []; + while(i < format.length) + { + let ch = format[i]; + let n = false; + switch(ch) + { + case 'y': + n = expect('y', format.substr(i), [2, 4]); + break; + case 'M': + n = expect('M', format.substr(i), 4); + break; + case 'd': + n = expect('d', format.substr(i), 4); + break; + case 'H': + case 'h': + n = expect(ch, format.substr(i), 2); + break; + case 'm': + case 'i': + n = expect(ch, format.substr(i), 2); + break; + case 's': + n = expect('s', format.substr(i), 3); + break; + case 'a': + case 'p': + case 'A': + case 'P': + case 'u': + n = expect(ch, format.substr(i)); + break; + case 'z': + case 'Z': + n = expect(ch, format.substr(i), 4); + break; + case '%': + n = expect('YmdHisSyecklIh%zZ', format.substr(i + 1)); + if(n === 1) + n++; + break; + default: + arr.push({str: ch, type: DATE_TIME_FORMAT_TYPE_RAW}); + i++; + continue; + } + if(n) + { + let s = format.substr(i, n); + let ignore = ['z', 'zz', 'zzz', 'zzzz', 'Z', 'ZZ', 'ZZZ', 'ZZZZ', '%z', '%Z'].indexOf(s) !== -1; + arr.push({str: s, type: ignore ? DATE_TIME_FORMAT_TYPE_IGNORE : DATE_TIME_FORMAT_TYPE_EXPRESSION}); + i += n; + } + else + { + arr.push({str: format.substr(i), type: DATE_TIME_FORMAT_TYPE_RAW}); + break; + } + } + return arr; +} + +/** + * 格式化日期时间 + * @param date 日期时间 Date对象/时间戳 默认当前日期时间 + * @param format 格式化字符串 字符串 默认 yyyy-MM-dd HH:mm:ss + * @returns {string} 日期时间格式化后的字符串 + */ +export function date_format(date, format) { + if(arguments.length === 1) + { + format = date; + date = null; + } + if (!date) + date = new Date; + else if(!date instanceof Date) + date = new Date(date); + format = format || 'yyyy-MM-dd HH:mm:ss'; + let numpad = function(num, limit) { + limit = limit || 10; + if(num >= limit) + return num; + let res = num; + while(num < limit) + { + res = '0' + res; + limit /= 10; + } + return res; + } + const _y = date.getFullYear(); + const _m = date.getMonth() + 1; + const _d = date.getDate(); + const _h = date.getHours(); + const _i = date.getMinutes(); + const _s = date.getSeconds(); + const _a = date.getDay(); + const _z = date.getMilliseconds(); + // General style + let Options = { + yyyy: _y, + MM: numpad(_m), + dd: numpad(_d), + HH: numpad(_h), + mm: numpad(_i), + ss: numpad(_s), + sss: numpad(_z, 100), + yy: _y % 100, + M: _m, + d: _d, + H: _h, + m: _i, + s: _s, + hh: numpad((_h % 12) || 12), + h: (_h % 12) || 12, + // Qt style + ddd: DAYS_SIMPLE[_a - 1], + dddd: DAYS[_a - 1], + MMM: MONTHS_SIMPLE[_m - 1], + MMMM: MONTHS[_m - 1], + // Java style + a: _h > 12 ? 'pm' : 'am', + A: _h > 12 ? 'PM' : 'AM', + u: _a, + }; + Options['p'] = Options.a; + Options['P'] = Options.A; + // PHP style + Options['ii'] = Options.mm; + Options['i'] = Options.m; + // MySQL style + Options['%Y'] = Options.yyyy; + Options['%m'] = Options.MM; + Options['%d'] = Options.dd; + Options['%H'] = Options.HH; + Options['%i'] = Options.mm; + Options['%s'] = Options.ss; + Options['%S'] = Options.ss; + Options['%y'] = Options.yy; + Options['%e'] = Options.d; + Options['%c'] = Options.M; + Options['%k'] = Options.H; + Options['%l'] = Options.h; + Options['%I'] = Options.hh; + Options['%h'] = Options.hh; + Options['%p'] = Options.A; + Options['%w'] = Options.u - 1; + Options['%a'] = Options.ddd; + Options['%W'] = Options.dddd; + Options['%M'] = Options.MMMM; + Options['%b'] = Options.MMM; + Options['%%'] = '%'; + + let arr = parseDateTimeFormatter(format); + //console.log(arr); + arr = arr.filter((x) => x.type !== DATE_TIME_FORMAT_TYPE_IGNORE).map((x) => { + return x.type === DATE_TIME_FORMAT_TYPE_EXPRESSION ? (Options[x.str] || x.str) : x.str; + }) + //console.log(format, '|', arr.join('')); + return arr.join(''); +} + +/** + * 解析日期时间 + * @param date 日期时间字符串 字符串 + * @param format 格式化字符串 字符串 默认 yyyy-MM-dd HH:mm:ss + * @param initNow 缺省部分是否使用当前日期时间部分代替 bool 默认不使用当前 + * @returns {Date} 解析日期时间出来的Date对象 + */ +export function strtotime(date, format, initNow) +{ + if (!date) + return null; + let expect = function(target, str) { + if(Array.isArray(target)) + { + let res = 0; + if(typeof(target[0]) === 'number') + { + for(let t of target) + { + if(str.length >= t) + { + if(t > res && new RegExp(`^\\d{${t}}`).test(str)) + res = t; + } + } + } + else + { + for(let t of target) + { + if(str.length < t.length) + continue; + if(str.startsWith(t)) + { + res = t.length; + break; + } + } + } + return res; + } + else + { + if(typeof(target) === 'number') + { + if(str.length < target) + return 0; + if(!new RegExp(`^\\d{${target}}`).test(str)) + return null; + return target; + } + else if(typeof(target) === 'object') + { + let res = 0; + let min = target.min || 0; + let max = target.max; + for(let m = min; m <= max; m++) + { + let t = '' + m; + if(str.length >= t.length) + { + if(str.startsWith(t)) + res = t.length; + } + } + return res; + } + else + { + if(str.length < target.length) + return 0; + if(!str.startsWith(target)) + return 0; + return target.length; + } + } + }; + format = format || 'yyyy-MM-dd HH:mm:ss'; + let arr = parseDateTimeFormatter(format); + let i = 0; + let _y = undefined; + let _m = undefined; + let _d = undefined; + let _h = undefined; + let _i = undefined; + let _s = undefined; + let _z = undefined; + let _h_12 = undefined; + let _ap = undefined; + let get_token = function(str, target) { + let r = expect(target, date.substr(i)); + if(r <= 0) + return null; + let nstr = date.substr(i, r); + i += r; + return nstr; + }; + //console.log(arr); + for(let part of arr) + { + if(part.type === DATE_TIME_FORMAT_TYPE_RAW || part.type === DATE_TIME_FORMAT_TYPE_IGNORE) + { + let r = expect(part.str, date.substr(i)); + if(!r) + return null; + i += r; + } + else + { + let p = null; + switch(part.str) + { + case 'yyyy': + case '%Y': + p = get_token(part.str, 4); + if(p) + _y = parseInt(p); + break; + case 'yy': + case '%y': + p = get_token(part.str, 2); + if(p) + _y = Math.floor((date.getFullYear()) / 100) * 100 + parseInt(p); + break; + case 'MM': + case '%m': + p = get_token(part.str, 2); + if(p) + _m = parseInt(p); + break; + case 'M': + case '%c': + p = get_token(part.str, {min: 1, max: 12}); + if(p) + _m = parseInt(p); + break; + case 'MMMM': + case '%M': + p = get_token(part.str, MONTHS); + if(p) + _m = MONTHS.indexOf(p) + 1; + break; + case 'MMM': + case '%b': + p = get_token(part.str, MONTHS_SIMPLE); + if(p) + _m = MONTHS_SIMPLE.indexOf(p) + 1; + break; + case 'dd': + case '%d': + p = get_token(part.str, 2); + if(p) + _d = parseInt(p); + break; + case 'HH': + case '%H': + p = get_token(part.str, 2); + if(p) + _h = parseInt(p); + break; + case 'H': + case '%k': + p = get_token(part.str, {max: 23}); + if(p) + _h = parseInt(p); + break; + case 'hh': + case '%I': + case '%h': + p = get_token(part.str, 2); + if(p) + _h_12 = parseInt(p); + break; + case 'h': + case '%l': + p = get_token(part.str, {max: 12}); + if(p) + _h_12 = parseInt(p); + break; + case 'mm': + case 'ii': + case '%i': + p = get_token(part.str, 2); + if(p) + _i = parseInt(p); + break; + case 'm': + case 'i': + p = get_token(part.str, {max: 59}); + if(p) + _i = parseInt(p); + break; + case 'ss': + case '%s': + case '%S': + p = get_token(part.str, 2); + if(p) + _s = parseInt(p); + break; + case 's': + p = get_token(part.str, {max: 59}); + if(p) + _s = parseInt(p); + break; + case 'sss': + p = get_token(part.str, {max: 999}); + if(p) + _z = parseInt(p); + break; + case 'A': + case 'p': { + const AP = ['AM', 'PM']; + p = get_token(part.str, AP); + if(p) + _ap = p.toLowerCase(); + } + break; + case 'a': + case 'P': + case '%p':{ + const AP = ['am', 'pm']; + p = get_token(part.str, AP); + if(p) + _ap = p; + } + break; + case 'u': + case '%w': + case '%W': + case 'dddd': + case 'ddd': + throw new Error('不支持星期几解析: ' + part.str); // not ignore and throw + //break; + case '%%': + //TODO: ignore 最好不解析出来 + break; + default: + throw new Error('不支持的格式解析: ' + part.str); + break; + } + if(!p) + return null; + } + } + if(_h_12 !== undefined && _ap !== undefined) + { + _h = (_ap === 'pm' ? _h_12 + 12 : _h_12) % 24; + } + let res = new Date; + //console.log('1111111111',_y, _m, _d, _h, _i, _s, _z); + if(_y === undefined) _y = initNow ? res.getFullYear() : 0; + if(_m === undefined) _m = initNow ? res.getMonth() + 1 : 1; + if(_d === undefined) _d = initNow ? res.getDate() : 1; + if(_h === undefined) _h = initNow ? res.getHours() : 0; + if(_i === undefined) _i = initNow ? res.getMinutes() : 0; + if(_s === undefined) _s = initNow ? res.getSeconds() : 0; + if(_z === undefined) _z = initNow ? res.getMilliseconds() : 0; + //console.log('2222222222',_y, _m, _d, _h, _i, _s, _z); + res.setFullYear(_y, _m - 1, _d); + res.setHours(_h, _i, _s, _z); + return res; +} + +/** + * 转换日期时间格式 + * @param dateStr 源日期时间字符串 字符串 + * @param sourceFormat 源格式化字符串 字符串 默认 yyyy-MM-dd HH:mm:ss + * @param targetFormat 目标格式化字符串 字符串 默认 yyyy-MM-dd HH:mm:ss + * @param initNow 缺省部分是否使用当前日期时间部分代替 bool 默认不使用当前 + * @returns {string} 重新格式化的日期时间出字符串 + */ +export function date(dateStr, sourceFormat, targetFormat, initNow) +{ + return date_format(strtotime(dateStr, sourceFormat, initNow), targetFormat); +} + +/** + * 自动生成多层级表头 + * @param printLines 表头数组 + * @param valueName 子级的属性名 + * @returns { + * { + * column: *[] 所有最底级的列, + * colCount: number 列数, + * header: *[] 表头 二维数组, 每一个成员数组是每一行tr, 其中每一个元素是每一个td, data是原始数组, colspan是td的colspan跨列数, rowspan是td的rowspan跨行数, hasChildren表示是否跨列 + * rowCount: number 行数 + * } + * } + * + * 表头exam: + let PrintLine = [ + { parameter: "bookDate", name: "日期", }, + { parameter: "subjectName", name: "科目名称", }, + { parameter: [ + { parameter: "jieQuantityNum", name: "数量", }, + { parameter: "jieQuantityUnit", name: "单位", }, + { parameter: [ + { parameter: "jieAmount", name: "借", }, + { parameter: "daiAmount", name: "贷", }, + ], name: "金额", }, + ], name: "入库",}, + { parameter: "ye", name: "余额" }, + ]; + ... + let res = gen_multi_level_table_header(PrintLines, 'parameter'); + this.mHeaders = res.header; + this.mColumns = res.column; + this.list = []; + ... 渲染 + + + {{ col.data.name }} + + + + + {{ item[val.parameter] }} + + + */ +export function gen_multi_level_table_header(printLines, valueName = 'value', labelName = undefined) +{ + if(labelName === undefined) + labelName = valueName; + let headers = []; + let columns = []; + // 获取行数 + let maxRow_func = function(arr, start = 1) { + let res = start; + for(let v of arr) + { + if(Array.isArray(v[valueName])) + { + let r = maxRow_func(v[valueName], start + 1); + if(r > res) + res = r; + } + } + return res; + }; + let maxRow = maxRow_func(printLines); + //console.log(maxRow); + + // 排列成2维数组 + let func = function(arr, col, row) { + let res = []; + let cols = 0; + for(let i in arr) + { + let item = arr[i]; + if(Array.isArray(item[valueName])) + { + let c = func(item[valueName], i, row + 1); + // delete newItem[valueName]; // 删除数组 + res.push({ + data: item, + name: item[labelName], + rowspan: 1, + colspan: c, + hasChildren: true, + }); + cols += c; + } + else + { + res.push({ + data: item, + name: item[labelName], + rowspan: 1, + colspan: 1, + hasChildren: false, + }); + columns.push(item); + cols++; + } + } + res.forEach((x) => { + if(!x.hasChildren) + x.rowspan = maxRow - row + 1; // min is 1 + }); + //console.log(res); + if(!headers[row - 1]) + headers[row - 1] = []; + headers[row - 1].push(...res); + return cols; + }; + let maxCol = func(printLines, 1, 1); + //console.log(headers); + return { + header: headers, + column: columns, + rowCount: maxRow, + colCount: maxCol, + }; +} + +export function calc_eltable_rowspan(/*list: array, filedA, filedB, filedC...*/) +{ + if(arguments.length < 2) + return null; + let list = arguments[0]; + let tableSpanConfig = {}; + let last = {}; + let last_key = {}; + for(let i = 1; i < arguments.length; i++) + { + let field = arguments[i]; + tableSpanConfig[field] = {}; + last[field] = null; + last_key[field] = null; + } + if(list.length === 0) + return tableSpanConfig; + + for (let i in list) { + let item = list[i]; + for(let m = 1; m < arguments.length; m++) + { + let field = arguments[m]; + if (item[field] !== last[field]) { + if (last_key[field] === null) { + tableSpanConfig[field][last_key[field]] = 0; + } else { + tableSpanConfig[field][last_key[field]] = i - last_key[field]; + } + last[field] = item[field]; + last_key[field] = i; + } + } + } + + for(let i = 1; i < arguments.length; i++) + { + let field = arguments[i]; + if (last_key[field] !== null) + tableSpanConfig[field][last_key[field]] = list.length - last_key[field]; + } + return tableSpanConfig; +} + +export function IS_DEVEL() +{ + return process.env.NODE_ENV.toLowerCase() === 'development'; +} + +export function IS_TESTING() +{ + return process.env.NODE_ENV.toLowerCase() === 'staging'; +} + +export function IS_STABLE() +{ + return process.env.NODE_ENV.toLowerCase() === 'production'; +} + +export const exportDefault = 'export default ' + +export const beautifierConf = { + html: { + indent_size: '2', + indent_char: ' ', + max_preserve_newlines: '-1', + preserve_newlines: false, + keep_array_indentation: false, + break_chained_methods: false, + indent_scripts: 'separate', + brace_style: 'end-expand', + space_before_conditional: true, + unescape_strings: false, + jslint_happy: false, + end_with_newline: true, + wrap_line_length: '110', + indent_inner_html: true, + comma_first: false, + e4x: true, + indent_empty_lines: true + }, + js: { + indent_size: '2', + indent_char: ' ', + max_preserve_newlines: '-1', + preserve_newlines: false, + keep_array_indentation: false, + break_chained_methods: false, + indent_scripts: 'normal', + brace_style: 'end-expand', + space_before_conditional: true, + unescape_strings: false, + jslint_happy: true, + end_with_newline: true, + wrap_line_length: '110', + indent_inner_html: true, + comma_first: false, + e4x: true, + indent_empty_lines: true + } +} + +// 首字母大小 +export function titleCase(str) { + return str.replace(/( |^)[a-z]/g, L => L.toUpperCase()) +} + +// 下划转驼峰 +export function camelCase(str) { + return str.replace(/-[a-z]/g, str1 => str1.substr(-1).toUpperCase()) +} + +export function isNumberStr(str) { + return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) +} + +export function parse_IDcard(idcard) { + if(!idcard) + return false; + if(idcard.length !== 18) + return false; + if(!/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(idcard)) + return false; + let sex = (parseInt(idcard.substr(16, 1)) % 2) ^ 1; + let now = new Date().getFullYear(); + let y = parseInt(idcard.substr(6, 4)); + let age = Math.max(now - y, 0); + return [sex, age]; +} + +export const PROPOSER_VIEW = 1; +export const PROPOSER_EDIT = 2; +export const PROPOSER_ADD = 3; + +export const APPLY_DRAFT = "1"; +export const GROUP_AUDITING = "32"; +export const GROUP_AUDITED = "2"; +export const GROUP_ANNOUNCING = "3"; +export const GROUP_ANNOUNCING_END = "33"; +export const VILLAGE_AUDITING = "31"; +export const VILLAGE_AUDITED = "4"; +export const VILLAGE_ANNOUNCING = "5"; +export const VILLAGE_ANNOUNCING_END = "34"; +export const COUNTY_RECEIVE = "6"; +export const FIRST_PRESENT = "7"; +export const COUNTY_AUDITING = "8"; +export const COUNTY_ANNOUNCING = "9"; +export const APPLY_AUDITED = "10"; +export const DISTRIBUTE_LICENSE = "11"; +export const START_DRAFT = "12"; +export const START_AUDITING = "13"; +export const START_GROUP_AUDITED = "14"; +export const START_VILLAGE_AUDITED = "15"; +export const START_COUNTY_RECEIVE = "16"; +export const SECOND_PRESENT = "17"; +export const PRESENT_LEADER_AUDITED = "28"; +export const FOUNDATION_PRESENT = "19"; +export const START_AUDITED = "18"; +export const ACCEPTANCE_DRAFT = "20"; +export const ACCEPTANCE_AUDITING = "21"; +export const ACCEPTANCE_GROUP_AUDITED = "22"; +export const ACCEPTANCE_VILLAGE_AUDITED = "23"; +export const ACCEPTANCE_COUNTY_RECEIVE = "24"; +export const THIRD_PRESENT = "25"; +export const ACCEPTANCE_PRESENT_LEADER_AUDIT = "30"; +export const ACCEPTANCE_COUNTY_AUDITING = "29"; +export const ACCEPTANCE_AUDITED = "26"; +export const FILED_FINISH = "27"; + + +export function make_tree(list, parentId, config) +{ + parentId = parentId !== undefined ? parentId : null; + let idName = 'id', parentIdName = 'parentId', childrenName = 'children'; + if(config && Object.prototype.toString.call(config).toLowerCase() === '[object object]') + { + if(config.id) idName = config.id; + if(config.parentId) parentIdName = config.parentId; + if(config.children) childrenName = config.children; + } + return list.filter((x) => parentId == x[parentIdName]) + .map((x) => { + let arr = make_tree(list, x[idName], config); + if(arr && arr.length > 0) + x[childrenName] = arr; + return x; + }) + ; +} + +export function array_grouping(arr, byFunc) +{ + let res = {}; + arr.forEach((x) => { + let a = byFunc(x); + if(res.hasOwnProperty(a)) + res[a].push(x); + else + res[a] = [x]; + }); + return res; +} + +export function array_grouping2(arr, byFunc, keyName = 'key', valueName = 'value') +{ + let res = {}; + let r = []; + arr.forEach((x) => { + let a = byFunc(x); + if(res.hasOwnProperty(a)) + res[a].push(x); + else + { + let tmp = [x]; + res[a] = tmp; + let obj = {}; + obj[keyName || 'key'] = a; + obj[valueName || 'value'] = tmp; + r.push(obj); + } + }); + return r; +} + +export function manual_page(list, page_no = 1, page_size = 10) +{ + let start = (page_no - 1) * page_size; + return list.slice(start, start + page_size); +} diff --git a/src/views/yinnong/homestead/circulation/circulationAdd.vue b/src/views/yinnong/homestead/circulation/circulationAdd.vue index be0e6e7f..5dac0e13 100644 --- a/src/views/yinnong/homestead/circulation/circulationAdd.vue +++ b/src/views/yinnong/homestead/circulation/circulationAdd.vue @@ -12,25 +12,66 @@

转出方信息

+ + + + +
+ + {{item.sqrxm}} + +
+ + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + +
+

转入方信息

+
- - - +
+ + {{item.sqrxm}} + +
+ - - - + + + + + +
-

流转信息

- + + + + + + + +
- -

转入方信息

-
- - - - - - - - - - - - - - - - - - - -
-

其他

- +
- + + +
- - - - - + +
@@ -237,10 +283,13 @@ diff --git a/src/views/yinnong/homestead/freeExit/freeExitDetail.vue b/src/views/yinnong/homestead/freeExit/freeExitDetail.vue new file mode 100644 index 00000000..94b444a0 --- /dev/null +++ b/src/views/yinnong/homestead/freeExit/freeExitDetail.vue @@ -0,0 +1,850 @@ + + + + + diff --git a/src/views/yinnong/homestead/freeExit/freeExitList.vue b/src/views/yinnong/homestead/freeExit/freeExitList.vue new file mode 100644 index 00000000..9888b51e --- /dev/null +++ b/src/views/yinnong/homestead/freeExit/freeExitList.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/yinnong/homestead/freeExit/freeExitModify.vue b/src/views/yinnong/homestead/freeExit/freeExitModify.vue new file mode 100644 index 00000000..a4496d67 --- /dev/null +++ b/src/views/yinnong/homestead/freeExit/freeExitModify.vue @@ -0,0 +1,587 @@ + + + + + diff --git a/src/views/yinnong/homestead/homeApplication/applicationAdd.vue b/src/views/yinnong/homestead/homeApplication/applicationAdd.vue deleted file mode 100644 index 7ec175f6..00000000 --- a/src/views/yinnong/homestead/homeApplication/applicationAdd.vue +++ /dev/null @@ -1,1028 +0,0 @@ - - - - - diff --git a/src/views/yinnong/homestead/homeApplication/applicationForm.vue b/src/views/yinnong/homestead/homeApplication/applicationForm.vue index fb2caebe..eceb36ff 100644 --- a/src/views/yinnong/homestead/homeApplication/applicationForm.vue +++ b/src/views/yinnong/homestead/homeApplication/applicationForm.vue @@ -1,1010 +1,5066 @@