-
@@ -77,13 +77,13 @@ export default {
return true;
},
handleToShow(item) {
+ this.$emit('onShow')
this.$router.push({
path: '/fileShow',
query: {
url: item.url
}
})
- console.log('val...', item);
},
handleDel(index) {
this.list.splice(index, 1)
@@ -152,5 +152,9 @@ export default {
// border
}
}
+ .mrNone {
+ margin: 0;
+ justify-content: flex-end;
+ }
}
\ No newline at end of file
diff --git a/src/router/modules/contract.js b/src/router/modules/contract.js
index 1bcf4a8..8049932 100644
--- a/src/router/modules/contract.js
+++ b/src/router/modules/contract.js
@@ -17,5 +17,9 @@ 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: '/receipts', name: `${pre}receipts`, component: () => import('@/views/contract/receipts'), meta: { cache: true, title: '收款审批' } },
+ { path: '/corporatePayment', name: `${pre}corporatePayment`, component: () => import('@/views/contract/corporatePayment'), meta: { cache: true, title: '对公付款' } },
+ { path: '/payment', name: `${pre}payment`, component: () => import('@/views/contract/payment'), meta: { cache: true, title: '付款审批' } },
])('contract-')
}
diff --git a/src/utils/dict.js b/src/utils/dict.js
index e9c48b9..108d81e 100644
--- a/src/utils/dict.js
+++ b/src/utils/dict.js
@@ -109,6 +109,16 @@ export const DICT_TYPE = {
BS_PROCUREMENT_TYPE: 'supplier_procurement_state',
// 合同类型(采购状态)
SR_CT_TYPE: 'supplier_ct_type',
+ // 银行账户类型
+ BS_BANK_TYPE: "bs_bank_account_info_account_type",
+ // 申请类型
+ BS_INDUSTRY: "bs_industry",
+ // 行业类型
+ PROJECT_TYPE: "project_type",
+ // 供应商等级
+ GYS_LEVEL: "gys_level",
+ // 币种类型
+ CURRENCY_TYPE: "currency_type",
}
/**
diff --git a/src/views/company/claim/index.vue b/src/views/company/claim/index.vue
index 694b6cf..05918bb 100644
--- a/src/views/company/claim/index.vue
+++ b/src/views/company/claim/index.vue
@@ -594,8 +594,8 @@ export default {
let count = '';
for (let key in obj) {
if (Array.isArray(obj[key])) {
- obj[key].forEach(function (item){
- count = !count?item:count+ `、${item}`
+ obj[key].forEach(function (item) {
+ count = !count ? item : count + `、${item}`
})
}
}
@@ -780,7 +780,7 @@ export default {
getExpenseApplyMyPage({
pageNo: 1,
pageSize: 1000,
- billType: 'CLSQ',
+ billType: this.$route.query.billType === 'RCBX' ? 'RCSQ' : 'CLSQ',
expenseFlag: 0,
ids: [],
sortingFieldStr: encodeURIComponent(JSON.stringify([{ field: 'id', order: "desc" }]))
diff --git a/src/views/contract/corporatePayment/components/HeaderFilter.vue b/src/views/contract/corporatePayment/components/HeaderFilter.vue
new file mode 100644
index 0000000..cc81e6a
--- /dev/null
+++ b/src/views/contract/corporatePayment/components/HeaderFilter.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
diff --git a/src/views/contract/corporatePayment/components/UserList.vue b/src/views/contract/corporatePayment/components/UserList.vue
new file mode 100644
index 0000000..19d795a
--- /dev/null
+++ b/src/views/contract/corporatePayment/components/UserList.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
回到顶部
+
+
+
+
+
+
添加付款
+
+
+
+
+
+
返回首页
+
+
+
+
+
+
+
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..9087047
--- /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..6569e1d
--- /dev/null
+++ b/src/views/contract/corporateReceipts/components/HeaderFilter.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
diff --git a/src/views/contract/corporateReceipts/components/UserList.vue b/src/views/contract/corporateReceipts/components/UserList.vue
new file mode 100644
index 0000000..6ee25d9
--- /dev/null
+++ b/src/views/contract/corporateReceipts/components/UserList.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
回到顶部
+
+
+
+
+
+
添加收款
+
+
+
+
+
+
返回首页
+
+
+
+
+
+
+
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..fb80723
--- /dev/null
+++ b/src/views/contract/corporateReceipts/index.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/contract/pay/index.vue b/src/views/contract/pay/index.vue
index 9ed1c30..0e4fdf8 100644
--- a/src/views/contract/pay/index.vue
+++ b/src/views/contract/pay/index.vue
@@ -5,14 +5,26 @@
审批内容
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 是
+ 否
+
+
+
+
+
+
@@ -22,11 +34,23 @@
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
附件
+
审批流程
@@ -57,6 +81,7 @@ export default {
name: 'contract-pay',
props: {},
components: {
+ UploadFile: () => import('@/components/UploadFile'),
RePick: () => import('@/components/ReComponents/RePick'),
ApprovalProcess: () => import('@/components/ApprovalProcess'),
SpList: () => import('./components/SpList'),
@@ -144,11 +169,17 @@ export default {
this.oaReimburseFeeitemList = (newArr || []).map(item => {
return {
...item,
- actualAmount: Math.floor(Number(item.actualAmount) * 100) / 100
+ actualAmount: Math.floor(Number(item.actualAmount) * 100) / 100,
+ applyForAmount: undefined,
+ subjectsCode: null,
+ businessAccountingCode: null,
+ deductibleInvoiceAmount: null,
+ taxRate: undefined,
+ taxForeheads: undefined,
+ remark: null,
}
})
this.isShow = false
- console.log('arr', arr, this.oaReimburseFeeitemList);
},
handleGetPay() {
if (this.form.contractNumber) {
@@ -219,14 +250,21 @@ export default {
// 添加/修改的提交
let newForm = []
this.oaReimburseFeeitemList.forEach(v => {
- console.log('this.form..', this.form);
newForm.push({
...this.form,
actualAmount: v.actualAmount,
status: key,
percentage: v.percentage,
planTime: v.planTime,
- paymentPlanDetailId: v.id
+ paymentPlanDetailId: v.id,
+ applyForAmount: v.applyForAmount,
+ subjectsCode: v.subjectsCode,
+ businessAccountingCode: v.businessAccountingCode,
+ deductibleInvoiceAmount: v.deductibleInvoiceAmount,
+ taxRate: v.taxRate,
+ taxForeheads: v.taxForeheads,
+ remark: v.remark,
+ files: this.fileList
})
})
this.$loading(true, 'form')
@@ -269,6 +307,23 @@ export default {
this.$loading(true, 'loadingSb')
getPaymentApply(id).then((res) => {
this.form = res.data || {};
+ const { percentage, actualAmount, taxForeheads, remark, applyForAmount, subjectsCode, businessAccountingCode, taxRate, deductibleInvoiceAmount } = this.form
+ const { keyName, planTime } = this.form.paymentPlanDetailDO
+ console.log('keyName...', keyName);
+ this.oaReimburseFeeitemList = [{
+ percentage: percentage,
+ id: this.form.paymentPlanDetailId,
+ actualAmount: actualAmount,
+ keyName,
+ planTime,
+ applyForAmount,
+ subjectsCode,
+ businessAccountingCode,
+ deductibleInvoiceAmount,
+ taxRate,
+ taxForeheads,
+ remark,
+ }]
this.form = {
...this.form,
time: [this.form.startTime, this.form.endTime],
@@ -281,19 +336,7 @@ export default {
this.handleChange(this.form.departmentId, 1)
this.fileList = res.data.files || []
this.isAuthorised = res.data.isAuthorised
- // this.oaReimburseFeeitemList = [{
- // percentage: this.form.percentage,
- // id: this.form.paymentPlanDetailId,
- // actualAmount: this.form.actualAmount,
- // planTime: dayjs(this.form.planTime).format('YYYY/MM/DD HH:ss')
- // }]
- // this.oaReimburseFeeitemList = [{
- // percentage: this.form.percentage,
- // id: this.form.paymentPlanDetailId,
- // actualAmount: this.form.actualAmount,
- // planTime: dayjs(this.form.planTime).format('YYYY/MM/DD HH:ss')
- // }]
- this.oaReimburseFeeitemList = this.form.paymentPlanDetailDO
+ // this.oaReimburseFeeitemList = this.form.paymentPlanDetailDO
this.$nextTick(() => {
this.$refs.BottomBtn.handleFilterBtnList()
})
diff --git a/src/views/contract/payment/index.vue b/src/views/contract/payment/index.vue
new file mode 100644
index 0000000..683ddb4
--- /dev/null
+++ b/src/views/contract/payment/index.vue
@@ -0,0 +1,241 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/contract/receipts/index.vue b/src/views/contract/receipts/index.vue
new file mode 100644
index 0000000..feedb0d
--- /dev/null
+++ b/src/views/contract/receipts/index.vue
@@ -0,0 +1,215 @@
+
+
+
+
+
+
\ No newline at end of file
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: '合同审批'
},
diff --git a/src/views/waitToDo/index.vue b/src/views/waitToDo/index.vue
index 018eaeb..656ef25 100644
--- a/src/views/waitToDo/index.vue
+++ b/src/views/waitToDo/index.vue
@@ -169,7 +169,7 @@ export default {
}
this.moreLoading = true
this.$loading(true, 'tableLoading')
- let filterArr = ['QUOTATION_SHEET']
+ let filterArr = ['QUOTATION_SHEET', 'SUPPLIER_CONTRACT_XD']
getMyNotifyMessagePage(query).then(res => {
let resList = (res.data && res.data.list || [])
if (['init', 'refresh'].includes(val)) {