master
loveflow 6 months ago
parent dd8a50348d
commit 6054b5982c

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -13,6 +13,10 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.flex-item-center {
display: flex;
align-items: center;
}
/* 定位 END */ /* 定位 END */
.pointer { .pointer {
cursor: pointer !important; cursor: pointer !important;
@ -31,6 +35,9 @@
.mt20 { .mt20 {
margin-top: 20px; margin-top: 20px;
} }
.mr4 {
margin-right: 4px;
}
.mr6 { .mr6 {
margin-right: 6px; margin-right: 6px;
} }

@ -200,26 +200,50 @@
.el-dialog { .el-dialog {
margin: 10vh auto 10vh !important; margin: 10vh auto 10vh !important;
.el-dialog__title { height: 80vh;
color: #fff; background-image: url("~@/assets/images/base/dialogb.png");
text-shadow: 0 0 9px rgba(21, 255, 198, 0.64); background-size: 100% 100%;
} background-repeat: no-repeat;
background-color: transparent;
background-image: url("~@/assets/companyFile/dialogBack.png"); .el-dialog__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
height: 50px;
background-image: url("~@/assets/images/base/dialogHead.png");
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
height: 80vh; .el-dialog__title {
font-weight: 600;
font-size: 16px;
color: #ebfff4;
letter-spacing: 2px;
text-shadow: 0px 0px 9px rgba(21, 255, 195, 0.77);
}
}
/* 关闭弹窗叉号 */ /* 关闭弹窗叉号 */
.el-dialog__headerbtn { .el-dialog__headerbtn {
position: static;
height: 20px;
width: 20px;
background-image: url("~@/assets/images/base/dialogClose.png");
background-size: 100% 100%;
background-repeat: no-repeat;
.el-dialog__close { .el-dialog__close {
color: #fff; display: none;
font-size: 18px;
} }
} }
.el-dialog__body { .el-dialog__body {
padding: 30px 20px 0; margin: 14px;
height: calc(100% - 120px); padding: 14px;
height: calc(100% - 80px);
background-image: url("~@/assets/images/base/dialogBody.png");
background-size: 100% 100%;
background-repeat: no-repeat;
box-sizing: border-box;
} }
.el-button { .el-button {
@ -241,10 +265,7 @@
} }
.el-form { .el-form {
padding: 16px; height: calc(100% - 36px);
height: 100%;
background: url("~@/assets/images/base/form.png") no-repeat;
background-size: 100% 100%;
overflow-y: scroll; overflow-y: scroll;
&::-webkit-scrollbar { &::-webkit-scrollbar {
display: none; display: none;
@ -273,6 +294,10 @@
} }
} }
} }
.formOptWrap{
display: flex;
justify-content: flex-end;
}
} }
.el-tabs { .el-tabs {
@ -319,6 +344,37 @@
} }
} }
} }
.el-checkbox {
color: #eaf6ff;
.el-checkbox__input.is-checked + .el-checkbox__label {
}
.el-checkbox__input {
.el-checkbox__inner {
height: 20px;
width: 20px;
background-color: transparent;
&:hover {
border-color: #eaf6ff;
}
}
}
&.is-checked {
.el-checkbox__inner {
background: url("~@/assets/images/base/check.png") no-repeat center
center;
color: #eaf6ff;
border-color: #eaf6ff;
&::after {
display: none;
}
}
.el-checkbox__label {
color: #eaf6ff;
}
}
}
} }
.canvasDefault { .canvasDefault {

@ -208,3 +208,45 @@
} }
} }
} }
.loveflow {
.plusIcon {
height: vw(14);
width: vw(14);
background: url("~@/assets/images/base/plus.png") no-repeat center center;
background-size: 100% 100%;
}
.addBtn {
padding: vw(8) vw(18);
font-size: vw(14);
color: #ffffff;
background: url("~@/assets/images/base/addbtn.png") no-repeat center center;
background-size: 100% 100%;
&:hover {
opacity: 0.8;
cursor: pointer;
}
}
.editBtn {
padding: vw(12) vw(22);
font-size: vw(14);
color: #ffffff;
background: url("~@/assets/images/base/editbtn.png") no-repeat center center;
background-size: 100% 100%;
&:hover {
opacity: 0.8;
cursor: pointer;
}
}
.delBtn {
padding: vw(12) vw(22);
font-size: vw(14);
color: #ffffff;
background: url("~@/assets/images/base/delbtn.png") no-repeat center center;
background-size: 100% 100%;
&:hover {
opacity: 0.8;
cursor: pointer;
}
}
}

