|
@@ -14,10 +14,10 @@
|
|
|
:src="expense"
|
|
|
style="width: 50px;height: 50px"
|
|
|
/>
|
|
|
- <el-text style="font-size: 20px;font-weight: 550;color: #409eff">收支分析</el-text>
|
|
|
+ <el-text style="font-size: 20px;font-weight: 550;color: #409eff">项目收支</el-text>
|
|
|
</el-col>
|
|
|
<el-col :span="20">
|
|
|
- <el-row>
|
|
|
+ <el-row align="middle">
|
|
|
<el-col :span="6">
|
|
|
<el-row
|
|
|
justify="center"
|
|
@@ -81,48 +81,18 @@
|
|
|
<el-text>项目收款</el-text>
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
-<!-- <el-col :span="4">-->
|
|
|
-<!-- <el-row-->
|
|
|
-<!-- justify="center"-->
|
|
|
-<!-- align="middle"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <el-text-->
|
|
|
-<!-- style="font-size: 20px;color: #409eff;"-->
|
|
|
-<!-- tag="b"-->
|
|
|
-<!-- :line-clamp="1"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- {{ collectionAmount }}-->
|
|
|
-<!-- </el-text>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row-->
|
|
|
-<!-- justify="center"-->
|
|
|
-<!-- align="middle"-->
|
|
|
-<!-- style="margin-top: 8px"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <el-text>项目报销</el-text>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="4">-->
|
|
|
-<!-- <el-row-->
|
|
|
-<!-- justify="center"-->
|
|
|
-<!-- align="middle"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <el-text-->
|
|
|
-<!-- style="font-size: 20px;color: #409eff;"-->
|
|
|
-<!-- tag="b"-->
|
|
|
-<!-- :line-clamp="1"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- {{ collectionAmount }}-->
|
|
|
-<!-- </el-text>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row-->
|
|
|
-<!-- justify="center"-->
|
|
|
-<!-- align="middle"-->
|
|
|
-<!-- style="margin-top: 8px"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <el-text>项目工时</el-text>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </el-col>-->
|
|
|
+ <el-col
|
|
|
+ :span="4"
|
|
|
+ :offset="5"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ text
|
|
|
+ icon="Menu"
|
|
|
+ size="large"
|
|
|
+ style="font-size: 20px"
|
|
|
+ @click="openProjectList"
|
|
|
+ >项目列表</el-button>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -131,7 +101,7 @@
|
|
|
style="height: 680px"
|
|
|
>
|
|
|
<el-col
|
|
|
- :span="16"
|
|
|
+ :span="24"
|
|
|
class="bg-white"
|
|
|
style="padding-left: 20px"
|
|
|
>
|
|
@@ -146,12 +116,12 @@
|
|
|
>
|
|
|
<Hour ref="hourOut" />
|
|
|
</el-tab-pane>
|
|
|
-<!-- <el-tab-pane-->
|
|
|
-<!-- label="费用报销"-->
|
|
|
-<!-- :name="2"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <Reimburse ref="reimburseOut" />-->
|
|
|
-<!-- </el-tab-pane>-->
|
|
|
+ <el-tab-pane
|
|
|
+ label="项目费用"
|
|
|
+ :name="2"
|
|
|
+ >
|
|
|
+ <project-pay />
|
|
|
+ </el-tab-pane>
|
|
|
<el-tab-pane
|
|
|
label="项目收款"
|
|
|
:name="3"
|
|
@@ -160,92 +130,94 @@
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <div
|
|
|
- style="width: 97%;margin-left: 3%;height: 680px"
|
|
|
- class="bg-white"
|
|
|
- >
|
|
|
- <div style="height: 20px" />
|
|
|
- <el-form @submit.prevent>
|
|
|
- <el-row style="height: 45px">
|
|
|
- <el-col
|
|
|
- :span="22"
|
|
|
- :offset="1"
|
|
|
- >
|
|
|
- <el-form-item>
|
|
|
- <el-input
|
|
|
- v-model="condition.name"
|
|
|
- :suffix-icon="Search"
|
|
|
- placeholder="请输入项目名称"
|
|
|
- size="large"
|
|
|
- clearable
|
|
|
- @keyup.enter="nameSearch"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div style="height: 500px">
|
|
|
- <el-row
|
|
|
- v-for="item in listData"
|
|
|
- :key="item.ID"
|
|
|
- style="height: 70px;margin-top: 12px"
|
|
|
- align="middle"
|
|
|
- >
|
|
|
- <el-col
|
|
|
- :span="16"
|
|
|
- :offset="1"
|
|
|
- >
|
|
|
- <el-row style="height: 40px">
|
|
|
- <el-text
|
|
|
- style="font-size: 18px"
|
|
|
- :line-clamp="1"
|
|
|
- tag="b"
|
|
|
- >{{ item.name }}</el-text>
|
|
|
- </el-row>
|
|
|
- <el-row style="height: 30px">
|
|
|
- <el-text
|
|
|
- :line-clamp="1"
|
|
|
- style="font-size: 12px;"
|
|
|
- type="info"
|
|
|
- >
|
|
|
- 负责人:{{ item.principal }}
|
|
|
- </el-text>
|
|
|
- </el-row>
|
|
|
- </el-col>
|
|
|
- <el-col
|
|
|
- :span="6"
|
|
|
- class="flex justify-end"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- :type="buttonType(item.state)"
|
|
|
- round
|
|
|
- size="large"
|
|
|
- @click="incomeExpenses(item.code)"
|
|
|
- >收支信息</el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
- <el-row>
|
|
|
+ </el-row>
|
|
|
+ <el-drawer
|
|
|
+ v-model="listDisplay"
|
|
|
+ title="项目列表"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ style="height: 680px"
|
|
|
+ class="bg-white"
|
|
|
+ >
|
|
|
+ <el-form @submit.prevent>
|
|
|
+ <el-row style="height: 45px">
|
|
|
<el-col
|
|
|
:span="22"
|
|
|
:offset="1"
|
|
|
- class="flex justify-end align-center"
|
|
|
>
|
|
|
- <el-pagination
|
|
|
- v-show="projectTotal > 6"
|
|
|
- v-model:current-page="condition.pageInfo.page"
|
|
|
- background
|
|
|
- layout="prev, pager, next"
|
|
|
- :total="projectTotal"
|
|
|
- :page-size="6"
|
|
|
- @change="changePage"
|
|
|
- />
|
|
|
+ <el-form-item>
|
|
|
+ <el-input
|
|
|
+ v-model="condition.name"
|
|
|
+ :suffix-icon="Search"
|
|
|
+ placeholder="请输入项目名称"
|
|
|
+ size="large"
|
|
|
+ clearable
|
|
|
+ @keyup.enter="nameSearch"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <div style="height: 500px">
|
|
|
+ <el-row
|
|
|
+ v-for="item in listData"
|
|
|
+ :key="item.ID"
|
|
|
+ style="height: 70px;margin-top: 12px"
|
|
|
+ align="middle"
|
|
|
+ >
|
|
|
+ <el-col
|
|
|
+ :span="16"
|
|
|
+ :offset="1"
|
|
|
+ >
|
|
|
+ <el-row style="height: 40px">
|
|
|
+ <el-text
|
|
|
+ style="font-size: 18px"
|
|
|
+ :line-clamp="1"
|
|
|
+ tag="b"
|
|
|
+ >{{ item.name }}</el-text>
|
|
|
+ </el-row>
|
|
|
+ <el-row style="height: 30px">
|
|
|
+ <el-text
|
|
|
+ :line-clamp="1"
|
|
|
+ style="font-size: 12px;"
|
|
|
+ type="info"
|
|
|
+ >
|
|
|
+ 负责人:{{ item.principal }}
|
|
|
+ </el-text>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ <el-col
|
|
|
+ :span="6"
|
|
|
+ class="flex justify-end"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ :type="buttonType(item.state)"
|
|
|
+ round
|
|
|
+ size="large"
|
|
|
+ @click="incomeExpenses(item.code)"
|
|
|
+ >收支信息</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <el-row>
|
|
|
+ <el-col
|
|
|
+ :span="22"
|
|
|
+ :offset="1"
|
|
|
+ class="flex justify-end align-center"
|
|
|
+ >
|
|
|
+ <el-pagination
|
|
|
+ v-show="projectTotal > 6"
|
|
|
+ v-model:current-page="condition.pageInfo.page"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :total="projectTotal"
|
|
|
+ :page-size="6"
|
|
|
+ @change="changePage"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -263,12 +235,21 @@ import { collectionOperate } from '@/pinia/collection/Collection'
|
|
|
import { codeOperate } from '@/pinia/code/code'
|
|
|
import { reimburseOperate } from '@/pinia/reimbursement/Reimbursement'
|
|
|
import { hourOperate } from '@/pinia/hour/Hour'
|
|
|
+import { payData } from '@/pinia/cost/cost'
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
import Payment from '@/view/finance/financeAnalysis/components/payment.vue'
|
|
|
import expense from '@/assets/expenses.png'
|
|
|
+import ProjectPay from '@/view/finance/financeAnalysis/components/projectPay.vue'
|
|
|
defineOptions({
|
|
|
name: 'FinanceAnalysis'
|
|
|
})
|
|
|
+
|
|
|
+// 项目列表
|
|
|
+const listDisplay = ref(false)
|
|
|
+const openProjectList = () => {
|
|
|
+ listDisplay.value = true
|
|
|
+}
|
|
|
+const pay = payData()
|
|
|
// 数据
|
|
|
const payment = collectionOperate()
|
|
|
const symbol = codeOperate()
|
|
@@ -376,6 +357,7 @@ const changeSort = () => {}
|
|
|
const incomeExpenses = (code) => {
|
|
|
symbol.changeCode(code)
|
|
|
getMainMessage(code)
|
|
|
+ listDisplay.value = false
|
|
|
}
|
|
|
|
|
|
const paymentOut = ref()
|
|
@@ -385,6 +367,7 @@ const hourOut = ref()
|
|
|
const getMainMessage = (code) => {
|
|
|
queryProjectExpense(code).then(res => {
|
|
|
if (res.code === 0) {
|
|
|
+ console.log(res.data)
|
|
|
const summaryData = res.data
|
|
|
const sumList = summaryData.collection
|
|
|
let sum = 0
|
|
@@ -408,8 +391,9 @@ const getMainMessage = (code) => {
|
|
|
people: 0
|
|
|
})
|
|
|
paymentOut.value.outsideChangePage()
|
|
|
- // reimburseOut.value.outsideChangePage()
|
|
|
hourOut.value.outsideChangePage()
|
|
|
+ pay.changeCostList(summaryData.projectFee)
|
|
|
+ pay.changeCostTotal(summaryData.projectFeeTotal)
|
|
|
}
|
|
|
})
|
|
|
getProjectMessage(code).then(res => {
|