全流程监管修改

xuhongjie
严飞永 2 months ago
parent ccd30016d4
commit d97977b0ab

@ -31,7 +31,6 @@
"admin-template",
"management-system"
],
"repository": {
"type": "git",
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
@ -67,6 +66,7 @@
"vue-cropper": "0.5.5",
"vue-demi": "^0.14.10",
"vue-meta": "2.4.0",
"vue-pdf": "^4.3.0",
"vue-quill-editor": "^3.0.6",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",

@ -1,6 +1,6 @@
<template>
<div>
<!-- 手册管理 -->
<!-- 单片材料管理 -->
<!-- 表单查询项 -->
<div v-if="!previewMode" class="headerbox">
<el-form size="small" :inline="true" label-width="200">

@ -0,0 +1,60 @@
<template>
<div>
<!-- 显示当前页 -->
<pdf
v-if="show"
:src="pdfUrl"
@num-pages="pageCount = $event"
@link-clicked="gotoPage($event)"
style="border: 1px solid black;"
></pdf>
<!-- 控制按钮 -->
<button @click="prevPage"></button>
{{ currentPage }} / {{ pageCount }}
<button @click="nextPage"></button>
</div>
</template>
<script>
import pdf from "vue-pdf";
export default {
components: {
pdf,
},
data() {
return {
show: false, //
pdfUrl: "", // PDF
currentPage: 1, //
pageCount: 0, //
};
},
mounted() {
this.loadPdf();
},
methods: {
loadPdf() {
// PDF
this.pdfUrl = "pdf/模板.pdf";
this.show = true;
},
gotoPage(pageNumber) {
if (pageNumber >= 1 && pageNumber <= this.pageCount) {
this.currentPage = pageNumber;
}
},
prevPage() {
if (this.currentPage > 1) {
this.currentPage--;
}
},
nextPage() {
if (this.currentPage < this.pageCount) {
this.currentPage++;
}
},
},
};
</script>

@ -1,94 +1,300 @@
<template>
<div class="container">
<img src="@/assets/images/信息.png" alt="" @click="handleAdd">
<!-- 添加规则弹框 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="600px" append-to-body>
<el-form ref="ruleForm" label-width="120px" size="small">
<el-form-item label="提醒规则名称">
<el-input v-model="ruleForm.name" placeholder="请输入提醒名称" />
</el-form-item>
<el-form-item label="提醒对象">
<el-radio-group v-model="ruleForm.target">
<el-radio label="政务用户">政务用户</el-radio>
<!-- <el-radio label="企业用户">企业用户</el-radio> -->
</el-radio-group>
</el-form-item>
<el-form-item label="提醒方式">
<el-radio-group v-model="ruleForm.mode">
<el-radio label="定期提醒">定期提醒</el-radio>
<!-- <el-radio label="不定期提醒">不定期提醒</el-radio> -->
</el-radio-group>
</el-form-item>
<el-form-item label="提醒方法">
<el-radio-group v-model="ruleForm.method">
<el-radio label="短信提醒" disabled >短信提醒</el-radio>
<el-radio label="邮件提醒" disabled >邮件提醒</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="提醒时间">
<el-date-picker v-model="ruleForm.time" type="datetime" placeholder="选择日期时间"
value-format="yyyy-MM-dd HH:mm:ss" />
</el-form-item>
<el-form-item label="提醒内容">
<el-input v-model="ruleForm.content" type="textarea" :rows="4" placeholder="请输入提醒内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelAdd"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
<img
src="@/assets/images/信息.png"
alt="添加提醒规则"
@click="handleAdd"
class="add-icon"
>
<!-- 添加规则弹框 -->
<el-dialog
:title="dialogTitle"
:visible.sync="dialogVisible"
width="600px"
:before-close="handleClose"
append-to-body
>
<el-form
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="120px"
size="small"
>
<el-form-item label="提醒规则标题" prop="rulesName">
<el-input
v-model="ruleForm.rulesName"
placeholder="请输入提醒规则标题"
/>
</el-form-item>
<el-form-item label="提醒对象" prop="alertRecipients">
<el-radio-group v-model="ruleForm.alertRecipients">
<el-radio label="2">政务用户</el-radio>
<!-- <el-radio label="1">企业用户</el-radio> -->
</el-radio-group>
</el-form-item>
<el-form-item label="提醒方式" prop="alertManner">
<el-radio-group v-model="ruleForm.alertManner">
<el-radio label="1">定期提醒</el-radio>
<!-- <el-radio label="2">不定期提醒</el-radio> -->
</el-radio-group>
</el-form-item>
<el-form-item label="提醒方法" prop="method">
<el-radio-group v-model="ruleForm.method">
<el-radio label="短信提醒" disabled>短信提醒</el-radio>
<el-radio label="邮件提醒" disabled>邮件提醒</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label="提醒时间"
prop="alertTime"
v-if="ruleForm.alertManner === '1'"
>
<el-date-picker
v-model="ruleForm.alertTime"
type="datetime"
placeholder="请选择提醒时间"
value-format="yyyy-MM-dd HH:mm:ss"
/>
</el-form-item>
<el-form-item
label="提醒内容"
prop="alertType"
required
v-else
>
<el-radio-group v-model="ruleForm.alertType">
<el-radio label="2">申报任务即将结束企业</el-radio>
<el-radio label="3">项目即将建设完成政府</el-radio>
</el-radio-group>
<el-form-item
prop="daysAdvance"
class="reminder-days-item"
:rules="[
{ required: true, message: '请输入提醒天数', trigger: 'blur' },
{ type: 'number', min: 1, max: 30, message: '天数必须在1-30之间', trigger: 'blur' }
]"
>
<div style="display: flex; align-items: center">
<span style="color: #f56c6c; margin-right: 4px">*</span>
<span>提前</span>
<el-input
v-model.number="ruleForm.daysAdvance"
type="number"
:min="1"
:max="30"
size="small"
style="width: 80px; margin: 0 8px"
/>
<span>天提醒</span>
</div>
</el-form-item>
</el-form-item>
<el-form-item label="提醒内容" prop="alertContent">
<el-input
v-model="ruleForm.alertContent"
type="textarea"
:rows="4"
placeholder="请输入提醒内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelAdd"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
</div>
</template>
</template>
<script>
export default {
<script>
import { addSmartReminder } from "@/api/ManageApi/index";
export default {
name: "AddReminder",
data() {
return {
//
dialogVisible: false,
dialogTitle: "",
ruleForm: {
name: "",
target: "政务用户",
mode: "定期提醒",
method: "邮件提醒",
time: "",
content: "",
},
};
return {
dialogVisible: false,
dialogTitle: "新增智能提醒规则",
ruleForm: {
rulesName: "",
alertRecipients: "2",
alertManner: "1",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
daysAdvance: null
},
rules: {
rulesName: [
{ required: true, message: "请输入提醒规则标题", trigger: "blur" }
],
alertRecipients: [
{ required: true, message: "请选择提醒对象", trigger: "change" }
],
alertManner: [
{ required: true, message: "请选择提醒方式", trigger: "change" }
],
method: [
{ required: true, message: "请选择提醒方法", trigger: "change" }
],
alertTime: [
{ required: true, message: "请选择提醒时间", trigger: "change" }
],
alertContent: [
{ required: true, message: "请输入提醒内容", trigger: "blur" }
]
}
};
},
methods: {
//
handleAdd() {
this.dialogVisible = true;
this.dialogTitle = "新增智能提醒规则";
this.ruleForm = {
name: "",
target: "政务用户",
mode: "定期提醒",
method: "短信提醒",
time: "",
content: "",
//
handleAdd() {
this.dialogVisible = true;
this.resetForm();
},
//
resetForm() {
this.ruleForm = {
rulesName: "",
alertRecipients: "2",
alertManner: "1",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
daysAdvance: null
};
this.$nextTick(() => {
if (this.$refs.ruleForm) {
this.$refs.ruleForm.clearValidate();
}
});
},
//
handleClose(done) {
this.dialogVisible = false;
this.resetForm();
if (typeof done === "function") {
done();
}
},
//
cancelAdd() {
this.dialogVisible = false;
this.resetForm();
},
//
submitForm() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
const params = {
rulesName: this.ruleForm.rulesName,
alertRecipients: Number(this.ruleForm.alertRecipients),
alertManner: Number(this.ruleForm.alertManner),
method: this.ruleForm.method,
alertTime: this.ruleForm.alertTime,
alertContent: this.ruleForm.alertContent,
alertType: Number(this.ruleForm.alertType),
daysAdvance: this.ruleForm.alertManner === "2" ? Number(this.ruleForm.daysAdvance) : null
};
},
//
cancelAdd() {
this.dialogVisible = false;
},
//
submitForm() {
console.log(this.ruleForm);
this.dialogVisible = false;
},
},
};
</script>
<style scoped>
.container img {
width: 2.5rem;
height: 2.5rem;
}
</style>
addSmartReminder(params).then(res => {
if (res.code === 200) {
this.$message.success("添加成功");
this.dialogVisible = false;
this.resetForm();
//
}
}).catch(error => {
console.error("添加失败:", error);
this.$message.error("添加失败");
});
}
});
}
}
};
</script>
<style scoped lang="scss">
.container {
.add-icon {
width: 2.5rem;
height: 2.5rem;
cursor: pointer;
transition: transform 0.2s;
&:hover {
transform: scale(1.1);
}
}
}
.reminder-days-item {
margin-bottom: 0;
:deep(.el-form-item__label) {
display: none;
}
:deep(.el-form-item__content) {
margin-left: 0 !important;
}
}
.el-dialog {
.el-form {
padding: 0 20px;
.el-form-item {
margin-bottom: 20px;
.el-radio-group {
.el-radio {
margin-right: 20px;
line-height: 32px;
}
}
.el-date-picker {
width: 100%;
}
.el-textarea {
.el-textarea__inner {
min-height: 80px;
}
}
}
}
.dialog-footer {
text-align: right;
padding: 10px 20px 20px;
.el-button {
padding: 9px 20px;
& + .el-button {
margin-left: 10px;
}
}
}
}
</style>