@ -74,18 +74,18 @@
</template> </template>
<template v-if="item.type === 'checkGroup'"> <template v-if="item.type === 'checkGroup'">
<el-check-group <el-checkbox-group
name="checkGroup"
v-model.trim="model[item.attrs.model]" v-model.trim="model[item.attrs.model]"
v-on="item.listeners || {}"
> >
<el-checkbox <el-checkbox
v-for="item in item.attrs.option" v-for="option in item.attrs.option"
:key="item.value || item.name" :key="option.value"
:disabled="item.disabled" :label="option.name"
:label="item.value || item.name"
>{{ item.name }}</el-checkbox
> >
</el-check-group> {{ option.name }}
</el-checkbox>
</el-checkbox-group>
</template> </template>
<template v-if="item.type === 'select'"> <template v-if="item.type === 'select'">
@ -97,7 +97,7 @@
<el-option <el-option
v-for="option in item.attrs.option" v-for="option in item.attrs.option"
:key="option.value" :key="option.value"
:label="option.label" :label="option.name"
:value="option.value" :value="option.value"
> >
</el-option> </el-option>
@ -117,7 +117,8 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <!-- <div slot="footer" class="dialog-footer"> -->
<div class="formOptWrap">
<el-button v-if="cancelBtn" @click="dialogVisible = false" <el-button v-if="cancelBtn" @click="dialogVisible = false"
>取消</el-button >取消</el-button
> >

@ -54,6 +54,106 @@ export const commonMixins = {
value: "0", value: "0",
}, },
], ],
infoTypeList: [
{
name: "短信提醒",
value: "0",
},
{
name: "超期提醒",
value: "1",
},
{
name: "申诉审核提醒",
value: "2",
},
],
pushList: [
{
name: "短信提醒",
value: "0",
},
{
name: "平台消息提醒",
value: "1",
},
{
name: "钉钉消息提醒",
value: "2",
},
],
riskList: [
{
name: "流动人员异常",
value: "0",
},
{
name: "重点岗位资质异常",
value: "1",
},
{
name: "人防配置情况异常",
value: "2",
},
{
name: "消防设施设备异常",
value: "3",
},
],
elementList: [
{
name: "流动人员核查率异常",
value: "0",
},
{
name: "危险品使用人员资质异常",
value: "1",
},
{
name: "夜间值班人员不足",
value: "2",
},
{
name: "灭火器数量不达标",
value: "3",
},
],
pushObjList: [
{
name: "企业对象",
value: "1",
},
{
name: "镇海区公安局",
value: "2",
},
{
name: "镇海区交通局",
value: "3",
},
{
name: "市场监督管理局",
value: "4",
},
{
name: "区大数据中心",
value: "5",
},
],
remindList: [
{
name: "到期前一天",
value: "0",
},
{
name: "到期前三天",
value: "1",
},
{
name: "到期前五天",
value: "2",
},
],
}; };
}, },
created() {}, created() {},

