Commit 447fa3f368d341506951602e38e324d83ac8b534
1 parent
862e532e
fix: bug修复
Showing
25 changed files
with
160 additions
and
90 deletions
src/api/project/approve.ts
... | ... | @@ -43,7 +43,6 @@ export const getApprovedListApi = async (params: any) => { |
43 | 43 | res.records = res.records.map((item) => { |
44 | 44 | return item; |
45 | 45 | }); |
46 | - console.log(res, '56567ressss'); | |
47 | 46 | return new Promise((resolve) => { |
48 | 47 | resolve({ items: res.records, total: res.total }); |
49 | 48 | }); | ... | ... |
src/views/project/config/ProduCostCreate.vue
... | ... | @@ -25,6 +25,12 @@ |
25 | 25 | ><span style="margin-right: 8px; width: 80%">提成单价:</span> |
26 | 26 | <a-input v-model:value="ratio" /> |
27 | 27 | </div> |
28 | + <div | |
29 | + ><span style="margin-right: 8px; width: 80%">年份:</span> | |
30 | + <a-select v-model:value="year" style="width: 100%"> | |
31 | + <a-select-option v-for="y in yearOptions" :key="y" :value="y">{{ y }}</a-select-option> | |
32 | + </a-select> | |
33 | + </div> | |
28 | 34 | </a-space> |
29 | 35 | </BasicModal> |
30 | 36 | </template> |
... | ... | @@ -54,6 +60,13 @@ |
54 | 60 | //获取现有的列表 |
55 | 61 | const listAll = ref(); |
56 | 62 | const fixCost = ref(); |
63 | + const year = ref(new Date().getFullYear().toString()); | |
64 | + // Generate year options from 2023 to current year | |
65 | + const currentYear = new Date().getFullYear(); | |
66 | + const yearOptions = ref<string[]>([]); | |
67 | + for (let y = 2023; y <= currentYear; y++) { | |
68 | + yearOptions.value.push(y.toString()); | |
69 | + } | |
57 | 70 | const ratio = ref(); |
58 | 71 | // const relationValue = ref(); |
59 | 72 | const customerCode = ref(); |
... | ... | @@ -91,7 +104,7 @@ |
91 | 104 | settingValue: customerCode.value, |
92 | 105 | settingType: 4, |
93 | 106 | relationCode: 'ProduceSettingItem', |
94 | - relationName: '成本配置项集合', | |
107 | + relationName: year.value, | |
95 | 108 | costSettingItemVOS: relationValue.value, |
96 | 109 | }); |
97 | 110 | emit('modal-success'); |
... | ... | @@ -108,6 +121,8 @@ |
108 | 121 | activeUser, |
109 | 122 | fixCost, |
110 | 123 | ratio, |
124 | + year, | |
125 | + yearOptions, | |
111 | 126 | customerCode, |
112 | 127 | customerCodeOptions, |
113 | 128 | handleOk, | ... | ... |
src/views/project/config/ProduCostEdit.vue
... | ... | @@ -17,6 +17,7 @@ |
17 | 17 | <a-space direction="vertical" style="width: 100%"> |
18 | 18 | <a-input v-model:value="fixCost" addonBefore="固定成本 " /> |
19 | 19 | <a-input v-model:value="ratio" addonBefore="提成单价 " /> |
20 | + <a-input v-model:value="year" :disabled="true" addonBefore="年份 " /> | |
20 | 21 | </a-space> |
21 | 22 | </BasicDrawer> |
22 | 23 | </template> |
... | ... | @@ -35,13 +36,14 @@ |
35 | 36 | relationValue.value = JSON.parse(listAll.value.relationValue); |
36 | 37 | fixCost.value = relationValue.value[0].relationValue; |
37 | 38 | ratio.value = relationValue.value[1].relationValue; |
39 | + year.value = listAll.value.relationName; | |
38 | 40 | }); |
39 | 41 | //获取现有的列表 |
40 | 42 | const listAll = ref(); |
41 | 43 | const fixCost = ref(); |
42 | 44 | const ratio = ref(); |
43 | 45 | const relationValue = ref(); |
44 | - | |
46 | + const year = ref(); | |
45 | 47 | //完成编辑 |
46 | 48 | async function handleSubmit() { |
47 | 49 | relationValue.value[0].relationValue = fixCost.value; |
... | ... | @@ -53,7 +55,7 @@ |
53 | 55 | settingValue: listAll.value.settingValue, |
54 | 56 | settingType: 4, |
55 | 57 | relationCode: 'ProduceSettingItem', |
56 | - relationName: '成本配置项集合', | |
58 | + relationName: year.value, | |
57 | 59 | costSettingItemVOS: relationValue.value, |
58 | 60 | }); |
59 | 61 | emit('success'); | ... | ... |
src/views/project/config/TablePanel.vue
... | ... | @@ -46,7 +46,7 @@ |
46 | 46 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
47 | 47 | import CreateModal from './CreateModal.vue'; |
48 | 48 | import { deleteConfig, getList, saveConfig } from '/@/api/sys/config'; |
49 | - import { COLUMNS } from './data'; | |
49 | + import { COLUMNS, searchFormSchema } from './data'; | |
50 | 50 | import { useModal } from '/@/components/Modal'; |
51 | 51 | import { useDrawer } from '/@/components/Drawer'; |
52 | 52 | import CostEdit from './costEdit.vue'; |
... | ... | @@ -74,6 +74,10 @@ |
74 | 74 | pagination: false, |
75 | 75 | columns: COLUMNS[props.column!], |
76 | 76 | rowKey: 'id', |
77 | + useSearchForm: props.column === 6 || props.column === 9, | |
78 | + formConfig: { | |
79 | + schemas: props.column === 6 || props.column === 9 ? searchFormSchema : [], | |
80 | + }, | |
77 | 81 | actionColumn: { |
78 | 82 | width: 160, |
79 | 83 | title: 'Action', | ... | ... |
src/views/project/config/costCreate.vue
... | ... | @@ -29,6 +29,12 @@ |
29 | 29 | ><span style="margin-right: 8px; width: 80%">西班牙提成比例:</span> |
30 | 30 | <a-input v-model:value="spainRatio" /> |
31 | 31 | </div> |
32 | + <div | |
33 | + ><span style="margin-right: 8px; width: 80%">年份:</span> | |
34 | + <a-select v-model:value="year" style="width: 100%"> | |
35 | + <a-select-option v-for="y in yearOptions" :key="y" :value="y">{{ y }}</a-select-option> | |
36 | + </a-select> | |
37 | + </div> | |
32 | 38 | <!-- <div |
33 | 39 | ><span style="margin-right: 8px; width: 80%">生产提成单价:</span> |
34 | 40 | <a-input v-model:value="price" /> |
... | ... | @@ -65,6 +71,13 @@ |
65 | 71 | const ratio = ref(); |
66 | 72 | const spainRatio = ref(); |
67 | 73 | const price = ref(); |
74 | + const year = ref(new Date().getFullYear().toString()); | |
75 | + // Generate year options from 2023 to current year | |
76 | + const currentYear = new Date().getFullYear(); | |
77 | + const yearOptions = ref<string[]>([]); | |
78 | + for (let y = 2023; y <= currentYear; y++) { | |
79 | + yearOptions.value.push(y.toString()); | |
80 | + } | |
68 | 81 | // const relationValue = ref(); |
69 | 82 | const customerCode = ref(); |
70 | 83 | const relationValue = ref([ |
... | ... | @@ -89,8 +102,6 @@ |
89 | 102 | // relationValue: '', |
90 | 103 | // }, |
91 | 104 | ]); |
92 | - // const loading = ref(true); | |
93 | - | |
94 | 105 | const { customerCode: customerCodeOptions } = useOrderInfo(orderStore); |
95 | 106 | |
96 | 107 | function handleShow(visible: boolean) { |
... | ... | @@ -124,7 +135,7 @@ |
124 | 135 | settingValue: customerCode.value, |
125 | 136 | settingType: 3, |
126 | 137 | relationCode: 'costSettingItem', |
127 | - relationName: '成本配置项集合', | |
138 | + relationName: year.value, | |
128 | 139 | costSettingItemVOS: relationValue.value, |
129 | 140 | }); |
130 | 141 | emit('modal-success'); |
... | ... | @@ -144,6 +155,8 @@ |
144 | 155 | spainRatio, |
145 | 156 | price, |
146 | 157 | customerCode, |
158 | + year, | |
159 | + yearOptions, | |
147 | 160 | customerCodeOptions, |
148 | 161 | handleOk, |
149 | 162 | }; | ... | ... |
src/views/project/config/costEdit.vue
... | ... | @@ -18,6 +18,7 @@ |
18 | 18 | <a-input v-model:value="fixCost" addonBefore="固定成本 " /> |
19 | 19 | <a-input v-model:value="ratio" addonBefore="提成比例 " /> |
20 | 20 | <a-input v-model:value="spainRatio" addonBefore="西班牙提成比例 " /> |
21 | + <a-input v-model:value="year" :disabled="true" addonBefore="年份 " /> | |
21 | 22 | <!-- <a-input v-model:value="price" addonBefore="生产提成单价" /> --> |
22 | 23 | </a-space> |
23 | 24 | </BasicDrawer> |
... | ... | @@ -40,6 +41,7 @@ |
40 | 41 | spainRatio.value = relationValue.value[2].relationValue |
41 | 42 | ? (parseFloat(relationValue.value[2].relationValue) * 100).toFixed(2) + '%' |
42 | 43 | : ''; |
44 | + year.value = listAll.value.relationName; | |
43 | 45 | }); |
44 | 46 | //获取现有的列表 |
45 | 47 | const listAll = ref(); |
... | ... | @@ -47,6 +49,7 @@ |
47 | 49 | const ratio = ref(); |
48 | 50 | const spainRatio = ref(); |
49 | 51 | const relationValue = ref(); |
52 | + const year = ref(); | |
50 | 53 | |
51 | 54 | // 格式化百分比值,去除百分号并除以100 |
52 | 55 | function formatPercentage(value) { |
... | ... | @@ -72,7 +75,7 @@ |
72 | 75 | settingValue: listAll.value.settingValue, |
73 | 76 | settingType: 3, |
74 | 77 | relationCode: 'costSettingItem', |
75 | - relationName: '成本配置项集合', | |
78 | + relationName: year.value, | |
76 | 79 | costSettingItemVOS: relationValue.value, |
77 | 80 | }); |
78 | 81 | emit('success'); | ... | ... |
src/views/project/config/data.tsx
1 | 1 | import { Tag } from 'ant-design-vue'; |
2 | 2 | import { BasicColumn } from '@/components/Table'; |
3 | 3 | import { h } from 'vue'; |
4 | +import { queryNoOptions } from '/@/api/project/order'; | |
4 | 5 | |
5 | 6 | export const COLUMNS = { |
6 | 7 | 1: [ |
... | ... | @@ -66,6 +67,11 @@ export const COLUMNS = { |
66 | 67 | width: 150, |
67 | 68 | }, |
68 | 69 | { |
70 | + title: '年份', | |
71 | + dataIndex: 'relationName', | |
72 | + width: 150, | |
73 | + }, | |
74 | + { | |
69 | 75 | title: '固定成本', |
70 | 76 | dataIndex: 'relationValue', |
71 | 77 | width: 150, |
... | ... | @@ -137,6 +143,11 @@ export const COLUMNS = { |
137 | 143 | width: 150, |
138 | 144 | }, |
139 | 145 | { |
146 | + title: '年份', | |
147 | + dataIndex: 'relationName', | |
148 | + width: 150, | |
149 | + }, | |
150 | + { | |
140 | 151 | title: '固定成本', |
141 | 152 | dataIndex: 'relationValue', |
142 | 153 | width: 150, |
... | ... | @@ -256,3 +267,23 @@ export const columnsProduct: BasicColumn[] = [ |
256 | 267 | editRow: true, |
257 | 268 | }, |
258 | 269 | ]; |
270 | + | |
271 | +export const searchFormSchema = [ | |
272 | + { | |
273 | + field: 'relationName', | |
274 | + label: '年份', | |
275 | + component: 'Select', | |
276 | + colProps: { span: 8 }, | |
277 | + componentProps: { | |
278 | + showSearch: true, | |
279 | + options: (() => { | |
280 | + const options = []; | |
281 | + const currentYear = new Date().getFullYear(); | |
282 | + for (let y = 2023; y <= currentYear; y++) { | |
283 | + options.push({ label: y.toString(), value: y.toString() }); | |
284 | + } | |
285 | + return options; | |
286 | + })(), | |
287 | + }, | |
288 | + }, | |
289 | +] | |
259 | 290 | \ No newline at end of file | ... | ... |
src/views/project/config/index.vue
... | ... | @@ -22,7 +22,7 @@ |
22 | 22 | <TablePanel :searchInfo="{ relationCode: 'orderHodTime' }" :column="5" /> |
23 | 23 | </Tabs.TabPane> |
24 | 24 | <Tabs.TabPane key="6" tab="提成成本配置"> |
25 | - <TablePanel :searchInfo="{ relationCode: 'costSettingItem' }" :column="6" /> | |
25 | + <TablePanel :searchInfo="{ relationCode: 'costSettingItem', relationName: currentYear }" :column="6" /> | |
26 | 26 | </Tabs.TabPane> |
27 | 27 | <Tabs.TabPane key="7" tab="销售额配置" v-if="role !== ROLE.FINANCE"> |
28 | 28 | <TablePanel :searchInfo="{ relationCode: 'salesAmount' }" :column="7" /> |
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | <TablePanel :searchInfo="{ relationCode: 'produHodTime' }" :column="8" /> |
32 | 32 | </Tabs.TabPane> |
33 | 33 | <Tabs.TabPane key="9" tab="生产科固定成本"> |
34 | - <TablePanel :searchInfo="{ relationCode: 'ProduceSettingItem' }" :column="9" /> | |
34 | + <TablePanel :searchInfo="{ relationCode: 'ProduceSettingItem', relationName: currentYear }" :column="9" /> | |
35 | 35 | </Tabs.TabPane> |
36 | 36 | <Tabs.TabPane key="10" tab="客户公司" v-if="role !== ROLE.FINANCE"> |
37 | 37 | <TablePanel :searchInfo="{ relationCode: 'companyConfiguration' }" :column="10" /> |
... | ... | @@ -56,6 +56,7 @@ |
56 | 56 | const orderStore = useOrderStoreWithOut(); |
57 | 57 | const userStore = useUserStoreWithOut(); |
58 | 58 | const user = userStore.getUserInfo; |
59 | + const currentYear = new Date().getFullYear().toString(); | |
59 | 60 | const role = computed(() => { |
60 | 61 | return user?.roleSmallVO?.code; |
61 | 62 | }); | ... | ... |
src/views/project/finance/financeList/index.vue
src/views/project/finance/financeProfit/ProductProfit/InnerData/FinanceEdit.vue
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | <script lang="ts" setup> |
52 | 52 | import { BasicDrawer, useDrawerInner } from '@/components/Drawer'; |
53 | 53 | import { BasicForm, FormSchema, useForm } from '@/components/Form'; |
54 | - import { defineComponent, ref, computed, unref, toRaw, reactive } from 'vue'; | |
54 | + import { defineComponent, ref, computed, watch, toRaw, reactive } from 'vue'; | |
55 | 55 | import { getPackageEdit } from '@/api/project/invoice'; |
56 | 56 | import { useMessage } from '/@/hooks/web/useMessage'; |
57 | 57 | import { ROLE } from './type.d'; |
... | ... | @@ -141,8 +141,14 @@ |
141 | 141 | const input3 = ref(); |
142 | 142 | const orderCount = ref(); |
143 | 143 | const id = ref(); |
144 | + watch(input3, (newVal) => { | |
145 | + if (newVal && orderCount.value) { | |
146 | + input1.value = (parseFloat(newVal) * parseFloat(orderCount.value)).toFixed(2); | |
147 | + } else { | |
148 | + input1.value = ''; | |
149 | + } | |
150 | + }); | |
144 | 151 | const [register, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => { |
145 | - console.log(data,'5656fdsfa'); | |
146 | 152 | // 方式1 |
147 | 153 | if (data.data?.lockFields) { |
148 | 154 | status1.value = data.data?.lockFields?.productionDepartmentPredictPrice; | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerData/HistoryDetail.vue
... | ... | @@ -136,7 +136,7 @@ |
136 | 136 | if (index === 1) { |
137 | 137 | const res = await getOrderCostDetailedOptLog({ |
138 | 138 | orderId: data, |
139 | - type: 40, | |
139 | + type: [40], | |
140 | 140 | page: page, |
141 | 141 | pageSize: 20, |
142 | 142 | }); |
... | ... | @@ -146,7 +146,7 @@ |
146 | 146 | } else { |
147 | 147 | const res = await getOrderCostDetailedOptLog({ |
148 | 148 | orderId: data, |
149 | - type: 70, | |
149 | + type: [90,91], | |
150 | 150 | page: page, |
151 | 151 | pageSize: 20, |
152 | 152 | }); | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerData/index.vue
... | ... | @@ -111,7 +111,7 @@ |
111 | 111 | message.value = ''; |
112 | 112 | } |
113 | 113 | }; |
114 | - const [registerTable, { reload, setSelectedRowKeys }] = useTable({ | |
114 | + const [registerTable, { reload, setSelectedRowKeys, getForm }] = useTable({ | |
115 | 115 | api: getInnerProfit, |
116 | 116 | bordered: true, |
117 | 117 | columns: COLUMNS, |
... | ... | @@ -298,28 +298,35 @@ |
298 | 298 | } |
299 | 299 | |
300 | 300 | function handleExport() { |
301 | - console.log('Selected data:', { | |
302 | - orderIds: orderIds.value, | |
303 | - projectNo: projectNo.value, | |
304 | - customerCode: customerCode.value, | |
305 | - innerNo: innerNo.value, | |
306 | - productionDepartment: productionDepartment.value | |
307 | - }); | |
308 | - if (checkedKeys.value.length <= 0) { | |
309 | - createMessage.warn('请选择数据!'); | |
310 | - return; | |
301 | + // Get current search parameters from the form | |
302 | + const values = getForm().getFieldsValue(); | |
303 | + | |
304 | + // Create export parameters based on whether orderIds are selected | |
305 | + let exportParams; | |
306 | + | |
307 | + // If orderIds are selected, only use those and ignore search params | |
308 | + if (orderIds.value.length > 0) { | |
309 | + exportParams = { | |
310 | + orderIds: orderIds.value | |
311 | + }; | |
312 | + } | |
313 | + // Otherwise use the search parameters | |
314 | + else { | |
315 | + exportParams = { | |
316 | + ...values, | |
317 | + projectNo: values.projectNo || undefined, | |
318 | + customerCode: values.customerCode || undefined, | |
319 | + innerNo: values.innerNo || undefined, | |
320 | + productionDepartment: values.productionDepartment || undefined | |
321 | + }; | |
311 | 322 | } |
323 | + | |
324 | + | |
312 | 325 | const token = userStore.getToken; |
313 | 326 | axios |
314 | 327 | .post( |
315 | 328 | '/basic-api/order/cost/innerProfitDetail/exportExcel', |
316 | - { | |
317 | - orderIds: orderIds.value, | |
318 | - projectNo: projectNo.value, | |
319 | - customerCode: customerCode.value, | |
320 | - innerNo: innerNo.value, | |
321 | - productionDepartment: productionDepartment.value | |
322 | - }, | |
329 | + exportParams, | |
323 | 330 | { |
324 | 331 | headers: { |
325 | 332 | Authorization: `${token}`, | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerProduce/ApproveReason.vue
... | ... | @@ -25,7 +25,6 @@ |
25 | 25 | const [register, { setModalProps, redoModalHeight, closeModal }] = useModalInner(async (data) => { |
26 | 26 | baseFieldValues.value = data.data; |
27 | 27 | baseFieldValues.value.projectNoPrefix = data.id; |
28 | - console.log(data, '5656appr'); | |
29 | 28 | }); |
30 | 29 | async function handleOk() { |
31 | 30 | baseFieldValues.value.applyRemark = input.value; | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerProduce/CheckDetail.vue
... | ... | @@ -77,7 +77,6 @@ |
77 | 77 | const [register, { closeDrawer }] = useDrawerInner((data) => { |
78 | 78 | Object.assign(lockFields, data.lockFields); |
79 | 79 | id.value = data.projectNoPrefix; |
80 | - console.log(data, '5656checkdetail'); | |
81 | 80 | }); |
82 | 81 | function handleCloseModal() { |
83 | 82 | closeDrawer(); | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerProduce/FinanceEdit.vue
... | ... | @@ -188,7 +188,6 @@ |
188 | 188 | status6.value = data?.data?.lockFields?.actualExchangeRate; |
189 | 189 | } |
190 | 190 | id.value = data?.data?.projectNoPrefix; |
191 | - console.log(data.data, '5656datafff'); | |
192 | 191 | input1.value = data?.data?.developmentCopyRmbTotalPrice?.toFixed(2); |
193 | 192 | input2.value = data?.data?.spainPaidRmbCommission?.toFixed(2); |
194 | 193 | input3.value = data?.data?.produceStartTime ? dayjs(data?.data?.produceStartTime) : null; | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerProduce/HistoryDetail.vue
... | ... | @@ -136,7 +136,7 @@ |
136 | 136 | if (index === 1) { |
137 | 137 | const res = await getProjectOptLog({ |
138 | 138 | projectNoPrefix: data, |
139 | - type: 30, | |
139 | + type: [30], | |
140 | 140 | page: page, |
141 | 141 | pageSize: 20 |
142 | 142 | }); |
... | ... | @@ -146,7 +146,7 @@ |
146 | 146 | } else { |
147 | 147 | const res = await getProjectOptLog({ |
148 | 148 | projectNoPrefix: data, |
149 | - type: 1, | |
149 | + type: [1,3], | |
150 | 150 | page: page, |
151 | 151 | pageSize: 20 |
152 | 152 | }); | ... | ... |
src/views/project/finance/financeProfit/ProductProfit/InnerProduce/index.vue
... | ... | @@ -212,7 +212,6 @@ |
212 | 212 | }); |
213 | 213 | |
214 | 214 | function handleFinanceEdit(record) { |
215 | - console.log(record, '565656ddd'); | |
216 | 215 | openFinanceEdit(true, { |
217 | 216 | data: record, |
218 | 217 | }); |
... | ... | @@ -360,7 +359,6 @@ |
360 | 359 | setSelectedRowKeys(checkedKeys.value as any); |
361 | 360 | } |
362 | 361 | function handleExport() { |
363 | - console.log(detailProjectNoKeys.value, '5656detailProjectNoKeys.value'); | |
364 | 362 | if (checkedKeys.value.length <= 0) { |
365 | 363 | createMessage.warn('请选择数据!'); |
366 | 364 | return; | ... | ... |
src/views/project/finance/financeProfit/ServiceProfit/PackageProfit/HistoryDetail.vue
... | ... | @@ -136,7 +136,7 @@ |
136 | 136 | if (index === 1) { |
137 | 137 | const res = await getOrderCostDetailedOptLog({ |
138 | 138 | orderId: data, |
139 | - type: 20, | |
139 | + type: [20], | |
140 | 140 | page: page, |
141 | 141 | pageSize: 20 |
142 | 142 | }); |
... | ... | @@ -146,7 +146,7 @@ |
146 | 146 | } else { |
147 | 147 | const res = await getOrderCostDetailedOptLog({ |
148 | 148 | orderId: data, |
149 | - type: 60, | |
149 | + type: [80,81], | |
150 | 150 | page: page, |
151 | 151 | pageSize: 20 |
152 | 152 | }); | ... | ... |
src/views/project/finance/financeProfit/ServiceProfit/PackageProfit/index.vue
... | ... | @@ -115,7 +115,7 @@ |
115 | 115 | message.value = ''; |
116 | 116 | } |
117 | 117 | }; |
118 | - const [registerTable, { reload, setSelectedRowKeys }] = useTable({ | |
118 | + const [registerTable, { reload, setSelectedRowKeys, getForm }] = useTable({ | |
119 | 119 | api: getPackageProfit, |
120 | 120 | bordered: true, |
121 | 121 | columns: COLUMNS, |
... | ... | @@ -301,28 +301,36 @@ |
301 | 301 | } |
302 | 302 | |
303 | 303 | function handleExport() { |
304 | - console.log('Selected data:', { | |
305 | - orderIds: orderIds.value, | |
306 | - projectNo: projectNo.value, | |
307 | - customerCode: customerCode.value, | |
308 | - innerNo: innerNo.value, | |
309 | - productionDepartment: productionDepartment.value | |
310 | - }); | |
311 | - if (checkedKeys.value.length <= 0) { | |
312 | - createMessage.warn('请选择数据!'); | |
313 | - return; | |
304 | + // Get current search parameters from the form | |
305 | + const values = getForm().getFieldsValue(); | |
306 | + | |
307 | + // Create export parameters based on whether orderIds are selected | |
308 | + let exportParams; | |
309 | + | |
310 | + // If orderIds are selected, only use those and ignore search params | |
311 | + if (orderIds.value.length > 0) { | |
312 | + exportParams = { | |
313 | + orderIds: orderIds.value | |
314 | + }; | |
315 | + } | |
316 | + // Otherwise use the search parameters | |
317 | + else { | |
318 | + exportParams = { | |
319 | + ...values, | |
320 | + projectNo: values.projectNo || undefined, | |
321 | + customerCode: values.customerCode || undefined, | |
322 | + innerNo: values.innerNo || undefined, | |
323 | + productionDepartment: values.productionDepartment || undefined | |
324 | + }; | |
314 | 325 | } |
326 | + | |
327 | + console.log('Export parameters:', exportParams); | |
328 | + | |
315 | 329 | const token = userStore.getToken; |
316 | 330 | axios |
317 | 331 | .post( |
318 | 332 | '/basic-api/order/cost/businessProfitDetail/exportExcel', |
319 | - { | |
320 | - orderIds: orderIds.value, | |
321 | - projectNo: projectNo.value, | |
322 | - customerCode: customerCode.value, | |
323 | - innerNo: innerNo.value, | |
324 | - productionDepartment: productionDepartment.value | |
325 | - }, | |
333 | + exportParams, | |
326 | 334 | { |
327 | 335 | headers: { |
328 | 336 | Authorization: `${token}`, // 去掉引号 | ... | ... |
src/views/project/finance/financeProfit/ServiceProfit/ServiceProfit/FinanceEdit.vue
... | ... | @@ -46,14 +46,6 @@ |
46 | 46 | auto-size |
47 | 47 | /> |
48 | 48 | <div style="margin: 16px 0"></div> |
49 | - <div style="font-size: 15px">实际汇率¥</div> | |
50 | - <a-input | |
51 | - v-model:value="input6" | |
52 | - placeholder="请输入" | |
53 | - :disabled="status6 === 'LOCKED'" | |
54 | - auto-size | |
55 | - /> | |
56 | - <div style="margin: 16px 0"></div> | |
57 | 49 | <!-- <template #titleToolbar> <a-button type="primary"> 申请编辑权限 </a-button></template> --> |
58 | 50 | <template #appendFooter> |
59 | 51 | <!-- <a-button type="primary" @click="onGoCheckDetail"> 申请权限</a-button> --> |
... | ... | @@ -146,7 +138,6 @@ |
146 | 138 | const status3 = ref(); |
147 | 139 | const status4 = ref(); |
148 | 140 | const status5 = ref(); |
149 | - const status6 = ref(); | |
150 | 141 | |
151 | 142 | const input1 = ref(); |
152 | 143 | const input2 = ref(); |
... | ... | @@ -154,7 +145,6 @@ |
154 | 145 | const input4 = ref(); |
155 | 146 | |
156 | 147 | const input5 = ref(); |
157 | - const input6 = ref(); | |
158 | 148 | const id = ref(); |
159 | 149 | // function formatDate(dateStr: string): string { |
160 | 150 | // const date = new Date(dateStr); |
... | ... | @@ -185,7 +175,6 @@ |
185 | 175 | status3.value = data?.data?.lockFields?.projectStartTime; |
186 | 176 | status4.value = data?.data?.lockFields?.projectEndTime; |
187 | 177 | status5.value = data?.data?.lockFields?.paidRmbCommission; |
188 | - status6.value = data?.data?.lockFields?.actualExchangeRate; | |
189 | 178 | } |
190 | 179 | id.value = data?.data?.projectNoPrefix; |
191 | 180 | input1.value = data?.data?.developmentCopyRmbTotalPrice.toFixed(2); |
... | ... | @@ -193,7 +182,6 @@ |
193 | 182 | input3.value = dayjs(formatDateToDateOnly(data?.data?.projectStartTime)); |
194 | 183 | input4.value = dayjs(formatDateToDateOnly(data?.data?.projectEndTime)); |
195 | 184 | input5.value = data?.data?.paidRmbCommission.toFixed(2); |
196 | - input6.value = data?.data?.actualExchangeRate.toFixed(2); | |
197 | 185 | |
198 | 186 | resetFields(); |
199 | 187 | setDrawerProps({ confirmLoading: false }); |
... | ... | @@ -220,7 +208,6 @@ |
220 | 208 | projectStartTime: input3.value, |
221 | 209 | projectEndTime: input4.value, |
222 | 210 | paidRmbCommission: input5.value, |
223 | - actualExchangeRate: input6.value, | |
224 | 211 | }); |
225 | 212 | emit('success'); |
226 | 213 | closeDrawer(); |
... | ... | @@ -233,7 +220,6 @@ |
233 | 220 | input3.value = ''; |
234 | 221 | input4.value = ''; |
235 | 222 | input5.value = ''; |
236 | - input6.value = ''; | |
237 | 223 | } |
238 | 224 | } |
239 | 225 | </script> | ... | ... |
src/views/project/finance/financeProfit/ServiceProfit/ServiceProfit/HistoryDetail.vue
... | ... | @@ -136,18 +136,17 @@ |
136 | 136 | if (index === 1) { |
137 | 137 | const res = await getProjectOptLog({ |
138 | 138 | projectNoPrefix: data, |
139 | - type: 10, | |
139 | + type: [10], | |
140 | 140 | page: page, |
141 | 141 | pageSize: 20 |
142 | 142 | }); |
143 | - console.log(res, '5656res'); | |
144 | 143 | list1.value = res.items; |
145 | 144 | total1.value = res.total; |
146 | 145 | page1.value = page; |
147 | 146 | } else { |
148 | 147 | const res = await getProjectOptLog({ |
149 | 148 | projectNoPrefix: data, |
150 | - type: 0, | |
149 | + type: [0,2], | |
151 | 150 | page: page, |
152 | 151 | pageSize: 20 |
153 | 152 | }); | ... | ... |
src/views/project/finance/financeProfit/ServiceProfit/ServiceProfit/data.tsx
... | ... | @@ -302,14 +302,6 @@ export const COLUMNS = [ |
302 | 302 | }, |
303 | 303 | }, |
304 | 304 | { |
305 | - title: '实际汇率¥', | |
306 | - dataIndex: 'actualExchangeRate', | |
307 | - width: 120, | |
308 | - customRender: (column) => { | |
309 | - return column.record?.actualExchangeRate?.toFixed(2); | |
310 | - }, | |
311 | - }, | |
312 | - { | |
313 | 305 | title: '综合收益¥', |
314 | 306 | dataIndex: 'comprehensiveProfit', |
315 | 307 | width: 120, | ... | ... |
src/views/project/finance/financeProfit/ServiceProfit/ServiceProfit/index.vue
src/views/project/finance/financeProfit/ServiceProfit/ServiceProfit/tableData.tsx
... | ... | @@ -62,5 +62,19 @@ export const FIELDS_BASE_INFO = [ |
62 | 62 | label: '实际汇率¥', |
63 | 63 | rules: [{ required: true }], |
64 | 64 | }, |
65 | + { | |
66 | + field: 'projectInnerProfitInfoStartTime', | |
67 | + component: 'Select', | |
68 | + labelWidth: 150, | |
69 | + label: '项目开始时间', | |
70 | + rules: [{ required: true }], | |
71 | + }, | |
72 | + { | |
73 | + field: 'projectInnerProfitInfoEndTime', | |
74 | + component: 'Select', | |
75 | + labelWidth: 150, | |
76 | + label: '项目结束时间', | |
77 | + rules: [{ required: true }], | |
78 | + }, | |
65 | 79 | ]; |
66 | 80 | ... | ... |
src/views/project/finance/pay/index.vue
... | ... | @@ -322,9 +322,6 @@ |
322 | 322 | }); |
323 | 323 | } |
324 | 324 | |
325 | - // console.log(checkedKeys.value, 565666666); // 输出当前的 selectedCustomCodes 值 | |
326 | - // console.log(selectedCustomCodes.value, 565666666); // 输出当前的 selectedCustomCodes 值 | |
327 | - // console.log(selectedProductionDepartment.value, 565666666); // 输出当前的 selectedCustomCodes 值 | |
328 | 325 | } |
329 | 326 | |
330 | 327 | function handleFinanceEdit(record) { | ... | ... |