|
@@ -35,6 +35,14 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
+ <div class="form">
|
|
|
+ <span class="formSpan">销售经理:</span>
|
|
|
+ <UserOrgTree v-model="queryParams['managerId']" />
|
|
|
+ </div>
|
|
|
+ <div class="form">
|
|
|
+ <span class="formSpan">责任部门:</span>
|
|
|
+ <DeptTree v-model="queryParams['deptId']" />
|
|
|
+ </div>
|
|
|
<div class="form">
|
|
|
<span class="formSpan">合同主类型:</span>
|
|
|
<el-select width="160px" clearable v-model="queryParams.mainType" placeholder="请选择行业">
|
|
@@ -63,7 +71,7 @@
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="form form-time-range">
|
|
|
- <span class="formSpan">签订时间:</span>
|
|
|
+ <span class="formSpan">拿出/拿回时间:</span>
|
|
|
<el-date-picker
|
|
|
v-model="lxsjObj"
|
|
|
type="daterange"
|
|
@@ -90,7 +98,7 @@
|
|
|
<img src="@/assets/imgs/OA/search.png" class="mr-8px" alt="" />
|
|
|
查询</el-button
|
|
|
>
|
|
|
- <el-button type="primary">
|
|
|
+ <el-button type="primary" @click="exportHandle">
|
|
|
<img src="@/assets/imgs/OA/open.png" class="mr-8px" alt="" />
|
|
|
导出</el-button
|
|
|
>
|
|
@@ -184,10 +192,12 @@
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
import moment from 'moment'
|
|
|
-import { useRouter } from 'vue-router'
|
|
|
import request from '@/config/axios'
|
|
|
import { DICT_TYPE, getDictLabel, getDictOptions } from '@/utils/dict'
|
|
|
import { getAssetURL } from '@/utils/auth'
|
|
|
+import UserOrgTree from '@/views/OaSystem/components/UserOrgTree/index.vue'
|
|
|
+import DeptTree from '@/views/OaSystem/components/DeptTree/index.vue'
|
|
|
+import { infoList, useMixins } from './common'
|
|
|
|
|
|
defineOptions({ name: 'PurchaseContract' })
|
|
|
|
|
@@ -196,7 +206,7 @@ const signWayAllList = getDictOptions(DICT_TYPE.CONTRACT_SIGN_WAY)
|
|
|
const mainTypeAllList = getDictOptions(DICT_TYPE.CONTRACT_MAIN_TYPE)
|
|
|
const secondTypeAllList = getDictOptions(DICT_TYPE.CONTRACT_SECOND_TYPE)
|
|
|
|
|
|
-const router = useRouter()
|
|
|
+const { exportHandleCommon, operateClick } = useMixins()
|
|
|
const tableRef: any = ref(null)
|
|
|
const tableHeight: any = ref(0)
|
|
|
const queryParams = reactive<{
|
|
@@ -210,10 +220,10 @@ const queryParams = reactive<{
|
|
|
secondType: any
|
|
|
contractOn: string
|
|
|
contractOff: string
|
|
|
- signTimeStart: string
|
|
|
- signTimeEnd: string
|
|
|
dueTimeStart: string
|
|
|
dueTimeEnd: string
|
|
|
+ managerId: string
|
|
|
+ deptId: string
|
|
|
}>({
|
|
|
contractNumber: '',
|
|
|
name: '',
|
|
@@ -225,50 +235,34 @@ const queryParams = reactive<{
|
|
|
secondType: '',
|
|
|
contractOn: '',
|
|
|
contractOff: '',
|
|
|
- signTimeStart: '',
|
|
|
- signTimeEnd: '',
|
|
|
dueTimeStart: '',
|
|
|
- dueTimeEnd: ''
|
|
|
+ dueTimeEnd: '',
|
|
|
+ managerId: '',
|
|
|
+ deptId: ''
|
|
|
})
|
|
|
const lxsjObj = ref()
|
|
|
const dueTimeObj = ref()
|
|
|
-const infoList: any = ref([
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzcz',
|
|
|
- name: '总合同金额(万元)',
|
|
|
- key: 'contractAmount'
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzcb',
|
|
|
- name: '总开票金额(万元)',
|
|
|
- key: 'invoiceAmount'
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzlr',
|
|
|
- name: '总回款金额(万元)',
|
|
|
- key: 'returnAmount'
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzlr',
|
|
|
- name: '总应收款(万元)',
|
|
|
- key: 'receivableAmount'
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzlr',
|
|
|
- name: '总合同余额(万元)',
|
|
|
- key: 'contractBalance'
|
|
|
- }
|
|
|
-])
|
|
|
|
|
|
const handleCurrentChange = (pageNo: number) => {
|
|
|
queryParams.pageNo = pageNo
|
|
|
queryContractListAjax()
|
|
|
}
|
|
|
-const operateClick = (row: any) => {
|
|
|
- router.push({
|
|
|
- path: '/projectDetail',
|
|
|
- query: { id: row.projectId, contractId: row.id }
|
|
|
- })
|
|
|
+const exportHandle = async () => {
|
|
|
+ if (lxsjObj.value && lxsjObj.value.length > 0) {
|
|
|
+ queryParams.contractOn = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
+ queryParams.contractOff = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
+ } else {
|
|
|
+ queryParams.contractOn = ''
|
|
|
+ queryParams.contractOff = ''
|
|
|
+ }
|
|
|
+ if (dueTimeObj.value && dueTimeObj.value.length > 0) {
|
|
|
+ queryParams.dueTimeStart = moment(dueTimeObj.value[0]).format('YYYY-MM-DD')
|
|
|
+ queryParams.dueTimeEnd = moment(dueTimeObj.value[1]).format('YYYY-MM-DD')
|
|
|
+ } else {
|
|
|
+ queryParams.dueTimeStart = ''
|
|
|
+ queryParams.dueTimeEnd = ''
|
|
|
+ }
|
|
|
+ exportHandleCommon(request, queryParams, '公司合同台账')
|
|
|
}
|
|
|
const tableData = ref<Array<any>>([])
|
|
|
const total = ref<number>()
|
|
@@ -279,11 +273,11 @@ const searchHandle: () => void = () => {
|
|
|
const queryContractListAjax = async (): Promise<void> => {
|
|
|
const urlApi = `/contract/page`
|
|
|
if (lxsjObj.value && lxsjObj.value.length > 0) {
|
|
|
- queryParams.signTimeStart = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
- queryParams.signTimeEnd = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
+ queryParams.contractOn = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
+ queryParams.contractOff = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
} else {
|
|
|
- queryParams.signTimeStart = ''
|
|
|
- queryParams.signTimeEnd = ''
|
|
|
+ queryParams.contractOn = ''
|
|
|
+ queryParams.contractOff = ''
|
|
|
}
|
|
|
if (dueTimeObj.value && dueTimeObj.value.length > 0) {
|
|
|
queryParams.dueTimeStart = moment(dueTimeObj.value[0]).format('YYYY-MM-DD')
|
|
@@ -315,11 +309,11 @@ const contractListCalc = ref({
|
|
|
const queryContractListCalc = async (): Promise<void> => {
|
|
|
const urlApi = `/contract/list/calc`
|
|
|
if (lxsjObj.value && lxsjObj.value.length > 0) {
|
|
|
- queryParams.signTimeStart = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
- queryParams.signTimeEnd = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
+ queryParams.contractOn = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
+ queryParams.contractOff = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
} else {
|
|
|
- queryParams.signTimeStart = ''
|
|
|
- queryParams.signTimeEnd = ''
|
|
|
+ queryParams.contractOn = ''
|
|
|
+ queryParams.contractOff = ''
|
|
|
}
|
|
|
if (dueTimeObj.value && dueTimeObj.value.length > 0) {
|
|
|
queryParams.dueTimeStart = moment(dueTimeObj.value[0]).format('YYYY-MM-DD')
|