Commit c9895abb by zhangzhijie

Merge remote-tracking branch 'origin/dev_xzeq' into dev_xzeq

parents d5937641 bd338999
......@@ -12,9 +12,13 @@
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="申请时间:" label-width="140px" style="margin-bottom: 0">
<el-form-item
label="申请时间:"
label-width="140px"
style="margin-bottom: 0"
>
<el-date-picker
style="width: 160px !important;"
style="width: 160px !important"
v-model="form.kssj"
type="date"
align="right"
......@@ -24,7 +28,7 @@
</el-date-picker>
<div class="zhi"></div>
<el-date-picker
style="width: 160px !important;"
style="width: 160px !important"
v-model="form.jssj"
type="date"
align="right"
......@@ -37,7 +41,7 @@
</el-row>
</el-form>
<div class="btn">
<div @click="clearData" class="zdybtn">重置</div>
<div @click="clearData" class="zdybtn">重置</div>
<div
@click="doQuery()"
style="background: #007aff; color: #ffffff"
......@@ -48,18 +52,20 @@
</div>
</div>
<div class="paneDivFoot">
<div style="text-align: right"><el-button @click="print" size="mini">打印</el-button></div>
<!-- <div class="footTitle">
<h2>统计图</h2>
<i class="el-icon-s-cooperation"></i>
</div> -->
<!-- <div style="text-align: right"><el-button @click="print" size="mini">打印</el-button></div> -->
<div class="footChart">
<div id="lineCharts" class='lineCharts' ref="lineCharts" style="flex:1;"></div>
<div id="pieCharts" class='pieCharts' ref="pieCharts" style="flex:2;"></div>
<div id="lineCharts" class="lineCharts" ref="lineCharts"></div>
</div>
<div style="margin-left: 20px" class="footChart">
<div id="pieCharts" class="pieCharts" ref="pieCharts"></div>
</div>
</div>
<div class="bottom">
<div style="text-align: right; margin-bottom: 10px;"><el-button size="mini" @click="export2Excel">导出</el-button></div>
<div style="text-align: right; margin-bottom: 10px">
<el-button size="mini" @click="export2Excel">导出</el-button>
<el-button size="mini" @click="print">打印</el-button>
</div>
<el-table
:header-cell-style="headStyle"
v-loading="tableLoading"
......@@ -86,12 +92,8 @@
</el-table-column>
<el-table-column fixed="right" prop="sffb" label="操作" width="350">
<template slot-scope="scope">
<el-button type="text" @click="showDetail(scope)"
>详情</el-button
>
<el-button type="text" @click="showliucheng(scope)"
>流程</el-button
>
<el-button type="text" @click="showDetail(scope)">详情</el-button>
<el-button type="text" @click="showliucheng(scope)">流程</el-button>
<!-- <el-button type="text"
>报告</el-button
> -->
......@@ -123,90 +125,172 @@
</el-row>
<div class="sqdxq-title">申请单信息</div>
<el-row :gutter="20">
<el-col :span="12"><span>申请单编号:</span>{{ approveOrder.orderCode }}</el-col>
<el-col :span="12"><span>申请单名称:</span>{{ approveOrder.orderTitle }}</el-col>
<el-col :span="12"
><span>申请单编号:</span>{{ approveOrder.orderCode }}</el-col
>
<el-col :span="12"
><span>申请单名称:</span>{{ approveOrder.orderTitle }}</el-col
>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>审批等级:</span>{{ approveOrder.orderMethod == 1 ? '二级审批' : '一级审批' }}</el-col>
<el-col :span="12"><span>申请状态:</span>{{ approveOrder.orderStatusIsgq == '1' ? '过期' : getOrderStatus(approveOrder.orderStatus) }}</el-col>
<el-col :span="12"
><span>审批等级:</span
>{{ approveOrder.orderMethod == 1 ? "二级审批" : "一级审批" }}</el-col
>
<el-col :span="12"
><span>申请状态:</span
>{{
approveOrder.orderStatusIsgq == "1"
? "过期"
: getOrderStatus(approveOrder.orderStatus)
}}</el-col
>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>申请人:</span>{{ approveOrder.createUserName }}</el-col>
<el-col :span="12"><span>申请时间:</span>{{ approveOrder.createTime }}</el-col>
<el-col :span="12"
><span>申请人:</span>{{ approveOrder.createUserName }}</el-col
>
<el-col :span="12"
><span>申请时间:</span>{{ approveOrder.createTime }}</el-col
>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>申请原由:</span>{{ approveOrder.orderReason }}</el-col>
<el-col :span="12"
><span>申请原由:</span>{{ approveOrder.orderReason }}</el-col
>
</el-row>
<div class="sqdxq-title">线索信息</div>
<el-table
:data="orderDetailList"
border
style="width: 100%">
<el-table-column
prop="xsXslx"
label="线索类型"
width="180">
<el-table :data="orderDetailList" border style="width: 100%">
<el-table-column prop="xsXslx" label="线索类型" width="180">
<template slot-scope="scope">
<span>{{ getXsXslx(scope.row.xsXslx) }}</span>
</template>
</el-table-column>
<el-table-column
prop="xsSxz"
label="线索值"
width="180">
</el-table-column>
<el-table-column
prop="xsKssj"
label="开始时间">
</el-table-column>
<el-table-column
prop="xsJssj"
label="到期时间">
</el-table-column>
<el-table-column
prop="xsStatus"
label="状态">
</el-table-column>
<el-table-column
prop="xsMark"
label="备注">
<el-table-column prop="xsSxz" label="线索值" width="180">
</el-table-column>
<el-table-column prop="xsKssj" label="开始时间"> </el-table-column>
<el-table-column prop="xsJssj" label="到期时间"> </el-table-column>
<el-table-column prop="xsStatus" label="状态"> </el-table-column>
<el-table-column prop="xsMark" label="备注"> </el-table-column>
</el-table>
</el-dialog>
<el-dialog title="审批流程" :visible.sync="lcDialogFormVisible" width="45%">
<el-timeline style="padding: 20px;">
<el-timeline-item v-for="(item, index) in lcData" :key="index" :timestamp="item.handleTime" placement="top">
<el-timeline style="padding: 20px">
<el-timeline-item
v-for="(item, index) in lcData"
:key="index"
:timestamp="item.handleTime"
placement="top"
>
<el-card>
<span class="kuang" v-if="item.handleStatus == '1'" style="background: #007aff;">提请</span>
<span class="kuang" v-if="item.handleStatus == '2'" style="background: #17ab17;">通过</span>
<span class="kuang" v-if="item.handleStatus == '3'" style="background: #8c938c;">驳回</span>
<span class="kuang" v-if="item.handleStatus == '4'" style="background: #8c938c;">撤回</span>
<span
class="kuang"
v-if="item.handleStatus == '1'"
style="background: #007aff"
>提请</span
>
<span
class="kuang"
v-if="item.handleStatus == '2'"
style="background: #17ab17"
>通过</span
>
<span
class="kuang"
v-if="item.handleStatus == '3'"
style="background: #8c938c"
>驳回</span
>
<span
class="kuang"
v-if="item.handleStatus == '4'"
style="background: #8c938c"
>撤回</span
>
<div v-if="item.handleStatus == '1'">
<!-- <i class="el-icon-user-solid"></i> -->
<h3>{{ item.workFlowName }}</h3>
<h4 style="color: #007aff;">{{ `${item.handleUserName}发起申请单,待${item.assigneeUserName}处理`}}</h4>
<h4 style="color: #666;"><span style="color: #fff; background: #007aff; border-radius: 50px;padding: 1px 8px; margin-right: 5px;">申请原因:</span>{{ item.handleContent }}</h4>
<h4 style="color: #007aff">
{{
`${item.handleUserName}发起申请单,待${item.assigneeUserName}处理`
}}
</h4>
<h4 style="color: #666">
<span
style="
color: #fff;
background: #007aff;
border-radius: 50px;
padding: 1px 8px;
margin-right: 5px;
"
>申请原因:</span
>{{ item.handleContent }}
</h4>
</div>
<div v-if="item.handleStatus == '2'">
<!-- <i class="el-icon-user-solid"></i> -->
<h3>{{ item.workFlowName }}</h3>
<h4 style="color: #007aff;">{{ item.assigneeUserPid != null ? `${item.handleUserName}通过申请单,待${item.assigneeUserName}处理` : `${item.handleUserName}通过申请单,审批流程结束`}}</h4>
<h4 style="color: #666;"><span style="color: #fff; background: #007aff; border-radius: 50px;padding: 1px 8px; margin-right: 5px;">审批意见:</span>{{ item.handleContent }}</h4>
<h4 style="color: #007aff">
{{
item.assigneeUserPid != null
? `${item.handleUserName}通过申请单,待${item.assigneeUserName}处理`
: `${item.handleUserName}通过申请单,审批流程结束`
}}
</h4>
<h4 style="color: #666">
<span
style="
color: #fff;
background: #007aff;
border-radius: 50px;
padding: 1px 8px;
margin-right: 5px;
"
>审批意见:</span
>{{ item.handleContent }}
</h4>
</div>
<div v-if="item.handleStatus == '3'">
<!-- <i class="el-icon-user-solid"></i> -->
<h3>{{ item.workFlowName }}</h3>
<h4 style="color: #007aff;">{{item.handleUserName}}驳回申请单</h4>
<h4 style="color: #666;"><span style="color: #fff; background: #007aff; border-radius: 50px;padding: 1px 8px; margin-right: 5px;">审批意见:</span>{{ item.handleContent }}</h4>
<h4 style="color: #007aff">
{{ item.handleUserName }}驳回申请单
</h4>
<h4 style="color: #666">
<span
style="
color: #fff;
background: #007aff;
border-radius: 50px;
padding: 1px 8px;
margin-right: 5px;
"
>审批意见:</span
>{{ item.handleContent }}
</h4>
</div>
<div v-if="item.handleStatus == '4'">
<!-- <i class="el-icon-user-solid"></i> -->
<h3>{{ item.workFlowName }}</h3>
<h4 style="color: #007aff;">{{item.handleUserName}}撤回申请单</h4>
<h4 style="color: #666;"><span style="color: #fff; background: #007aff; border-radius: 50px;padding: 2px 8px; margin-right: 5px;">审批意见:</span>{{ item.handleContent }}</h4>
<h4 style="color: #007aff">
{{ item.handleUserName }}撤回申请单
</h4>
<h4 style="color: #666">
<span
style="
color: #fff;
background: #007aff;
border-radius: 50px;
padding: 2px 8px;
margin-right: 5px;
"
>审批意见:</span
>{{ item.handleContent }}
</h4>
</div>
</el-card>
</el-timeline-item>
......@@ -216,7 +300,12 @@
</template>
<script>
import { querySqdDteail, queryWorkFlowList, querySptjbList, querySptjt } from "@/api/xsspLb/xsspLb.js";
import {
querySqdDteail,
queryWorkFlowList,
querySptjbList,
querySptjt,
} from "@/api/xsspLb/xsspLb.js";
import base from "@/api/base";
import Http from "@/utils/http.js";
......@@ -232,7 +321,7 @@ export default {
orderDetailList: [],
lcData: [],
zztCount: 0,
cxUrl: '/querySptjbList',
cxUrl: "/querySptjbList",
bztData: [
{
value: null,
......@@ -360,10 +449,10 @@ export default {
form: {
currentPageNo: 1,
pageSize: 10,
kssj: '',
jssj: '',
unitcode: '',
orderStatus: 'All'
kssj: "",
jssj: "",
unitcode: JSON.parse(sessionStorage.getItem("userInfo")).unitcode,
orderStatus: "All",
},
propdefaultFormThead: [
{
......@@ -396,7 +485,8 @@ export default {
label: "是否过期",
prop: "orderStatusIsgq",
width: "200",
},,
},
,
{
label: "申请人",
prop: "createUserName",
......@@ -411,7 +501,7 @@ export default {
label: "审批倒计时",
prop: "orderStatus",
width: "200",
}
},
],
Menu: [
{
......@@ -422,11 +512,12 @@ export default {
className: "iconfont iconrizhi",
disabled: false,
},
]
],
zztX: [],
zztY: [],
};
},
computed: {
},
computed: {},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
},
......@@ -440,8 +531,8 @@ export default {
let self = this,
tHeader = [],
filterVal = [];
let formData = self.form
formData.limit = 5000
let formData = self.form;
formData.limit = 5000;
const loading = this.$loading({
lock: true,
text: "正在导出...",
......@@ -468,9 +559,7 @@ export default {
self.doQueryRequest(JSON.stringify(json)).then((res) => {
if (res.code == 0) {
require.ensure([], () => {
const {
export_json_to_excel,
} = require("@/vendor/Export2Excel");
const { export_json_to_excel } = require("@/vendor/Export2Excel");
const list = res.data;
const data = self.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, self.excelHeader);
......@@ -489,7 +578,19 @@ export default {
doQueryRequest(form, relurl) {
/*post方法*/
let currentUrl = "";
currentUrl = `${base.alyIP13}/querySptjbList?currentPageNo=` + this.form.currentPageNo + '&pageSize=' + this.form.pageSize + '&kssj=' + this.form.kssj + '&jssj=' + this.form.jssj + '&unitcode=' + this.form.unitcode + '&orderStatus=' + this.form.orderStatus;
currentUrl =
`${base.alyIP13}/querySptjbList?currentPageNo=` +
this.form.currentPageNo +
"&pageSize=" +
this.form.pageSize +
"&kssj=" +
this.form.kssj +
"&jssj=" +
this.form.jssj +
"&unitcode=" +
this.form.unitcode +
"&orderStatus=" +
this.form.orderStatus;
return Http({
url: currentUrl,
// data: qs.stringify(form),
......@@ -523,8 +624,8 @@ export default {
window.print();
},
doQuery() {
this.queryTjlist()
this.toQuerySptjt()
this.queryTjlist();
this.toQuerySptjt();
},
// 查询统计列表
queryTjlist() {
......@@ -534,13 +635,13 @@ export default {
kssj: this.form.kssj,
jssj: this.form.jssj,
unitcode: this.form.unitcode,
orderStatus: this.form.orderStatus
}
querySptjbList(param).then(res => {
if(res.code == '0') {
this.tableData = res.data
orderStatus: this.form.orderStatus,
};
querySptjbList(param).then((res) => {
if (res.code == "0") {
this.tableData = res.data;
}
})
});
},
// 查询饼状柱状图数据
toQuerySptjt() {
......@@ -553,121 +654,125 @@ export default {
const param = {
kssj: this.form.kssj,
jssj: this.form.jssj,
unitcode: this.form.unitcode
}
querySptjt(param).then(res => {
if(res.code == '200') {
this.bztData[0].value = res.bzt.zsCount
this.bztData[1].value = res.bzt.sqysCount
this.bztData[2].value = res.bzt.yjysCount
this.bztData[3].value = res.bzt.ejysCount
this.bztData[4].value = res.bzt.sqbhCount
this.bztData[5].value = res.bzt.yjbhCount
this.bztData[6].value = res.bzt.ejbhCount
this.zztCount = res.zztCount
unitcode: this.form.unitcode,
};
querySptjt(param).then((res) => {
if (res.code == "200") {
this.bztData[0].value = res.bzt.zsCount;
this.bztData[1].value = res.bzt.sqysCount;
this.bztData[2].value = res.bzt.yjysCount;
this.bztData[3].value = res.bzt.ejysCount;
this.bztData[4].value = res.bzt.sqbhCount;
this.bztData[5].value = res.bzt.yjbhCount;
this.bztData[6].value = res.bzt.ejbhCount;
// this.zztCount = res.zztCount
res.zzt.forEach( item => {
this.zztX.push(item.createtime)
this.zztY.push(item.tjCount)
})
this.startMyEcharts();
this.loading.close();
}
})
});
},
// 详情
showDetail(scope) {
console.log('scope', scope)
console.log("scope", scope);
const param = {
orderCode: scope.row.orderCode
}
querySqdDteail(param).then(res => {
if(res.code == '200') {
orderCode: scope.row.orderCode,
};
querySqdDteail(param).then((res) => {
if (res.code == "200") {
// this.xqData = res.data
this.approveOrder = res.approveOrder
this.orderDetailList = res.orderDetailList
this.jzxx = res.jzxx
this.dialogFormVisible = true
this.approveOrder = res.approveOrder;
this.orderDetailList = res.orderDetailList;
this.jzxx = res.jzxx;
this.dialogFormVisible = true;
}
})
});
},
// 流程
showliucheng(scope) {
console.log('scope', scope)
console.log("scope", scope);
const param = {
orderCode: scope.row.orderCode
}
queryWorkFlowList(param).then(res => {
if(res.code == '200') {
this.lcData = res.data
this.lcDialogFormVisible = true
orderCode: scope.row.orderCode,
};
queryWorkFlowList(param).then((res) => {
if (res.code == "200") {
this.lcData = res.data;
this.lcDialogFormVisible = true;
}
})
});
},
getXsXslx(type) {
let text = ''
switch (type) {
case '01':
text = 'QQ号码'
break
case '02':
text = '微信ID'
break
case '03':
text = '手机号码'
break
case '04':
text = 'IMSI'
break
case '05':
text = 'IMEI'
break
case '06':
text = '身份证号'
break
case '07':
text = '车牌号'
break
case '08':
text = '案件编号'
break
case '09':
text = 'MAC地址'
case '10':
text = '银行卡号'
break
}
return text
let text = "";
switch (type) {
case "01":
text = "QQ号码";
break;
case "02":
text = "微信ID";
break;
case "03":
text = "手机号码";
break;
case "04":
text = "IMSI";
break;
case "05":
text = "IMEI";
break;
case "06":
text = "身份证号";
break;
case "07":
text = "车牌号";
break;
case "08":
text = "案件编号";
break;
case "09":
text = "MAC地址";
case "10":
text = "银行卡号";
break;
}
return text;
},
// 审批状态
getOrderStatus(type) {
let text = ''
switch (type) {
case 1:
text = '暂存'
break
case 2:
text = '在审'
break
case 3:
text = '一级领导已审'
break
case 4:
text = '审批通过'
break
case 5:
text = '双签已审'
break
case 6:
text = '撤回'
break
case 7:
text = '一级领导驳回'
break
case 8:
text = '二级领导驳回'
break
case 9:
text = '双签驳回'
break
}
return text
},
let text = "";
switch (type) {
case 1:
text = "暂存";
break;
case 2:
text = "在审";
break;
case 3:
text = "一级领导已审";
break;
case 4:
text = "审批通过";
break;
case 5:
text = "双签已审";
break;
case 6:
text = "撤回";
break;
case 7:
text = "一级领导驳回";
break;
case 8:
text = "二级领导驳回";
break;
case 9:
text = "双签驳回";
break;
}
return text;
},
handleCurrentChange(val) {
// this.form.page = val;
this.doQuery();
......@@ -691,28 +796,31 @@ export default {
text: "审批统计柱状图",
},
xAxis: {
type: 'category',
data: ['yyyy-MM-dd']
type: "category",
data: this.zztX,
},
yAxis: {
type: 'value'
type: "value",
},
series: [{
data: [this.zztCount],
type: 'bar'
}]
})
series: [
{
data: this.zztY,
type: "bar",
},
],
});
pieCharts.setOption({
title: {
text: "审批统计饼状图",
left: "center",
left: "left",
},
tooltip: {
trigger: "item",
},
legend: {
orient: "vertical",
left: "left",
// left: "right",
right: 50,
},
series: [
{
......@@ -730,16 +838,21 @@ export default {
},
],
});
}
},
watch: {
window.addEventListener("resize", () => {
lineCharts.resize();
pieCharts.resize();
});
},
},
watch: {},
};
</script>
<style scoped lang="scss">
::v-deep .el-dialog__body{
::v-deep .el-dialog__body {
padding: 10px !important;
.el-row{
.el-row {
line-height: 2;
margin: 0 20px !important;
}
......@@ -810,7 +923,7 @@ export default {
line-height: 32px;
}
}
.sqdxq-title{
.sqdxq-title {
font-size: 15px;
font-family: Source Han Sans CN;
font-weight: 600;
......@@ -818,12 +931,12 @@ export default {
border-bottom: 1px solid #e4e4e4;
padding: 8px;
}
.kuang{
position: absolute;
.kuang {
position: absolute;
top: 20px;
left: 35px;
color: #fff;
padding: 0 6px;
padding: 0 6px;
border-radius: 2px;
}
}
......@@ -839,9 +952,8 @@ export default {
.paneDivFoot {
position: relative;
height: 100%;
background: #fff;
padding: 20px 0px 14px;
margin: 20px 0px 20px 0;
display: flex;
padding: 0px 0px 20px;
}
.footTitle {
display: flex;
......@@ -852,20 +964,20 @@ export default {
}
.footTitle {
border-bottom: 1px solid #666;
h2{
h2 {
font-weight: 0;
}
i{
i {
display: block;
font-size: 20px;
}
}
.footChart {
display: flex;
align-items: center;
div{
width: 50%;
background: #fff;
div {
height: 450px;
margin: 28px 0 0 0;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment