21f1641f by renchao@pashanhoo.com

style:配置

2 parents 5562fbe1 35abf7c0
Showing 39 changed files with 1563 additions and 1100 deletions
###
# @Description:
# @Autor: renchao
# @LastEditTime: 2023-05-12 13:23:31
###
# just a flag
# @LastEditTime: 2023-05-15 10:37:45
ENV = 'development'
NODE_ENV=development
# base api
VUE_APP_BASE_API = '/api'
# 开发环境
VUE_APP_API_BASE_URL = 'http://192.168.2.89:8027'
VUE_APP_API_BASE_URL = 'http://192.168.2.38:8026'
......
/*
* @Description: 干部查询
* @Autor:
* @LastEditTime: 2023-05-12 16:20:40
*/
/* 引入axios请求文件 */
import request from '@/utils/request'
/* 引入配置 */
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
const urlHeader = SERVER.SERVERAPI + '/rest/searchRecord'
/**
* @description: 获取列表
* @param {*}
* @author:
*/
export function getSearchRecordList (data) {
return request({
url: urlHeader + '/getList',
method: 'post',
data
})
}
/**
* @description: 新增
* @param {*} data
* @author:
*/
export function saveSearchRecord (data) {
return request({
url: urlHeader + '/search',
method: 'post',
data
})
}
/**
* @description: 编辑
* @param {*} id
* @author:
*/
export function editSearchRecord (id) {
return request({
url: urlHeader + '/' + id,
method: 'get'
})
}
......@@ -52,19 +52,19 @@ export const constantRoutes = [
export const asyncRoutes = [
// 区县接入
{
path: '/jsbwcx',
path: '/qxjr',
component: Layout,
children: [
// {
// path: 'xxcx',
// component: () => import('@/views/gbxxcx/index'),
// name: 'xxcx',
// meta: { title: '信息查询', icon: 'xxcx' }
// },
{
path: 'qxjr',
component: () => import('@/views/jsbwcx/index'),
name: 'qxjr',
{
path: 'gbxxcx',
component: () => import('@/views/qxjr/gbxxcx/index'),
name: 'gbxxcx',
meta: { title: '信息查询', icon: 'zsgl' }
},
{
path: 'jsbwcx',
component: () => import('@/views/qxjr/jsbwcx/index'),
name: 'jsbwcx',
meta: { title: '区县接入', icon: 'zsgl' }
}
]
......
......@@ -3,9 +3,7 @@
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="80px">
<!-- 判断进入监管还是上报系统 -->
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<!-- <el-row>
<el-col :span="5">
<el-form-item label="行政区">
......
......@@ -3,9 +3,7 @@
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="120px">
<!-- 判断进入监管还是上报系统 -->
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -3,9 +3,7 @@
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="150px">
<!-- 判断进入监管还是上报系统 -->
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="5">
<el-form-item label="行政区" label-width="100px">
......
......@@ -2,9 +2,7 @@
<div class="fdcqdz from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="120px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="fdcqqfsyq from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="5">
<el-form-item label="业务号">
......
......@@ -2,9 +2,7 @@
<div class="fdcqyz from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="120px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="gzwsyq from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="105px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="hysyq from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="105px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="jsydzjdsyq from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="120px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="lq from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="105px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="105px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="tdsyq from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="120px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -2,9 +2,7 @@
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="110px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区" label-width="106px">
......
......@@ -2,9 +2,7 @@
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="105px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="5">
<el-form-item label="行政区" label-width="80px">
......
......@@ -2,9 +2,7 @@
<div class="cancellationReg from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="105px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="6">
<el-form-item label="行政区">
......
......@@ -4,9 +4,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="4">
<el-form-item label="开始日期" prop="startTime" class="d-flex">
......@@ -39,300 +37,300 @@
</div>
</template>
<script>
import { mapGetters } from "vuex";
import efficient from "@/api/efficient";
import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
export default {
name: "jktj",
data () {
return {
// 开始日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.form.endTime) {
return time.getTime() > new Date(this.form.endTime).getTime();
}
import { mapGetters } from "vuex";
import efficient from "@/api/efficient";
import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
export default {
name: "jktj",
data () {
return {
// 开始日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.form.endTime) {
return time.getTime() > new Date(this.form.endTime).getTime();
}
},
},
},
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.form.startTime) {
return time.getTime() < new Date(this.form.startTime).getTime();
}
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.form.startTime) {
return time.getTime() < new Date(this.form.startTime).getTime();
}
},
},
},
form: {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
},
// 搜索表单
pieChartsData: [],
};
},
created () { },
mounted () {
this.getProcessCounts();
},
computed: {
...mapGetters(["dicData"]),
},
methods: {
endTimeChange (val) {
this.form.endTime = timeFormat(new Date(val), true);
},
//查询各区县办件数量
async getProcessCounts () {
this.pieChartsData = [];
let { result: res } = await efficient.getProcessCounts(
this.form.startTime,
this.form.endTime
);
//获取图表配置项需要的数据
res.length > 0 &&
res.forEach((item) => {
this.pieChartsData.push({
//登记数量
value: item.counts,
//登记数量
name: item.recTypeName,
//登记类型代码
groupId: item.recType,
});
});
res.length &&
this.$nextTick(() => {
// 初始化图表
this.echartInit();
this.barChartInit(res[0].recType);
});
},
// 重置
resetForm () {
this.form = {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
form: {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
},
// 搜索表单
pieChartsData: [],
};
},
created () { },
mounted () {
this.getProcessCounts();
},
//玫瑰图初始化
echartInit () {
let _this = this;
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
myChart.setOption({
legend: {
bottom: "-1%",
left: "center",
textStyle: {
color: this.BASE_API.echartTextColor,
},
},
tooltip: {
trigger: "item",
formatter: "{b} : {c}",
},
label: {
color: 'inherit',
},
series: [
{
name: "各业务类型办理数量",
type: "pie",
radius: [0, 250],
center: ["50%", "32%"],
roseType: "area",
itemStyle: {
borderRadius: 8,
computed: {
...mapGetters(["dicData"]),
},
methods: {
endTimeChange (val) {
this.form.endTime = timeFormat(new Date(val), true);
},
//查询各区县办件数量
async getProcessCounts () {
this.pieChartsData = [];
let { result: res } = await efficient.getProcessCounts(
this.form.startTime,
this.form.endTime
);
//获取图表配置项需要的数据
res.length > 0 &&
res.forEach((item) => {
this.pieChartsData.push({
//登记数量
value: item.counts,
//登记数量
name: item.recTypeName,
//登记类型代码
groupId: item.recType,
});
});
res.length &&
this.$nextTick(() => {
// 初始化图表
this.echartInit();
this.barChartInit(res[0].recType);
});
},
// 重置
resetForm () {
this.form = {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
};
this.getProcessCounts();
},
//玫瑰图初始化
echartInit () {
let _this = this;
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
myChart.setOption({
legend: {
bottom: "-1%",
left: "center",
textStyle: {
color: this.BASE_API.echartTextColor,
},
data: this.pieChartsData,
},
],
});
//添加点击事件
myChart.on("click", function (param) {
_this.barChartInit(param.data.groupId);
});
//默认选中第一个
let index = 1;
myChart.dispatchAction({
type: "highlight",
seriesIndex: 0,
dataIndex: 0,
});
myChart.on("mouseover", function (e) {
if (e.dataIndex != index) {
myChart.dispatchAction({
type: "downplay",
seriesIndex: 0,
dataIndex: index,
});
}
});
myChart.on("mouseout", function (e) {
index = e.dataIndex;
tooltip: {
trigger: "item",
formatter: "{b} : {c}",
},
label: {
color: 'inherit',
},
series: [
{
name: "各业务类型办理数量",
type: "pie",
radius: [0, 250],
center: ["50%", "32%"],
roseType: "area",
itemStyle: {
borderRadius: 8,
},
data: this.pieChartsData,
},
],
});
//添加点击事件
myChart.on("click", function (param) {
_this.barChartInit(param.data.groupId);
});
//默认选中第一个
let index = 1;
myChart.dispatchAction({
type: "highlight",
seriesIndex: 0,
dataIndex: e.dataIndex,
dataIndex: 0,
});
});
},
//柱图初始化
async barChartInit (recType) {
//请求recType对应业务的各区县数据
let { result: res } = await efficient.getProcessDays(
recType,
this.form.startTime,
this.form.endTime
);
//行政区数组
let xzqArr = [];
this.dicData["A20"].forEach((item) => {
xzqArr.push(item.DNAME);
let tempArr = res.filter((i) => {
return i.qxdm == item.DCODE;
myChart.on("mouseover", function (e) {
if (e.dataIndex != index) {
myChart.dispatchAction({
type: "downplay",
seriesIndex: 0,
dataIndex: index,
});
}
});
if (tempArr.length) {
item.avgDay = tempArr[0].avgDay;
item.maxDay = tempArr[0].maxDay;
item.minDay = tempArr[0].minDay;
} else {
item.avgDay = 0;
item.maxDay = 0;
item.minDay = 0;
}
});
//补全无数据行政区后的结果数组
let dealArr = [...this.dicData["A20"]];
let myChartBar = this.$echarts.init(
document.getElementById("myChart-bar")
);
myChartBar.setOption({
color: ["#00bdb1", "#ff6e6e", "#3f99ff", "#ffaf48"],
tooltip: {
show: true,
trigger: "axis",
textStyle: {
fontSize: 16, // 字体大小
},
extraCssText: "width:220px;height:160px;", // 背景色
},
grid: {
top: 120,
},
legend: {
data: ["最短用时", "平均用时", "最长用时"],
top: 20,
textStyle: {
myChart.on("mouseout", function (e) {
index = e.dataIndex;
myChart.dispatchAction({
type: "highlight",
seriesIndex: 0,
dataIndex: e.dataIndex,
});
});
},
//柱图初始化
async barChartInit (recType) {
//请求recType对应业务的各区县数据
let { result: res } = await efficient.getProcessDays(
recType,
this.form.startTime,
this.form.endTime
);
//行政区数组
let xzqArr = [];
this.dicData["A20"].forEach((item) => {
xzqArr.push(item.DNAME);
let tempArr = res.filter((i) => {
return i.qxdm == item.DCODE;
});
if (tempArr.length) {
item.avgDay = tempArr[0].avgDay;
item.maxDay = tempArr[0].maxDay;
item.minDay = tempArr[0].minDay;
} else {
item.avgDay = 0;
item.maxDay = 0;
item.minDay = 0;
}
});
//补全无数据行政区后的结果数组
let dealArr = [...this.dicData["A20"]];
let myChartBar = this.$echarts.init(
document.getElementById("myChart-bar")
);
myChartBar.setOption({
color: ["#00bdb1", "#ff6e6e", "#3f99ff", "#ffaf48"],
tooltip: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
xAxis: [
{
type: "category",
data: xzqArr,
axisLabel: {
interval: 0,
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
trigger: "axis",
textStyle: {
fontSize: 16, // 字体大小
},
extraCssText: "width:220px;height:160px;", // 背景色
},
],
yAxis: [
{
type: "value",
name: "单位:天",
nameTextStyle: {
color: this.BASE_APIechartTextColor,
grid: {
top: 120,
},
legend: {
data: ["最短用时", "平均用时", "最长用时"],
top: 20,
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
axisLabel: {
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
},
xAxis: [
{
type: "category",
data: xzqArr,
axisLabel: {
interval: 0,
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
},
],
yAxis: [
{
type: "value",
name: "单位:天",
nameTextStyle: {
color: this.BASE_APIechartTextColor,
fontSize: "16",
},
axisLabel: {
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
},
],
label: {
color: 'inherit',
},
],
label: {
color: 'inherit',
},
series: [
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
series: [
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
barMaxWidth: "60",
name: "最短用时",
data: dealArr.map((item) => item.minDay),
},
barMaxWidth: "60",
name: "最短用时",
data: dealArr.map((item) => item.minDay),
},
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
barMaxWidth: "60",
name: "平均用时",
data: dealArr.map((item) => item.avgDay),
},
barMaxWidth: "60",
name: "平均用时",
data: dealArr.map((item) => item.avgDay),
},
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
barMaxWidth: "60",
name: "最长用时",
data: dealArr.map((item) => item.maxDay),
},
barMaxWidth: "60",
name: "最长用时",
data: dealArr.map((item) => item.maxDay),
},
],
});
],
});
},
},
},
};
};
</script>
<style scoped lang="scss">
.jktjDetail {
flex-direction: column;
.jktjDetail {
flex-direction: column;
.rows {
margin-left: 100px;
}
.rows {
margin-left: 100px;
}
.center {
line-height: 50vh;
text-align: center;
color: #b6b5b5;
.center {
line-height: 50vh;
text-align: center;
color: #b6b5b5;
}
}
}
</style>
......
......@@ -4,9 +4,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="4">
<el-form-item label="行政区" class="d-flex">
......@@ -47,256 +45,256 @@
</template>
<script>
import { mapGetters } from "vuex";
import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
import business from "@/api/business";
export default {
name: "jktj",
data () {
return {
// 开始日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.form.endTime) {
return time.getTime() > new Date(this.form.endTime).getTime();
}
},
},
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.form.startTime) {
return time.getTime() < new Date(this.form.startTime).getTime();
}
},
},
recTypeArr: [],
chartData: [],
// 搜索表单
form: {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: "",
},
interval: 50
};
},
mounted () {
// 查询成功率
this.getSuucessRate();
},
computed: {
...mapGetters(["dicData"]),
},
methods: {
endTimeChange (val) {
this.form.endTime = timeFormat(new Date(val), true)
},
async getSuucessRate () {
this.recTypeArr = [];
this.chartData = [];
let { result: res } = await business.getSuucessRate(
this.form.startTime,
this.form.endTime,
this.form.qxdm
);
this.chartData = res;
let maxData = Math.max.apply(Math, this.chartData.map(item => { return item.failure }))
this.interval = Math.ceil(maxData / 10)
//行政区代码过滤
res.length > 0 &&
res.forEach((item) => {
this.recTypeArr.push(item.recTypeName);
});
this.$nextTick(() => {
// 初始化图表
this.chartData.length && this.echartInit();
});
},
// 重置
resetForm () {
this.form = {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: "",
};
this.getSuucessRate();
},
echartInit () {
let _this = this;
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
myChart.setOption({
color: ["#13E5FF", "#C99E68", "#E873B2", "#ffaf48"],
tooltip: {
trigger: "axis",
formatter: '{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%',
axisPointer: {
type: "cross",
crossStyle: {
color: this.BASE_API.echartTextColor,
},
import { mapGetters } from "vuex";
import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
import business from "@/api/business";
export default {
name: "jktj",
data () {
return {
// 开始日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.form.endTime) {
return time.getTime() > new Date(this.form.endTime).getTime();
}
},
},
legend: {
data: ["成功", "失败", "成功率"],
top: '16',
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.form.startTime) {
return time.getTime() < new Date(this.form.startTime).getTime();
}
},
},
label: {
color: 'inherit',
recTypeArr: [],
chartData: [],
// 搜索表单
form: {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: "",
},
xAxis: [
{
type: "category",
data: _this.recTypeArr,
interval: 50
};
},
mounted () {
// 查询成功率
this.getSuucessRate();
},
computed: {
...mapGetters(["dicData"]),
},
methods: {
endTimeChange (val) {
this.form.endTime = timeFormat(new Date(val), true)
},
async getSuucessRate () {
this.recTypeArr = [];
this.chartData = [];
let { result: res } = await business.getSuucessRate(
this.form.startTime,
this.form.endTime,
this.form.qxdm
);
this.chartData = res;
let maxData = Math.max.apply(Math, this.chartData.map(item => { return item.failure }))
this.interval = Math.ceil(maxData / 10)
//行政区代码过滤
res.length > 0 &&
res.forEach((item) => {
this.recTypeArr.push(item.recTypeName);
});
this.$nextTick(() => {
// 初始化图表
this.chartData.length && this.echartInit();
});
},
// 重置
resetForm () {
this.form = {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: "",
};
this.getSuucessRate();
},
echartInit () {
let _this = this;
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
myChart.setOption({
color: ["#13E5FF", "#C99E68", "#E873B2", "#ffaf48"],
tooltip: {
trigger: "axis",
formatter: '{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%',
axisPointer: {
type: "shadow",
},
axisLabel: {
textStyle: {
show: true,
type: "cross",
crossStyle: {
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
formatter: function (val) {
let c = document.createElement("canvas");
const ctx = c.getContext("2d");
const arr = val.split("");
arr
.map((item) => ctx.measureText(item).width)
.reduce((pre, next, index) => {
const nLen = pre + next;
if (nLen > 40) {
arr[index - 1] += "...";
return next;
} else {
return nLen;
}
});
c = null;
let ind = arr.findIndex((i) => {
return i.indexOf("...") > -1;
});
let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr;
return newArr.join("");
},
},
},
],
yAxis: [
{
type: "value",
name: "数量/个",
nameTextStyle: {
legend: {
data: ["成功", "失败", "成功率"],
top: '16',
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
// interval: this.interval,
axisLabel: {
formatter: "{value}",
textStyle: {
show: true,
},
label: {
color: 'inherit',
},
xAxis: [
{
type: "category",
data: _this.recTypeArr,
axisPointer: {
type: "shadow",
},
axisLabel: {
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
formatter: function (val) {
let c = document.createElement("canvas");
const ctx = c.getContext("2d");
const arr = val.split("");
arr
.map((item) => ctx.measureText(item).width)
.reduce((pre, next, index) => {
const nLen = pre + next;
if (nLen > 40) {
arr[index - 1] += "...";
return next;
} else {
return nLen;
}
});
c = null;
let ind = arr.findIndex((i) => {
return i.indexOf("...") > -1;
});
let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr;
return newArr.join("");
},
},
},
],
yAxis: [
{
type: "value",
name: "数量/个",
nameTextStyle: {
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
// interval: this.interval,
axisLabel: {
formatter: "{value}",
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
},
},
{
type: "value",
name: "成功率",
nameTextStyle: {
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
splitNumber: 2,
axisLabel: {
formatter: "{value} %",
textStyle: {
show: true,
{
type: "value",
name: "成功率",
nameTextStyle: {
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
splitNumber: 2,
axisLabel: {
formatter: "{value} %",
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
},
},
],
series: [
{
name: "成功",
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
],
series: [
{
name: "成功",
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
barMaxWidth: '60',
data: this.chartData.map((item) => {
return item.success;
}),
},
barMaxWidth: '60',
data: this.chartData.map((item) => {
return item.success;
}),
},
{
name: "失败",
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
{
name: "失败",
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
barMaxWidth: '60',
data: this.chartData.map((item) => {
return item.failure;
}),
},
barMaxWidth: '60',
data: this.chartData.map((item) => {
return item.failure;
}),
},
{
name: "成功率",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
{
name: "成功率",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
type: "line",
barMaxWidth: '60',
yAxisIndex: 1,
data: this.chartData.map((item) => {
return item.rate;
}),
},
type: "line",
barMaxWidth: '60',
yAxisIndex: 1,
data: this.chartData.map((item) => {
return item.rate;
}),
},
],
});
],
});
},
},
},
};
};
</script>
<style scoped lang="scss">
.jktjDetail {
flex-direction: column;
.jktjDetail {
flex-direction: column;
.rows {
margin-left: 100px;
}
.rows {
margin-left: 100px;
}
.center {
line-height: 50vh;
text-align: center;
color: #b6b5b5;
.center {
line-height: 50vh;
text-align: center;
color: #b6b5b5;
}
}
}
</style>
......
......@@ -4,9 +4,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="接收日期" prop="startTime">
......
......@@ -4,9 +4,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="接收日期" prop="startTime">
......
......@@ -14,9 +14,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="接收日期" prop="startTime">
......
......@@ -4,9 +4,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="4">
<el-form-item label="行政区" class="d-flex">
......@@ -46,184 +44,184 @@
</div>
</template>
<script>
import { mapGetters } from "vuex";
import efficient from "@/api/efficient";
import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
export default {
name: "jktj",
data () {
return {
// 开始日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.form.endTime) {
return time.getTime() > new Date(this.form.endTime).getTime();
}
import { mapGetters } from "vuex";
import efficient from "@/api/efficient";
import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
export default {
name: "jktj",
data () {
return {
// 开始日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.form.endTime) {
return time.getTime() > new Date(this.form.endTime).getTime();
}
},
},
},
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.form.startTime) {
return time.getTime() < new Date(this.form.startTime).getTime();
}
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.form.startTime) {
return time.getTime() < new Date(this.form.startTime).getTime();
}
},
},
},
// 搜索表单
valueTime: "",
// 搜索表单
form: {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: "",
},
chartData: []
};
},
mounted () {
// 查询业务量
this.getProcessCounts();
},
computed: {
...mapGetters(["dicData"]),
},
methods: {
endTimeChange (val) {
this.form.endTime = timeFormat(new Date(val), true)
},
async getProcessCounts () {
this.chartData = [];
let { result: res } = await efficient.getProcessCounts(
this.form.startTime,
this.form.endTime,
this.form.qxdm
);
//获取图表配置项需要的数据
this.chartData = res;
this.$nextTick(() => {
// 初始化图表
this.chartData.length && this.echartInit(this.chartData)
});
},
// 重置
resetForm () {
this.form = {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: ""
// 搜索表单
valueTime: "",
// 搜索表单
form: {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: "",
},
chartData: []
};
},
mounted () {
// 查询业务量
this.getProcessCounts();
},
//图表渲染
echartInit (chartArr) {
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
myChart.setOption({
color: ["#13E5FF"],
tooltip: {
show: true,
trigger: "axis",
textStyle: {
fontSize: 16, // 字体大小
computed: {
...mapGetters(["dicData"]),
},
methods: {
endTimeChange (val) {
this.form.endTime = timeFormat(new Date(val), true)
},
async getProcessCounts () {
this.chartData = [];
let { result: res } = await efficient.getProcessCounts(
this.form.startTime,
this.form.endTime,
this.form.qxdm
);
//获取图表配置项需要的数据
this.chartData = res;
this.$nextTick(() => {
// 初始化图表
this.chartData.length && this.echartInit(this.chartData)
});
},
// 重置
resetForm () {
this.form = {
startTime: getFirstDayOfSeason(),
endTime: timeFormat(new Date(), true),
qxdm: ""
};
this.getProcessCounts();
},
//图表渲染
echartInit (chartArr) {
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
myChart.setOption({
color: ["#13E5FF"],
tooltip: {
show: true,
trigger: "axis",
textStyle: {
fontSize: 16, // 字体大小
},
},
},
grid: {
top: 120,
bottom: 100,
},
label: {
color: 'inherit',
},
xAxis: [
{
type: "category",
data: chartArr.map(item => item.recTypeName),
axisLabel: {
interval: 0,
rotate: 40,
formatter: function (val) {
let c = document.createElement("canvas");
const ctx = c.getContext("2d");
const arr = val.split("");
arr
.map((item) => ctx.measureText(item).width)
.reduce((pre, next, index) => {
const nLen = pre + next;
if (nLen > 60) {
arr[index - 1] += "...";
return next;
} else {
return nLen;
}
grid: {
top: 120,
bottom: 100,
},
label: {
color: 'inherit',
},
xAxis: [
{
type: "category",
data: chartArr.map(item => item.recTypeName),
axisLabel: {
interval: 0,
rotate: 40,
formatter: function (val) {
let c = document.createElement("canvas");
const ctx = c.getContext("2d");
const arr = val.split("");
arr
.map((item) => ctx.measureText(item).width)
.reduce((pre, next, index) => {
const nLen = pre + next;
if (nLen > 60) {
arr[index - 1] += "...";
return next;
} else {
return nLen;
}
});
c = null;
let ind = arr.findIndex((i) => {
return i.indexOf("...") > -1;
});
c = null;
let ind = arr.findIndex((i) => {
return i.indexOf("...") > -1;
});
let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr;
return newArr.join("");
},
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr;
return newArr.join("");
},
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
},
},
],
yAxis: [
{
type: "value",
name: "数量/个",
nameTextStyle: {
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
axisLabel: {
textStyle: {
show: true,
],
yAxis: [
{
type: "value",
name: "数量/个",
nameTextStyle: {
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
axisLabel: {
textStyle: {
show: true,
color: this.BASE_API.echartTextColor,
fontSize: "16",
},
},
},
},
],
],
series: [
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
series: [
{
type: "bar",
//显示数值
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: "top", //在上方显示
},
},
},
barMaxWidth: '60',
data: chartArr.map(item => item.counts),
},
barMaxWidth: '60',
data: chartArr.map(item => item.counts),
},
],
});
],
});
},
},
},
};
};
</script>
<style scoped lang="scss">
.jktjDetail {
flex-direction: column;
.jktjDetail {
flex-direction: column;
.rows {
margin-left: 100px;
}
.rows {
margin-left: 100px;
}
.center {
line-height: 50vh;
text-align: center;
color: #b6b5b5;
.center {
line-height: 50vh;
text-align: center;
color: #b6b5b5;
}
}
}
</style>
......
<template>
<!-- 接收报文查询 -->
<div class="reportLog from-clues dialogCon">
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="权利人名称" prop="qlrmc">
<el-input v-model.trim="form.qlrmc" clearable class="width100" placeholder="权利人名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件号" prop="zjh">
<el-input v-model.trim="form.zjh" clearable class="width100" placeholder="证件号"></el-input>
</el-form-item>
</el-col>
<!-- 按钮操作 -->
<el-col :span="6" class="btnColRight">
<el-form-item>
<btn nativeType="cx" v-if="Object.keys(dataDetail).length == 0" @click="handleSearchResult">查询</btn>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 列表区域 -->
<div class="from-clues-content">
<lb-table ref="table" :page-size="pageData.size" :calcHeight="300" :current-page.sync="pageData.current" :total="tableData.total"
@size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
:data="tableData.data">
</lb-table>
</div>
</div>
</template>
<script>
// 接收报文查询
// 引入表格头部数据
import data from "../data";
// 引入table混入方法
import tableMixin from "@/mixins/tableMixin.js";
import { saveSearchRecord } from "@/api/searchRecord.js";
//引入日期处理方法
import { timeFormat } from "@/utils/operation";
export default {
name: "jsbwcx",
mixins: [tableMixin],
props: {
dataDetail: {
type: Object,
default: function () { return {} }
}
},
watch: {
dataDetail: {
handler (newName, oldName) {
let _this = this
this.$nextTick(() => {
_this.tableData.data = JSON.parse(newName.result)
_this.form.qlrmc = newName.zjmc ? newName.zjmc : ""
_this.form.zjh = newName.zjh ? newName.zjh : ""
})
},
immediate: true,
deep: true
}
},
data () {
return {
pickerOptionsStart: {
disabledDate: (time) => {
let endDateVal = this.form.receiveEndTime;
if (endDateVal) {
return (
time.getTime() >=
new Date(endDateVal).getTime()
);
}
},
},
pickerOptionsEnd: {
disabledDate: (time) => {
let beginDateVal = this.form.receiveStartTime;
if (beginDateVal) {
return (
time.getTime() <
new Date(beginDateVal).getTime()
);
}
},
},
// 表格数据
form: {
qlrmc: "", // 行政区
zjh: "" // 开始日期
},
// 校验规则
rules: {
pcode: [{ required: true, message: "请选择行政区", trigger: "change" }],
startTime: [
{ required: true, message: "请选择开始日期", trigger: "change" },
],
endTime: [
{ required: true, message: "请选择结束日期", trigger: "change" },
],
bdcdyh: [
{ required: true, message: "不动产单元号", trigger: "change" },
],
ywmc: [{ required: true, message: "业务名称", trigger: "change" }],
jcjg: [{ required: true, message: "检查结果", trigger: "change" }],
rkjg: [{ required: true, message: "入库结果", trigger: "change" }],
},
// 表格数据
tableData: {
// 表格头部
columns: [
{
label: "序号",
type: "index",
width: "50",
index: this.indexMethod,
},
{
prop: 'bdcdyh',
label: '不动产单元号',
width: 200
},
{
prop: "bdcqzh",
label: "不动产权证号",
width: 160,
},
{
prop: 'djsj',
label: '登记时间',
width: 200
},
{
prop: "fdzl",
label: "坐落",
width: 160,
},
{
prop: 'ghyt',
label: '用途',
width: 200
},
{
prop: "gyqk",
label: "共有情况",
width: 160,
},
{
prop: 'jzmj',
label: '建筑面积',
width: 100
},
{
prop: "qlrmc",
label: "权利人",
width: 100,
},
{
prop: "zjh",
label: "证件号",
width: 260,
},
],
// 表格列表数据
total: 0,
data: [],
},
// 分页
pageData: {
total: 0,
pageSize: 10,
current: 1
},
title: "",
};
},
methods: {
//截止日期变化
endTimeChange (val) {
this.form.receiveEndTime = timeFormat(new Date(val), true)
},
// 初始化数据
queryClickSearch () {
saveSearchRecord({ ...this.form, ...this.formData }).then(
(res) => {
if (res.code === 200) {
this.tableData.data = res.result
} else {
this.$message.warning(res.message)
}
}
)
},
// 重置
resetForm () {
this.$refs.ruleForm.resetFields();
this.form.currentPage = 1
},
featchData () { },
handleSearchResult () {
this.queryClickSearch()
},
// 详情
handleDetails (row) {
}
}
}
</script>
<style scoped lang="scss">
.lastdom:nth-child(3) {
margin-bottom: 0px;
}
.from-clues-content {
background: none;
padding: 0;
}
</style>
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-17 15:10:43
*/
import filter from '@/utils/filter.js'
class data extends filter {
constructor() {
super()
}
columns () {
return [
{
prop: 'name',
label: '查询人员',
},
{
prop: 'zjh',
label: '查询证件号',
},
{
prop: "zjmc",
label: "查询证件名称",
},
{
prop: "createtime",
label: "查询时间",
},
// {
// prop: "result",
// label: "查询结果",
// }
]
}
}
export default new data()
<template>
<!-- 接收报文查询 -->
<div class="reportLog from-clues">
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="查询人员" prop="qxdm">
<el-input v-model.trim="form.name" clearable class="width100" placeholder="查询人员"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件号" prop="zjh">
<el-input v-model.trim="form.zjh" clearable class="width100" placeholder="不动产单元号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="查询证件名称" prop="zjmc">
<el-input v-model.trim="form.zjmc" clearable class="width100" placeholder="业务流水号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" class="btnColRight">
<el-form-item>
<btn nativeType="cz" @click="save">新增</btn>
<btn nativeType="cx" @click="handleSearch">查询</btn>
<!-- <btn nativeType="resetForm">重置</btn> -->
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 列表区域 -->
<div class="from-clues-content">
<lb-table ref="table" :page-size="pageData.size" :current-page.sync="pageData.current" :total="tableData.total"
@size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
:data="tableData.data">
</lb-table>
</div>
<!-- 编辑 -->
<el-dialog :close-on-click-modal="false" top="0"
custom-class="dialogBox dataReporting editDialogBox sbdialog commonDialog mainCenter" :visible.sync="dialogVisible"
width="92%">
<div slot="title" class="dialog_title" ref="dialogTitle">
干部信息查询
</div>
<search-result ref="resultData" :dataDetail="dataDetail"></search-result>
</el-dialog>
</div>
</template>
<script>
import Vue from 'vue'
// 接收报文查询
// 引入表格头部数据
import data from "./data";
// 引入table混入方法
import tableMixin from "@/mixins/tableMixin.js";
import { getSearchRecordList, editSearchRecord } from "@/api/searchRecord.js";
// 引入详情弹框
import SearchResult from "./components/result";
//引入日期处理方法
import { timeFormat } from "@/utils/operation";
export default {
name: "jsbwcx",
mixins: [tableMixin],
// 注册组件
components: {
SearchResult
},
data () {
return {
dialogVisible: false,
pickerOptionsStart: {
disabledDate: (time) => {
let endDateVal = this.form.receiveEndTime;
if (endDateVal) {
return (
time.getTime() >=
new Date(endDateVal).getTime()
);
}
},
},
pickerOptionsEnd: {
disabledDate: (time) => {
let beginDateVal = this.form.receiveStartTime;
if (beginDateVal) {
return (
time.getTime() <
new Date(beginDateVal).getTime()
);
}
},
},
// 表格数据
form: {
qxdm: "", // 行政区
receiveStartTime: "", // 开始日期
receiveEndTime: "", // 结束日期
bdcdyh: "", // 不动产单元号
ywh: "", // 业务号
qllx: "", // 权利类型
djlx: "", // 登记类型
jcjg: "", // 检查结果
rkjg: "", //入库结果
currentPage: 1
},
// 校验规则
rules: {
pcode: [{ required: true, message: "请选择行政区", trigger: "change" }],
startTime: [
{ required: true, message: "请选择开始日期", trigger: "change" },
],
endTime: [
{ required: true, message: "请选择结束日期", trigger: "change" },
],
bdcdyh: [
{ required: true, message: "不动产单元号", trigger: "change" },
],
ywmc: [{ required: true, message: "业务名称", trigger: "change" }],
jcjg: [{ required: true, message: "检查结果", trigger: "change" }],
rkjg: [{ required: true, message: "入库结果", trigger: "change" }],
},
// 表格数据
tableData: {
// 表格头部
columns: [
{
label: "序号",
type: "index",
width: "50",
index: this.indexMethod,
}
]
.concat(data.columns())
.concat([
{
label: "操作",
width: "90",
render: (h, scope) => {
return (
<div>
<el-button
type="text"
class='btnColor'
onClick={() => {
this.handleDetails(scope.row);
}}
>
详情
</el-button>
</div>
)
}
}
]),
// 表格列表数据
total: 0,
data: []
},
// 分页
pageData: {
total: 0,
pageSize: 10,
current: 1
},
dataDetail: {}
}
},
methods: {
//截止日期变化
endTimeChange (val) {
this.form.receiveEndTime = timeFormat(new Date(val), true)
},
// 初始化数据
queryClick () {
getSearchRecordList({ ...this.form, ...this.formData }).then(
(res) => {
if (res.code === 200) {
let { total, records, current } = res.result;
this.tableData.total = total;
this.tableData.data = records ? records : [];
this.pageData.current = current
}
}
)
},
// 重置
resetForm () {
this.$refs.ruleForm.resetFields();
this.form.currentPage = 1
this.queryClick();
},
featchData () {
this.queryClick();
},
// 详情
handleDetails (row) {
editSearchRecord(row.bsm).then(res => {
this.dialogVisible = true
this.dataDetail = res.result
})
},
save () {
this.dialogVisible = true
}
}
}
</script>
<style scoped lang="scss">
.lastdom:nth-child(3) {
margin-bottom: 0px;
}
</style>
......@@ -4,9 +4,7 @@
<!-- 头部搜索 -->
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区" prop="qxdm">
......
......@@ -5,9 +5,7 @@
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="80px">
<!-- 判断进入监管还是上报系统 -->
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row>
<el-col :span="6">
<el-form-item label="行政区">
......@@ -103,8 +101,8 @@
pageSize: 10,
current: 1
},
// 表格数据
tableData: {
// 表格数据
tableData: {
// 表头
columns: [
{
......
......@@ -5,9 +5,7 @@
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<!-- 判断进入监管还是上报系统 -->
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区" prop="qxdm">
......@@ -141,8 +139,8 @@
pageSize: 10,
current: 1
},
// 表格数据
tableData: {
// 表格数据
tableData: {
// 表头数据
columns: [
{
......
......@@ -5,9 +5,7 @@
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<!-- 判断进入监管还是上报系统 -->
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="行政区" prop="qxdm">
......
<template>
<!-- 编辑 -->
<dialogBox submitForm="submitForm" class="tableClass dictionary" @closeDialog="closeDialog" @submitForm="handleSubmit" width="60%"
<dialogBox submitForm="submitForm" class="tableClass dictionary" @closeDialog="closeDialog" @submitForm="handleSubmit" width="70%"
v-model="myValue" :isMain="true" title="字典信息">
<div class="editDialogBox-box ">
<el-form :model="ruleForm" ref="ruleForm" label-width="100px">
......
......@@ -3,9 +3,7 @@
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form @submit.native.prevent :model="ruleForm" label-width="120px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row :gutter="20" class="mb-5">
<el-col :span="6">
<el-form-item label="字典类型编码">
......
......@@ -10,9 +10,7 @@
<div class="information from-clues">
<div class="from-clues-header">
<el-form ref="ruleForm" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col class="btnColRight">
<btn nativeType="cx" @click="information">
......@@ -34,38 +32,38 @@
</div>
</template>
<script>
import "@/utils/flexible.js";
import BaseSet from "./base-set.vue";
import PasswordEdit from "./password-edit.vue";
export default {
components: {
BaseSet,
PasswordEdit,
},
data () {
return {
isshow: true,
};
},
computed: {
userData () {
return this.$store.state.user.userInfo;
import "@/utils/flexible.js";
import BaseSet from "./base-set.vue";
import PasswordEdit from "./password-edit.vue";
export default {
components: {
BaseSet,
PasswordEdit,
},
},
watch: {},
created () { },
mounted () { },
methods: {
information () {
this.isshow = true;
data () {
return {
isshow: true,
};
},
password () {
this.isshow = false;
computed: {
userData () {
return this.$store.state.user.userInfo;
},
},
},
};
watch: {},
created () { },
mounted () { },
methods: {
information () {
this.isshow = true;
},
password () {
this.isshow = false;
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "~@/styles/mixin.scss";
</style>
......
......@@ -2,9 +2,7 @@
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="4">
<el-form-item label="角色名称" prop="rolesName">
......
......@@ -2,9 +2,7 @@
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="6">
<el-form-item label="搜索标题">
......
<template>
<!-- 人员管理 -->
<!-- 人员管理 -->
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="ruleForm" :model="form" label-width="100px">
<el-form-item v-if="BASE_API.THEME == 'jg'">
<Breadcrumb />
</el-form-item>
<Breadcrumb />
<el-row class="mb-5">
<el-col :span="4">
<el-form-item label="用户名" prop="loginName">
......@@ -40,368 +38,368 @@
</div>
</template>
<script>
import {
getUuid,
judgeSort,
realMove,
findParents,
removeTreeListItem,
} from "@/utils/operation";
import {
resetPassword,
getUserList, getUserLists
} from "@/api/personnelManage";
import { api, deleteAction, getAction } from '@/api/manageApi'
import data from "./data";
import { deleteDomStr } from '@/utils/proDomStr'
import tableMixin from "@/mixins/tableMixin.js";
import EditDialog from "./edit-dialog.vue";
import { updateOrder } from "@/api/orders"
export default {
name: "menus",
mixins: [tableMixin],
components: {
EditDialog,
},
data () {
return {
isDialog: false,
keyList: [],
form: {
loginName: "",
name: "",
code: "",
},
departmentId: "", // 部门ID
typeOptions: [
{
value: "0",
label: "姓名",
},
{
value: "1",
label: "工号",
},
{
value: "2",
label: "部门",
},
{
value: "3",
label: "机构",
import {
getUuid,
judgeSort,
realMove,
findParents,
removeTreeListItem,
} from "@/utils/operation";
import {
resetPassword,
getUserList, getUserLists
} from "@/api/personnelManage";
import { api, deleteAction, getAction } from '@/api/manageApi'
import data from "./data";
import { deleteDomStr } from '@/utils/proDomStr'
import tableMixin from "@/mixins/tableMixin.js";
import EditDialog from "./edit-dialog.vue";
import { updateOrder } from "@/api/orders"
export default {
name: "menus",
mixins: [tableMixin],
components: {
EditDialog,
},
data () {
return {
isDialog: false,
keyList: [],
form: {
loginName: "",
name: "",
code: "",
},
],
selectionList: [],
// 表格数据
tableData: {
columns: [
departmentId: "", // 部门ID
typeOptions: [
{
label: "序号",
type: "index",
width: "50",
index: this.indexMethod,
value: "0",
label: "姓名",
},
]
.concat(data.columns())
.concat([
{
label: "职位",
render: (h, scope) => {
return (
<div v-show={scope.row.jobLevel !== null}>{scope.row.jobLevel ? "干事" : "经理"}</div>
)
{
value: "1",
label: "工号",
},
{
value: "2",
label: "部门",
},
{
value: "3",
label: "机构",
},
],
}
},
selectionList: [],
// 表格数据
tableData: {
columns: [
{
label: "负责人",
render: (h, scope) => {
return (
<i v-show={scope.row.isDuty !== null} class="el-icon-check" />
)
}
label: "序号",
type: "index",
width: "50",
index: this.indexMethod,
},
{
label: "排序",
width: 300,
render: (h, scope) => {
return (
<div>
<el-button
type="text"
class='movebtnColor'
disabled={scope.row.isTop}
onClick={() => {
this.updateOrder(scope.row, 'TOP');
}}
>
置顶
</el-button>
<el-button
type="text"
class='movebtnColor'
disabled={scope.row.isTop}
onClick={() => {
this.updateOrder(scope.row, 'UP');
}}
>
上移
</el-button>
<el-button
type="text"
class='movebtnColor'
disabled={scope.row.isBottom}
onClick={() => {
this.updateOrder(scope.row, 'DOWN');
}}
>
下移
</el-button>
<el-button
type="text"
size="mini"
class='movebtnColor'
disabled={scope.row.isBottom}
onClick={() => {
this.updateOrder(scope.row, 'BOTTOM');
}}
>
置底
</el-button>
</div>
);
]
.concat(data.columns())
.concat([
{
label: "职位",
render: (h, scope) => {
return (
<div v-show={scope.row.jobLevel !== null}>{scope.row.jobLevel ? "干事" : "经理"}</div>
)
}
},
},
{
label: "操作",
width: 380,
render: (h, scope) => {
return (
<div>
<el-button
type="text"
size="mini"
class='resetbtnColor'
onClick={() => {
this.resetPassword(scope.row.id);
}}
>
重置
</el-button>
<el-button
type="text"
size="mini"
class='successColor'
onClick={() => {
this.handleEdit(scope.row);
}}
>
修改
</el-button>
<el-button
type="text"
size="mini"
class='delColor'
onClick={() => {
this.handleDelete(scope.row.id, scope.row.name);
}}
>
删除
</el-button>
</div>
);
{
label: "负责人",
render: (h, scope) => {
return (
<i v-show={scope.row.isDuty !== null} class="el-icon-check" />
)
}
},
},
]),
data: [],
},
};
},
created () {
this.getTableList();
},
computed: {
departmentid () {
return this.$store.state.user.userInfo;
},
},
methods: {
handleAdd () {
this.isDialog = true
this.$refs.dialogForm.adds();
this.$refs.dialogForm.title = "添加";
},
// 查询
getTableList () {
this.queryParam = {
name: this.form.name,
code: this.form.code,
loginName: this.form.loginName,
};
getUserLists(this.queryParam).then((res) => {
if (res.status === 1) {
this.loading = false;
this.tableData.data = res.content;
this.tableData.data = judgeSort(this.tableData.data);
let arr = []
this.tableData.data.forEach((item) => {
arr.push(item.departmentId)
})
this.getDepts(arr)
} else {
this.$message.error({ message: res.message, showClose: true })
}
})
},
// 获取组织机构
getDepts (deptIdArr) {
let params = {
queryOptions: {
conditionGroup: {
conditions: [
{
property: "id",
value: deptIdArr,
operator: "IN",
label: "排序",
width: 300,
render: (h, scope) => {
return (
<div>
<el-button
type="text"
class='movebtnColor'
disabled={scope.row.isTop}
onClick={() => {
this.updateOrder(scope.row, 'TOP');
}}
>
置顶
</el-button>
<el-button
type="text"
class='movebtnColor'
disabled={scope.row.isTop}
onClick={() => {
this.updateOrder(scope.row, 'UP');
}}
>
上移
</el-button>
<el-button
type="text"
class='movebtnColor'
disabled={scope.row.isBottom}
onClick={() => {
this.updateOrder(scope.row, 'DOWN');
}}
>
下移
</el-button>
<el-button
type="text"
size="mini"
class='movebtnColor'
disabled={scope.row.isBottom}
onClick={() => {
this.updateOrder(scope.row, 'BOTTOM');
}}
>
置底
</el-button>
</div>
);
},
},
],
queryRelation: "AND",
},
orderBys: [],
{
label: "操作",
width: 380,
render: (h, scope) => {
return (
<div>
<el-button
type="text"
size="mini"
class='resetbtnColor'
onClick={() => {
this.resetPassword(scope.row.id);
}}
>
重置
</el-button>
<el-button
type="text"
size="mini"
class='successColor'
onClick={() => {
this.handleEdit(scope.row);
}}
>
修改
</el-button>
<el-button
type="text"
size="mini"
class='delColor'
onClick={() => {
this.handleDelete(scope.row.id, scope.row.name);
}}
>
删除
</el-button>
</div>
);
},
},
]),
data: [],
},
};
getAction(api.departments, params).then(
(res) => {
let deptsList = res.content;
deptsList.forEach((ele) => {
},
created () {
this.getTableList();
},
computed: {
departmentid () {
return this.$store.state.user.userInfo;
},
},
methods: {
handleAdd () {
this.isDialog = true
this.$refs.dialogForm.adds();
this.$refs.dialogForm.title = "添加";
},
// 查询
getTableList () {
this.queryParam = {
name: this.form.name,
code: this.form.code,
loginName: this.form.loginName,
};
getUserLists(this.queryParam).then((res) => {
if (res.status === 1) {
this.loading = false;
this.tableData.data = res.content;
this.tableData.data = judgeSort(this.tableData.data);
let arr = []
this.tableData.data.forEach((item) => {
if (ele.id == item.departmentId) {
item.departmentName = ele.name
}
arr.push(item.departmentId)
})
this.getDepts(arr)
} else {
this.$message.error({ message: res.message, showClose: true })
}
})
},
// 获取组织机构
getDepts (deptIdArr) {
let params = {
queryOptions: {
conditionGroup: {
conditions: [
{
property: "id",
value: deptIdArr,
operator: "IN",
},
],
queryRelation: "AND",
},
orderBys: [],
},
};
getAction(api.departments, params).then(
(res) => {
let deptsList = res.content;
deptsList.forEach((ele) => {
this.tableData.data.forEach((item) => {
if (ele.id == item.departmentId) {
item.departmentName = ele.name
}
})
})
})
},
(err) => {
console.log("err :", err);
}
);
},
// getTableList () {
// this.loading = true;
},
(err) => {
console.log("err :", err);
}
);
},
// getTableList () {
// this.loading = true;
// getUserList().then((res) => {
// if (res.status === 1) {
// console.log("res人员列表", res);
// this.loading = false;
// this.tableData.data = res.content;
// this.tableData.data = judgeSort(this.tableData.data);
// } else {
// this.$message.error({ message: res.message, showClose: true });
// }
// });
// },
// getUserList().then((res) => {
// if (res.status === 1) {
// console.log("res人员列表", res);
// this.loading = false;
// this.tableData.data = res.content;
// this.tableData.data = judgeSort(this.tableData.data);
// } else {
// this.$message.error({ message: res.message, showClose: true });
// }
// });
// },
// 重置用户密码
resetPassword (data) {
const ids = []
if (data instanceof Array) {
data.forEach((item) => {
ids.push(item.id)
})
} else {
ids.push(data)
}
if (ids.length === 0) {
this.$message({
message: '请选择需要重置密码的用户!',
showClose: true
})
return
}
this.$confirm(
`<div class="customer-message-wrapper">
// 重置用户密码
resetPassword (data) {
const ids = []
if (data instanceof Array) {
data.forEach((item) => {
ids.push(item.id)
})
} else {
ids.push(data)
}
if (ids.length === 0) {
this.$message({
message: '请选择需要重置密码的用户!',
showClose: true
})
return
}
this.$confirm(
`<div class="customer-message-wrapper">
<h5 class="title">确定要重置密码吗</h5>
<p class="result">执行后,数据将
<span >无法恢复</span>
</p>
</div>`,
'执行确认',
{
'执行确认',
{
dangerouslyUseHTMLString: true,
customClass: 'customer-delete',
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
)
.then(() => {
resetPassword(ids).then((res) => {
if (res.status === 1) {
this.$message.success({ message: res.message, showClose: true })
this.getTableList()
} else {
this.$message.error({ message: res.message, showClose: true })
}
})
})
.catch(() => { })
},
//排序
updateOrder (record, operate) {
const findIndex = this.tableData.data.findIndex(item => item.id === record.id)
let swapId = ''
if (operate === 'UP') {
swapId = this.tableData.data[findIndex - 1].id
} else if (operate === 'DOWN') {
swapId = this.tableData.data[findIndex + 1].id
}
updateOrder('/rest/users', record, operate, swapId).then(res => {
if (res.status === 1) {
this.$message.success({ message: res.message, showClose: true })
this.getTableList();
} else {
this.$message.error({ message: res.message, showClose: true })
}
})
},
// 修改人员信息
handleEdit (row) {
this.isDialog = true
this.$refs.dialogForm.edit(row);
this.$refs.dialogForm.title = "修改";
},
// 删除
handleDelete (id, content) {
this.$confirm(deleteDomStr(content), '执行确认', {
dangerouslyUseHTMLString: true,
customClass: 'customer-delete',
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
)
.then(() => {
resetPassword(ids).then((res) => {
if (res.status === 1) {
this.$message.success({ message: res.message, showClose: true })
this.getTableList()
} else {
this.$message.error({ message: res.message, showClose: true })
}
})
})
.catch(() => { })
},
//排序
updateOrder (record, operate) {
const findIndex = this.tableData.data.findIndex(item => item.id === record.id)
let swapId = ''
if (operate === 'UP') {
swapId = this.tableData.data[findIndex - 1].id
} else if (operate === 'DOWN') {
swapId = this.tableData.data[findIndex + 1].id
}
updateOrder('/rest/users', record, operate, swapId).then(res => {
if (res.status === 1) {
this.$message.success({ message: res.message, showClose: true })
this.getTableList();
} else {
this.$message.error({ message: res.message, showClose: true })
}
})
},
// 修改人员信息
handleEdit (row) {
this.isDialog = true
this.$refs.dialogForm.edit(row);
this.$refs.dialogForm.title = "修改";
},
// 删除
handleDelete (id, content) {
this.$confirm(deleteDomStr(content), '执行确认', {
dangerouslyUseHTMLString: true,
customClass: 'customer-delete',
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
删除传
deleteAction(`${api.users}/${id}`).then((res) => {
if (res.status === 1) {
this.$message.success({ message: res.message, showClose: true })
} else {
this.$message.error({ message: res.message, showClose: true })
}
this.getTableList()
.then(() => {
删除传
deleteAction(`${api.users}/${id}`).then((res) => {
if (res.status === 1) {
this.$message.success({ message: res.message, showClose: true })
} else {
this.$message.error({ message: res.message, showClose: true })
}
this.getTableList()
})
})
})
.catch(() => { })
},
// 新增回显
reloadTableData () {
this.getTableList()
.catch(() => { })
},
// 新增回显
reloadTableData () {
this.getTableList()
},
},
},
};
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "~@/styles/mixin.scss";
</style>
......