| | |
| | | url: '/getRouters', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 获取首页消息 |
| | | export const getMessage = () => { |
| | | return request({ |
| | | url: '/index/message', |
| | | method: 'post' |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 详情 |
| | | export function list(data) { |
| | | return request({ |
| | | url: '/report/detail', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | |
| | | name: '', |
| | | avatar: '', |
| | | roles: [], |
| | | street: localStorage.getItem('street') || '', |
| | | permissions: [] |
| | | }, |
| | | |
| | |
| | | }, |
| | | SET_PERMISSIONS: (state, permissions) => { |
| | | state.permissions = permissions |
| | | }, |
| | | SET_STREET: (state, street) => { |
| | | state.street = street |
| | | localStorage.setItem('street', street) |
| | | } |
| | | }, |
| | | |
| | |
| | | |
| | | |
| | | export const exportExcell = (name, params, url) => { |
| | | fetch(BASE_URL + url, { |
| | | fetch(process.env.VUE_APP_BASE_API + url, { |
| | | method: 'POST', |
| | | body: JSON.stringify({ |
| | | ...params, |
| | | }), |
| | | headers: { |
| | | Authorization:'Bearer ' + localStorage.getItem('token'), |
| | | Authorization:'Bearer ' + getToken(), |
| | | 'ConTent-Type': 'application/json;charset=UTF-8', |
| | | timestamp: new Date().getTime(), |
| | | client: localStorage.getItem('client') |
| | |
| | | <el-card class="notification-card"> |
| | | <div class="notification-header">预警通知</div> |
| | | <div class="notification-list"> |
| | | <div v-for="(notification, index) in notifications" |
| | | <div v-for="(notification, index) in alwaysMessages" |
| | | :key="index" |
| | | class="notification-item"> |
| | | <div class="notification-item-header"> |
| | | <div class="notification-dot"></div> |
| | | <span class="notification-time">{{ notification.time }}</span> |
| | | <span class="notification-time">{{ notification.createTime }}</span> |
| | | </div> |
| | | <div class="notification-content"> |
| | | <div class="notification-text">{{ notification.content }}</div> |
| | | <div class="notification-submitter">提交人:{{ notification.submitter }}</div> |
| | | <div class="notification-text">{{ notification.noticeTitle }}</div> |
| | | <div v-if="notification.createBy" class="notification-submitter">提交人:{{ notification.createBy }}</div> |
| | | </div> |
| | | </div> |
| | | <div v-for="(notification, index) in noticeMessage" |
| | | :key="index" |
| | | class="notification-item"> |
| | | <div class="notification-item-header"> |
| | | <div class="notification-dot"></div> |
| | | <span class="notification-time">{{ notification.createTime }}</span> |
| | | </div> |
| | | <div class="notification-content"> |
| | | <div class="notification-text">{{ notification.noticeTitle }}</div> |
| | | <div v-if="notification.createBy" class="notification-submitter">提交人:{{ notification.createBy }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getMessage } from "@/api/menu"; |
| | | export default { |
| | | name: "Index", |
| | | data() { |
| | |
| | | version: "3.8.9", |
| | | currentDate: new Date(), |
| | | selectedMonth: new Date(), |
| | | notifications: [ |
| | | { |
| | | content: '您有【1】条【自主购房安置申请批次】等待审批', |
| | | submitter: '张三', |
| | | time: '2025-1-15 15:48:30', |
| | | isRead: false |
| | | }, |
| | | { |
| | | content: '您有【1】条【安置批次】等待审批', |
| | | submitter: '张三', |
| | | time: '2025-1-15 15:48:30', |
| | | isRead: false |
| | | }, |
| | | { |
| | | content: '本月应支付补偿款合计为【323.0032万元】', |
| | | submitter: '系统', |
| | | time: '2025-1-15 15:48:30', |
| | | isRead: false |
| | | }, |
| | | { |
| | | content: '您有【9】户自主购房安置人员需要付首付款', |
| | | submitter: '系统', |
| | | time: '2025-1-15 15:48:30', |
| | | isRead: false |
| | | } |
| | | ] |
| | | alwaysMessages: [], |
| | | noticeMessage: [] |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | this.selectedMonth = new Date(newDate); |
| | | } |
| | | }, |
| | | created() { |
| | | getMessage().then(res => { |
| | | this.alwaysMessages = res.data.alwaysMessages |
| | | this.noticeMessage = res.data.noticeMessage |
| | | console.log(res); |
| | | }); |
| | | }, |
| | | methods: { |
| | | goTarget(href) { |
| | | window.open(href, "_blank"); |
| | |
| | | <!-- 搜索表单 --> |
| | | <el-form :inline="true" :model="searchForm" class="search-form"> |
| | | <el-form-item label="镇街"> |
| | | <el-input v-model="searchForm.town" placeholder="请输入"></el-input> |
| | | <el-select v-model="searchForm.street" @change="handleStreetChange" placeholder="请选择" clearable size="small"> |
| | | <el-option v-for="item in streetOptions" :key="item.dictCode" :label="item.dictLabel" :value="item.dictLabel"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="所在村(社区)"> |
| | | <el-input v-model="searchForm.village" placeholder="请输入"></el-input> |
| | | <el-input v-model="searchForm.community" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="批次号"> |
| | | <el-input v-model="searchForm.batchNo" placeholder="请输入"></el-input> |
| | | <el-input v-model="searchForm.batchNumber" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="户主姓名"> |
| | | <el-input v-model="searchForm.ownerName" placeholder="请输入"></el-input> |
| | | <el-input v-model="searchForm.householdHead" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="handleSearch">查询</el-button> |
| | |
| | | <el-row :gutter="20" class="statistics-cards"> |
| | | <el-col :span="6"> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">2,183<span class="unit">万元</span></div> |
| | | <div class="card-amount">{{ formatNumber(statistics.compensationSum) }}<span class="unit">万元</span></div> |
| | | <div class="card-title">补偿资金总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">2,183<span class="unit">万元</span></div> |
| | | <div class="card-title">资付款总金额</div> |
| | | <div class="card-amount">{{ formatNumber(statistics.downPaymentAmount) }}<span class="unit">万元</span></div> |
| | | <div class="card-title">首付款总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">2,183<span class="unit">万元</span></div> |
| | | <div class="card-amount">{{ formatNumber(statistics.subsidyAmount) }}<span class="unit">万元</span></div> |
| | | <div class="card-title">过渡补贴总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">2,183<span class="unit">万元</span></div> |
| | | <div class="card-title">子项资金总额</div> |
| | | <div class="card-amount">{{ formatNumber(statistics.quarterPayAmount) }}<span class="unit">万元</span></div> |
| | | <div class="card-title">季度款总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 数据表格 --> |
| | | <el-table :data="tableData" border style="width: 100%; margin-top: 20px"> |
| | | <el-table :data="tableData" border style="width: 100%; margin-top: 20px" v-loading="loading"> |
| | | <el-table-column type="index" label="序号" width="60"></el-table-column> |
| | | <el-table-column prop="batchNo" label="批次号" width="120"></el-table-column> |
| | | <el-table-column prop="town" label="镇(街道)" width="120"></el-table-column> |
| | | <el-table-column prop="batchNumber" label="批次号" width="120"></el-table-column> |
| | | <el-table-column prop="street" label="镇(街道)" width="120"></el-table-column> |
| | | <el-table-column prop="projectName" label="拆迁项目名称"></el-table-column> |
| | | <el-table-column prop="village" label="所在村(社区)" width="150"></el-table-column> |
| | | <el-table-column prop="ownerName" label="户主姓名" width="120"></el-table-column> |
| | | <el-table-column prop="community" label="所在村(社区)" width="150"></el-table-column> |
| | | <el-table-column prop="householdHead" label="户主姓名" width="120"></el-table-column> |
| | | <el-table-column prop="idCard" label="身份证号" width="180"></el-table-column> |
| | | <el-table-column prop="familySize" label="应安置人数(人)" width="140"></el-table-column> |
| | | <el-table-column prop="area" label="所有家庭人员应安置面积(㎡)" width="160"></el-table-column> |
| | | <el-table-column prop="paymentDate" label="25%首付款支付时间" width="160"></el-table-column> |
| | | <el-table-column prop="firstPayment" label="25%首付款(万元)" width="160"></el-table-column> |
| | | <el-table-column prop="mortgageApproval" label="首笔季度款应付周期" width="160"></el-table-column> |
| | | <el-table-column prop="mortgagePayment" label="每季度需支付款项(万元)" width="180"></el-table-column> |
| | | <el-table-column prop="transitPayment" label="过渡补贴(万元)" width="160"></el-table-column> |
| | | <el-table-column label="操作" width="180" fixed="right"> |
| | | <el-table-column prop="currentCount" label="应安置人数(人)" width="140"></el-table-column> |
| | | <el-table-column prop="waitFamilyArea" label="所有家庭人员应安置面积(㎡)" width="160"></el-table-column> |
| | | <el-table-column prop="compensationPayTime" label="25%首付款支付时间" width="160"></el-table-column> |
| | | <el-table-column prop="downPaymentAmount" label="25%首付款(万元)" width="160"></el-table-column> |
| | | <el-table-column prop="cycle" label="首笔季度款应付周期" width="160"></el-table-column> |
| | | <el-table-column prop="quarterPayAmount" label="每季度需支付款项(万元)" width="180"></el-table-column> |
| | | <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" width="160"></el-table-column> |
| | | <el-table-column label="操作" width="80" fixed="right" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="handleDetail(scope.row)">详情</el-button> |
| | | <el-button type="text" @click="handleEdit(scope.row)">编辑</el-button> |
| | | <el-button type="text" @click="handleDelete(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <!-- 分页 --> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="pagination.currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="pagination.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="pagination.total" |
| | | class="pagination"> |
| | | <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="searchForm.pageNum" :page-sizes="[10, 20, 30, 50]" :page-size="searchForm.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" class="pagination"> |
| | | </el-pagination> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { list } from '@/api/payment-details/detail' |
| | | import { getDictData } from '@/api/placement' |
| | | export default { |
| | | data() { |
| | | return { |
| | | searchForm: { |
| | | town: '', |
| | | village: '', |
| | | batchNo: '', |
| | | ownerName: '' |
| | | street: '', |
| | | community: '', |
| | | batchNumber: '', |
| | | householdHead: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | statistics: {}, |
| | | loading: false, |
| | | tableData: [], |
| | | pagination: { |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | total: 0 |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | handleSearch() { |
| | | // 实现搜索逻辑 |
| | | }, |
| | | handleReset() { |
| | | this.searchForm = { |
| | | town: '', |
| | | village: '', |
| | | batchNo: '', |
| | | ownerName: '' |
| | | } |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.pagination.pageSize = val |
| | | // 重新加载数据 |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.pagination.currentPage = val |
| | | // 重新加载数据 |
| | | }, |
| | | handleDetail(row) { |
| | | // 查看详情 |
| | | }, |
| | | handleEdit(row) { |
| | | // 编辑 |
| | | }, |
| | | handleDelete(row) { |
| | | // 删除 |
| | | }, |
| | | streetOptions: [] |
| | | } |
| | | }, |
| | | created() { |
| | | // 初始化加载数据 |
| | | } |
| | | this.searchForm.street = this.$store.state.user.street; |
| | | this.getList() |
| | | getDictData('street').then(res => { |
| | | this.streetOptions = res.data; |
| | | }); |
| | | }, |
| | | methods: { |
| | | handleStreetChange(val) { |
| | | this.$store.commit('SET_STREET', val); |
| | | }, |
| | | // 格式化数字,添加千位符 |
| | | formatNumber(num) { |
| | | if (!num && num !== 0) return '0'; |
| | | return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); |
| | | }, |
| | | // 获取列表数据 |
| | | getList() { |
| | | this.loading = true; |
| | | list(this.searchForm).then(res => { |
| | | this.loading = false; |
| | | if (res.code === 200) { |
| | | // 更新统计数据 |
| | | this.statistics = res.data.reportSumResponse; |
| | | // 直接使用后端返回的数据 |
| | | this.tableData = res.data.records; |
| | | |
| | | this.pagination.total = res.data.total; |
| | | } |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 查询按钮 |
| | | handleSearch() { |
| | | this.searchForm.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | // 重置按钮 |
| | | handleReset() { |
| | | this.searchForm = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | street: this.$store.state.user.street, |
| | | community: '', |
| | | batchNumber: '', |
| | | householdHead: '' |
| | | }; |
| | | this.getList(); |
| | | }, |
| | | // 分页大小改变 |
| | | handleSizeChange(val) { |
| | | this.searchForm.pageSize = val; |
| | | this.getList(); |
| | | }, |
| | | // 分页页码改变 |
| | | handleCurrentChange(val) { |
| | | this.searchForm.pageNum = val; |
| | | this.getList(); |
| | | }, |
| | | handleDetail(row) { |
| | | // 查看详情 |
| | | console.log(row); |
| | | // this.$router.push({ |
| | | // path: '/applicationBatchList/detailInfo', |
| | | // query: { |
| | | // id: row.id |
| | | // } |
| | | // }); |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | |
| | | |
| | | .statistics-cards { |
| | | margin: 20px 0; |
| | | |
| | | |
| | | .box-card { |
| | | text-align: center; |
| | | background: #6c5ce7; |
| | |
| | | <!-- 搜索区域 --> |
| | | <el-form :inline="true" :model="queryParams" class="search-form"> |
| | | <el-form-item label="镇街"> |
| | | <el-input v-model="queryParams.street" placeholder="请输入" clearable size="small" /> |
| | | <el-select v-model="queryParams.street" placeholder="请选择" clearable size="small"> |
| | | <el-option v-for="item in streetOptions" :key="item.dictCode" :label="item.dictLabel" :value="item.dictLabel"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <!-- 数据卡片 --> |
| | | <el-row :gutter="20" class="card-row"> |
| | | <!-- 统计卡片 --> |
| | | <el-row :gutter="20" class="statistics-cards"> |
| | | <el-col :span="6"> |
| | | <el-card shadow="hover" class="data-card"> |
| | | <div class="card-content"> |
| | | <div class="card-amount">{{ statistics.compensationSum }}</div> |
| | | <div class="card-unit">万元</div> |
| | | <div class="card-title">补偿资金总金额</div> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">{{ formatNumber(statistics.compensationSum) }}<span class="unit">万元</span> |
| | | </div> |
| | | <div class="card-title">补偿资金总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card shadow="hover" class="data-card"> |
| | | <div class="card-content"> |
| | | <div class="card-amount">{{ statistics.downPaymentAmount }}</div> |
| | | <div class="card-unit">万元</div> |
| | | <div class="card-title">累计拨款金额</div> |
| | | </div> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">{{ formatNumber(statistics.downPaymentAmount) }}<span |
| | | class="unit">万元</span></div> |
| | | <div class="card-title">首付款总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card shadow="hover" class="data-card"> |
| | | <div class="card-content"> |
| | | <div class="card-amount">{{ statistics.subsidyAmount }}</div> |
| | | <div class="card-unit">万元</div> |
| | | <div class="card-title">过渡补贴金额</div> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">{{ formatNumber(statistics.subsidyAmount) }}<span class="unit">万元</span> |
| | | </div> |
| | | <div class="card-title">过渡补贴总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card shadow="hover" class="data-card"> |
| | | <div class="card-content"> |
| | | <div class="card-amount">{{ statistics.quarterPayAmount }}</div> |
| | | <div class="card-unit">万元</div> |
| | | <div class="card-title">季度拨款金额</div> |
| | | <el-card class="box-card"> |
| | | <div class="card-amount">{{ formatNumber(statistics.quarterPayAmount) }}<span class="unit">万元</span> |
| | | </div> |
| | | <div class="card-title">季度款总金额</div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="每季度需支付款项(万元)" min-width="100" align="center"> |
| | | <template v-for="(quarter, index) in quarters"> |
| | | <el-table-column |
| | | :key="index" |
| | | :label="formatQuarterLabel(quarter)" |
| | | :prop="quarter" |
| | | min-width="100" |
| | | align="center" |
| | | /> |
| | | <el-table-column :key="index" :label="formatQuarterLabel(quarter)" :prop="quarter" min-width="100" |
| | | align="center" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | |
| | | </el-table> |
| | | |
| | | <!-- 分页组件 --> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="queryParams.pageNum" :page-sizes="[10, 20, 50, 100]" :page-size="queryParams.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="total" class="pagination" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { list, exportExcel } from '@/api/payment-details/list' |
| | | import { list } from '@/api/payment-details/list' |
| | | import { exportExcell } from '@/utils' |
| | | import { getDictData } from '@/api/placement' |
| | | |
| | | export default { |
| | | name: "PaymentDetails", |
| | | data() { |
| | |
| | | }, |
| | | // 表格数据 |
| | | tableData: [], |
| | | // 镇街列表 |
| | | streetOptions: [], |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | getDictData('street').then(res => { |
| | | this.streetOptions = res.data; |
| | | }); |
| | | }, |
| | | methods: { |
| | | // 格式化数字,添加千位符 |
| | | formatNumber(num) { |
| | | if (!num && num !== 0) return '0'; |
| | | return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); |
| | | }, |
| | | // 格式化季度标签 |
| | | formatQuarterLabel(quarter) { |
| | | const [year, month] = quarter.split('-'); |
| | |
| | | |
| | | // 直接使用后端返回的数据 |
| | | this.tableData = res.data.records; |
| | | |
| | | |
| | | this.total = res.data.total; |
| | | } |
| | | }).catch(() => { |
| | |
| | | }, |
| | | // 详情操作 |
| | | handleReview(row) { |
| | | console.log(row); |
| | | |
| | | this.$store.commit('SET_STREET', row.street); |
| | | |
| | | this.$router.push({ |
| | | path: '/payment-details/detail', |
| | | query: { |
| | | street: row.street, |
| | | id: row.id |
| | | } |
| | | path: '/payment-details/detail' |
| | | }); |
| | | }, |
| | | // 导出Excel |
| | | handleExport() { |
| | | this.$message.success("导出Excel功能"); |
| | | exportExcel().then(res => { |
| | | console.log(res); |
| | | }); |
| | | exportExcell('各季度应付款明细表.xlsx', { street: this.queryParams.street }, '/report/exports'); |
| | | }, |
| | | // 分页大小改变 |
| | | handleSizeChange(val) { |
| | |
| | | text-align: right; |
| | | } |
| | | |
| | | .statistics-cards { |
| | | margin: 20px 0; |
| | | |
| | | .box-card { |
| | | text-align: center; |
| | | background: #6c5ce7; |
| | | color: white; |
| | | |
| | | .card-amount { |
| | | font-size: 24px; |
| | | font-weight: bold; |
| | | margin-bottom: 8px; |
| | | |
| | | .unit { |
| | | font-size: 14px; |
| | | margin-left: 4px; |
| | | } |
| | | } |
| | | |
| | | .card-title { |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 固定右侧操作栏背景色 |
| | | ::v-deep .el-table__fixed-right { |
| | |
| | | ref="upload" |
| | | class="upload-demo" |
| | | drag |
| | | action="http://182.140.209.168:8888/api/common/upload" |
| | | :action="baseUrl + '/common/upload'" |
| | | :headers="{ |
| | | 'Authorization': 'Bearer ' + token |
| | | }" |
| | |
| | | attachName: '', |
| | | attachUrl: '' |
| | | }, |
| | | baseUrl: process.env.VUE_APP_BASE_API, |
| | | rules: { |
| | | street: [ |
| | | { required: true, message: '请选择镇(街道)', trigger: 'change' } |
| | |
| | | <div class="search-area"> |
| | | <el-form :inline="true" :model="queryParams" class="search-form"> |
| | | <el-form-item label="镇街"> |
| | | <el-input v-model="queryParams.street" placeholder="请输入" clearable size="small" /> |
| | | <el-select v-model="queryParams.street" placeholder="请选择" clearable size="small"> |
| | | <el-option v-for="item in streetOptions" :key="item.dictCode" :label="item.dictLabel" :value="item.dictLabel"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="资料名称"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入" clearable size="small" /> |
| | |
| | | </el-pagination> |
| | | </div> |
| | | |
| | | <!-- 审核对话框 --> |
| | | <approval-dialog ref="approvalDialog" :visible.sync="approvalDialogVisible" :type="approvalType" |
| | | :row-data="currentRow" @audit-submit="handleApprovalSubmit" /> |
| | | |
| | | <!-- 上传组件 --> |
| | | <upload-dialog ref="uploadDialog" :visible.sync="uploadDialogVisible" :type="uploadType" :streetOptions="streetOptions" |
| | |
| | | <script> |
| | | import Pagination from "@/components/Pagination"; |
| | | import UploadDialog from "./components/UploadDialog"; |
| | | import ApprovalDialog from "./components/ApprovalDialog"; |
| | | import { list, add, del, update } from "@/api/storing-data"; |
| | | import { getDictData } from '@/api/placement' |
| | | |
| | |
| | | components: { |
| | | Pagination, |
| | | UploadDialog, |
| | | ApprovalDialog, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | { value: "已驳回", label: "已驳回" }, |
| | | ], |
| | | // 审核相关 |
| | | approvalDialogVisible: false, |
| | | approvalType: "audit", // 'audit' 或 'detail' |
| | | currentRow: {}, |
| | | // 上传相关 |