@ -0,0 +1,345 @@
<template>
<div class="dealWayPanel">
<div class="flexSpaceBetween">
<div class="tableOperator flex-item-center">
<div class="addBtn flex-center mr4" @click="add">
<div class="plusIcon mr4"></div>
<div>新增模板</div>
</div>
<el-popconfirm
icon="el-icon-info"
icon-color="red"
title="确定删除当前选择项目吗?"
@confirm="del(item)"
>
<div v-if="delArr.length" slot="reference" class="delBtn"></div>
</el-popconfirm>
</div>
<div class="searchWrap"></div>
</div>
<div class="dealWayTableWrap">
<div class="dealWayTable">
<el-row :gutter="20">
<el-col
class="mb16"
:span="8"
v-for="item in dataSource"
:key="item.id"
>
<div class="dealWayThead">
<div class="nameWrap">
<div
class="checkIcon"
:class="{ checkIconActive: delArr.includes(item.id) }"
@click="selectDel(item)"
></div>
<div class="">{{ item.cmy }}</div>
</div>
</div>
<div class="dealWayTbody">
<div class="line">
<div class="item">
<div class="label">处置方式</div>
<div class="value">{{ item.way }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">处置流程</div>
<div class="value">{{ item.nr }}</div>
</div>
</div>
<div class="line mt20">
<div class="item">
<div class="label">任务单</div>
<div class="value">
<div
class="icon"
:style="{ backgroundImage: `url(${item.taskI})` }"
></div>
</div>
</div>
<div class="item">
<div class="label">行政处罚</div>
<div class="value">
<div
class="icon"
:style="{ backgroundImage: `url(${item.cfaI})` }"
></div>
</div>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="tableWrap">
<gMainTable
ref="gMainTable"
:tableData="dataSource"
:columns="columns"
rowKey="id"
:pagination="ipagination"
@pageSizeChange="handlePageSizeChange"
@currentPageChange="handleCurrentPageChange"
>
</gMainTable>
</div>
<FormDialog
labelPosition="top"
ref="formDialog"
:formItems="formItems"
width="800px"
@formSubmit="formSubmit"
>
</FormDialog>
</div>
</template>
<script>
import { tableListMixins } from "@/loveflow/mixins/tableListMixins";
import { commonMixins } from "@/loveflow/mixins/commonMixins";
export default {
mixins: [tableListMixins, commonMixins],
data() {
return {
disableMixinCreated: true,
columns: [
{
prop: "id",
label: "序号",
},
],
formItems: [
{
type: "select",
itemAttrs: {
label: "请选择消息类型",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "type",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择风险项",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "risk",
value: "",
option: [],
style: {
width: "100%",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择要素异常明细",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "ys",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "checkGroup",
itemAttrs: {
label: "语音推送对象",
span: 24,
rules: this.$rules.requiredItem,
},
attrs: {
model: "obj",
value: [],
option: [],
},
},
{
type: "textarea",
itemAttrs: {
label: "请输入语音内容",
span: 24,
rules: this.$rules.requiredItem,
},
attrs: {
model: "nr",
rows: 2,
value: "",
},
},
],
delArr: [],
};
},
mounted() {
this.setFindItem("formItems", "type").attrs.option = this.infoTypeList;
this.setFindItem("formItems", "risk").attrs.option = this.riskList;
this.setFindItem("formItems", "ys").attrs.option = this.elementList;
this.setFindItem("formItems", "obj").attrs.option = this.pushObjList;
},
created() {
for (let i = 0; i < 20; i++) {
this.dataSource.push({
cmy: "宁波镇海兴达化工有限公司" + i,
id: i,
way: "企业提醒",
nr: "您好X年X月X日贵单位的XXXXXXXX证书将过期需及时处置。",
taskI: require("@/assets/images/team/taskb.png"),
cfaI: require("@/assets/images/team/cfab.png"),
});
}
},
methods: {
add() {
this.$refs.formDialog.openDialog("other", {}, "推送规则设置");
},
edit(obj) {
this.$refs.formDialog.openDialog("other", obj, "编辑推送规则设置");
},
selectDel(obj) {
let id = obj.id;
if (this.delArr.includes(id)) {
this.delArr = this.delArr.filter((item) => item != id);
} else {
this.delArr.push(id);
}
},
del(item) {
this.$message({
message: item.nr,
type: "success",
});
},
formSubmit(obj) {
console.log(obj);
},
},
};
</script>
<style lang="scss">
@import "@/loveflow/assets/index.scss";
.dealWayPanel {
height: 100%;
overflow-y: hidden;
box-sizing: border-box;
.delBtn {
padding: vw(8) vw(18);
font-size: vw(14);
color: #ffffff;
background: url("~@/assets/images/base/addbtn.png") no-repeat center center;
background-size: 100% 100%;
}
.dealWayTableWrap {
height: calc(100% - 90px);
.dealWayTable {
height: 100%;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.dealWayThead {
padding-top: vw(10);
margin-left: -10px;
padding-left: 24px;
height: vw(46);
background: url("~@/assets/images/team/chead.png") no-repeat center
center;
background-size: 100% 100%;
font-weight: 500;
font-size: vw(16);
color: #edf4ff;
.nameWrap {
display: flex;
align-items: center;
}
.checkIcon {
margin-right: 6px;
width: vw(18);
height: vw(18);
border: solid 1px #edf4ff;
border-radius: 2px;
&.checkIconActive {
width: vw(18);
height: vw(18);
background: url("~@/assets/images/base/check.png") no-repeat center
center;
background-size: vw(32) vw(32);
}
&:hover {
opacity: 0.8;
cursor: pointer;
}
}
}
.dealWayTbody {
margin-top: -10px;
padding: vw(16);
height: vw(200);
background: url("~@/assets/images/team/cbody.png") no-repeat center
center;
background-size: 100% 100%;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.line {
display: flex;
align-items: center;
.item {
flex: 1;
display: flex;
align-items: center;
margin-bottom: vw(16);
.label {
width: vw(70);
font-size: vw(14);
color: #d0deee;
}
.value {
flex: 1;
font-size: vw(14);
color: #ffffff;
display: flex;
.icon {
width: vw(36);
height: vw(36);
background-size: 100% 100%;
background-position: center center;
}
}
}
}
}
}
}
.el-table {
display: none;
}
}
</style>

@ -23,6 +23,8 @@ import tableMain from "../components/tableMain.vue";
import msgPush from "./msgPush.vue"; import msgPush from "./msgPush.vue";
import msgPushDetail from "./msgPushDetail.vue"; import msgPushDetail from "./msgPushDetail.vue";
import msgPushModel from "./msgPushModel.vue";
import msgPushModelDd from "./msgPushModelDd.vue";
import urgencyWrap from "./urgency.vue"; import urgencyWrap from "./urgency.vue";
import dealWay from "./dealWay.vue"; import dealWay from "./dealWay.vue";
import dealRequire from "./msgPush.vue"; import dealRequire from "./msgPush.vue";
@ -35,6 +37,8 @@ export default {
dealWay, dealWay,
dealRequire, dealRequire,
msgPushDetail, msgPushDetail,
msgPushModel,
msgPushModelDd,
}, },
data() { data() {
return { return {
@ -68,6 +72,15 @@ export default {
if (val == "11") { if (val == "11") {
this.content = msgPushDetail; this.content = msgPushDetail;
} }
if (val == "111") {
this.content = msgPushModel;
}
if (val == "1111") {
this.content = msgPushModelDd;
}
if (val == "11") {
this.content = msgPushDetail;
}
if (val == "2") { if (val == "2") {
this.content = urgencyWrap; this.content = urgencyWrap;
} }

@ -36,26 +36,26 @@ export default {
{ {
icon: require("@/assets/images/team/ldang.png"), icon: require("@/assets/images/team/ldang.png"),
name: "提醒信息推送规则设置", name: "提醒信息推送规则设置",
nr: "对各类事件提醒信息推送规则的设置,如设置各类事件提醒信息推动方式、推动对象、推送时间等。", nr: "对各类事件提醒信息推送规则的设置,如设置各类事件提醒信息推送方式、推送对象、推送时间等。",
path: "11", path: "11",
fileName: "底座旋转_000", fileName: "底座旋转_000",
filePath: "ldang", filePath: "ldang",
total: 23, total: 23,
}, },
{ {
icon: require("@/assets/images/team/ldang.png"), icon: require("@/assets/images/team/info.png"),
name: "提醒信息模版管理", name: "提醒信息模版管理",
nr: "对系统消息、短信、钉消息发送模板的新增、修改、删除等维护管理。", nr: "对系统消息、短信、钉消息发送模板的新增、修改、删除等维护管理。",
path: "11", path: "111",
fileName: "底座旋转_000", fileName: "底座旋转_000",
filePath: "msg", filePath: "msg",
total: 23, total: 23,
}, },
{ {
icon: require("@/assets/images/team/ldang.png"), icon: require("@/assets/images/team/dding.png"),
name: "钉语音信息管理", name: "钉语音信息管理",
nr: "与钉钉系统语音模块的对接管理功能,实现语音信息发送模板的新增、修改、删除等操作。", nr: "与钉钉系统语音模块的对接管理功能,实现语音信息发送模板的新增、修改、删除等操作。",
path: "11", path: "1111",
fileName: "底座旋转_000", fileName: "底座旋转_000",
filePath: "dding", filePath: "dding",
total: 23, total: 23,

@ -14,7 +14,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="请选择推方式"> <el-form-item label="请选择推方式">
<el-select clearable v-model="queryParam.cq" placeholder=""> <el-select clearable v-model="queryParam.cq" placeholder="">
<el-option <el-option
v-for="item in pushList" v-for="item in pushList"
@ -153,11 +153,11 @@ export default {
}, },
{ {
prop: "flowType", prop: "flowType",
label: "推对象", label: "推对象",
}, },
{ {
prop: "way", prop: "way",
label: "推方式", label: "推方式",
}, },
{ {
prop: "date", prop: "date",
@ -184,24 +184,39 @@ export default {
}, },
], ],
pushObjList: [ pushObjList: [
"企业对象", {
"镇海区公安局", name: "企业对象",
"镇海区交通局", value: "1",
"市场监督管理局", },
"区大数据中心", {
name: "镇海区公安局",
value: "2",
},
{
name: "镇海区交通局",
value: "3",
},
{
name: "市场监督管理局",
value: "4",
},
{
name: "区大数据中心",
value: "5",
},
], ],
formItems: [ formItems: [
{ {
type: "select", type: "select",
itemAttrs: { itemAttrs: {
label: "信息推动方式", label: "信息推方式",
span: 12, span: 12,
rules: this.requiredItem, rules: this.requiredItem,
}, },
attrs: { attrs: {
model: "jb", model: "jb",
value: "", value: "",
option: this.pushList, option: [],
style: { style: {
width: "100%", width: "100%",
paddingRight: "16px", paddingRight: "16px",
@ -223,15 +238,15 @@ export default {
}, },
{ {
type: "input", type: "checkGroup",
itemAttrs: { itemAttrs: {
label: "信息推对象", label: "信息推对象",
span: 24, span: 24,
}, },
attrs: { attrs: {
model: "tdx", model: "tdx",
value: "", value: [],
option: this.pushObjList, option: [],
}, },
}, },
{ {
@ -243,7 +258,7 @@ export default {
attrs: { attrs: {
model: "dx", model: "dx",
value: "", value: "",
option: this.isNoList, option: [],
style: { style: {
width: "100%", width: "100%",
paddingRight: "16px", paddingRight: "16px",
@ -259,7 +274,7 @@ export default {
attrs: { attrs: {
model: "cq", model: "cq",
value: "", value: "",
option: this.dqList, option: [],
style: { style: {
width: "100%", width: "100%",
}, },
@ -268,6 +283,12 @@ export default {
], ],
}; };
}, },
mounted() {
this.setFindItem("formItems", "jb").attrs.option = this.pushList;
this.setFindItem("formItems", "tdx").attrs.option = this.pushObjList;
this.setFindItem("formItems", "dx").attrs.option = this.isNoList;
this.setFindItem("formItems", "cq").attrs.option = this.dqList;
},
methods: { methods: {
ruleSet(obj) { ruleSet(obj) {
this.$refs.formDialog.openDialog("detail", obj, "推送规则设置"); this.$refs.formDialog.openDialog("detail", obj, "推送规则设置");

@ -0,0 +1,342 @@
<template>
<div class="msgPushModelPanel">
<div class="flexSpaceBetween">
<div class="tableOperator">
<div class="addBtn flex-center" @click="add">
<div class="plusIcon mr4"></div>
<div>新增模板</div>
</div>
</div>
<div class="searchWrap"></div>
</div>
<div class="msgPushModelTableWrap">
<div class="msgPushModelTable">
<el-row :gutter="20">
<el-col
class="mb16"
:span="8"
v-for="item in dataSource"
:key="item.id"
>
<div class="msgPushModelTbody">
<div class="line">
<div class="item">
<div class="label">消息类型</div>
<div class="value">{{ item.type }}</div>
</div>
<div class="item">
<div class="label">推送方式</div>
<div class="value">{{ item.way }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">风险项</div>
<div class="value">{{ item.risk }}</div>
</div>
<div class="item">
<div class="label" style="width: 100px">要素异常明细</div>
<div class="value">{{ item.ys }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">推送对象</div>
<div class="value">{{ item.obj }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">提醒内容</div>
<div class="value">{{ item.nr }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="optWrap flex-item-center">
<div class="editBtn" @click="edit(item)"></div>
<el-popconfirm
icon="el-icon-info"
icon-color="red"
title="确定删除当前模板吗?"
@confirm="del(item)"
>
<div slot="reference" class="delBtn">删除模板</div>
</el-popconfirm>
</div>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="tableWrap">
<gMainTable
border
stripe
ref="gMainTable"
:tableData="dataSource"
:columns="columns"
rowKey="id"
:pagination="ipagination"
@pageSizeChange="handlePageSizeChange"
@currentPageChange="handleCurrentPageChange"
>
</gMainTable>
</div>
<FormDialog
labelPosition="top"
ref="formDialog"
:formItems="formItems"
width="800px"
@formSubmit="formSubmit"
>
</FormDialog>
</div>
</template>
<script>
import { tableListMixins } from "@/loveflow/mixins/tableListMixins";
import { commonMixins } from "@/loveflow/mixins/commonMixins";
export default {
mixins: [tableListMixins, commonMixins],
data() {
return {
disableMixinCreated: true,
columns: [
{
prop: "id",
label: "序号",
},
],
formItems: [
{
type: "select",
itemAttrs: {
label: "请选择消息类型",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "type",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择推送方式",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "way",
value: "",
option: [],
style: {
width: "100%",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择风险项",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "risk",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择要素异常明细",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "ys",
value: "",
option: [],
style: {
width: "100%",
},
},
},
{
type: "checkGroup",
itemAttrs: {
label: "信息推送对象",
span: 24,
rules: this.$rules.requiredItem,
},
attrs: {
model: "obj",
value: [],
option: [],
},
},
{
type: "textarea",
itemAttrs: {
label: "请输入提醒内容",
span: 24,
rules: this.$rules.requiredItem,
},
attrs: {
model: "nr",
rows: 2,
value: "",
},
},
{
type: "select",
itemAttrs: {
label: "是否支持超期短信提醒",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "dx",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "select",
itemAttrs: {
label: "超期提醒时间",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "cq",
value: "",
option: [],
style: {
width: "100%",
},
},
},
],
};
},
mounted() {
this.setFindItem("formItems", "type").attrs.option = this.infoTypeList;
this.setFindItem("formItems", "way").attrs.option = this.pushList;
this.setFindItem("formItems", "risk").attrs.option = this.riskList;
this.setFindItem("formItems", "ys").attrs.option = this.elementList;
this.setFindItem("formItems", "obj").attrs.option = this.pushObjList;
this.setFindItem("formItems", "dx").attrs.option = this.isNoList;
this.setFindItem("formItems", "cq").attrs.option = this.remindList;
},
created() {
for (let i = 0; i < 20; i++) {
this.dataSource.push({
id: i,
type: "风险提醒",
way: "短信提醒",
risk: "流动人员异常",
ys: "流动人员核查率异常",
obj: "企业负责人、镇海区公安局、石化工业区管委会",
nr: "您好X年X月X日贵单位的XXXXXXXX证书将过期需及时处置。",
});
}
},
methods: {
add() {
this.$refs.formDialog.openDialog("other", {}, "推送规则设置");
},
edit(obj) {
this.$refs.formDialog.openDialog("other", obj, "编辑推送规则设置");
},
del(item) {
this.$message({
message: item.nr,
type: "success",
});
},
formSubmit(obj) {
console.log(obj);
},
},
};
</script>
<style lang="scss">
@import "@/loveflow/assets/index.scss";
.msgPushModelPanel {
height: 100%;
box-sizing: border-box;
overflow: hidden;
.msgPushModelTableWrap {
height: calc(100% - 90px);
.msgPushModelTable {
height: 100%;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.msgPushModelTbody {
padding: vw(16);
height: vw(230);
background: url("~@/assets/images/team/modelb.png") no-repeat center
center;
background-size: 100% 100%;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.line {
display: flex;
align-items: center;
.item {
flex: 1;
display: flex;
align-items: center;
margin-bottom: vw(16);
.label {
width: vw(70);
font-size: vw(14);
color: #d0deee;
}
.value {
flex: 1;
font-size: vw(14);
color: #ffffff;
display: flex;
}
}
}
}
}
}
.tableWrap {
.el-table {
display: none;
}
}
}
</style>

@ -0,0 +1,290 @@
<template>
<div class="msgPushModelPanel">
<div class="flexSpaceBetween">
<div class="tableOperator">
<div class="addBtn flex-center" @click="add">
<div class="plusIcon mr4"></div>
<div>新增模板</div>
</div>
</div>
<div class="searchWrap"></div>
</div>
<div class="msgPushModelTableWrap">
<div class="msgPushModelTable">
<el-row :gutter="20">
<el-col
class="mb16"
:span="8"
v-for="item in dataSource"
:key="item.id"
>
<div class="msgPushModelTbody">
<div class="line">
<div class="item">
<div class="label">消息类型</div>
<div class="value">{{ item.type }}</div>
</div>
<div class="item">
<div class="label">推送方式</div>
<div class="value">{{ item.way }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">风险项</div>
<div class="value">{{ item.risk }}</div>
</div>
<div class="item">
<div class="label" style="width: 100px">要素异常明细</div>
<div class="value">{{ item.ys }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">推送对象</div>
<div class="value">{{ item.obj }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">提醒内容</div>
<div class="value">{{ item.nr }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="optWrap flex-item-center">
<div class="editBtn" @click="edit(item)"></div>
<el-popconfirm
icon="el-icon-info"
icon-color="red"
title="确定删除当前模板吗?"
@confirm="del(item)"
>
<div slot="reference" class="delBtn">删除模板</div>
</el-popconfirm>
</div>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="tableWrap">
<gMainTable
border
stripe
ref="gMainTable"
:tableData="dataSource"
:columns="columns"
rowKey="id"
:pagination="ipagination"
@pageSizeChange="handlePageSizeChange"
@currentPageChange="handleCurrentPageChange"
>
</gMainTable>
</div>
<FormDialog
labelPosition="top"
ref="formDialog"
:formItems="formItems"
width="800px"
@formSubmit="formSubmit"
>
</FormDialog>
</div>
</template>
<script>
import { tableListMixins } from "@/loveflow/mixins/tableListMixins";
import { commonMixins } from "@/loveflow/mixins/commonMixins";
export default {
mixins: [tableListMixins, commonMixins],
data() {
return {
disableMixinCreated: true,
columns: [
{
prop: "id",
label: "序号",
},
],
formItems: [
{
type: "select",
itemAttrs: {
label: "请选择消息类型",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "type",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择风险项",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "risk",
value: "",
option: [],
style: {
width: "100%",
},
},
},
{
type: "select",
itemAttrs: {
label: "请选择要素异常明细",
span: 12,
rules: this.$rules.requiredItem,
},
attrs: {
model: "ys",
value: "",
option: [],
style: {
width: "100%",
paddingRight: "16px",
},
},
},
{
type: "checkGroup",
itemAttrs: {
label: "语音推送对象",
span: 24,
rules: this.$rules.requiredItem,
},
attrs: {
model: "obj",
value: [],
option: [],
},
},
{
type: "textarea",
itemAttrs: {
label: "请输入语音内容",
span: 24,
rules: this.$rules.requiredItem,
},
attrs: {
model: "nr",
rows: 2,
value: "",
},
},
],
};
},
mounted() {
this.setFindItem("formItems", "type").attrs.option = this.infoTypeList;
this.setFindItem("formItems", "risk").attrs.option = this.riskList;
this.setFindItem("formItems", "ys").attrs.option = this.elementList;
this.setFindItem("formItems", "obj").attrs.option = this.pushObjList;
},
created() {
for (let i = 0; i < 20; i++) {
this.dataSource.push({
id: i,
type: "风险提醒",
way: "短信提醒",
risk: "流动人员异常",
ys: "流动人员核查率异常",
obj: "企业负责人、镇海区公安局、石化工业区管委会",
nr: "您好X年X月X日贵单位的XXXXXXXX证书将过期需及时处置。",
});
}
},
methods: {
add() {
this.$refs.formDialog.openDialog("other", {}, "推送规则设置");
},
edit(obj) {
this.$refs.formDialog.openDialog("other", obj, "编辑推送规则设置");
},
del(item) {
this.$message({
message: item.nr,
type: "success",
});
},
formSubmit(obj) {
console.log(obj);
},
},
};
</script>
<style lang="scss">
@import "@/loveflow/assets/index.scss";
.msgPushModelPanel {
height: 100%;
box-sizing: border-box;
overflow: hidden;
.msgPushModelTableWrap {
height: calc(100% - 90px);
.msgPushModelTable {
height: 100%;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.msgPushModelTbody {
padding: vw(16);
height: vw(230);
background: url("~@/assets/images/team/modelb.png") no-repeat center
center;
background-size: 100% 100%;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.line {
display: flex;
align-items: center;
.item {
flex: 1;
display: flex;
align-items: center;
margin-bottom: vw(16);
.label {
width: vw(70);
font-size: vw(14);
color: #d0deee;
}
.value {
flex: 1;
font-size: vw(14);
color: #ffffff;
display: flex;
}
}
}
}
}
}
.tableWrap {
.el-table {
display: none;
}
}
}
</style>
Loading…
Cancel
Save