Commit f4449d66 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 51645fc6 268b09ee
......@@ -40,7 +40,11 @@
:columns="leftColumns"
:expandIconColumnIndex="2"
:data-source="businessData"
:row-selection="{ onChange: onSelectChange }"
:row-selection="{
selectedRowKeys: selectedLeftRowKeys,
onChange: onSelectChange,
onSelect: onSelectLeftRow,
}"
:rowKey="(record) => record.id"
>
<template
......@@ -219,6 +223,7 @@ export default {
rightLoading: false,
// businessType: 0, // 业务类型
selectedRowKeys: [],
selectedLeftRowKeys: [],
businessData: [], // 站点业务
businessDataList: [], //业务列表数据
deleteData: "", // 批量删除数据
......@@ -333,9 +338,36 @@ export default {
this.$refs.addprofession.onAdd();
this.visible = true;
},
// 批量删除id
onSelectChange(key, data) {
this.deleteData = data;
// 左边选中
onSelectChange(key, rows) {
this.selectedLeftRowKeys = key;
const res = new Map();
this.deleteData = [...this.deleteData, ...rows]
.filter((v) => {
return !res.has(v.id) && res.set(v.id, 1);
})
.filter((v) => {
return this.selectedLeftRowKeys.some((val) => v.id == val);
});
},
// 左边选中父默认勾选子
onSelectLeftRow(record, selected) {
if (selected && record.children && record.children.length) {
record.children.forEach((v) => {
this.selectedLeftRowKeys.push(v.id);
this.deleteData.push(v);
});
} else if (selected) {
this.selectedLeftRowKeys.push(record.id);
this.deleteData.push(record);
} else {
this.selectedLeftRowKeys = this.selectedLeftRowKeys.filter(
(v) => v != record.id
);
this.deleteData = this.deleteData.filter((v) => {
return this.selectedLeftRowKeys.some((val) => v.id == val);
});
}
},
// 批量删除
handleDelAll() {
......
......@@ -16,7 +16,7 @@
:wrapper-col="{ span: 19 }"
>
<a-form-model-item label="业务级别:" prop="isBusiness">
<a-radio-group v-model="form.isBusiness">
<a-radio-group v-model="form.isBusiness" @change="changeIsBusiness">
<a-radio :value="0">一级业务</a-radio>
<a-radio :value="1">二级业务</a-radio>
</a-radio-group>
......@@ -164,13 +164,14 @@ export default {
}
},
// 切换业务级别
// changeIsBusiness(e) {
changeIsBusiness() {
this.form.parentId = undefined;
// if (e.target.value == 0) {
// this.form.parentId = 0;
// this.form.parentId = undefined;
// } else {
// this.form.parentId = undefined;
// }
// },
},
// 重置
handleReset() {
this.$refs.formData.resetFields();
......
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.9.1. 查询API服务列表
export function serviceApiList(params) {
return http.post("/zwfw/system/service/api/list", params);
return http.post(`${baseURL}/zwfw/system/service/api/list`, params);
}
// 1.9.2. 查看API服务
export function serviceApiInfo(params) {
return http.get("/zwfw/system/service/api/info", params);
return http.get(`${baseURL}/zwfw/system/service/api/info`, params);
}
// 1.9.3. 保存更新API服务
export function serviceApiSave(params) {
return http.post("/zwfw/system/service/api/save", params);
return http.post(`${baseURL}/zwfw/system/service/api/save`, params);
}
// 1.9.4. 删除API服务
export function serviceApiDelete(params) {
return http.get("/zwfw/system/service/api/delete", params);
return http.get(`${baseURL}/zwfw/system/service/api/delete`, params);
}
// const BASE_URL = process.env.VUE_APP_API_BASE_URL
let baseURL = process.env.VUE_APP_API_BASE_URL
module.exports = {
fileCommonupload: `/zwfw/file/commonupload`, //1.2.4. 上传附件
fileCommonupload: `${baseURL}/zwfw/file/commonupload`, //1.2.4. 上传附件
};
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.10.1. 查询应用服务列表
export function serviceList(params) {
return http.post("/zwfw/system/service/list", params);
return http.post(`${baseURL}/zwfw/system/service/list`, params);
}
// 1.10.2. 查看应用服务
export function serviceInfo(params) {
return http.get("/zwfw/system/service/info", params);
return http.get(`${baseURL}/zwfw/system/service/info`, params);
}
// 1.10.3. 保存更新应用服务
export function serviceSave(params) {
return http.post("/zwfw/system/service/save", params);
return http.post(`${baseURL}/zwfw/system/service/save`, params);
}
// 1.10.4. 删除应用服务
export function serviceDelete(params) {
return http.get("/zwfw/system/service/delete", params);
return http.get(`${baseURL}/zwfw/system/service/delete`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.14.1. 查询区域列表
export function areaList(params) {
return http.post("/zwfw/area/list", params);
return http.post(`${baseURL}/zwfw/area/list`, params);
}
// 1.14.2. 查看区域
export function areaInfo(params) {
return http.get("/zwfw/area/info", params);
return http.get(`${baseURL}/zwfw/area/info`, params);
}
// 1.14.3. 查看区域子信息
export function getListByParentId(params) {
return http.get("/zwfw/area/getListByParentId", params);
return http.get(`${baseURL}/zwfw/area/getListByParentId`, params);
}
// 1.14.4. 获取所有区域信息
export function areaTreeselect(params) {
return http.post("/zwfw/area/treeselect", params);
return http.post(`${baseURL}/zwfw/area/treeselect`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.4.1. 查询角色信息列表
export function roleList(params) {
return http.post("/zwfw/role/list", params);
return http.post(`${baseURL}/zwfw/role/list`, params);
}
// 1.4.2. 查看角色信息
export function roleInfo(params) {
return http.get("/zwfw/role/info", params);
return http.get(`${baseURL}/zwfw/role/info`, params);
}
// 1.4.3. 保存更新角色信息
export function roleSave(params) {
return http.post("/zwfw/role/save", params);
return http.post(`${baseURL}/zwfw/role/save`, params);
}
// 1.4.4. 删除角色信息
export function roleDelete(params) {
return http.get("/zwfw/role/delete", params);
return http.get(`${baseURL}/zwfw/role/delete`, params);
}
// 1.6.1. 分配菜单到角色
export function assignMenuToRole(params) {
return http.post("/zwfw/role/auth/assignMenuToRole", params);
return http.post(`${baseURL}/zwfw/role/auth/assignMenuToRole`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
let BASEURL = process.env.VUE_APP_API_PHP_URL
// 1.15.1. 获取站点下的数据管理列表
export function censusListInterface(params) {
return http.post("/zwfw/site/model/census/list", params);
return http.post(`${baseURL}/zwfw/site/model/census/list`, params);
}
//排号机列表数据
export function getTaskList(params){
return http.get(`${BASEURL}/admin/take/takelist`,params)
}
//排队办理记录报表接口
export function getQueueData(params){
return http.post("/inter/reportform/quelist",params)
return http.post(`${BASEURL}/inter/reportform/quelist`,params)
}
//排号记录详情
export function getQueueInfo(params){
return http.post(`${BASEURL}/inter/reportform/queinfo`,params)
}
//业务事项关联
export function getBusinessEvent(params){
return http.post(`${baseURL}/basics_api/base/business/matter/list`,params)
}
//查询业务人员信息
export function getWorkerInfo(params){
return http.get(`${baseURL}/basics_api/base/workman/info`,params)
}
\ No newline at end of file
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 查看操作日志列表
export function getOperLogList(params) {
return http.post("/zwfw/oper/log/list", params);
return http.post(`${baseURL}/zwfw/oper/log/list`, params);
}
// 查看操作日志
export function getOperLogInfo(params) {
return http.get("/zwfw/oper/log/info", params);
return http.get(`${baseURL}/zwfw/oper/log/info`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.7.1. 查询菜单信息业务列表
export function menuList(params) {
return http.post("/zwfw/menu/list", params);
return http.post(`${baseURL}/zwfw/menu/list`, params);
}
// 1.7.2. 查看菜单信息业务
export function menuInfo(params) {
return http.get("/zwfw/menu/info", params);
return http.get(`${baseURL}/zwfw/menu/info`, params);
}
// 1.7.3. 保存更新菜单信息业务
export function menuSave(params) {
return http.post("/zwfw/menu/save", params);
return http.post(`${baseURL}/zwfw/menu/save`, params);
}
// 1.7.4. 删除菜单信息业务
export function menuDelete(params) {
return http.get("/zwfw/menu/delete", params);
return http.get(`${baseURL}/zwfw/menu/delete`, params);
}
// 1.7.5. 查询所有可用菜单
export function menuFindAll(params) {
return http.post("/zwfw/menu/findAll", params);
return http.post(`${baseURL}/zwfw/menu/findAll`, params);
}
// 1.3.8 查询菜单权限列表
export function menuFindAllTree(params) {
return http.post("/zwfw/menu/list/tree", params);
return http.post(`${baseURL}/zwfw/menu/list/tree`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.16.1. 查询站点编排列表
export function appsListInterface(params) {
return http.post("/zwfw/site/model/list", params);
return http.post(`${baseURL}/zwfw/site/model/list`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.2.1. 登录
export function LoginInterface(params) {
return http.post("/zwfw/login/login", params);
return http.post(`${baseURL}/zwfw/login/login`, params);
}
// 1.2.2. 首页
export function loginIndex(params) {
return http.post("/zwfw/login/index", params);
return http.post(`${baseURL}/zwfw/login/index`, params);
}
// 1.2.3. 登出
export function LogoutInterface(params) {
return http.post("/zwfw/login/logout", params);
return http.post(`${baseURL}/zwfw/login/logout`, params);
}
// 1.2.4. 用户修改密码
export function changePassword(params) {
return http.post("/zwfw/user/change/password", params);
return http.post(`${baseURL}/zwfw/user/change/password`, params);
}
// 管理员修改密码
export function editPassword(params) {
return http.post("/zwfw/user/reset/password", params);
return http.post(`${baseURL}/zwfw/user/reset/password`, params);
}
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL
// 1.3.1. 查询用户信息业务列表
export function userList(params) {
return http.post("/zwfw/user/list", params);
return http.post(`${baseURL}/zwfw/user/list`, params);
}
// 1.3.2. 查看用户信息业务
export function userInfo(params) {
return http.get("/zwfw/user/info", params);
return http.get(`${baseURL}/zwfw/user/info`, params);
}
// 1.3.3. 保存更新用户信息业务
export function userSave(params) {
return http.post("/zwfw/user/save", params);
return http.post(`${baseURL}/zwfw/user/save`, params);
}
// 1.3.4. 删除用户信息业务
export function userDelete(params) {
return http.get("/zwfw/user/delete", params);
return http.get(`${baseURL}/zwfw/user/delete`, params);
}
// 1.3.5. 用户站点授权
export function userSiteAuth(params) {
return http.post("/zwfw/user/siteAuth", params);
return http.post(`${baseURL}/zwfw/user/siteAuth`, params);
}
......@@ -28,6 +28,9 @@ import * as filters from "@/filters";
Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]);
});
//引入字典
import codeMap from "@/utils/codeMap"
Vue.prototype.$codeMap = codeMap
Vue.prototype.$bus = new Vue();
......
......@@ -10,7 +10,7 @@ export default {
tablePagination: {
current: 1,
pageSize: 10,
total: 20,
total: 0,
showQuickJumper: true, //是否可以快速跳转至某页
showSizeChanger: true, //是否可以改变 pageSize
showTotal: (total, range) => `共${total}条`,
......@@ -108,10 +108,8 @@ export default {
// console.log(this.tableSelectedKeys, this.tableSelectedRows);
},
pagTableChange(pag, filters) {
// console.log(pag);
this.tablePagination = pag;
this.$nextTick(() => { });
pagTableChange(pagination) {
this.tablePagination = pagination
},
......
......@@ -4,7 +4,7 @@ import axios from "axios";
import { message } from "ant-design-vue";
import Storage from "@/utils/js/Storage";
const service = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL,
// baseURL: process.env.VUE_APP_API_BASE_URL,
// timeout: 10000
});
service.interceptors.request.use(
......@@ -18,9 +18,12 @@ service.interceptors.request.use(
"Content-Type": "application/json;charset=utf-8",
};
const Authorization = JSON.parse(localStorage.getItem("Authorization"));
const siteid = JSON.parse(localStorage.getItem("siteId"))
if (Authorization) {
config.headers.Authorization = Authorization;
config.headers.Authtoken = Authorization;
config.headers.siteid = siteid
}
return config;
},
......
export default{
//排队叫号字典
"queueState":{"0":"排队中","1":"办理中","4":"接待结束"},
"takeNumWay":{"0":"现场取号","1":"在线取号"},
"politicalStatus":{"0":"中共党员","1":"中共预备党员","2":"共青团员","3":"普通居民","4":"其它"}
}
\ No newline at end of file
<template>
<div class="handling" ref="handling">
<a-drawer
:destroyOnClose="true"
:title="modalInfo.title"
:width="modalInfo.width"
:visible="modalInfo.visible"
@close="modalClose"
@getContainer="() => $refs.handling"
>
<a-drawer :destroyOnClose="true" :title="modalInfo.title" :width="modalInfo.width" :visible="modalInfo.visible"
@close="modalClose" @getContainer="() => $refs.handling">
<div class="headerInfo">
<!-- 头部耗时部分 -->
<p>
<span v-for="item of 3"
>总耗时:13分15秒<i class="fa fa-long-arrow-down"></i
></span>
<span>总耗时:{{ dataList.alltime || "--" }}
<i v-show="dataList.alltime && compareTime(dataList.p_alltime,dataList.alltime)" class="fa fa-long-arrow-down"></i>
</span>
<span>等待时间:{{ dataList.waittime || "--" }}
<i v-show="dataList.waittime && compareTime(dataList.p_waittime,dataList.waittime)" class="fa fa-long-arrow-down"></i>
</span>
<span>办理时间:{{ dataList.bltime || "--" }}
<i v-show="dataList.bltime && compareTime(dataList.p_bltime , dataList.bltime)" class="fa fa-long-arrow-down"></i>
</span>
</p>
<p>
<span>平均耗时:{{ dataList.p_alltime }}</span>
<span>平均等待时间:{{ dataList.p_waittime }}</span>
<span>平均办理时间:{{ dataList.p_bltime }}</span>
</p>
<p><span v-for="item of 3">平均耗时:14分0秒</span></p>
</div>
<div class="state">接件结束</div>
<a-steps
direction="vertical"
size="small"
:current="approveLs.length"
class="steps_box"
>
<a-step
v-for="(item, index) of approveLs"
:key="item.id"
:disabled="true"
@click.stop="drawerchange(item.id)"
class="step_box"
>
<div :class="returnScolor">{{ $codeMap.queueState[dataList.style] }}</div>
<a-steps direction="vertical" size="small" :current="approveLs.length" class="steps_box">
<a-step :disabled="true" class="step_box">
<div class="icon_box" slot="icon"></div>
<div class="title_box" slot="title">
<span class="title_name">{{
item.status == 1
? "办理中"
: item.status == 2
? "接件结束"
: "排队中"
}}</span>
<span class="title_name">排队中</span>
</div>
<div
class="description_box"
slot="description"
v-if="item.status == 0"
>
<div class="description_box" slot="description">
<div class="details">
<span v-for="item of 8"><i class="lable">申报人:</i>张三</span>
<span><i class="lable">申报人:</i>{{ dataList.people_name || "--" }}</span>
<span><i class="lable">取号时间:</i>{{ dataList.taketime || "--" }}</span>
<span><i class="lable">排队编码:</i>{{ dataList.flownum || "--" }}</span>
<span><i class="lable">取号方式:</i>{{ $codeMap.takeNumWay[dataList.wy_signin] || "--" }}</span>
<span><i class="lable">注册方式:</i>{{ "--" }}</span>
<span><i class="lable">取号设备:</i>{{ dataList.take_name || "--" }}</span>
</div>
</div>
<div
class="description_box"
slot="description"
v-else-if="item.status == 1"
>
</a-step>
<a-step :disabled="true" class="step_box" v-if="dataList.style > 0">
<div class="icon_box" slot="icon"></div>
<div class="title_box" slot="title">
<span class="title_name">办理中</span>
</div>
<div class="description_box" slot="description">
<div class="details">
<span v-for="item of 6"><i class="lable">办理窗口:</i>s003</span>
<span><i class="lable">办理窗口:</i>{{ dataList.window_name || "--" }}</span>
<span><i class="lable">办理开始时间:</i>{{ dataList.calltime || "--" }}</span>
<span><i class="lable">工作人员:</i>{{ dataList.workman_name || "--" }}</span>
<span><i class="lable">叫号设备:</i>{{ dataList.window_fromnum || "--" }}</span>
</div>
</div>
<div
class="description_box"
slot="description"
v-else-if="item.status == 2"
>
</a-step>
<a-step :disabled="true" class="step_box" v-if="dataList.style > 1">
<div class="icon_box" slot="icon"></div>
<div class="title_box" slot="title">
<span class="title_name">接件结束</span>
</div>
<div class="description_box" slot="description">
<div class="details">
<span v-for="item of 2"
><i class="lable">办理结束时间:</i>2021-01-15 12:00:00</span
>
<span><i class="lable">办理结束时间:</i>{{ dataList.endtime || "--" }}</span>
</div>
</div>
</a-step>
</a-steps>
</a-drawer>
</div>
</div>
</template>
<script>
import modal from "../mixins/modal";
export default {
mixins: [modal],
name: "PortalAdminVueHandlingDetails",
data() {
return {
defaultInfoForm: {},
modalInfo: {
confirmLoading: false,
visible: false,
title: '用户信息',
width: '38%',
},
dataList: [],
approveLs: [
{
id: "001",
......@@ -99,33 +101,52 @@ export default {
],
};
},
filters: {
returnScolor(key) {
switch (key) {
computed: {
returnScolor() {
switch (this.dataList.style) {
case 0:
return "state_colo1";
return "state1";
break;
case 1:
return "state_colo2";
break;
case 2:
return "state_colo3";
break;
case 3:
return "state_colo2";
break;
case 4:
return "state_colo3";
return "state2";
break;
default:
return "state_colo0";
return "state0";
break;
}
},
},
mounted() {},
mounted() {
},
methods: {},
methods: {
modalClose() {
this.modalInfo.visible = false;
},
// 比较时间大小
compareTime(time1, time2) {
if (this.timeToSec(time1) - this.timeToSec(time2) > 0) {
return true;
}
return false;
},
// 转换时间为秒
timeToSec(time) {
if (time !== null && time !== undefined) {
var s = "";
if (time.includes("分钟") && time.includes("")) {
var min = time.split("分钟")[0];
var sec = time.split("分钟")[1].split("")[0];
s = Number(min * 60) + Number(sec);
return s;
}else{
sec = time.split("")[0]
return sec;
}
}
},
},
};
</script>
......@@ -133,9 +154,11 @@ export default {
/deep/.ant-steps-icon {
top: -4px !important;
}
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
/deep/.icon_box {
margin-top: -20px !important;
display: inline-block;
......@@ -154,11 +177,13 @@ export default {
color: #1d95fd !important;
}
}
.headerInfo {
border-left: 3px solid #0595fd;
background: #e6f5ff;
padding: 5px 15px;
margin-bottom: 20px;
p {
&:first-child {
color: #0037b0;
......@@ -167,15 +192,18 @@ export default {
justify-content: space-between;
padding: 2px 0;
font-size: 16px;
span {
display: inline-block;
width: 32%;
i {
color: #63d7a5 !important;
margin-left: 5px;
}
}
}
&:last-child {
color: #0595fd;
padding: 2px 0;
......@@ -183,6 +211,7 @@ export default {
font-size: 14px;
align-items: center;
justify-content: space-between;
span {
display: inline-block;
width: 32%;
......@@ -195,10 +224,12 @@ export default {
.details {
display: flex;
flex-wrap: wrap;
span {
display: inline-block;
width: 49%;
padding: 4px 0;
.lable {
display: inline-block;
font-style: normal;
......@@ -209,7 +240,7 @@ export default {
}
}
.state {
.state0 {
position: absolute;
right: 10px;
top: 150px;
......@@ -222,11 +253,45 @@ export default {
display: flex;
justify-content: center;
align-items: center;
color: #BDBAB4;
}
.state1 {
position: absolute;
right: 10px;
top: 150px;
width: 85px;
height: 85px;
border: 5px solid #FCE2D9;
border-radius: 50%;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
display: flex;
justify-content: center;
align-items: center;
color: #f7072f;
}
.state2 {
position: absolute;
right: 10px;
top: 150px;
width: 85px;
height: 85px;
border: 5px solid #D9F1E4;
border-radius: 50%;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
display: flex;
justify-content: center;
align-items: center;
color: #05fd6c;
}
.state_colo0 {
color: #bbb;
}
.state_colo1 {
color: #fac;
}
......@@ -243,15 +308,18 @@ export default {
left: 6px !important;
top: 24px !important;
border-left: 3px dashed #e6f5ff !important;
&::after {
background: none !important;
}
}
/deep/.ant-steps-item {
& + .ant-steps-item {
&+.ant-steps-item {
margin-top: 25px !important;
}
}
.handling {
.steps_box {
height: 280px !important;
......
<template>
<div class="businessModal" ref="businessModal">
<a-modal
:title="modalInfo.title"
:width="modalInfo.width"
:visible="modalInfo.visible"
:confirmLoading="modalInfo.confirmLoading"
@cancel="modalClose"
:centered="true"
:destroyOnClose="true"
:getContainer="() => $refs.businessModal"
>
<a-modal :title="modalInfo.title" width="400px" :visible="modalInfo.visible"
:confirmLoading="modalInfo.confirmLoading" @cancel="modalClose" :centered="true" :destroyOnClose="true"
:getContainer="() => $refs.businessModal">
<div class="content">
<h1>{{ defaultInfoForm.yewuming }}</h1>
<em
>关联事项({{
defaultInfoForm.guanlianshixiang &&
defaultInfoForm.guanlianshixiang.length
}}</em
>
<p
v-for="(item, index) of defaultInfoForm.guanlianshixiang"
:key="index"
>
{{ item.shixiangmingcheng }}
<h1>{{ title }}</h1>
<em>关联事项({{ dataList.length }}</em>
<p>
<!-- {{ item.shixiangmingcheng }} -->
</p>
<h4>
<span
>受理次数<br /><i>{{ defaultInfoForm.shoulicishu }}</i></span
>
<span
>办结次数<br /><i>{{ defaultInfoForm.banjiecishu }}</i></span
>
<span
>好评率<br /><i>{{ defaultInfoForm.haopinglv }}</i></span
>
<span>受理次数<br /><i>12</i></span>
<span>办结次数<br /><i>12</i></span>
<span>好评率<br /><i>99%</i></span>
</h4>
</div>
<template slot="footer">
<a-button type="primary" ghost>查看业务分析</a-button>
<a-button type="primary" ghost @click="lookDetails">查看业务分析</a-button>
</template>
</a-modal>
</div>
</div>
</template>
<script>
......@@ -49,11 +28,18 @@ export default {
mixins: [modal],
name: "PortalAdminVueBusinessInfo",
data() {
return {};
return {
title: '',
dataList: []
};
},
mounted() {},
methods: {},
mounted() { },
methods: {
lookDetails() {
this.$message.warning('暂未开放');
},
},
};
</script>
......@@ -65,6 +51,7 @@ export default {
color: #139bfd;
padding: 20px;
}
em {
padding: 20px;
font-style: normal;
......@@ -72,6 +59,7 @@ export default {
color: #999;
margin-bottom: 10px;
}
p {
padding: 3px 20px;
font-size: 16px;
......@@ -80,6 +68,7 @@ export default {
text-overflow: ellipsis;
white-space: nowrap;
}
h4 {
margin-top: 10px;
padding: 20px;
......@@ -87,19 +76,23 @@ export default {
justify-content: space-between;
align-items: center;
background: #f3faff;
span {
text-align: center;
i {
color: #0b97fd;
font-style: normal;
}
}
span,
i {
padding: 3px 0;
}
}
}
.ant-modal-body {
padding: 0 !important;
min-height: 300px !important;
......
......@@ -11,7 +11,7 @@
:getContainer="() => $refs.userModal"
>
<div class="content">
<h1>{{ defaultInfoForm.name }}</h1>
<h1>{{ useInfo.name }}</h1>
<p>
<span>{{ defaultInfoForm.Gender }}</span>
<span>{{ defaultInfoForm.Age }}</span>
......@@ -47,7 +47,9 @@ export default {
mixins: [modal],
name: "PortalAdminVueUserInfo",
data() {
return {};
return {
useInfo:[]
};
},
components: {
Blockchain,
......
<template>
<div class="workPeopleModal" ref="workPeopleModal">
<a-modal
:title="modalInfo.title"
:width="modalInfo.width"
:visible="modalInfo.visible"
:confirmLoading="modalInfo.confirmLoading"
@cancel="modalClose"
:centered="true"
:destroyOnClose="true"
:getContainer="() => $refs.workPeopleModal"
>
<a-modal :title="modalInfo.title" width="500px" :visible="modalInfo.visible"
:confirmLoading="modalInfo.confirmLoading" @cancel="modalClose" :centered="true" :destroyOnClose="true"
:getContainer="() => $refs.workPeopleModal">
<div class="content">
<div class="workInfo">
<div class="left">
<img src="../../../../../assets/images/logo.png" alt="" />
<img :src="apis + infoData.photoPath" alt="" />
</div>
<div class="right">
<h1 class="title">刘明洋</h1>
<h1 class="title">{{ infoData.name }}</h1>
<div class="details">
<span v-for="item of 3"><i class="lable">工号:</i>01</span>
<span v-for="item of 3"><i class="lable">测试工号:</i>01</span>
<span><i class="lable">工号:</i>{{ infoData.number || "--" }}</span>
<span><i class="lable">所属部门:</i>{{ infoData.deptName || "--" }}</span>
<span><i class="lable">政治面貌:</i>{{ $codeMap.politicalStatus[infoData.politicalstatus] || "--" }}</span>
<span><i class="lable">电话:</i>{{ infoData.phone || "--" }}</span>
<span><i class="lable">星级:</i>{{ infoData.starlevel || "--" }}</span>
</div>
</div>
</div>
<h2>
<span
>受理业务<br /><i>{{ defaultInfoForm.souliyewu }}</i></span
>
<span
>评价次数<br /><i>{{ defaultInfoForm.pingjiacishu }}</i></span
>
<span
>好评率<br /><i>{{ defaultInfoForm.haopinglv }}</i></span
>
<span>受理业务<br /><i>{{ "--" }}</i></span>
<span>评价次数<br /><i>{{ "--" }}</i></span>
<span>好评率<br /><i>{{ "--" }}</i></span>
</h2>
</div>
<template slot="footer">
<a-button type="primary" ghost>查看TA的数据画像</a-button>
<a-button type="primary" ghost @click="openBlockchain"
>区块链信息</a-button
>
<a-button type="primary" ghost @click="openBlockchain">查看TA的数据画像</a-button>
<a-button type="primary" ghost @click="openBlockchain">区块链信息</a-button>
</template>
</a-modal>
<Blockchain ref="Blockchain" />
</div>
</div>
</template>
<script>
......@@ -53,16 +41,20 @@ export default {
mixins: [modal],
name: "PortalAdminVueUserInfo",
data() {
return {};
return {
infoData: [],
apis: process.env.VUE_APP_API_IMG_URL
};
},
components: {
Blockchain,
},
mounted() {},
mounted() { },
methods: {
openBlockchain() {
this.$refs.Blockchain.modalInfo.visible = true;
// this.$refs.Blockchain.modalInfo.visible = true;
this.$message.warning('暂未开通')
},
},
};
......@@ -72,30 +64,37 @@ export default {
.workPeopleModal {
.content {
.workInfo {
padding: 20px;
// padding: 20px;
display: flex;
justify-content: space-between;
.left {
width: 100px;
padding: 0 10px;
img {
max-height: 120px;
width: 100%;
}
}
.right {
flex: 1;
.title {
color: #149bfd;
font-size: 17px;
}
.details {
display: flex;
flex-wrap: wrap;
span {
display: inline-block;
width: 49%;
padding: 10px 0;
padding: 2px 0;
.lable {
display: inline-block;
font-style: normal;
......@@ -106,15 +105,20 @@ export default {
}
}
}
h2 {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10px;
padding: 20px;
background: #f3faff;
border-radius: 4px;
span {
font-size: 15px;
text-align: center;
i {
color: #3bacfd;
font-style: normal;
......@@ -122,6 +126,7 @@ export default {
}
}
}
.ant-modal-body {
padding: 0 !important;
min-height: 300px !important;
......
......@@ -34,13 +34,13 @@ export default {
yewuming: '公安户籍类',
guanlianshixiang: [
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
shixiangmingcheng: '事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
shixiangmingcheng: '事项名称事项名称事项名称事项名称',
},
{
shixiangmingcheng: '事项名称事项名称事项名称事项名称事项名称事项名称',
shixiangmingcheng: '事项名称事项名称事项名称事项名称',
},
],
shoulicishu: "12546",
......
......@@ -5,50 +5,93 @@
<a-button type="success" @click="exportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button>
<b>叫号次数:<i>233次</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub>
<b>叫号次数:<i>{{ tablePagination.total }}</i></b>
<sub>统计时间段:{{ searchForm.time[0] }}~{{ searchForm.time[1] }}</sub>
</div>
<span>
<a-select default-value="001">
<a-select-option value="001"> 设备001 </a-select-option>
<a-select-option value="002"> 设备002 </a-select-option>
<a-select v-model="searchForm.id" style="width: 120px">
<a-select-option value=""> 全部设备 </a-select-option>
<a-select-option v-for="item in deviceData" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
<a-select default-value="001">
<a-select-option value="001"> 状态001 </a-select-option>
<a-select-option value="002"> 状态002 </a-select-option>
<a-select v-model="searchForm.style" style="width: 120px">
<a-select-option value=""> 全部状态 </a-select-option>
<a-select-option v-for="v in style" :key="v.key" :value="v.key">{{
v.name
}}</a-select-option>
</a-select>
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
v-model="BegindAndEndTime">
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time">
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入排队编号或申报人姓名搜索">
<a-input v-model="searchForm.flownum" placeholder="请输入排队编号搜索">
<a-icon slot="prefix" type="search" />
</a-input>
<a-button type="primary">搜索</a-button>
<a-button type="primary" @click="getDataList">搜索</a-button>
<a-button @click="resetBtn">重置</a-button>
</span>
</div>
<div class="main">
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template slot="shenbaoren" slot-scope="text, record, index">
<a-button type="link" @click="openDeclarant">{{ text }}</a-button>
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="changeTablePage" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableList">
<!-- 序号 -->
<span slot="num" slot-scope="text, record, index">{{
(tablePagination.current - 1) * tablePagination.pageSize + index + 1
}}</span>
<!-- 申报人 -->
<template slot="people_name" slot-scope="text">
<a v-if="text.people_name" @click="openDeclarant(text)">{{
text.people_name
}}</a>
<span v-else>--</span>
</template>
<!-- 联系方式 -->
<template slot="people_phone" slot-scope="text">
{{ text.people_phone ? text.people_phone : "--" }}
</template>
<!-- 取号设备 -->
<template slot="device_name" slot-scope="text">
{{ text.device_name ? text.device_name : "--" }}
</template>
<!-- 办理业务 -->
<template slot="business" slot-scope="text">
<a v-if="text.business" @click="openBusiness(text.business, text.businessId)">{{ text.business }}</a>
<span v-else>--</span>
</template>
<template slot="banliyewu" slot-scope="text, record, index">
<a-button type="link" @click="openBusiness">{{ text }}</a-button>
<!-- 办理开始时间 -->
<template slot="calltime" slot-scope="text">
{{ text.calltime ? text.calltime : "--" }}
</template>
<template slot="gongzuorenyuan" slot-scope="text, record, index">
<a-button type="link" @click="openWorkpeople">{{ text }}</a-button>
<!-- 办理窗口 -->
<template slot="window_name" slot-scope="text">
{{ text.window_name ? text.window_name : "--" }}
</template>
<template slot="zhuangtai" slot-scope="text, record, index">
<a-button type="link" :class="[QueueState(index)]">{{
text
}}</a-button>
<!-- 工作人员 -->
<template slot="workman_name" slot-scope="text">
<a v-if="text.workman_name" @click="openWorkpeople(text.workmanid)">{{
text.workman_name
}}</a>
<span v-else>--</span>
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click="openHandlingDetails">详细信息{{ record.id }}</a-button>
<!-- 办理结束时间 -->
<template slot="endtime" slot-scope="text">
{{ text.endtime ? text.endtime : "--" }}
</template>
<!-- 操作 -->
<template slot="action" slot-scope="text">
<a @click="openHandlingDetails(text.id)">详细信息</a>
</template>
<!-- 状态 -->
<template slot="style" slot-scope="text">
<span :class="{
'stand-line': text.style === 0,
'on-transact': text.style === 1,
'on-end': text.style === 4,
}">
{{ $codeMap.queueState[text.style] }}
</span>
</template>
</a-table>
<UserInfo ref="UserInfo" />
......@@ -56,16 +99,17 @@
<WorkpeopleInfo ref="WorkpeopleInfo" />
<HandlingDetails ref="HandlingDetails" />
</div>
</div>
</div>
</template>
<script>
import table from "@/mixins/table";
import moment from "moment";
import UserInfo from "./components/userInfo.vue";
import BusinessInfo from "./components/businessInfo.vue";
import WorkpeopleInfo from "./components/workpeopleInfo.vue";
import HandlingDetails from "./components/HandlingDetails.vue";
import { getQueueData } from "@/api/dataAdmin";
import { getTaskList, getQueueData, getQueueInfo, getBusinessEvent, getWorkerInfo } from "@/api/dataAdmin";
export default {
mixins: [table],
name: "PortalAdminVueQueueRecord",
......@@ -74,95 +118,123 @@ export default {
tableHeaders: [
{
title: "序号",
dataIndex: "index",
width: "60px",
key: "index",
width: "65px",
align: "center",
customRender: (text, record, index) => `${index + 1}`,
scopedSlots: {
customRender: "num",
},
},
{
title: "排队编号",
align: "center",
dataIndex: "paiduibianhao",
dataIndex: "flownum",
},
{
title: "申报人",
align: "center",
dataIndex: "shenbaoren",
scopedSlots: {
customRender: "shenbaoren",
customRender: "people_name",
},
},
{
title: "联系方式",
align: "center",
dataIndex: "lianxifangshi",
scopedSlots: {
customRender: "people_phone",
},
},
{
title: "取号时间",
width: "115px",
align: "center",
dataIndex: "quhaoshijian",
dataIndex: "taketime",
},
{
title: "取号设备",
align: "center",
dataIndex: "quhaoshebei",
scopedSlots: {
customRender: "device_name",
},
},
{
title: "办理业务",
align: "center",
dataIndex: "banliyewu",
scopedSlots: {
customRender: "banliyewu",
customRender: "business",
},
},
{
title: "办理开始时间",
width: "115px",
width: "8%",
align: "center",
dataIndex: "banlikaishishijian",
scopedSlots: {
customRender: "calltime",
},
},
{
title: "办理窗口",
align: "center",
dataIndex: "banlichuangkou",
scopedSlots: {
customRender: "window_name",
},
},
{
title: "工作人员",
align: "center",
dataIndex: "gongzuorenyuan",
scopedSlots: {
customRender: "gongzuorenyuan",
customRender: "workman_name",
},
},
{
title: "办理结束时间",
width: "115px",
width: "8%",
align: "center",
dataIndex: "banlijieshushijian",
scopedSlots: {
customRender: "endtime",
},
},
{
title: "状态",
align: "center",
dataIndex: "zhuangtai",
scopedSlots: {
customRender: "zhuangtai",
customRender: "style",
},
},
{
title: "操作",
align: "center",
width: "110px",
dataIndex: "operation",
scopedSlots: {
customRender: "operation",
customRender: "action",
},
},
],
BegindAndEndTime: [],
searchName: undefined,
//设备数据
deviceData: [],
// 搜索数据
searchForm: {
id: "", // 排队机id
style: "", // 状态
time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")], // 时间区间
flownum: "", // 排号编码
},
//状态
style: [
{
key: 0,
name: "排队中",
},
{
key: 1,
name: "办理中",
},
{
key: 4,
name: "办理完成",
},
],
//Form数据列表
tableList: [],
};
},
components: {
......@@ -173,62 +245,85 @@ export default {
},
mounted() {
this.setMoment();
this.getTaskListArr();
this.getQueueDataArr();
},
methods: {
//搜索按钮
getDataList() {
this.tablePagination.current = 1
this.getQueueDataArr();
},
//重置按钮
resetBtn() {
this.tablePagination.current = 1
this.searchForm = {
id: "", // 排队机id
style: "", // 状态
time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")], // 时间区间
flownum: "", // 排号编码
}
this.getQueueDataArr()
for (let key = 0; key < 20; key++) {
this.tableSourceData.push({
id: `00${key + 1}`,
paiduibianhao: `A0001${key + 1}`,
shenbaoren: `张三 00${key + 1}`,
lianxifangshi: `13080888888${key + 1}`,
quhaoshijian: `2021-01-15 12:00:00`,
quhaoshebei: `一楼排队机 ${key + 1}`,
banliyewu: `公安户籍类 ${key + 1}`,
banlikaishishijian: `2021-01-15 12:00:00`,
banlichuangkou: `01/东区1 ${key + 1}`,
gongzuorenyuan: `刘明洋 ${key + 1}`,
banlijieshushijian: `2021-01-15 12:00:00`,
zhuangtai: `排队中 ${key + 1}`,
},
//获取排号机设备列表
async getTaskListArr() {
await getTaskList({ page: 1, size: -1 }).then((res) => {
// console.log(res.data.data)
this.deviceData = res.data.data;
});
}
},
methods: {
// 获取列表数据
getQueueDataArr() {
getQueueData().then(res => {
console.log(res)
})
getQueueData({
page: this.tablePagination.current,
size: this.tablePagination.pageSize,
...this.searchForm,
}).then((res) => {
this.tableList = res.data.data;
this.tablePagination.total = res.data.total;
});
},
openDeclarant() {
//分页
changeTablePage(page) {
this.pagTableChange(page)
this.getQueueDataArr()
},
//用户模态框
openDeclarant(item) {
console.log(item)
this.$refs.UserInfo.modalInfo.title = "用户信息";
this.$refs.UserInfo.modalInfo.width = "25%";
this.$refs.UserInfo.modalInfo.visible = true;
},
openBusiness() {
//业务关联模块
async openBusiness(business, id) {
let siteId = localStorage.getItem('siteId')
await getBusinessEvent({ siteId, page: 1, size: -1, siteBusinessId: id }).then(res => {
this.$refs.BusinessInfo.dataList = res.data.data
})
this.$refs.BusinessInfo.modalInfo.title = "业务分析";
this.$refs.BusinessInfo.title = business
this.$refs.BusinessInfo.modalInfo.visible = true;
},
openWorkpeople() {
//工作人员信息模态框
async openWorkpeople(id) {
await getWorkerInfo({ id }).then(res => {
console.log(res.data)
this.$refs.WorkpeopleInfo.infoData = res.data
})
this.$refs.WorkpeopleInfo.modalInfo.title = "工作人员信息";
this.$refs.WorkpeopleInfo.modalInfo.visible = true;
},
openHandlingDetails() {
//详情信息抽屉
async openHandlingDetails(id) {
//获取排队叫号对应ID详情
await getQueueInfo({ id }).then(res => {
this.$refs.HandlingDetails.dataList = res.data
})
this.$refs.HandlingDetails.modalInfo.title = "办理明细";
this.$refs.HandlingDetails.modalInfo.visible = true;
},
rangePickerChange(val) {
console.log(val);
},
QueueState(type) {
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default:
return "type0";
}
},
},
};
</script>
......@@ -237,5 +332,12 @@ export default {
/deep/.ant-spin-container {
display: block !important;
}
</style>
.stand-line {
color: #f23a3a;
}
.on-transact {
color: #04ca8f;
}
</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