zhuangyunsheng 1 rok pred
rodič
commit
9f34fd7fbf

+ 8 - 0
src/api/policy/share.js

@@ -32,6 +32,14 @@ export default {
         })
     },
 
+    saveDone: function (data) {
+        return request({
+            url: "/qdport-zcgx/share/saveDone",
+            method: "post",
+            data
+        })
+    },
+
     edit: function (data) {
         return request({
             url: "/qdport-zcgx/share/update",

+ 232 - 0
src/views/manage/policyShare/dialog.vue

@@ -0,0 +1,232 @@
+<template>
+    <el-dialog v-model="visible" :title="titleMap[mode]" :width="680" @closed="$emit('closed', fileIsDel)">
+        <el-form ref="formRef" :model="form" :rules="rules" label-width="110px">
+            <el-row>
+                <el-col v-if="form.id" :span="12">
+                    <el-form-item label="政策编号" prop="businessNo">
+                        <el-input v-model="form.businessNo" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="填报人">
+                        <el-input v-model="form.createName" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="填报部门">
+                        <el-input v-model="form.deptName" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="填报单位">
+                        <el-input v-model="form.companyName" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col v-if="form.id" :span="12">
+                    <el-form-item label="填报时间">
+                        <el-date-picker v-model="form.createTime" disabled format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="政策名称" prop="name">
+                        <el-input v-model="form.name" placeholder="请输入政策名称"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="政策等级" prop="zcLevel">
+                        <el-select v-model="form.zcLevel" placeholder="请选择政策等级">
+                            <el-option v-for="item in levelDic" :key="item" :label="item" :value="item"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="政策类别" prop="zcType">
+                        <el-select v-model="form.zcType" placeholder="请选择政策类别">
+                            <el-option v-for="item in typeDic" :key="item" :label="item" :value="item"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="政策文号" prop="docNo">
+                        <el-input v-model="form.docNo" placeholder="请输入政策文号"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="联系方式" prop="contactPhone">
+                        <el-input v-model="form.contactPhone" placeholder="请输入联系方式"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                    <el-form-item label="政策概要" prop="abstractContent">
+                        <el-input v-model="form.abstractContent" type="textarea" :rows="4" placeholder="请输入政策概要"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="是否入库">
+                        <el-radio-group v-model="form.isInWh" @change="form.inWhType = null">
+                            <el-radio v-for="(label, key) in inWHDic" :key="key" :label="label" :value="parseInt(key)"></el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-col>
+                <el-col v-if="form.isInWh == 1" :span="12">
+                    <el-form-item label="入库类型" prop="inWhType">
+                        <el-select v-model="form.inWhType" placeholder="请选择入库类型">
+                            <el-option v-for="item in storageTypeDic" :key="item" :label="item" :value="item"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="分值(0-10)">
+                        <el-input-number v-model="form.score" :min="0" :max="10" :step="0.1" :precision="2" controls-position="right" placeholder="请输入分值"></el-input-number>
+                    </el-form-item>
+                </el-col>
+                <el-col v-if="mode == 'decode'" :span="24">
+                    <el-form-item label="政策解读" prop="decodeContent">
+                        <el-input v-model="form.decodeContent" type="textarea" :rows="4" placeholder="请输入政策解读"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                    <el-form-item label="附件">
+                        <yhUpload v-model="form.fileList" :limit="10" @updateTable="fileIsDel = true">
+                            <el-button type="primary" icon="upload" size="small"></el-button>
+                        </yhUpload>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+        </el-form>
+
+        <template #footer>
+            <el-button type="primary" @click="submit">确 定</el-button>
+        </template>
+    </el-dialog>
+</template>
+
+<script>
+import API from "@/api/policy/share";
+import { useUserStore } from "@/store/user";
+import { levelDic, typeDic, inWHDic, storageTypeDic } from "@/views/policyShare/main";
+import yhUpload from "@/components/Upload/index.vue";
+
+const { userInfo } = useUserStore(); // store 用户
+
+export default {
+    emits: ["success", "closed"],
+    components: {
+        yhUpload
+    },
+
+    data() {
+        return {
+            levelDic, typeDic, inWHDic, storageTypeDic,
+            visible: false,
+            mode: "add",
+            titleMap: {
+                add: "新增政策",
+                edit: "编辑政策",
+                decode: "政策解读"
+            },
+            form: {
+                id: null,
+                businessNo: null,
+                status: null,
+                createId: userInfo.id,
+                createName: userInfo.name,
+                createTime: null,
+                name: null,
+                companyName: null,
+                deptName: null,
+                zcLevel: null,
+                zcType: null,
+                docNo: null,
+                contactPhone: null,
+                abstractContent: null,
+                decodeContent: null,
+                score: null,
+                isInWh: 1,
+                inWhType: null,
+                fileList: []
+            },
+
+            rules: {
+                businessNo: [{ required: true }],
+                name: [{ required: true, message: "请输入政策名称" }],
+                zcLevel: [{ required: true, message: "请选择政策等级" }],
+                zcType: [{ required: true, message: "请选择政策类别" }],
+                docNo: [{ required: true, message: "请输入政策文号" }],
+                contactPhone: [{ required: true, message: "请输入联系方式" }],
+                abstractContent: [{ required: true, message: "请输入政策概要" }],
+                inWhType: [{ required: true, message: "请选择入库类型" }],
+                decodeContent: [{ required: true, message: "请输入政策解读" }]
+            },
+
+            fileIsDel: false,
+            dialog: false
+        }
+    },
+
+    mounted() {
+        this.getUserDept();
+    },
+
+    methods: {
+        init(mode = "add") {
+            this.mode = mode;
+            this.visible = true;
+            return this;
+        },
+
+        setData(id) {
+            API.detail(id).then(res => {
+                if (res.code === 200) {
+                    for (const key in this.form) {
+                        if (key == "fileList") {
+                            this.form[key] = res.data[key].map(file => ({ ...file, name: file.originalName, path: file.fileDomain + "/" + file.fileName }));
+                        } else this.form[key] = res.data[key] || null;
+                    }
+                    this.form.updateId = userInfo.id;
+                } else ElMessage.error(res.msg);
+            });
+        },
+
+        getUserDept() {
+            API.getUserDept(userInfo.deptId).then(res => {
+                if (res.code === 200) {
+                    this.form.companyName = res.data.companyName;
+                    this.form.deptName = res.data.deptName;
+                }
+            });
+        },
+
+        // 表单提交方法
+        submit() {
+            this.$refs.formRef.validate(valid => {
+                if (valid) {
+                    const apiKey = this.mode == "add" && "saveDone" || "edit";
+                    API[apiKey](this.form).then(() => {
+                        ElMessage.success("操作成功");
+                        this.visible = false;
+                        this.fileIsDel = false;
+                        this.$emit("success", apiKey);
+                    });
+                } else {
+                    return false;
+                }
+            });
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.el-input-number {
+  width: 100%;
+
+  :deep(.el-input) .el-input__wrapper {
+    padding: 1px 11px;
+
+    .el-input__inner {
+      text-align: unset;
+    }
+  }
+}
+</style>

+ 180 - 0
src/views/manage/policyShare/index.vue

@@ -0,0 +1,180 @@
+<template>
+    <el-card class="tjm_card_style_custom">
+        <div class="tjm_card_title">查询表格</div>
+        <div class="tjm_card_select">
+            <el-form class="tjm_card_select_left" :model="params" inline label-width="80px" label-position="left">
+                <el-form-item label="政策名称">
+                    <el-input v-model="params.name" clearable placeholder="请输入政策名称"></el-input>
+                </el-form-item>
+                <el-form-item label="政策等级">
+                    <el-select v-model="params.zcLevel" clearable placeholder="请选择政策等级">
+                        <el-option v-for="item in levelDic" :key="item" :label="item" :value="item"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="政策类别">
+                    <el-select v-model="params.zcType" clearable placeholder="请选择政策类别">
+                        <el-option v-for="item in typeDic" :key="item" :label="item" :value="item"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="是否入库">
+                    <el-select v-model="params.isInWh" clearable placeholder="请选择入库状态">
+                        <el-option v-for="(label, key) in inWHDic" :key="key" :label="label" :value="parseInt(key)"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="入库类别">
+                    <el-select v-model="params.inWhType" clearable placeholder="请选择入库类别">
+                        <el-option v-for="item in storageTypeDic" :key="item" :label="item" :value="item"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="填报时间">
+                    <el-date-picker v-model="createTime" type="daterange" value-format="YYYY-MM-DD" range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间"></el-date-picker>
+                </el-form-item>
+
+                <el-form-item>
+                    <el-button type="primary" icon="search" @click="reloadTable">搜索</el-button>
+                    <el-button icon="refresh-right" @click="reset">重置</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+        <el-divider></el-divider>
+
+        <div class="tjm_card_tools">
+            <div class="tjm_card_tools_left">
+                <el-button type="primary" icon="plus" @click="table_add">新增</el-button>
+            </div>
+            <div class="tjm_card_tools_right">
+                <el-button icon="download" @click="table_export">导出</el-button>
+            </div>
+        </div>
+        <div class="tjm_card_table">
+            <el-table v-loading="loading" row-key="id" header-cell-class-name="tjm_card_table_header" height="400" :data="tableData" border>
+                <el-table-column type="index" width="50"></el-table-column>
+                <template v-for="(item, index) in columns" :key="index">
+                    <el-table-column :label="item.label" :prop="item.props" :width="item.width || 180">
+                        <template #default="scope">{{ columnFormat(scope.row, item.props) }}</template>
+                    </el-table-column>
+                </template>
+                <el-table-column label="操作" fixed="right" width="180">
+                    <template #default="scope">
+                        <el-button type="primary" link @click="table_edit(scope.row)">修改</el-button>
+                        <el-button v-if="scope.row.inWhType == '文件类'" type="primary" link @click="table_edit(scope.row, 'decode')">添加解读</el-button>
+                        <el-button type="primary" link @click="table_del(scope.row)">删除</el-button>
+                    </template>
+                </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>
+
+    <policy-detail v-if="dialog" ref="policyDetail" @success="reloadTable" @closed="closed"></policy-detail>
+</template>
+
+<script>
+import API from "@/api/policy/share"
+import { exportExcel } from "@/utils/exportExcel";
+import { columns, levelDic, typeDic, storageTypeDic, inWHDic, statusDic } from "@/views/policyShare/main";
+import yhPagination from "@/components/Pagination/index.vue";
+import policyDetail from "./dialog.vue";
+
+export default {
+    components: {
+        yhPagination,
+        policyDetail
+    },
+
+    data() {
+        return {
+            columns: columns.filter(c => c.props != "status"),
+            levelDic, typeDic, storageTypeDic, inWHDic, statusDic,
+
+            loading: false,
+            createTime: [],
+            params: {
+                page: 1,
+                size: 10,
+                status: "done"
+            },
+
+            total: 0,
+            tableData: [],
+
+            dialog: false
+        }
+    },
+
+    mounted() {
+        this.reloadTable();
+    },
+
+    methods: {
+        columnFormat(row, props) {
+            if (props == "isInWh") return inWHDic[row[props]] || "";
+            return row[props];
+        },
+
+        reloadTable(mode = "add") {
+            if (mode == "add") this.params.page = 1;
+            this.params.beginCreateTime = this.createTime && this.createTime.length && this.createTime[0] + " 00:00:00" || null;
+            this.params.endCreateTime = this.createTime && this.createTime.length && this.createTime[1] + " 23:59:59" || null;
+
+            this.loading = true;
+            API.get(this.params).then(res => {
+                this.loading = false;
+                if (res.code === 200) {
+                    this.tableData = res.data.records;
+                    this.total = res.data.total;
+                } else ElMessage.error(res.msg);
+            }).catch(() => this.loading = false);
+        },
+
+        reset() {
+            this.createTime = [];
+            for (const key in this.params) {
+                if (key == "page") this.params[key] = 1;
+                else if (key == "size") this.params[key] = 10;
+                else this.params[key] = null;
+            }
+            this.reloadTable();
+        },
+
+        table_add() {
+            this.dialog = true;
+            this.$nextTick(() => this.$refs.policyDetail.init());
+        },
+
+        table_edit(row, mode = "edit") {
+            this.dialog = true;
+            this.$nextTick(() => this.$refs.policyDetail.init(mode).setData(row.id));
+        },
+
+        table_del(row) {
+            ElMessageBox.confirm("是否确认删除?", "删除警告", {
+                type: "warning",
+                confirmButtonText: "确定",
+                cancelButtonText: "取消"
+            }).then(() => {
+                API.del({ ids: row.id }).then(res => {
+                    if (res.code == 200) {
+                        ElMessage.success("操作成功");
+                        this.reloadTable();
+                    } else ElMessage.warning(res.msg);
+                });
+            });
+        },
+
+        closed(e) {
+            e && this.reloadTable();
+            this.dialog = false;
+        },
+
+        table_export() {
+            const header = this.columns.map(c => c.label);
+            const data = this.tableData.map(v => this.columns.map(c => c.props).map(j => this.columnFormat(v, j)));
+
+            exportExcel(header, data, [], `${this.$route.name}.xlsx`);
+        }
+    }
+}
+</script>

+ 0 - 113
src/views/policyShare/approve.vue

@@ -1,113 +0,0 @@
-<template>
-    <el-dialog v-model="visible" :title="titleMap[mode]" :width="500" top="20vh" @closed="$emit('closed')">
-        <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
-            <el-row>
-                <template v-if="mode == 'agree'">
-                    <el-col :span="24">
-                        <el-form-item label="分值(0-10)" prop="score">
-                            <el-input-number v-model="form.score" :min="0" :max="10" :step="0.1" :precision="2" controls-position="right" placeholder="请输入分值"></el-input-number>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="24">
-                        <el-form-item label="是否入库" prop="isInWh">
-                            <el-radio-group v-model="form.isInWh" @change="form.inWhType = null">
-                                <el-radio v-for="(label, key) in inWHDic" :key="key" :label="label" :value="parseInt(key)"></el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                    <el-col v-if="form.isInWh == 1" :span="24">
-                        <el-form-item label="入库类型" prop="inWhType">
-                            <el-select v-model="form.inWhType" placeholder="请选择入库类型">
-                                <el-option v-for="item in storageTypeDic" :key="item" :label="item" :value="item"></el-option>
-                            </el-select>
-                        </el-form-item>
-                    </el-col>
-                </template>
-
-                <el-col v-if="mode == 'disagree'" :span="24">
-                    <el-form-item label="意见" prop="remark">
-                        <el-input v-model="form.remark" type="textarea" :rows="4" placeholder="请输入意见"></el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-        </el-form>
-
-        <template #footer>
-            <el-button type="primary" @click="submit">确 定</el-button>
-        </template>
-    </el-dialog>
-</template>
-
-<script>
-import API from "@/api/policy/share";
-import { inWHDic, storageTypeDic } from "./main";
-
-export default {
-    emits: ["success", "closed"],
-
-    data() {
-        return {
-            inWHDic, storageTypeDic,
-
-            visible: false,
-            mode: "agree",
-            titleMap: {
-                agree: "考核评分",
-                disagree: "退回意见"
-            },
-
-            form: {}, // remark: "不同意"
-            rules: {
-                score: [{ required: true, message: "请输入分值" }],
-                isInWh: [{ required: true }],
-                inWhType: [{ required: true, message: "请选择入库类型" }],
-                remark: [{ required: true, message: "请输入退回意见" }]
-            }
-        }
-    },
-
-    methods: {
-        init(mode = "agree") {
-            this.mode = mode;
-            this.visible = true;
-            return this;
-        },
-
-        setData(data) {
-            this.form = Object.assign({}, data);
-            this.form.isInWh = 0;
-            this.form.inWhType = null;
-        },
-
-        submit() {
-            this.$refs.formRef.validate(valid => {
-                if (valid) {
-                    API[this.mode](this.form).then(res => {
-                        if (res.code === 200) {
-                            this.visible = false;
-                            ElMessage.success("操作成功");
-                            this.$emit("success", this.form.id)
-                        } else ElMessage.error(res.msg);
-                    });
-                } else {
-                    return false;
-                }
-            });
-        }
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number {
-  width: 100%;
-
-  :deep(.el-input) .el-input__wrapper {
-    padding: 1px 11px;
-
-    .el-input__inner {
-      text-align: unset;
-    }
-  }
-}
-</style>

+ 51 - 39
src/views/policyShare/dialog.vue

@@ -1,6 +1,6 @@
 <template>
     <el-dialog v-model="visible" :title="titleMap[mode]" :width="680" @closed="$emit('closed', fileIsDel)">
-        <el-form ref="formRef" :model="form" :rules="rules" :disabled="mode == 'detail' || mode == 'approve'" label-width="100px">
+        <el-form ref="formRef" :model="form" :rules="rules" :disabled="mode == 'detail'" label-width="110px">
             <el-row>
                 <el-col v-if="form.id" :span="12">
                     <el-form-item label="政策编号" prop="businessNo">
@@ -29,65 +29,68 @@
                 </el-col>
                 <el-col :span="12">
                     <el-form-item label="政策名称" prop="name">
-                        <el-input v-model="form.name" placeholder="请输入政策名称"></el-input>
+                        <el-input v-model="form.name" :disabled="mode.includes('agree')" placeholder="请输入政策名称"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
                     <el-form-item label="政策等级" prop="zcLevel">
-                        <el-select v-model="form.zcLevel" placeholder="请选择政策等级">
+                        <el-select v-model="form.zcLevel" :disabled="mode.includes('agree')" placeholder="请选择政策等级">
                             <el-option v-for="item in levelDic" :key="item" :label="item" :value="item"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
                     <el-form-item label="政策类别" prop="zcType">
-                        <el-select v-model="form.zcType" placeholder="请选择政策类别">
+                        <el-select v-model="form.zcType" :disabled="mode.includes('agree')" placeholder="请选择政策类别">
                             <el-option v-for="item in typeDic" :key="item" :label="item" :value="item"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
                     <el-form-item label="政策文号" prop="docNo">
-                        <el-input v-model="form.docNo" placeholder="请输入政策文号"></el-input>
+                        <el-input v-model="form.docNo" :disabled="mode.includes('agree')" placeholder="请输入政策文号"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
                     <el-form-item label="联系方式" prop="contactPhone">
-                        <el-input v-model="form.contactPhone" placeholder="请输入联系方式"></el-input>
+                        <el-input v-model="form.contactPhone" :disabled="mode.includes('agree')" placeholder="请输入联系方式"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
                     <el-form-item label="政策概要" prop="abstractContent">
-                        <el-input v-model="form.abstractContent" type="textarea" :rows="4" placeholder="请输入政策概要"></el-input>
+                        <el-input v-model="form.abstractContent" type="textarea" :rows="4" :disabled="mode.includes('agree')" placeholder="请输入政策概要"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                    <el-form-item :class="(mode == 'detail' || mode == 'approve') && 'no-upload-btn'" label="附件">
-                        <yhUpload v-model="form.fileList" :limit="10" @updateTable="fileIsDel = true">
+                    <el-form-item :class="(mode == 'detail' || mode.includes('agree')) && 'no-upload-btn'" label="附件">
+                        <yhUpload v-model="form.fileList" :limit="10" :disabled="mode.includes('agree')" @updateTable="fileIsDel = true">
                             <el-button type="primary" icon="upload" size="small"></el-button>
                         </yhUpload>
                     </el-form-item>
                 </el-col>
-            </el-row>
 
-            <el-row v-if="form.status == 'done' || form.status == 'inactive'">
-                <template v-if="form.status == 'done'">
-                    <el-col :span="24">
-                        <el-form-item label="分值" prop="score">
-                            <el-input v-model="form.score"></el-input>
+                <template v-if="(mode == 'detail' && form.status == 'done') || mode == 'agree'">
+                    <el-col :span="12">
+                        <el-form-item label="是否入库" prop="isInWh">
+                            <el-radio-group v-model="form.isInWh" @change="form.inWhType = null">
+                                <el-radio v-for="(label, key) in inWHDic" :key="key" :label="label" :value="parseInt(key)"></el-radio>
+                            </el-radio-group>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="24">
-                        <el-form-item label="是否入库" prop="isInWh">{{ form.isInWh == 1 && "是" || "否" }}</el-form-item>
-                    </el-col>
-                    <el-col v-if="form.isInWh == 1" :span="24">
+                    <el-col v-if="form.isInWh == 1" :span="12">
                         <el-form-item label="入库类型" prop="inWhType">
-                            <el-input v-model="form.inWhType"></el-input>
+                            <el-select v-model="form.inWhType" placeholder="请选择入库类型">
+                                <el-option v-for="item in storageTypeDic" :key="item" :label="item" :value="item"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :push="1" :span="13">
+                        <el-form-item label="分值(0-10)" prop="score">
+                            <el-input-number v-model="form.score" :min="0" :max="10" :step="0.1" :precision="2" controls-position="right" placeholder="请输入分值"></el-input-number>
                         </el-form-item>
                     </el-col>
                 </template>
-
-                <el-col v-else :span="24">
+                <el-col v-if="mode == 'disagree'" :span="24">
                     <el-form-item label="意见" prop="remark">
                         <el-input v-model="form.remark" type="textarea" :rows="4" placeholder="请输入意见"></el-input>
                     </el-form-item>
@@ -96,9 +99,8 @@
         </el-form>
 
         <template #footer>
-            <template v-if="mode == 'approve' && form.status == 'approve'">
-                <el-button type="primary" @click="policyApprove('agree')">通 过</el-button>
-                <el-button type="primary" @click="policyApprove('disagree')">退 回</el-button>
+            <template v-if="mode.includes('agree')">
+                <el-button type="primary" @click="validateForm(mode)">确 定</el-button>
             </template>
             <template v-if="mode == 'add' || mode == 'edit'">
                 <el-button type="primary" @click="validateForm(mode)">保 存</el-button>
@@ -106,36 +108,34 @@
             </template>
         </template>
     </el-dialog>
-
-    <approve-detail v-if="dialog" ref="approveDetail" @success="setData" @closed="dialog = false"></approve-detail>
 </template>
 
 <script>
 import API from "@/api/policy/share";
 import { useUserStore } from "@/store/user";
-import { levelDic, typeDic } from "./main";
+import { levelDic, typeDic, storageTypeDic, inWHDic } from "./main";
 import yhUpload from "@/components/Upload/index.vue";
-import approveDetail from "./approve.vue";
 
 const { userInfo } = useUserStore(); // store 用户
 
 export default {
     emits: ["success", "closed"],
     components: {
-        yhUpload,
-        approveDetail
+        yhUpload
     },
 
     data() {
         return {
-            levelDic, typeDic,
+            levelDic, typeDic, storageTypeDic, inWHDic,
+
             visible: false,
             mode: "add",
             titleMap: {
                 add: "新增政策",
                 edit: "编辑政策",
                 detail: "政策详情",
-                approve: "政策详情"
+                agree: "考核评分",
+                disagree: "退回意见"
             },
             form: {
                 id: null,
@@ -153,7 +153,7 @@ export default {
                 contactPhone: null,
                 abstractContent: null,
                 score: null,
-                isInWh: "0",
+                isInWh: 0,
                 inWhType: null,
                 fileList: []
             },
@@ -169,6 +169,7 @@ export default {
                 score: [{ required: true, message: "请输入分值" }],
                 isInWh: [{ required: true }],
                 inWhType: [{ required: true, message: "请选择入库类型" }],
+                remark: [{ required: true, message: "请输入退回意见" }]
             },
 
             fileIsDel: false,
@@ -196,6 +197,10 @@ export default {
                         } else this.form[key] = res.data[key] || null;
                     }
                     this.form.updateId = userInfo.id;
+                    if (this.mode == "agree") {
+                        this.form.isInWh = 0;
+                        this.form.inWhType = null;
+                    }
                 } else ElMessage.error(res.msg);
             });
         },
@@ -227,11 +232,6 @@ export default {
                 this.fileIsDel = false;
                 this.$emit("success", mode);
             });
-        },
-
-        policyApprove(mode) {
-            this.dialog = true;
-            this.$nextTick(() => this.$refs.approveDetail.init(mode).setData(this.form));
         }
     }
 }
@@ -247,4 +247,16 @@ export default {
     margin-top: 0;
   }
 }
+
+.el-input-number {
+  width: 100%;
+
+  :deep(.el-input) .el-input__wrapper {
+    padding: 1px 11px;
+
+    .el-input__inner {
+      text-align: unset;
+    }
+  }
+}
 </style>

+ 1 - 0
src/views/policyShare/index.vue

@@ -239,6 +239,7 @@ export default {
     }
 }
 </script>
+
 <style lang="scss" scoped>
 .tjm_card_style_custom .tjm_card_tools .tjm_card_tools_right {
   display: flex;

+ 4 - 3
src/views/toDo/index.vue

@@ -35,7 +35,8 @@
                 <el-table-column label="填报时间" prop="zcCreateTime" width="180"></el-table-column>
                 <el-table-column label="操作" fixed="right" width="120">
                     <template #default="scope">
-                        <el-button type="primary" link @click="table_detail(scope.row)">审核</el-button>
+                        <el-button type="primary" link @click="table_detail(scope.row)">通过</el-button>
+                        <el-button type="primary" link @click="table_detail(scope.row, 'disagree')">退回</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -107,9 +108,9 @@ export default {
             this.reloadTable();
         },
     
-        table_detail({ refId, refType }) {
+        table_detail({ refId, refType }, mode = "agree") {
             this.dialog = true;
-            this.$nextTick(() => this.$refs[refType].init("approve").setData(refId));
+            this.$nextTick(() => this.$refs[refType].init(mode).setData(refId));
         }
     }
 }