@ -4,18 +4,10 @@
<div class="search-area">
<el-form :model="searchForm" inline>
<el-form-item label="提醒名称">
<el-input
v-model="searchForm.rulesName"
placeholder="请输入项目名称"
clearable
/>
<el-input v-model="searchForm.rulesName" placeholder="请输入项目名称" clearable />
</el-form-item>
<el-form-item label="提醒类型">
<el-select
v-model="searchForm.alertType"
placeholder="全部"
clearable
>
<el-select v-model="searchForm.alertType" placeholder="全部" clearable>
<el-option label="全部" value="" />
<el-option label="申报任务即将结束" value="3" />
<el-option label="项目即将建设完成" value="2" />
@ -31,36 +23,17 @@
</div>
<div class="tablebox">
<div class="operation-area">
<el-button
type="primary"
@click="handleAdd"
icon="el-icon-circle-plus-outline"
>添加规则</el-button
>
<el-button type="primary" @click="handleAdd" icon="el-icon-circle-plus-outline">添加规则</el-button>
</div>
<el-table
:data="tableData"
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" />
<el-table-column label="序号" width="80" align="center">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column
prop="rulesName"
label="提醒名称"
min-width="200"
align="center"
/>
<el-table-column
prop="alertType"
label="提醒类型"
min-width="150"
align="center"
>
<el-table-column prop="rulesName" label="提醒名称" min-width="200" align="center" />
<el-table-column prop="alertType" label="提醒类型" min-width="150" align="center">
<template slot-scope="scope">
<span v-if="scope.row.alertType === 1"></span>
<span v-if="scope.row.alertType === 2">()</span>
@ -68,35 +41,20 @@
<span v-if="scope.row.alertType === 4"></span>
</template>
</el-table-column>
<el-table-column
prop="alertRecipients"
label="提醒对象"
min-width="120"
align="center"
>
<el-table-column prop="alertRecipients" label="提醒对象" min-width="120" align="center">
<template slot-scope="scope">
<span v-if="scope.row.alertRecipients === 2"></span>
<span v-if="scope.row.alertRecipients === 1"></span>
</template>
</el-table-column>
<el-table-column
prop="alertManner"
label="提醒方式"
min-width="120"
align="center"
>
<el-table-column prop="alertManner" label="提醒方式" min-width="120" align="center">
<template slot-scope="scope">
<span v-if="scope.row.alertManner == 1"></span>
<span v-if="scope.row.alertManner == 2"></span>
</template>
</el-table-column>
<el-table-column
prop="alertTime"
label="提醒时间"
min-width="180"
align="center"
/>
<el-table-column prop="alertTime" label="提醒时间" min-width="180" align="center" />
<!-- <el-table-column
prop="createBy"
@ -106,55 +64,23 @@
/> -->
<el-table-column label="操作" width="200" 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)"
style="color: #67c23a"
>修改</el-button
>
<el-button
type="text"
@click="handleDelete(scope.row)"
style="color: red"
>删除</el-button
>
<el-button type="text" @click="handleDetail(scope.row)"></el-button>
<el-button type="text" @click="handleEdit(scope.row)" style="color: #67c23a">修改</el-button>
<el-button type="text" @click="handleDelete(scope.row)" style="color: red">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<pagination
v-show="pagination.total > 0"
:total="pagination.total"
:page.sync="pagination.current"
:limit.sync="pagination.size"
@pagination="handleSearch"
/>
<pagination v-show="pagination.total > 0" :total="pagination.total" :page.sync="pagination.current"
:limit.sync="pagination.size" @pagination="handleSearch" />
</div>
<!-- 添加规则弹框 -->
<el-dialog
:title="dialogTitle"
:visible.sync="dialogVisible"
width="600px"
:before-close="handleClose"
>
<el-form
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="120px"
size="small"
>
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="600px" :before-close="handleClose">
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px" size="small">
<el-form-item label="提醒规则标题" prop="rulesName">
<el-input
v-model="ruleForm.rulesName"
placeholder="请输入提醒规则标题"
:disabled="isView"
/>
<el-input v-model="ruleForm.rulesName" placeholder="请输入提醒规则标题" :disabled="isView" />
</el-form-item>
<el-form-item label="提醒对象" prop="alertRecipients">
<el-radio-group v-model="ruleForm.alertRecipients" :disabled="isView">
@ -170,71 +96,39 @@
</el-form-item>
<el-form-item label="提醒方法" prop="method">
<el-radio-group v-model="ruleForm.method" disabled>
<el-radio label="短信提醒">短信提醒</el-radio>
<el-radio label="邮件提醒">邮件提醒</el-radio>
<el-radio label="即时提醒">即时提醒</el-radio>
</el-radio-group>
</el-form-item >
<el-form-item label="提醒时间" prop="alertTime" v-if="isReminder==1">
<el-date-picker
v-model="ruleForm.alertTime"
type="datetime"
placeholder="请选择提醒时间"
value-format="yyyy-MM-dd HH:mm:ss"
:disabled="isView"
/>
</el-form-item>
<el-form-item
label="提醒内容"
prop="alertType"
required
v-else
>
<el-form-item label="提醒时间" prop="alertTime" v-if="isReminder == 1">
<el-date-picker v-model="ruleForm.alertTime" type="datetime" placeholder="请选择提醒时间"
value-format="yyyy-MM-dd HH:mm:ss" :disabled="isView" />
</el-form-item>
<el-form-item label="提醒内容" prop="alertType" required v-else>
<el-radio-group v-model="ruleForm.alertType" :disabled="isView">
<el-radio label="2"
>申报任务即将结束企业</el-radio
>
<el-radio label="3"
>项目即将建设完成政府</el-radio
>
<el-radio label="2">申报任务即将结束企业</el-radio>
<el-radio label="3">项目即将建设完成政府</el-radio>
</el-radio-group>
<el-form-item
prop="reminderDays"
class="reminder-days-item"
:rules="[
{ required: true, message: '请输入提醒天数', trigger: 'blur' },
]"
>
<el-form-item prop="reminderDays" class="reminder-days-item" :rules="[
{ required: true, message: '请输入提醒天数', trigger: 'blur' },
]">
<div style="display: flex; align-items: center">
<span style="color: #f56c6c; margin-right: 4px">*</span>
<span>提前</span>
<el-input
v-model="ruleForm.daysAdvance"
type="number"
:min="1"
:max="30"
size="small"
style="width: 80px; margin: 0 8px"
:disabled="isView"
/>
<el-input v-model="ruleForm.daysAdvance" type="number" :min="1" :max="30" size="small"
style="width: 80px; margin: 0 8px" :disabled="isView" />
<span>天提醒</span>
</div>
</el-form-item>
</el-form-item>
<el-form-item label="提醒内容" prop="alertContent">
<el-input
v-model="ruleForm.alertContent"
type="textarea"
:rows="4"
placeholder="请输入提醒内容"
:disabled="isView"
/>
<el-input v-model="ruleForm.alertContent" type="textarea" :rows="4" placeholder="请输入提醒内容"
:disabled="isView" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelAdd"> </el-button>
<el-button v-if="!isView" type="primary" @click="submitForm('ruleForm')"
> </el-button
>
<el-button v-if="!isView" type="primary" @click="submitForm('ruleForm')"> </el-button>
</div>
</el-dialog>
</div>
@ -271,7 +165,7 @@ export default {
rulesName: "",
alertRecipients: "政务用户",
alertManner: "1",
method: "邮件提醒",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
@ -319,21 +213,29 @@ export default {
});
},
//
//
handleClose(done) {
this.dialogVisible = false;
this.isView = false;
this.isReminder = 1; //
//
this.ruleForm = {
rulesName: "",
alertRecipients: "2",
alertManner: "1",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
daysAdvance: ""
};
//
this.$nextTick(() => {
this.$refs.ruleForm.clearValidate();
this.ruleForm = {
rulesName: "",
alertRecipients: "2",
alertManner: "1",
method: "邮件提醒",
alertTime: "",
alertContent: "",
alertType: "1",
};
this.isView = false;
this.isReminder = "";
if (this.$refs.ruleForm) {
this.$refs.ruleForm.clearValidate();
}
if (typeof done === "function") {
done();
}
@ -355,7 +257,7 @@ export default {
}
});
getSmartReminderPage( params).then((res) => {
getSmartReminderPage(params).then((res) => {
if (res.code === 200) {
this.tableData = res.data.records;
this.pagination.total = res.data.total;
@ -377,7 +279,7 @@ export default {
rulesName: res.data.rulesName,
alertRecipients: res.data.alertRecipients.toString(),
alertManner: res.data.alertManner.toString(),
method: "邮件提醒",
method: "短信提醒",
alertTime: res.data.alertTime,
alertContent: res.data.alertContent,
alertType: res.data.alertType.toString(),
@ -394,21 +296,30 @@ export default {
});
},
//
//
handleAdd() {
this.isView = false;
this.dialogVisible = true;
this.dialogTitle = "新增智能提醒规则";
this.isReminder = 1; //
//
this.ruleForm = {
rulesName: "",
alertRecipients: "2",
alertManner: "1",
method: "邮件提醒",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
daysAdvance: "" //
};
this.dialogTitle = "新增智能提醒规则";
//
this.$nextTick(() => {
this.$refs.ruleForm.clearValidate();
if (this.$refs.ruleForm) {
this.$refs.ruleForm.clearValidate();
}
});
},
handleSelectionChange(val) {
@ -423,7 +334,7 @@ export default {
rulesName: "",
alertRecipients: "2",
alertManner: "1",
method: "邮件提醒",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
@ -442,7 +353,7 @@ export default {
rulesName: res.data.rulesName,
alertRecipients: res.data.alertRecipients.toString(),
alertManner: res.data.alertManner.toString(),
method: "邮件提醒",
method: "短信提醒",
alertTime: res.data.alertTime,
alertContent: res.data.alertContent,
alertType: res.data.alertType.toString(),
@ -467,7 +378,7 @@ export default {
}
});
})
.catch(() => {});
.catch(() => { });
},
//
cancelAdd() {
@ -478,7 +389,7 @@ export default {
rulesName: "",
alertRecipients: "2",
mode: "定期提醒",
method: "邮件提醒",
method: "短信提醒",
alertTime: "",
alertContent: "",
alertType: "1",
@ -544,15 +455,18 @@ export default {
border-radius: 0.5rem;
border: 1px solid #eee;
}
.tablebox {
background-color: #fff;
border-radius: 0.5rem;
padding: 1rem;
border: 1px solid #eee;
.operation-area {
margin-bottom: 20px;
}
}
.el-table {
.el-button {
padding: 2px 0;
@ -616,7 +530,7 @@ export default {
.el-button {
padding: 9px 20px;
& + .el-button {
&+.el-button {
margin-left: 10px;
}
}

Loading…
Cancel
Save