diff --git a/src/api/bs/vendorPayment.js b/src/api/bs/vendorPayment.js new file mode 100644 index 0000000..dfe5d04 --- /dev/null +++ b/src/api/bs/vendorPayment.js @@ -0,0 +1,54 @@ +import request from '@/plugin/axios' + +// 创建对公付款 +export function createVendorPayment(data) { + return request({ + url: '/bs/vendor-payment/create', + method: 'post', + data: data + }) +} + +// 更新对公付款 +export function updateVendorPayment(data) { + return request({ + url: '/bs/vendor-payment/update', + method: 'put', + data: data + }) +} + +// 删除对公付款 +export function deleteVendorPayment(id) { + return request({ + url: '/bs/vendor-payment/delete?id=' + id, + method: 'delete' + }) +} + +// 获得对公付款 +export function getVendorPayment(id) { + return request({ + url: '/bs/vendor-payment/get?id=' + id, + method: 'get' + }) +} + +// 获得对公付款分页 +export function getVendorPaymentPage(query) { + return request({ + url: '/bs/vendor-payment/page', + method: 'get', + params: query + }) +} + +// 导出对公付款 Excel +export function exportVendorPaymentExcel(query) { + return request({ + url: '/bs/vendor-payment/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/src/api/bs/vendorReceipt.js b/src/api/bs/vendorReceipt.js new file mode 100644 index 0000000..0398726 --- /dev/null +++ b/src/api/bs/vendorReceipt.js @@ -0,0 +1,54 @@ +import request from '@/plugin/axios' + +// 创建对公收款 +export function createVendorReceipt(data) { + return request({ + url: '/bs/vendor-receipt/create', + method: 'post', + data: data + }) +} + +// 更新对公收款 +export function updateVendorReceipt(data) { + return request({ + url: '/bs/vendor-receipt/update', + method: 'put', + data: data + }) +} + +// 删除对公收款 +export function deleteVendorReceipt(id) { + return request({ + url: '/bs/vendor-receipt/delete?id=' + id, + method: 'delete' + }) +} + +// 获得对公收款 +export function getVendorReceipt(id) { + return request({ + url: '/bs/vendor-receipt/get?id=' + id, + method: 'get' + }) +} + +// 获得对公收款分页 +export function getVendorReceiptPage(query) { + return request({ + url: '/bs/vendor-receipt/page', + method: 'get', + params: query + }) +} + +// 导出对公收款 Excel +export function exportVendorReceiptExcel(query) { + return request({ + url: '/bs/vendor-receipt/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/src/components/CorporatePaymentCard/index.vue b/src/components/CorporatePaymentCard/index.vue new file mode 100644 index 0000000..e46448f --- /dev/null +++ b/src/components/CorporatePaymentCard/index.vue @@ -0,0 +1,144 @@ + + + + + \ No newline at end of file diff --git a/src/components/CorporateReceiptsCard/index.vue b/src/components/CorporateReceiptsCard/index.vue new file mode 100644 index 0000000..6e76f0b --- /dev/null +++ b/src/components/CorporateReceiptsCard/index.vue @@ -0,0 +1,132 @@ + + + + + \ No newline at end of file diff --git a/src/router/modules/contract.js b/src/router/modules/contract.js index 1bcf4a8..bf678d7 100644 --- a/src/router/modules/contract.js +++ b/src/router/modules/contract.js @@ -17,5 +17,7 @@ export default { { path: '/myCustom', name: `${pre}myCustom`, component: () => import('@/views/contract/myCustom'), meta: { cache: true, title: '客户合同审批列表' } }, { path: '/custom', name: `${pre}custom`, component: () => import('@/views/contract/custom'), meta: { cache: true, title: '客户合同审批' } }, { path: '/pay', name: `${pre}pay`, component: () => import('@/views/contract/pay'), meta: { cache: true, title: '付款审批' } }, + { path: '/corporateReceipts', name: `${pre}corporateReceipts`, component: () => import('@/views/contract/corporateReceipts'), meta: { cache: true, title: '对公收款' } }, + { path: '/corporatePayment', name: `${pre}corporatePayment`, component: () => import('@/views/contract/corporatePayment'), meta: { cache: true, title: '对公付款' } }, ])('contract-') } diff --git a/src/views/contract/corporatePayment/components/HeaderFilter.vue b/src/views/contract/corporatePayment/components/HeaderFilter.vue new file mode 100644 index 0000000..b051d24 --- /dev/null +++ b/src/views/contract/corporatePayment/components/HeaderFilter.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/src/views/contract/corporatePayment/components/UserList.vue b/src/views/contract/corporatePayment/components/UserList.vue new file mode 100644 index 0000000..68dd7e2 --- /dev/null +++ b/src/views/contract/corporatePayment/components/UserList.vue @@ -0,0 +1,223 @@ + + + + diff --git a/src/views/contract/corporatePayment/components/index.scss b/src/views/contract/corporatePayment/components/index.scss new file mode 100644 index 0000000..e5c432f --- /dev/null +++ b/src/views/contract/corporatePayment/components/index.scss @@ -0,0 +1,163 @@ +$hf-contain-p: 0 1.2rem; +$hf-contain-f: 0.76rem; +$hf-high-color: #0088fe; +// 激活的颜色 +$hf-high-color: #0088fe; +.header-filter { + .hf-r-icon-bg-act { + .van-icon { + color: $hf-high-color !important; + } + } + background: #ffffff; + display: flex; + justify-content: space-between; + align-items: center; + padding: $hf-contain-p; + + .hf-l-list { + .hf-l-list-menu { + /deep/.van-dropdown-menu__bar { + height: auto; + box-shadow: none; + + .van-dropdown-menu__item { + flex: inherit; + margin-right: 1rem; + + .van-dropdown-menu__title { + padding: 0.6rem 0.4rem 0.6rem 0; + font-size: $hf-contain-f; + + &::after { + border: 1px solid; + padding: 0.1rem; + border-color: transparent transparent #333333 #333333; + } + } + + .van-dropdown-menu__title--active { + color: $hf-high-color; + + &::after { + border-color: transparent transparent $hf-high-color $hf-high-color; + } + } + } + } + } + } + + .hf-r-list { + display: flex; + + .hf-r-list-item { + margin-left: 0.4rem; + + .hf-r-icon-bg { + background: #d7d7d7; + width: 1.5rem; + height: 1.5rem; + border-radius: 1.5rem; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + } + } + } + + .hf-drop-view { + padding: $hf-contain-p; + padding-bottom: 0.8rem; + + .hf-drop-contain { + display: flex; + flex-wrap: wrap; + padding-bottom: 0.8rem; + + .hr-drop-filter-item { + padding: $hf-contain-p; + font-size: $hf-contain-f; + width: 50%; + box-sizing: border-box; + padding: 0.8rem 0; + } + + .hr-drop-filter-item-act { + color: $hf-high-color; + } + } + + // 快捷筛选 + .hf-drop-quick { + margin-top: 1rem; + + .hf-drop-quick-item { + margin-bottom: 1.5rem; + + .hf-drop-quick-title { + color: #333333; + font-size: 0.84rem; + } + + .hf-drop-quick-list { + display: flex; + margin: 0.6rem 0; + font-size: $hf-contain-f; + + .hf-drop-quick-list-item { + border: 1px solid #f3f3f3; + background: #f3f3f3; + margin-right: 0.8rem; + padding: 0.4rem 0.6rem; + border-radius: 1rem; + transition: background-color, color 0.2s linear; + } + + .hf-drop-quick-list-item-act { + background: #ffffff; + color: $hf-high-color; + border: 1px solid $hf-high-color; + } + + .hf-drop-quick-list-item-checkbox { + margin-right: 1rem; + + /deep/.van-checkbox__label { + margin-left: 0.2rem; + } + } + } + + .hf-drop-quick-calendar { + /deep/.van-calendar__header { + box-shadow: none; + border-bottom: 1px solid #eeeeee; + } + } + } + } + } + + .hf-drop-contain-empty { + color: #666666; + text-align: center; + font-size: 0.8rem; + } + + .searchInput { + padding: 0.3rem 0; + width: 100%; + + .van-search__content { + background: #ffffff; + border: 1px solid #f3f3f3; + border-radius: 0.3rem; + + /deep/input { + caret-color: #0088fe; + } + } + } +} diff --git a/src/views/contract/corporatePayment/index.vue b/src/views/contract/corporatePayment/index.vue new file mode 100644 index 0000000..8efbef4 --- /dev/null +++ b/src/views/contract/corporatePayment/index.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/views/contract/corporateReceipts/components/HeaderFilter.vue b/src/views/contract/corporateReceipts/components/HeaderFilter.vue new file mode 100644 index 0000000..b051d24 --- /dev/null +++ b/src/views/contract/corporateReceipts/components/HeaderFilter.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/src/views/contract/corporateReceipts/components/UserList.vue b/src/views/contract/corporateReceipts/components/UserList.vue new file mode 100644 index 0000000..016fedd --- /dev/null +++ b/src/views/contract/corporateReceipts/components/UserList.vue @@ -0,0 +1,223 @@ + + + + diff --git a/src/views/contract/corporateReceipts/components/index.scss b/src/views/contract/corporateReceipts/components/index.scss new file mode 100644 index 0000000..e5c432f --- /dev/null +++ b/src/views/contract/corporateReceipts/components/index.scss @@ -0,0 +1,163 @@ +$hf-contain-p: 0 1.2rem; +$hf-contain-f: 0.76rem; +$hf-high-color: #0088fe; +// 激活的颜色 +$hf-high-color: #0088fe; +.header-filter { + .hf-r-icon-bg-act { + .van-icon { + color: $hf-high-color !important; + } + } + background: #ffffff; + display: flex; + justify-content: space-between; + align-items: center; + padding: $hf-contain-p; + + .hf-l-list { + .hf-l-list-menu { + /deep/.van-dropdown-menu__bar { + height: auto; + box-shadow: none; + + .van-dropdown-menu__item { + flex: inherit; + margin-right: 1rem; + + .van-dropdown-menu__title { + padding: 0.6rem 0.4rem 0.6rem 0; + font-size: $hf-contain-f; + + &::after { + border: 1px solid; + padding: 0.1rem; + border-color: transparent transparent #333333 #333333; + } + } + + .van-dropdown-menu__title--active { + color: $hf-high-color; + + &::after { + border-color: transparent transparent $hf-high-color $hf-high-color; + } + } + } + } + } + } + + .hf-r-list { + display: flex; + + .hf-r-list-item { + margin-left: 0.4rem; + + .hf-r-icon-bg { + background: #d7d7d7; + width: 1.5rem; + height: 1.5rem; + border-radius: 1.5rem; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + } + } + } + + .hf-drop-view { + padding: $hf-contain-p; + padding-bottom: 0.8rem; + + .hf-drop-contain { + display: flex; + flex-wrap: wrap; + padding-bottom: 0.8rem; + + .hr-drop-filter-item { + padding: $hf-contain-p; + font-size: $hf-contain-f; + width: 50%; + box-sizing: border-box; + padding: 0.8rem 0; + } + + .hr-drop-filter-item-act { + color: $hf-high-color; + } + } + + // 快捷筛选 + .hf-drop-quick { + margin-top: 1rem; + + .hf-drop-quick-item { + margin-bottom: 1.5rem; + + .hf-drop-quick-title { + color: #333333; + font-size: 0.84rem; + } + + .hf-drop-quick-list { + display: flex; + margin: 0.6rem 0; + font-size: $hf-contain-f; + + .hf-drop-quick-list-item { + border: 1px solid #f3f3f3; + background: #f3f3f3; + margin-right: 0.8rem; + padding: 0.4rem 0.6rem; + border-radius: 1rem; + transition: background-color, color 0.2s linear; + } + + .hf-drop-quick-list-item-act { + background: #ffffff; + color: $hf-high-color; + border: 1px solid $hf-high-color; + } + + .hf-drop-quick-list-item-checkbox { + margin-right: 1rem; + + /deep/.van-checkbox__label { + margin-left: 0.2rem; + } + } + } + + .hf-drop-quick-calendar { + /deep/.van-calendar__header { + box-shadow: none; + border-bottom: 1px solid #eeeeee; + } + } + } + } + } + + .hf-drop-contain-empty { + color: #666666; + text-align: center; + font-size: 0.8rem; + } + + .searchInput { + padding: 0.3rem 0; + width: 100%; + + .van-search__content { + background: #ffffff; + border: 1px solid #f3f3f3; + border-radius: 0.3rem; + + /deep/input { + caret-color: #0088fe; + } + } + } +} diff --git a/src/views/contract/corporateReceipts/index.vue b/src/views/contract/corporateReceipts/index.vue new file mode 100644 index 0000000..8efbef4 --- /dev/null +++ b/src/views/contract/corporateReceipts/index.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/views/home/index.vue b/src/views/home/index.vue index d3f9c9c..8765323 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -146,6 +146,18 @@ export default { icon: 'refund-o', show: this.permission_btns.includes('procurement:payApply:list') }, + { + route: '/corporateReceipts', + title: '对公收款', + icon: 'friends-o', + show: this.permission_btns.includes('bs:vendor-receipt:query') + }, + { + route: '/corporatePayment', + title: '对公付款', + icon: 'friends-o', + show: this.permission_btns.includes('bs:vendor-payment:query') + }, ], title: '合同审批' },