Browse Source

系统的高级配置

feature-bug
是小王呀\24601 1 year ago
parent
commit
e744bc6d94
  1. 74
      src/views/modules/shequzhili/Delivery/index.vue
  2. 38
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  3. 20
      src/views/modules/shequzhili/eventHandling/index.vue
  4. 17
      src/views/modules/shequzhili/timeOut/index.vue
  5. 306
      src/views/modules/workSys/sysConfigure/index.vue

74
src/views/modules/shequzhili/Delivery/index.vue

@ -103,7 +103,7 @@
</el-dropdown-menu> -->
<!-- </el-dropdown> -->
</div>
<canvas id="watermarkCanvas" class="canvas"> </canvas>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
@ -197,11 +197,12 @@
<event-info ref="eleEditForm" :pageType="pageType" :eventId="eventId" :eventDetailData="eventDetailData"
@handleClose="handleClose" @handleOk="handleOk" @dialogOk="handleEditSuccess" />
</div>
<canvas id="watermarkCanvas" class="canvas"> </canvas>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost,requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import eventInfo from "../event/cpts/event-info.vue";
@ -490,36 +491,47 @@ export default {
},
async handleExport() {
const url = "/governance/icEvent/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
method: "post",
data: {
pageSize,
pageNo,
...formData,
},
responseType: "blob",
})
.then((res) => {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
const url = "/governance/icEventConfig/downloadDataPower";
let params = {
orgId:this.agencyId
};
const { data, code, msg } = await requestGet(url, params);
console.log(data,"sdfklk;sfdk");
if(data){
const url = "/governance/icEvent/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
method: "post",
data: {
pageSize,
pageNo,
...formData,
},
responseType: "blob",
})
.catch((err) => {
return this.$message.error("网络错误");
});
.then((res) => {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
})
.catch((err) => {
return this.$message.error("网络错误");
});
}else{
this.$message.error('暂无权限');
}
},
async handleAdd() {

38
src/views/modules/shequzhili/event/cpts/event-detail.vue

@ -13,7 +13,7 @@
<div class="m-info">
<div class="flex">
<canvas id="watermarkCanvas2" class="canvas"> </canvas>
<div class="item">
<div class="label">工单编号</div>
<div class="value">{{ info.workOrderNum }}</div>
@ -161,7 +161,6 @@ export default {
this.user = this.$store.state.user;
this.phone = this.$store.state.user.phone;
this.realName = this.$store.state.user.realName;
this.getCanvas()
if (this.eventId) {
this.info = JSON.parse(JSON.stringify(this.eventDetailData));
}
@ -175,30 +174,6 @@ export default {
},
methods: {
getCanvas() {
var canvas = document.getElementById('watermarkCanvas2');
var ctx = canvas.getContext('2d');
canvas.width = window.innerWidth ; //
canvas.height = window.innerHeight ;
var watermarkText = this.realName+ this.phone; //
ctx.font = '12px Arial'; //
ctx.fillStyle = 'rgba(0, 0, 255, 0.2)'; //+
// ctx.textBaseline = 'middle';
ctx.scale(2, 2); //
var angle = -30 * Math.PI / 180; // -30
var x = canvas.width / 2;
var y = canvas.height / 2;
var space = 150; //
for (var i = 0; i < canvas.width; i += space) {
for (var j = 0; j < canvas.height; j += space) {
ctx.save();
ctx.translate(i, j);
ctx.rotate(angle);
ctx.fillText(watermarkText, 0, 0);
ctx.restore();
}
}
},
watchImg(src) {
window.open(src);
},
@ -293,14 +268,5 @@ export default {
margin-right: 10px;
}
}
.canvas {
width: 100%;
height: 100%;
z-index: 10;
position: absolute;
top: 0;
left: 0;
pointer-events: none;
/* 确保canvas不干扰其他元素 */
}
</style>

20
src/views/modules/shequzhili/eventHandling/index.vue

@ -91,7 +91,7 @@
</el-dropdown-menu>
</el-dropdown> -->
</div>
<canvas id="watermarkCanvas1" class="canvas"> </canvas>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
@ -162,11 +162,13 @@
<event-info ref="eleEditForm" :pageType="pageType" :eventId="eventId" :eventDetailData="eventDetailData"
@handleClose="handleClose" @handleOk="handleOk" @dialogOk="handleEditSuccess" />
</div>
<canvas id="watermarkCanvas1" class="canvas"> </canvas>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost,requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import axios from "axios";
@ -445,7 +447,13 @@ export default {
});
},
async handleExport() {
const url = "/governance/icEvent/export";
const url = "/governance/icEventConfig/downloadDataPower";
let params = {
orgId:this.agencyId
};
const { data, code, msg } = await requestGet(url, params);
if (data) {
const url = "/governance/icEvent/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
@ -474,7 +482,11 @@ export default {
})
.catch((err) => {
return this.$message.error("网络错误");
});
});
}else{
this.$message.error("暂无权限")
}
},
async handleAdd() {

17
src/views/modules/shequzhili/timeOut/index.vue

@ -91,7 +91,7 @@
</el-dropdown-menu>
</el-dropdown> -->
</div>
<canvas id="watermarkCanvas3" class="canvas"> </canvas>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
<el-table-column label="" fixed="left" type="selection" align="center" width="50" />
@ -176,11 +176,12 @@
<el-button type="primary" @click="sendTimeLimitMSM"> </el-button>
</span>
</el-dialog>
<canvas id="watermarkCanvas3" class="canvas"> </canvas>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost,requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import axios from "axios";
@ -454,7 +455,13 @@ export default {
},
async handleExport() {
const url = "/governance/icEvent/export";
const url = "/governance/icEventConfig/downloadDataPower";
let params = {
orgId:this.agencyId
};
const { data, code, msg } = await requestGet(url, params);
if(data){
const url = "/governance/icEvent/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
@ -484,6 +491,10 @@ export default {
.catch((err) => {
return this.$message.error("网络错误");
});
}else{
this.$message.error("暂无权限")
}
},
async handleAdd() {

306
src/views/modules/workSys/sysConfigure/index.vue

@ -11,87 +11,195 @@
<h3>12345政务热线</h3>
<div class="m-table"
style=" width: 50%; display: flex; flex-direction:column;align-items: center;justify-content: space-between;">
<div v-for="(item, index) in sysAdvancedList "
style=" border-bottom: 1px dotted #000;width: 100%; display: flex; flex-direction: row;align-items: center;justify-content: space-between;">
<div style="display: flex; flex-direction: column;">
<h4 v-if="item.advancedName == '联系当事人时限'">设置联系当事人时限默认值:</h4>
<h4 v-if="item.advancedName == '办结时限'">设置(部门)办结时限默认值:</h4>
<h4 v-if="item.advancedName == '短信通知'">派件是否默认开启短信通知部门负责人:</h4>
<h4 v-if="item.advancedName == '联系当事人时限'">联系当事人时限设置为派件时间之后的
<el-input-number v-model="item.timeInterval" @change="handleChange(item)"
style="width: 150px;" :min="1" label="描述文字"></el-input-number>
</h4>
<h4 v-if="item.advancedName == '办结时限'">(部门)办结时限设置为(上级)办结时限的前
<el-input-number v-model="item.timeInterval" @change="handleChange(item)"
style="width: 150px;" :min="1" label="描述文字"></el-input-number>
</h4>
<div style="display: flex; flex-direction: column;">
<div
style="display: flex;border-bottom: 1px dotted #000; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
设置联系当事人(初访)时限
</div>
</div>
<div
style=" margin: 20px;font-size: 16px; display: flex; align-items: center;">
退件时限设置为派件时间之后的
<el-input-number @change="handleChange()"
v-model="sysAdvancedList.contactLimit"
style="width: 150px; margin-left: 5px" :min="1"
label="描述文字"></el-input-number>
<div style="margin-left: 5px;">小时</div>
</div>
</div>
<el-switch v-model="sysAdvancedList.contactFlag" active-color="#13ce66"
:active-value="1" :inactive-value="0" inactive-color="#eaecf0"
@change="handleChange()"></el-switch>
</div>
<div
style="margin-top: 20px; display: flex;border-bottom: 1px dotted #000; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
设置(部门)办结时限
</div>
</div>
<div
style=" margin: 20px;font-size: 16px; display: flex; align-items: center;">
(部门)办结时限设置为(上级)办结时限的前
<el-input-number @change="handleChange()"
v-model="sysAdvancedList.resolveLimitDay"
style="width: 150px; margin-left: 5px" :min="1"
label="描述文字"></el-input-number>
<div style="margin-left: 5px;">天的</div><el-time-select
v-model="sysAdvancedList.resolveLimitTime"
style="margin-left: 5px; width: 120px;"
:picker-options="{ start: '00:00', step: '00:15', end: '24:00' }" @change="handleChange()"
placeholder="选择时间"></el-time-select>
</div>
</div>
<el-switch v-model="sysAdvancedList.resolveLimitFlag" active-color="#13ce66"
:active-value=1 :inactive-value=0 inactive-color="#eaecf0"
@change="handleChange()"></el-switch>
</div>
<div
style="margin-top: 20px; display: flex;border-bottom: 1px dotted #000; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
设置退件时限
</div>
</div>
<div
style=" margin: 20px;font-size: 16px; display: flex; align-items: center;">
退件时限设置为派件时间之后的
<el-input-number @change="handleChange()"
v-model="sysAdvancedList.returnLimit"
style="width: 150px; margin-left: 5px" :min="1"
label="描述文字"></el-input-number>
<div style="margin-left: 5px;">小时内超过该实现推荐即为超期退件</div>
</div>
</div>
<el-switch v-model="sysAdvancedList.returnFlag" active-color="#13ce66"
:active-value=1 :inactive-value=0 inactive-color="#eaecf0"
@change="handleChange()">
</el-switch>
</div>
<div
style="margin-top: 20px; display: flex;border-bottom: 1px dotted #000; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
事件办理过程中上传录音默认设置
</div>
</div>
<div
style="margin: 20px; font-size: 16px; display: flex; align-items: center;">
联系当事人(初访)(默认) :
<div style="margin-left: 20px;">
<el-radio v-model="sysAdvancedList.contactVoiceFlag" @change="handleChange()"
:label="1" >需要录音</el-radio>
<el-radio v-model="sysAdvancedList.contactVoiceFlag" @change="handleChange()"
:label="0" >不需要录音</el-radio>
</div>
</div>
<div
style="margin: 20px; font-size: 16px; display: flex; align-items: center;">
事件办结时(默认) :
<div style="margin-left: 20px;">
<el-radio v-model="sysAdvancedList.resolveVoiceFlag" @change="handleChange()"
:label="1">需要录音</el-radio>
<el-radio v-model="sysAdvancedList.resolveVoiceFlag" @change="handleChange()"
:label="0">不需要录音</el-radio>
</div>
</div>
</div>
</div>
<div>
<el-switch v-model="item.openFlag" active-color="#13ce66"
inactive-color="#eaecf0" :active-value=1 :inactive-value=0
@change="handleSwitch(item)">
<div
style="margin-top: 20px; display: flex;border-bottom: 1px dotted #000; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
派件是否默认开启短信通知相关人员
</div>
</div>
<div
style=" margin: 20px;font-size: 16px; display: flex; align-items: center;">
<div style=""> 请选择短信通知哪些人员(可多选) :</div>
<div style="margin-left: 20px;">
<template>
<el-checkbox v-model="sysAdvancedList.responsibleLeader"
:true-label="1" :false-label="0" @change="handleChange">
部门分管领导
</el-checkbox>
<el-checkbox v-model="sysAdvancedList.deptLeader"
@change="handleChange()" :true-label="1" :false-label="0">部门负责人</el-checkbox>
<el-checkbox v-model="sysAdvancedList.deptStaff"
@change="handleChange()" :true-label="1" :false-label="0" label="1">部门工作人员</el-checkbox>
</template>
</div>
</div>
</div>
<el-switch v-model="sysAdvancedList.smsFlag" active-color="#13ce66"
:active-value=1 :inactive-value=0 inactive-color="#eaecf0"
@change="handleChange">
</el-switch>
</div>
<div
style=" margin-top: 20px;display: flex;border-bottom: 1px dotted #000; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
是否需要开启热线专班(专员)回访
</div>
</div>
<div
style=" margin: 20px;font-size: 16px; display: flex; align-items: center;">
若开启热线专班(专员)回访对已办结的事件进行审核归档时需要填写相应的回访信息
</div>
</div>
<el-switch v-model="sysAdvancedList.hotlineSpecialTeamFlag" active-color="#13ce66"
:active-value=1 :inactive-value=0 inactive-color="#eaecf0"
@change="handleChange()">
</el-switch>
</div>
<div
style=" margin-top: 20px;display: flex; flex-direction: row; align-items: center; justify-content: space-between;">
<div>
<div style="display: flex; flex-direction: row; align-items: center;">
<div style="width: 10px; height: 10px; background-color: #4e89ec"></div>
<div style="font-weight:800;font-size: 18px; margin-left: 10px;">
允许以下角色导出12345热线事件数据
</div>
</div>
<div
style=" margin: 20px;font-size: 16px; display: flex; align-items: center;">
<div style="margin-right: 10px;">
请选择允许哪些角色可以导出12345热线事件数据(可多选) :
</div>
<el-select v-model="sysAdvancedList.exportDataRoleList" multiple
style="width: 160px;" placeholder="请选择" @change="handleChange()">
<el-option v-for="item in govroleList" :key="item.id"
:label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
</div>
<!-- <el-switch v-model="sysAdvancedList" active-color="#13ce66"
inactive-color="#eaecf0">
</el-switch> -->
</div>
</div>
<!-- <div
style=" border-bottom: 1px dotted #000;width: 100%; display: flex; flex-direction: row;align-items: center;justify-content: space-between;">
<div style="display: flex; flex-direction: column;">
<h3>设置(部门)办结时限默认值</h3>
<h3>(部门)办结时限设置为上级办结时限的前 <el-input-number v-model="num" @change="handleChange"
style="width: 150px;" :min="1" :max="48" label="描述文字"></el-input-number></h3>
</div>
<div>
<el-switch v-model="HotlineShow" active-color="#13ce66" inactive-color="#eaecf0">
</el-switch>
</div>
</div>
<div
style="width: 100%; display: flex; flex-direction: row;align-items: center;justify-content: space-between;">
<div style="display: flex; flex-direction: column;">
<h3>派件是否默认开启短信通知部门负责人:</h3>
</div>
<div>
<el-switch v-model="HotlineShow" active-color="#13ce66" inactive-color="#eaecf0">
</el-switch>
</div>
</div> -->
</div>
</div>
<!--
<h3>居民上报事件</h3>
<div class="m-table"
style=" border-bottom: 1px dotted #000;width: 100%; display: flex; flex-direction: row;align-items: center;justify-content: space-between;">
<div
style="width: 100%; display: flex; flex-direction: row;align-items: center;justify-content: space-between;">
<div style="display: flex; flex-direction: column;">
<h3>开启自动派单:</h3>
<h3>开启自动派单功能须先设置事件类型处理部门的对应关系</h3>
</div>
<div>
<el-switch v-model="HotlineShow" active-color="#13ce66" inactive-color="#eaecf0">
</el-switch>
</div>
</div>
</div> -->
<!-- <h3>文明币有效期设置</h3>
<div class="m-table"
style=" border-bottom: 1px dotted #000;width: 100%; display: flex; flex-direction: row;">
<div style="display: flex; flex-direction: column;">
<h3>文明币有效期设置</h3>
</div>
<div style="margin-left: 20px;margin-top: 12px; display: flex; flex-direction: column;">
<template>
<el-radio v-model="radio" label="1">永久有效</el-radio>
<el-radio v-model="radio" label="2" style="margin-top: 10px;">
<el-input-number v-model="num" @change="handleChange" :min="1"
style="width: 150px;" :max="10" label="描述文字"></el-input-number>
</el-radio>
</template>
</div>
</div> -->
</div>
</div>
</div>
@ -100,7 +208,7 @@
</div>
</template>
<script>
import { requestPost } from '@/js/dai/request';
import { requestPost,requestGet } from '@/js/dai/request';
import nextTick from 'dai-js/tools/nextTick';
import { mapGetters } from 'vuex';
// import addForm from './residentCategoryComponents/addForm.vue';
@ -112,7 +220,11 @@ export default {
num:"",
HotlineShow:1,
customerId:"",
sysAdvancedList:[]
govroleList:[],
sysAdvancedList:{
}
};
},
components: { },
@ -129,11 +241,11 @@ export default {
this.customerId=this.$store.state.customerId
this.agencyId = this.user.agencyId;
this.sysAdvancedPage();
this.getGovroleList()
},
methods: {
handleSwitch(row){
console.log(row,this.num,"sdgmlsdlgjk");
const url = '/sys/sysAdvanced/update';
const param = {
id: row.id,
@ -147,38 +259,46 @@ export default {
}
});
},
handleChange(row){
console.log(row,this.num,"sdgmlsdlgjk");
const url = '/sys/sysAdvanced/update';
getGovroleList(){
const url = '/gov/access/govrole/page';
const param = {
id: row.id,
timeInterval:row.timeInterval,
// openFlag:this.openFlag,
remark:row.remark.slice(0, 7)+row.timeInterval+ row.remark.slice(-2)
pageSize:20,
pageNo:1,
name:""
};
requestGet(url, param).then(res=>{
if (res.code === 0) {
this.govroleList=res.data.list
}
});
},
handleChange(value){
console.log(value,"dsfl;slkdjf");
const url = '/governance/icEventConfig/update';
this.sysAdvancedList.exportDataRole=this.sysAdvancedList.exportDataRoleList.toString()
const param = {
...this.sysAdvancedList
};
console.log(param,"sdlkjggsdklf");
requestPost(url, param).then(res=>{
if (res.code === 0) {
console.log("sgl.msl;kgm");
this.sysAdvancedPage()
}
});
});contactFlag
},
//update/id
// jsonid
async sysAdvancedPage(row) {
console.log("dfgkljdlk;fg");
const url = '/sys/sysAdvanced/page';
const url = '/governance/icEventConfig/getStreetConfigDetail';
const param = {
customerId: this.customerId,
orgId: this.agencyId,
};
const { data, code, msg } = await requestPost(url, param);
const { data, code, msg } = await requestGet(url, param);
if (code === 0) {
this.sysAdvancedList=data.list
this.sysAdvancedList=data
console.log(this.sysAdvancedList,"sdfklsdjlk");
} else {
this.$message.error(msg);
}

Loading…
Cancel
Save