Browse Source

12345等等

luckysheet_xiaowang
是小王呀\24601 8 months ago
parent
commit
f410f709b0
  1. 1
      src/views/modules/base/smartExcel/cpts/picture-add.vue
  2. 55
      src/views/modules/base/smartExcel/cpts/picture-collection.vue
  3. 75
      src/views/modules/base/smartExcel/sharedSpace.vue
  4. 295
      src/views/modules/shequzhili/analysis/cpts/echarts-affairs.vue
  5. 15
      src/views/modules/shequzhili/analysis/index.vue
  6. 11
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  7. 2
      src/views/modules/shequzhili/event/cpts/event-info.vue
  8. 125
      src/views/modules/shequzhili/event/cpts/process-form-assign.vue
  9. 7
      src/views/modules/workSys/sysConfigure/cpts/custom-type.vue
  10. 223
      src/views/modules/workSys/sysConfigure/cpts/type-add.vue

1
src/views/modules/base/smartExcel/cpts/picture-add.vue

@ -268,7 +268,6 @@
<style lang="scss" scoped>
.item_width_1 {
width: 634px;
/deep/.tox .tox-dialog {
z-index: 20000;
}

55
src/views/modules/base/smartExcel/cpts/picture-collection.vue

@ -1,18 +1,18 @@
<template>
<div class="" style="height: 900px;margin: 20px;">
<div v-if="!showPictureList">
<div class="flex f-align_item ">
<el-button type="primary" style="margin:20px 0 20px 0" size="small"
@click="onClick('add')">新建图片库</el-button>
<el-input @blur="onSelect" v-model="name" placeholder="请输入内容"
style="width: 200px; margin-left: 50px;"></el-input>
</div>
<div>
<div class="gallery">
<div class="gallery">
<div v-for="(item, index) in pictureList" style="margin-bottom: 30px;">
<div style="margin: 30px 30px 100px 30px ">
<div style="margin: 30px 0 0 30px ">
<div style="position: relative;">
<div style="position: absolute;z-index: 10; right: 20px;top: -20px; ">
<img :src="require(`@/assets/images/index/imageBackground.png`)" alt=""
style=" position: absolute; cursor:pointer; height: 180px;width: 200px; ">
<div style="position: relative;height: 180px; width: 200px;">
<img :src="item.coverPicture ? `${item.coverPicture}` : require(`@/assets/images/index/noPictures.png`)"
@click="onPictureList(item)" alt="" style=" top: -20px;
left: -20px;; position: absolute; cursor:pointer; height: 180px; width: 200px;">
<div style="position: absolute;z-index: 10; right: 20px;top: -20px; ">
<el-dropdown>
<span class="el-dropdown-link" style="color: blue;">
. . .
@ -25,14 +25,11 @@
</el-dropdown-menu>
</el-dropdown>
</div>
<img :src="require(`@/assets/images/index/imageBackground.png`)" alt=""
style=" position: absolute; cursor:pointer; height: 180px;width: 200px; ">
<img :src="item.coverPicture ? `${item.coverPicture}` : require(`@/assets/images/index/noPictures.png`)"
@click="onPictureList(item)" alt="" style=" top: -20px;
left: -20px;; position: absolute; cursor:pointer; height: 180px; width: 200px;">
</div>
</div>
</div>
<div style="position: relative; bottom: -120px;left: 30px; font-size: 14px;">{{ item.albumName
<div style="position: relative;left: 30px; font-size: 14px;">{{ item.albumName
}}
</div>
</div>
@ -64,6 +61,7 @@ import pictureList from '../cpts/picture-list.vue'
export default {
data() {
return {
showPictureList:false,
formShow:false,
pictureList:[
@ -81,19 +79,9 @@ mounted() {
this.getTableData()
},
methods: {
// async getTableData() {
// const url = "/gov/org/customeragency/organizetree?agencyId="+this.$store.state.user.agencyId;
// const { data, code, msg } = await requestPost(url, {
// agencyId: this.$store.state.user.agencyId,
// });
// if (code === 0) {
// this.total = data.total || 0;
// this.pictureList = data.list
// } else {
// this.$message.error(msg);
// }
// },
async getTableData() {
console.log("dskljflksd");
const url = "/actual/base/albums/page";
const { data, code, msg } = await requestGet(url, {
name:this.name,
@ -115,6 +103,7 @@ methods: {
this.showPictureList=false
},
onPictureList(item){
this.$emit('pictureClose' );
this.showPictureList=true
this.$nextTick(() => {
this.$refs.picture_list.initForm(item);
@ -189,7 +178,13 @@ computed:{
...mapGetters(['clientHeight', 'resolution']),
},
props: {
name: {
type: String,
default: ""
},
showTitle:{
}
},
watch: {},
}
@ -200,8 +195,8 @@ watch: {},
@import "@/assets/scss/modules/management/list-main.scss";
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 2fr));
gap: 100px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 80px;
}
</style>

75
src/views/modules/base/smartExcel/sharedSpace.vue

@ -2,11 +2,19 @@
<div class="g-main">
<div v-show="pageType == 'list'">
<div class="m-table">
<div class="flex">
<div style="align-items: center;justify-items: center;" class="f-align_item flex"
:class="{ active: selectedIndex === index }" v-for="(item, index) in titleList" :key="item.value"
@click="selectItem(index)">
<span>{{ item.label }}</span>
<div class="flex f-endpoint" v-if="showTitle">
<div class="flex" >
<div style="align-items: center;justify-items: center;" class="f-align_item flex"
:class="{ active: selectedIndex === index }" v-for="(item, index) in titleList" :key="item.value"
@click="selectItem(index)">
<span>{{ item.label }}</span>
</div>
</div>
<div class="flex " style="align-items: center;">
<el-button v-if="selectedIndex==2" type="primary" style="margin:20px 0 20px 0" size="small"
@click="onClick('add')">新建图片库</el-button>
<el-input @blur="onSelect" v-model="name" placeholder="按图片名称关键字搜索" class="oval-input"
prefix-icon="el-icon-search" style="width: 200px; margin-left: 20px;"></el-input>
</div>
</div>
<el-table v-if="selectedIndex==0" :data="tableData" border class="m-table-item" style="width: 100%"
@ -29,7 +37,9 @@
</el-table-column>
<el-table-column prop="taskStateName" align="center" width="100" label="状态" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span :class="scope.row.taskStateName=='(已保存)未提交'?'yellow':scope.row.taskStateName=='已提交'?'blue':scope.row.taskStateName=='(已驳回)未提交'?'red':'green'">{{ scope.row.taskStateName
<span
:class="scope.row.taskStateName=='(已保存)未提交'?'yellow':scope.row.taskStateName=='已提交'?'blue':scope.row.taskStateName=='(已驳回)未提交'?'red':'green'">{{
scope.row.taskStateName
}}</span>
</template>
</el-table-column>
@ -49,7 +59,7 @@
<el-button @click=" handleInfo(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<div v-if="selectedIndex==0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
@ -61,11 +71,16 @@
<data-sharing v-if="selectedIndex==1"></data-sharing>
</div>
<div>
<picture-collection v-if="selectedIndex==2"></picture-collection>
<picture-collection :name="name" @pictureClose="pictureClose" ref="picture_collection" v-if="selectedIndex==2"></picture-collection>
</div>
</div>
</div>
<el-dialog :visible.sync="formShow" :close-on-click-modal="false" :close-on-press-escape="false" title="新增图片"
width="950px" top="5vh" class="dialog-h" @closed="closeAdd">
<picture-add ref="ref_form" @closeAdd="closeAdd"></picture-add>
</el-dialog>
<div v-if="showdownloadRecord">
<el-dialog title="下载记录" :visible.sync="showdownloadRecord" width="50%" :close-on-click-modal="false">
<export-shared :showType="showdownloadRecord" :taskId="formData.taskId"></export-shared>
@ -86,10 +101,12 @@
import dataSharing from "./cpts/data-sharing.vue"
import pictureCollection from "./cpts/picture-collection.vue"
import * as echarts from "echarts";
import pictureAdd from './cpts/picture-add.vue'
export default {
components: { exportShared,dataSharing,pictureCollection,shareExcel},
components: { exportShared,dataSharing,pictureCollection,shareExcel,pictureAdd},
data() {
let endDisabledDate = (time) => {
//datareturn
let nowData = Date.now();
@ -110,6 +127,9 @@
return time.getTime() > nowData;
};
return {
showTitle:true,
name:"",
formShow:false,
showdownloadRecord:false,
selectedIndex: 0, //
titleList:[
@ -181,11 +201,39 @@
this.getTableData()
},
methods: {
pictureClose(){
console.log("dfklsdfkl");
this.showTitle=false
},
onSelect() {
if (this.selectedIndex == 2) {
this.$nextTick(() => {
console.log("dsfjsdklf");
this.$refs.picture_collection.getTableData();
});
}
},
closeAdd(){
this.formShow=false
this.$nextTick(() => {
console.log("dsfjsdklf");
this.$refs.picture_collection.getTableData();
});
},
onClick(type,id){
this.formShow=true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type,id);
});
},
onClickRecord(){
this.showdownloadRecord=true
},
selectItem(index) {
this.selectedIndex = index; //
this.name="";
if(index===0){
this.getTableData()
}
@ -324,7 +372,9 @@
<style lang="scss" scoped>
@import "@/assets/scss/modules/management/list-main.scss";
/deep/ .el-input__inner {
border-radius: 25px !important;
}
.m-search {
.u-item-width-normal {
width: 200px;
@ -381,4 +431,7 @@
width: 100%;
height: 350px;
}
.oval-input .el-input__inner {
border-radius: 25px !important;
}
</style>

295
src/views/modules/shequzhili/analysis/cpts/echarts-affairs.vue

@ -0,0 +1,295 @@
<template>
<div style="margin-top:10px">
<div class="chart-container">
<div id="chart1" class="chart"></div>
<div id="chart2" class="chart"></div>
<div id="chart3" class="chart"></div>
</div>
</div>
</template>
<script>
import { requestPost, requestGet } from "@/js/dai/request";
import { completeList } from "@/js/columns/constants";
import * as echarts from "echarts";
export default {
//
data() {
return {
data: [
{
value:3000,
name: '直接访问'
},
{
value:200 ,
name: '联盟广告'
},
{
value: 100,
name: '搜索引擎'
}
],
formData: {
startTime: "",
endTime: "",
type: "2"
},
pageNo: 0,
pageSize:window.localStorage.getItem('pageSize') || 20,
total: 0,
tableData: [],
};
},
//
created() { },
async mounted() {
this.initChart("/actual/base/residentIntegrity/resiCategoryStats/byOrg/query4Org");
this.initChart1("/actual/base/residentIntegrity/resiCategoryStats/byOrg/query4Org");
this.initChart2("/actual/base/residentIntegrity/resiCategoryStats/byOrg/query4Org");
},
//
methods: {
initChart(url) {
const myChart = echarts.init(document.getElementById('chart1'));
const maxIndex = this.data.findIndex(item => item.value === Math.max(...this.data.map(d => d.value)));
const option = {
color: ['#3C94FE', '#FE9166', '#FAC156', '#22C1C3', '#F0D915', '#6FC364',"#BA9CFF", ],
tooltip: {
formatter: '{b}<br/> <br/>{c} ({d}%)',
trigger: 'item',
backgroundColor: 'rgba(150, 150, 150, 0.7)', // 0.7
borderWidth: 0,
textStyle: {
color: '#fff' //
}
},
legend: {
orient: 'horizontal',
bottom:0,
formatter: ['示例1', '示例2', '示例3', '示例4', '示例5'] //
},
label: {
normal: {
show: true,
position: 'outside', // `center`
formatter: '{b}', // 使
fontSize: 16, //
color: '#333' //
}
},
labelLine: { // 线
normal: {
show: false, // 线
length: 20, // 线
lineStyle: {
color: '#333' // 线
}
}
},
series: [
{
type: 'pie',
selectedMode: 'single', //
data: this.data.map((item, idx) => ({
...item,
})),
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
],
emphasis: { //
itemStyle: {
shadowBlur: 10, //
shadowOffsetX: 0, //
shadowColor: 'rgba(0, 0, 0, 0.5)', //
borderRadius: 10,
}
}
};
myChart.setOption(option); //
setTimeout(() => {
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: maxIndex
});
}, 500);
// myChart.dispatchAction({
// type: 'highlight', //
// seriesIndex: 0,
// dataIndex: maxIndex
// });
// myChart.dispatchAction({
// type: 'showTip', //
// seriesIndex: 0,
// dataIndex: maxIndex
// });
},
initChart1(url) {
const myChart = echarts.init(document.getElementById('chart2'));
const maxIndex = this.data.findIndex(item => item.value === Math.max(...this.data.map(d => d.value)));
const option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)',
backgroundColor: 'rgba(150, 150, 150, 0.7)', // 0.7
borderWidth: 0,
textStyle: {
color: '#fff' //
}
},
legend: {
orient: 'horizontal',
bottom:10,
data: ['示例1', '示例2', '示例3', '示例4', '示例5'] //
},
color: ['#3C94FE', '#FE9166', '#FAC156', '#22C1C3', '#F0D915', '#6FC364',"#BA9CFF", ],
series: [
{
radius:["80","100"],
type: 'pie',
avoidLabelOverlap: false,
selectedMode: 'single', //
data: this.data.map((item, idx) => ({
...item,
})),
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '30',
fontWeight: 'bold'
},
// itemStyle: {
// shadowBlur: 10,
// shadowOffsetX: 0,
// shadowColor: 'rgba(0, 0, 0, 0.5)'
// }
}
}
],
emphasis: { //
itemStyle: {
shadowBlur: 10, //
shadowOffsetX: 0, //
shadowColor: 'rgba(0, 0, 0, 0.5)', //
}
}
};
myChart.setOption(option); //
setTimeout(() => {
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: maxIndex
});
}, 500);
// myChart.dispatchAction({
// type: 'highlight', //
// seriesIndex: 0,
// dataIndex: maxIndex
// });
// myChart.dispatchAction({
// type: 'showTip', //
// seriesIndex: 0,
// dataIndex: maxIndex
// });
},
initChart2(url) {
const myChart = echarts.init(document.getElementById('chart3'));
const maxIndex = this.data.findIndex(item => item.value === Math.max(...this.data.map(d => d.value)));
const option = {
tooltip: {
trigger: 'item',
backgroundColor: 'rgba(150, 150, 150, 0.7)', // 0.7
borderWidth: 0,
textStyle: {
color: '#fff' //
}
},
legend: {
orient: 'horizontal',
bottom:10,
data: ['示例1', '示例2', '示例3', '示例4', '示例5'] //
},
color: ['#3C94FE', '#FE9166', '#FAC156', '#22C1C3', '#F0D915', '#6FC364',"#BA9CFF", ],
series: [
{
type: 'pie',
selectedMode: 'single', //
data: this.data.map((item, idx) => ({
...item,
})),
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
],
emphasis: { //
itemStyle: {
shadowBlur: 10, //
shadowOffsetX: 0, //
shadowColor: 'rgba(0, 0, 0, 0.5)', //
borderRadius: 10
}
}
};
myChart.setOption(option); //
setTimeout(() => {
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: maxIndex
});
}, 500);
// myChart.dispatchAction({
// type: 'highlight', //
// seriesIndex: 0,
// dataIndex: maxIndex
// });
// myChart.dispatchAction({
// type: 'showTip', //
// seriesIndex: 0,
// dataIndex: maxIndex
// });
},
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss">
.chart-container {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.chart {
width: 33.3%;
height: 350px;
}
</style>

15
src/views/modules/shequzhili/analysis/index.vue

@ -115,11 +115,11 @@
content="在统计时段内进行“办结”操作的事件数" placement="top">
<img class="img_describe" src="./img/describe1.png" alt="描述图标" />
</el-tooltip></div>
<div class="row_left">{{ analysisList.total}}</div>
<div class="item_content">未办结件数<el-tooltip class="item_content" effect="dark"
<!-- <div class="row_left">{{ analysisList.total}}</div> -->
<!-- <div class="item_content">未办结件数<el-tooltip class="item_content" effect="dark"
content="在统计时段内所有“未办结”状态的事件数" placement="top">
<img class="img_describe" src="./img/describe1.png" alt="描述图标" />
</el-tooltip></div>
</el-tooltip></div> -->
<div class="row_left" style="color:#FF7035 ;">{{ analysisList.total}}</div>
<div class="item_content">按时办结数<el-tooltip class="item_content" effect="dark"
content="在统计时段内进行“办结”操作且未超过(部门)办结时限的事件数" placement="top">
@ -199,6 +199,12 @@
</template>
</el-table-column>
</el-table>
<div style="display: flex;justify-content: space-between;flex-direction:row;">
<h1 style="font-size: 24px; font-weight: bold;"> 政务热线诉求类别占比情况 </h1>
</div>
<div>
<echartsAffairs ></echartsAffairs>
</div>
<div style="display: flex">
<div class="f-align_item " :class="{ active: selectedIndex === index }" v-for="(item, index) in titleList"
:key="item.value" @click="selectItem(index)">
@ -461,8 +467,9 @@ import TableRow from './TableRow.vue';
import mobileList from "./mobileList";
import areaNoSameList from "./areaNoSameList";
import addComplainList from "./addComplainList";
import echartsAffairs from "./cpts/echarts-affairs.vue";
export default {
components: {TableRow,formList,eventInfo,areaSameList,mobileList,areaNoSameList,addComplainList},
components: {TableRow,formList,eventInfo,areaSameList,mobileList,areaNoSameList,addComplainList,echartsAffairs},
data() {
return {
selectedIndex:0,

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

@ -4,12 +4,9 @@
<h3 class="h3-title">
<img src="../../../../../assets/images/index/title-icon-sqzl.png" width="30px" height="30px" alt="" />
事件详情
<el-button type="text" round @click="handleCloseEvent" icon="el-icon-back">返回</el-button>
</h3>
<div class="m-detail-main">
<div class="flex-end">
<el-button size="small" icon="el-icon-printer">打印</el-button>
<el-button size="small" icon="el-icon-download">下载</el-button>
</div>
<div class="m-info">
<div class="flex">
@ -182,6 +179,12 @@ export default {
},
methods: {
// handleClose() {
// if (this.pageTypeCopy === "add") {
// this.eventInfo = this.$refs.ref_add.resetData();
// }
// this.$emit("handleClose");
// },
watchImg(src) {
window.open(src);
},

2
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -23,7 +23,7 @@
:eventDetailData="eventDetailData" :pageType="pageTypeCopy" :replayDetailObj="replayDetailObj"></process-form>
<div class="div-btn">
<el-button size="small" @click="handleClose">关闭</el-button>
<!-- <el-button size="small" @click="handleClose">关闭</el-button> -->
<el-button style="margin-left: 20px" type="primary" size="small"
@click="handleComfirm">{{this.pageType=="assign"||pageTypeCopy === 'resetAssign'?"确认指派":"保存"}}</el-button>
</div>

125
src/views/modules/shequzhili/event/cpts/process-form-assign.vue

@ -35,6 +35,24 @@
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="是否敏感渠道来源件" prop="sensitive" label-width="190px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-switch v-model="formData.sensitive" active-color="#409eff" :active-value=1 :inactive-value=0
inactive-color="#dcdfe6">
</el-switch>
</div>
</el-form-item>
<el-form-item label="来源渠道" prop="messageSource" label-width="190px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.messageSource" clearable class="u-item-width-normal">
<el-option v-for="item in sourceList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<div v-if="keyword" style="font-size: 11px;">(问题描述包含关键词“<span style="color: red;font-size: 11px;">{{ keyword }}</span>为您自动识别该件为敏感渠道来源件)</div>
</div>
</el-form-item>
<el-form-item label="“联系当事人是否需要录音" prop="voiceNeedFlag" label-width="190px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
@ -71,6 +89,26 @@
@input="handelInputContent"></el-input>
</div>
</el-form-item>
<el-form-item label="是否解决" prop="confirmSolved" label-width="190px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.confirmSolved" clearable class="item_width_4">
<el-option v-for="item in confirmSolved" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item label="是否满意" prop="satisfactionResult" label-width="190px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.satisfactionResult" clearable class="item_width_4">
<el-option v-for="item in satisfactionResult" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<div v-if="satisfied" style="font-size: 11px;">(转办意见包含关键词““<span style="color: red;font-size: 11px;">{{ satisfied }}</span>为您自动识别该件未解决不满意)</div>
</div>
</el-form-item>
<el-form-item label="办理要求" prop="handlingReq" label-width="190px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
@ -79,8 +117,8 @@
@input="handelInputHandlingReq"></el-input>
</div>
</el-form-item>
<el-form-item label="" label-width="190px" :class="{ 'form-item': source === 'visiual' }" v-if="sysAdvancedList.smsFlag"
style="display: block">
<el-form-item label="" label-width="190px" :class="{ 'form-item': source === 'visiual' }"
v-if="sysAdvancedList.smsFlag" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-checkbox v-model="formData.sendMsg" :true-label="1" :false-label="0">短信通知部门负责人</el-checkbox>
</div>
@ -96,11 +134,64 @@ let loading; // 加载动画
export default {
data() {
return {
satisfied:"",
keyword:"",
sourceList: [
{
value: "来电",
label: "来电",
},
{
value: "信箱",
label: "信箱",
},
{
value: "青岛来电",
label: "青岛来电",
},
{
value: "青岛短信",
label: "青岛短信",
},
{
value: "青岛信箱",
label: "青岛信箱",
},
{
value: "青岛网站",
label: "青岛网站",
},
{
value: "青岛微信",
label: "青岛微信",
},
{
value: "青岛手机APP",
label: "青岛手机APP",
},
{
value: "青岛网络舆情",
label: "青岛网络舆情",
},
{
value: "青岛人民网",
label: "青岛人民网",
},
{
value: "青岛人民来信",
label: "青岛人民来信",
},
],
sysAdvancedList:{},
isCascaderDisabled:false,
customerId: localStorage.getItem("customerId"),
confirmSolved: [{ label: '问题未解决', value: 0 }, { label: '问题已解决', value: 1 }],
satisfactionResult: [{ label: '非常满意', value: 'verygood' }, { label: '满意', value: 'good' }, { label: '不满意', value: 'bad' }, { label: '非常不满意', value: 'verybad' }],
formData: {
satisfactionResult:"",//
confirmSolved:"",//
messageSource:"",
sensitive:0,
voiceNeedFlag:1,
videoNeedFlag:0,//10
operationType: "5", //[0: 5 6]
@ -227,6 +318,34 @@ export default {
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
this.formData.handlingReq = this.eventDetailCopy.handlingReq;
console.log(this.eventDetailCopy,"敏感渠道");
const keywords = ["中国政府网", "互联网督查", "问政山东", "问政青岛"];
const satisfied = ["未解决", "没解决", "没有解决", "尚未解决", "不满意", "不满"];
keywords.forEach(keyword => {
console.log(keyword,"dskjfskdljfsd");
if (this.eventDetailCopy.eventContent.includes(keyword)) {
this.formData.sensitive = 1
this.keyword = keyword
this.$set(this.dataRule, 'messageSource', [{ required: true, message: "", trigger: "blur" }])
this.dataRule.messageSource = [
{ required: true, message: "来源渠道不为空", trigger: "blur" }
]
} else {
}
});
satisfied.forEach(keyword => {
if (this.eventDetailCopy.transferAdvice.includes(keyword)) {
console.log(keyword,"dslkjfklsdf");
this.satisfied = this.satisfied ? this.satisfied + "," + keyword: keyword;
console.log( this.satisfied,"dslkjfklsdf");
} else {
}
});
this.formData.transferAdvice = this.eventDetailCopy.transferAdvice;
if (this.eventDetailCopy.timeLimit) {
if (this.sysAdvancedList.resolveLimitFlag==1) {

7
src/views/modules/workSys/sysConfigure/cpts/custom-type.vue

@ -2,7 +2,6 @@
<div class="g-main">
<div class="m-table">
<div class="u-table-btn2">
<div class="u-table-btn2-left">
<el-button style=""
size="small"
@ -14,7 +13,6 @@
class="diy-button--blue"
icon="el-icon-plus"
@click="handleAdd({},'add')">新增分类</el-button>
</div>
</div>
@ -69,7 +67,7 @@
top="5vh"
class="dialog-h"
@closed="diaClose">
<type-add > </type-add>
</el-dialog>
</div>
</template>
@ -79,6 +77,7 @@
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
import axios from 'axios'
import typeAdd from './type-add.vue'
let loading //
export default {
data () {
@ -101,7 +100,7 @@
console.log("dsfjsdklf");
this.getCategoryTree()
},
components: {typeAdd },
methods: {
//
async getCategoryTree() {

223
src/views/modules/workSys/sysConfigure/cpts/type-add.vue

@ -0,0 +1,223 @@
<template >
<div class="g-main">
</div>
</template>
<script>
import { requestPost,requestGet } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
import axios from 'axios'
let loading //
export default {
data () {
return {
searchHeight: 0,//,
pageNo:0,
pageSize:20,
total:0,
formTitle:"",
formShow:false,
tableData: [],
tableList:[]
}
},
activated () {
},
async mounted () {
console.log("dsfjsdklf");
this.getCategoryTree()
},
methods: {
//
async getCategoryTree() {
const url = "/governance/icEvent/getCategoryTree";
let param = {
endDate : "2025-12-31 23:59:59",
startDate : "2025-01-01 00:00:00",
usableFlag: true
}
const { data, code, msg } = await requestPost(url, param);
if (code === 0) {
this.tableList = data
// this.tableList=this.flattenTree(data);
console.log(this.tableList);
console.log(this.tableList, "lksdjfklj s");
} else {
this.$message.error(msg);
}
},
handlereturn(){
this.$emit('close')
},
async loadTable () {
const url = "/governance/commonServiceType/treeList"
let {data,msg,code } = await requestGet(url)
if(code == 0){
this.tableData = data
}else{
this.$message.error(msg)
}
},
diaClose () {
this.$refs.ref_form.resetData()
this.formShow = false
},
addFormOk () {
this.formShow = false
this.loadTable()
},
addFormCancle () {
this.formShow = false
},
async handleDetail (row) {
this.detailShow = true
const _data = await this.detail(row)
this.$nextTick(() => {
this.$refs.ref_form_detail.initForm(_data)
})
},
handleAdd (row,type) {
if(type=="add"){
console.log(row.id);
this.formTitle = '新增分类'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type, row)
})
} else if(type=="add0"){
this.formTitle = '新增分类'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type, row)
})
} else if (type == 'edit') {
this.formTitle = '修改分类'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type, row)
})
}
},
selectAll (selection) {
this.selection = selection
},
selectionChange (selection) {
this.selection = selection
},
async handleDelete (row) {
this.$confirm("确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteDemand(row)
})
.catch(err => {
if (err == "cancel") {
this.$message({
type: "info",
message: "已取消删除"
});
}
});
},
async deleteDemand (row) {
const url = `/governance/commonServiceType/delete/${row.id}`
const { data, code, msg } = await requestPost(url)
if (code === 0) {
this.$message({
type: "success",
message: "删除成功"
});
this.loadTable()
} else if (code > 8000) {
this.$message({
message: msg,
duration: 0
})
this.loadTable()
} else {
this.$message.error(msg)
}
},
handleDiyClose () {
this.diyDialog = false;
},
handleClose (done) {
this.diyDialog = false
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
console.log(this.searchHeight)
let height = this.searchHeight + 270
return this.$store.state.inIframe ? this.clientHeight - height + this.iframeHeight : this.clientHeight - height
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/list-main.scss";
</style>
<style >
.el-message.is-closable .el-message__content {
line-height: 20px;
}
</style>
Loading…
Cancel
Save