|
|
@@ -1,32 +1,6 @@
|
|
|
<template>
|
|
|
- <el-dialog v-model="visible" title="政策关联" width="80%" @closed="$emit('closed')">
|
|
|
+ <el-dialog v-model="visible" title="政策分享" width="80%" @closed="$emit('closed')">
|
|
|
<el-card class="tjm_card_style_custom">
|
|
|
- <div class="tjm_card_select">
|
|
|
- <el-scrollbar>
|
|
|
- <el-form class="tjm_card_select_left" :model="params" label-width="80px" label-position="left">
|
|
|
- <el-row :gutter="15">
|
|
|
- <!-- <el-col :lg="8" :md="12" :xs="24">
|
|
|
- <el-form-item label="填报人">
|
|
|
- <el-input v-model="params.createName" clearable placeholder="请输入填报人"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col> -->
|
|
|
- <el-col :lg="12" :md="16" :xs="24" class="query-date-col">
|
|
|
- <el-form-item label="填报日期">
|
|
|
- <el-date-picker v-model="createMonth" type="month" :clearable="false" value-format="YYYY-MM" placeholder="请选择填报月份" @change="monthChange"></el-date-picker>
|
|
|
- <el-date-picker v-model="createTime" type="daterange" :disabled-date="disabledDate" :clearable="false" value-format="YYYY-MM-DD" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
-
|
|
|
- <div class="tjm_card_select_right">
|
|
|
- <el-button type="primary" icon="search" @click="reloadTable">搜索</el-button>
|
|
|
- <el-button icon="refresh-right" @click="reset">重置</el-button>
|
|
|
- </div>
|
|
|
- </el-scrollbar>
|
|
|
- </div>
|
|
|
- <el-divider></el-divider>
|
|
|
-
|
|
|
<div class="tjm_card_tools">
|
|
|
<div class="tjm_card_tools_right">
|
|
|
<el-button icon="download" @click="table_export">导出</el-button>
|
|
|
@@ -40,7 +14,7 @@
|
|
|
<el-table-column :label="item.label" :prop="item.props" :min-width="item.width || 180" show-overflow-tooltip>
|
|
|
<template #default="scope">
|
|
|
<el-tag v-if="item.props == 'ytbDate' && !columnFormat(scope.row, item.props)" type="info">未设置</el-tag>
|
|
|
- <el-tag v-else-if="item.props == 'isReport' || item.props == 'isDelay'" :type="tagType(columnFormat(scope.row, item.props))">{{ columnFormat(scope.row, item.props) }}</el-tag>
|
|
|
+ <el-tag v-else-if="item.props == 'isDelay'" :type="tagType(columnFormat(scope.row, item.props))">{{ columnFormat(scope.row, item.props) }}</el-tag>
|
|
|
<template v-else>{{ columnFormat(scope.row, item.props) }}</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -52,51 +26,78 @@
|
|
|
</el-table-column> -->
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- <div class="tjm_card_pagination">
|
|
|
- <yh-pagination v-model:pageNo="params.page" v-model:pageSize="params.size" :total="total" @paginationChange="reloadTable"></yh-pagination>
|
|
|
- </div>
|
|
|
</el-card>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <!-- <policy-explain v-if="dialog" ref="policyExplain" @closed="dialog = false"></policy-explain> -->
|
|
|
+ <policy-detail v-if="dialog" ref="policyDetail" @closed="dialog = false"></policy-detail>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import moment from "moment";
|
|
|
-import API from "@/api/policy/progress";
|
|
|
+import { exportExcel } from "@/utils/exportExcel";
|
|
|
import { share_columns as columns } from "@/views/progress/main";
|
|
|
+import policyDetail from "@/views/manage/policyShare/dialog.vue";
|
|
|
|
|
|
export default {
|
|
|
emits: ["closed"],
|
|
|
+ components: {
|
|
|
+ policyDetail
|
|
|
+ },
|
|
|
+
|
|
|
+ props: {
|
|
|
+ createMonth: { type: String, default: moment().format("YYYY-MM") }
|
|
|
+ },
|
|
|
|
|
|
data() {
|
|
|
return {
|
|
|
- columns,
|
|
|
-
|
|
|
visible: false,
|
|
|
- loading: false,
|
|
|
- createMonth: moment().format("YYYY-MM"),
|
|
|
- createTime: [moment().startOf("month").format("YYYY-MM-DD"), moment().endOf("month").format("YYYY-MM-DD")],
|
|
|
- params: {
|
|
|
- page: 1,
|
|
|
- size: 10
|
|
|
- },
|
|
|
-
|
|
|
- total: 0,
|
|
|
+
|
|
|
+ columns,
|
|
|
tableData: [],
|
|
|
-
|
|
|
+
|
|
|
dialog: false
|
|
|
}
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
+ tagType(value) {
|
|
|
+ return value == "否" && "danger" || "primary";
|
|
|
+ },
|
|
|
+
|
|
|
+ columnFormat(row, props) {
|
|
|
+ if (props == "ytbDate") return row[props] && (this.createMonth + "-" + row[props]) || "";
|
|
|
+ if (props == "isDelay") {
|
|
|
+ if (!row.ytbDate) return "否";
|
|
|
+ return moment(this.createMonth + "-" + row.ytbDate).endOf("day").diff(row.createTime) < 0 && "是" || "否";
|
|
|
+ }
|
|
|
+
|
|
|
+ return row[props];
|
|
|
+ },
|
|
|
+
|
|
|
open() {
|
|
|
this.visible = true;
|
|
|
return this;
|
|
|
},
|
|
|
|
|
|
setData(row) {
|
|
|
- console.log(row)
|
|
|
+ this.tableData = row.shareList.map(item => {
|
|
|
+ item.deptCode = row.code;
|
|
|
+ item.ytbDate = row.ytbDate;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ table_export() {
|
|
|
+ const header = columns.map(c => c.label);
|
|
|
+ const data = this.tableData.map(v => columns.map(c => c.props).map(j => this.columnFormat(v, j)));
|
|
|
+ const merges = [{ s: { r: 1, c: 0 }, e: { r: this.tableData.length, c: 0 } }];
|
|
|
+
|
|
|
+ exportExcel(header, data, merges, `${this.$route.name}.xlsx`);
|
|
|
+ },
|
|
|
+
|
|
|
+ table_detail(row) {
|
|
|
+ this.dialog = true;
|
|
|
+ nextTick(() => this.$refs.policyDetail.open("detail").setData(row.id));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -106,21 +107,9 @@ export default {
|
|
|
.tjm_card_style_custom {
|
|
|
border: none;
|
|
|
box-shadow: 0 0;
|
|
|
- margin-top: 0;
|
|
|
|
|
|
:deep(.el-card__body) {
|
|
|
- padding-top: 10px;
|
|
|
-
|
|
|
- .query-date-col {
|
|
|
- .el-date-editor.el-date-editor--month {
|
|
|
- max-width: 110px;
|
|
|
- }
|
|
|
-
|
|
|
- .el-date-editor.el-date-editor--month + .el-date-editor {
|
|
|
- flex: 1;
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
+ padding: 0;
|
|
|
|
|
|
.tjm_card_tools {
|
|
|
justify-content: flex-end;
|