上报
This commit is contained in:
20487
package-lock.json
generated
20487
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
17
src/api/badwgl.js
Normal file
17
src/api/badwgl.js
Normal file
@ -0,0 +1,17 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/bagl/mosty-base";
|
||||
|
||||
export const getDwglnfo = (id) => {
|
||||
return request({
|
||||
url: api + "/baxx/dwgl/getInfo/" + id,
|
||||
method: "POST",
|
||||
});
|
||||
};
|
||||
export const editDwglEdit = (data) => {
|
||||
return request({
|
||||
url: api + "/baxx/dwgl/edit",
|
||||
method: "POST",
|
||||
data,
|
||||
});
|
||||
};
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//获取用户所属区域数据
|
||||
export function getUserArea(params = {}) {
|
||||
return request({
|
||||
url: "/mosty-base/other/getGajg",
|
||||
method: "post",
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 获取方正cokie
|
||||
export function getCokie(params) {
|
||||
return request({
|
||||
url: `/mosty-base/fzmsg/getCokie`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
}
|
||||
@ -1,70 +0,0 @@
|
||||
//常用装备
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
|
||||
// 下发
|
||||
export function lssuedJyzb(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglJyqx/xfJyqx',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 回退
|
||||
export function RellBackJyzb(params) {
|
||||
return request({
|
||||
url: api + '/tpJcglJyqx/htJyqx',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 报损
|
||||
export function ReportLossjYzb(params) {
|
||||
return request({
|
||||
url: api + '/tpJcglJyqx/bsJyqx',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 分页查询
|
||||
export function getJyqx(params) {
|
||||
return request({
|
||||
url: api + '/tpJcglJyqx/selectJyqx',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addJyqx(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglJyqx/addJyqx',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putJyqx(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglJyqx/updateJyqx',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoJyqx(id) {
|
||||
return request({
|
||||
url: api + `/tpJcglJyqx/selectJyqxXq?id=${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delJyqx(data) {
|
||||
return request({
|
||||
url: api + `/tpJcglJyqx/deleteJyQxzb`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,53 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getTbJcglBq(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglBq',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addTbJcglBq(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglBq',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putTbJcglBq(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglBq',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoTbJcglBq(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglBq/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delTbJcglBq(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglBq/${id}`,
|
||||
method: "DELETE"
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 注销标签
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const deleteTbJcglBq = (data) => {
|
||||
return request({
|
||||
url: `${api}/tbJcglBq/zcbqByIds`,
|
||||
method: "put",
|
||||
data
|
||||
});
|
||||
};
|
||||
@ -1,43 +0,0 @@
|
||||
//专家库管理
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getTbJcglZjk(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglZjk/queryList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//新增
|
||||
export function addTbJcglZjk(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglZjk/insert',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putTbJcglZjk(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglZjk/update',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoTbJcglZjk(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglZjk/selectById?id=${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delTbJcglZjk(ids) {
|
||||
return request({
|
||||
url: api + `/tbJcglZjk/delete`,
|
||||
method: "post",
|
||||
data:ids
|
||||
})
|
||||
}
|
||||
@ -1,70 +0,0 @@
|
||||
//智能装备
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
|
||||
// 下发
|
||||
export function lssuedZnzb(data) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/xfZnzb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 回退
|
||||
export function RellBackZnzb(params) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/htZnzb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 报损
|
||||
export function ReportLossZnzb(params) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/bsZnzb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 分页查询
|
||||
export function getZnzb(params) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/getZnzb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addZnzb(data) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/addZnzb',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putZnzb(data) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/editZnzb',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoZnzb(id) {
|
||||
return request({
|
||||
url: api + `/tpjcglZnzb/selectZbxq?id=${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delZnzb(data) {
|
||||
return request({
|
||||
url: api + `/tpjcglZnzb/deleteZnzb`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
//巡逻点位
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getBxd(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglBxd/queryList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addBxd(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglBxd/addBxd',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putBxd(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglBxd/updateBxd',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoBxd(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglBxd/selectById?id=${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delBxd(data) {
|
||||
return request({
|
||||
url: api + `/tbJcglBxd/deleteBxd`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
//巡防区域管理
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getXfqy(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglXfqy/queryList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addXfqy(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglXfqy/addXfqy',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putXfqy(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglXfqy/updateXfqy',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoXfqy(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglXfqy/selectById?id=${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delXfqy(data) {
|
||||
return request({
|
||||
url: api + `/tbJcglXfqy/deleteXfqy`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
//巡逻路线
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getBxx(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglBxx/queryList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addBxx(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglBxx/addBxx',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putBxx(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglBxx/updateBxx',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoBxx(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglBxx/selectById?id=${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delBxx(data) {
|
||||
return request({
|
||||
url: api + `/tbJcglBxx/deleteBxx`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,36 +0,0 @@
|
||||
//警务站
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
//查询警务站列表
|
||||
export function getPoliceStationList(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglJwz/selectJwzList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//删除警务站
|
||||
export function deletePoliceStation(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglJwz/deleteJwz',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//新增警务站
|
||||
export function addPoliceStation(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglJwz/addJwz',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//编辑警务站
|
||||
export function updatePoliceStation(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglJwz/updateJwz',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,36 +0,0 @@
|
||||
//快返点
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getKfd(params) {
|
||||
return request({
|
||||
url: api + '/tpJcglKfd/selectKfdList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 新增快返点
|
||||
export function addKfd(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglKfd/addKfd',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 删除快返点
|
||||
export function deleteKfd(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglKfd/deleteKfd',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 修改快返点
|
||||
export function updateKfd(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglKfd/updateKfd',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,44 +0,0 @@
|
||||
//勤务警组
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getJzList(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglJz/queryList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addJz(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglJz/addJz',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteJz(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglJz/deleteJz',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getJzInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglJz/selectByid?id=${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateJz(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglJz/updateJz',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
//社会安保力量
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getTbJcglShabll(params) {
|
||||
return request({
|
||||
url: api + '/tbJcglShabll',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//新增
|
||||
export function addTbJcglShabll(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglShabll',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putTbJcglShabll(data) {
|
||||
return request({
|
||||
url: api + '/tbJcglShabll',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoTbJcglShabll(id) {
|
||||
return request({
|
||||
url: api + `/tbJcglShabll/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delTbJcglShabll(ids) {
|
||||
return request({
|
||||
url: api + `/tbJcglShabll`,
|
||||
method: "delete",
|
||||
data:ids
|
||||
})
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
//分页查询
|
||||
export function getDsfList(params) {
|
||||
return request({
|
||||
url: api + '/dsf',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//新增
|
||||
export function addDsf(data) {
|
||||
return request({
|
||||
url: api + '/dsf',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function putDsf(data) {
|
||||
return request({
|
||||
url: api + '/dsf',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改第三方状态
|
||||
export function putDsfZt(data) {
|
||||
return request({
|
||||
url: api + '/dsf/judge',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoDsf(id) {
|
||||
return request({
|
||||
url: api + `/dsf/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delDsf(ids) {
|
||||
return request({
|
||||
url: api + `/dsf?ids=${ids}`,
|
||||
method: "delete"
|
||||
})
|
||||
}
|
||||
@ -1,82 +0,0 @@
|
||||
// 巡防车辆管理
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
//查询巡防车辆列表
|
||||
export function getXfcl(params) {
|
||||
return request({
|
||||
url: api + '/tpJcglXfcl/getXfclList',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增巡防车辆
|
||||
export function addXfcl(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglXfcl/addXfcl',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function upXfcl(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglXfcl/updateXfcl',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delXfcl(ids) {
|
||||
return request({
|
||||
url: api + '/tpJcglXfcl/deleteXfcl',
|
||||
method: 'post',
|
||||
data:ids
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoXfcl(id) {
|
||||
return request({
|
||||
url: api + '/tpJcglXfcl/selectClxq?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
//查询车辆设备详情
|
||||
export function infoXfsb(id) {
|
||||
return request({
|
||||
url: api + `/xfclSb/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
//新增巡防车辆设备
|
||||
export function addXfclsb(data) {
|
||||
return request({
|
||||
url: api + '/xfclSb',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改巡防车辆设备
|
||||
export function upXfclsb(data) {
|
||||
return request({
|
||||
url: api + '/xfclSb',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//分页查询巡防车辆设备
|
||||
export function getXfclsb(data) {
|
||||
return request({
|
||||
url: api + '/xfclSb/getPageList',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除巡防车辆设备
|
||||
export function delXfclsb(ids) {
|
||||
return request({
|
||||
url: api + '/xfclSb',
|
||||
method: 'delete',
|
||||
data:ids
|
||||
})
|
||||
}
|
||||
@ -1,50 +0,0 @@
|
||||
// 巡防装备管理
|
||||
import request from "@/utils/request";
|
||||
// const api = "/mosty-jmxf";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 查询装备树
|
||||
export function getTree(data = '') {
|
||||
return request({
|
||||
url: api + `/tpJcglZbfl/zbTree/scode=${data}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
//查询装备列表
|
||||
export function getZbfllist(params) {
|
||||
return request({
|
||||
url: api + '/tpJcglZbfl/selectLxList',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增装备类型
|
||||
export function addTpjcglzbfl(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglZbfl/addZbfl',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function upZbfl(data) {
|
||||
return request({
|
||||
url: api + '/tpJcglZbfl/editZbfl',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function delZbfl(ids) {
|
||||
return request({
|
||||
url: api + '/tpJcglZbfl/deleteZbfl',
|
||||
method: 'post',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function infoZbfl(id) {
|
||||
return request({
|
||||
url: api + '/tpjcglZnzb/selectZbxq?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
// 装备到期提醒
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 智能装备到期提醒列表
|
||||
export function getZnzbTx(params) {
|
||||
return request({
|
||||
url: api + `/tpjcglZnzb/znzbDqtx`,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 常用装备到期提醒
|
||||
export function getJyqxTx(params) {
|
||||
return request({
|
||||
url: api + `/tpJcglJyqx/jyqxDqtx`,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,81 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
|
||||
// 分页查询
|
||||
export function getYJModelList(params) {
|
||||
return request({
|
||||
url: api + '/tbYjmx',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//新增
|
||||
export function addYJmodel(data) {
|
||||
return request({
|
||||
url: api + '/tbYjmx',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//修改
|
||||
export function putYJmodel(data) {
|
||||
return request({
|
||||
url: api + '/tbYjmx',
|
||||
method: "PUT",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//删除
|
||||
export function delYJModel(id) {
|
||||
return request({
|
||||
url: api + `/tbYjmx/${id}`,
|
||||
method: "delete"
|
||||
})
|
||||
}
|
||||
|
||||
// 模型参数
|
||||
// 查询
|
||||
export function getCsList(params) {
|
||||
return request({
|
||||
url: api + '/tbYjmxCsb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 新增
|
||||
export function addCs(data) {
|
||||
return request({
|
||||
url: api + '/tbYjmxCsb',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function putCs(data) {
|
||||
return request({
|
||||
url: api + '/tbYjmxCsb',
|
||||
method: "PUT",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除
|
||||
export function delCs(id) {
|
||||
return request({
|
||||
url: api + `/tbYjmxCsb/${id}`,
|
||||
method: "delete"
|
||||
})
|
||||
}
|
||||
|
||||
// 启动停止
|
||||
export function getCsDTQZ(id) {
|
||||
return request({
|
||||
url: api + `/tbYjmx/${id}`,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
@ -1,65 +0,0 @@
|
||||
//车辆布控
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-bkzx";
|
||||
//新增
|
||||
export function addCar(data) {
|
||||
return request({
|
||||
url: api + '/tbBkCl',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function editCar(data) {
|
||||
return request({
|
||||
url: api + '/tbBkCl',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//批量删除
|
||||
export function delCar(data) {
|
||||
return request({
|
||||
url: api + '/tbBkCl',
|
||||
method: "delete",
|
||||
data
|
||||
})
|
||||
}
|
||||
//查询详情
|
||||
export function getInfo(id) {
|
||||
return request({
|
||||
url: api + '/tbBkCl/' + id,
|
||||
method: "get",
|
||||
})
|
||||
}
|
||||
//结束布控
|
||||
export function endBk(id) {
|
||||
return request({
|
||||
url: api + '/tbBkCl/endBk/' + id,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
//结束布控
|
||||
export function startBk(id) {
|
||||
return request({
|
||||
url: api + '/tbBkCl/startBk/' + id,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
//分页查询
|
||||
export function getCarList(params) {
|
||||
return request({
|
||||
url: api + '/tbBkCl',
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
// 布控人员审批
|
||||
export function judgeCar(data) {
|
||||
return request({
|
||||
url: api + '/tbBkCl/judge',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,82 +0,0 @@
|
||||
import axios from 'axios';
|
||||
import request from "@/utils/request";
|
||||
const api = "/zdxx-prod-api/aisino";
|
||||
|
||||
|
||||
//获取人员标签
|
||||
export function getRytag(params) {
|
||||
return request({
|
||||
url: api + '/queryTags',
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取重点人员信息
|
||||
export function getPersonList(data) {
|
||||
return request({
|
||||
url: api + '/queryPerson',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//新增重点人员
|
||||
export function addPerson(data) {
|
||||
return request({
|
||||
url: api + '/addPerson',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//修改重点人员
|
||||
export function updatePerson(data) {
|
||||
return request({
|
||||
url: api + '/updatePerson',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除重点人员
|
||||
export function deletePerson(data) {
|
||||
return request({
|
||||
url: api + '/deletePerson',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//查询车辆
|
||||
export function getCarList(data) {
|
||||
return request({
|
||||
url: api + '/queryCar',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//添加车辆
|
||||
export function addCar(data) {
|
||||
return request({
|
||||
url: api + '/addCar',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//修改车辆
|
||||
export function updateCar(data) {
|
||||
return request({
|
||||
url: api + '/updateCar',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 删除车辆
|
||||
export function deleteCar(data) {
|
||||
return request({
|
||||
url: api + '/deleteCar',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,65 +0,0 @@
|
||||
//人员布控
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-bkzx";
|
||||
//新增
|
||||
export function addPerson(data) {
|
||||
return request({
|
||||
url: api + '/tbBkRy',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
//修改
|
||||
export function editPerson(data) {
|
||||
return request({
|
||||
url: api + '/tbBkRy',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
//批量删除
|
||||
export function delPerson(data) {
|
||||
return request({
|
||||
url: api + '/tbBkRy',
|
||||
method: "delete",
|
||||
data
|
||||
})
|
||||
}
|
||||
//查询详情
|
||||
export function getInfo(id) {
|
||||
return request({
|
||||
url: api + '/tbBkRy/' + id,
|
||||
method: "get",
|
||||
})
|
||||
}
|
||||
//结束布控
|
||||
export function endBk(id) {
|
||||
return request({
|
||||
url: api + '/tbBkRy/endBk/' + id,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
//结束布控
|
||||
export function startBk(id) {
|
||||
return request({
|
||||
url: api + '/tbBkRy/startBk/' + id,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
//分页查询
|
||||
export function getPersonList(params) {
|
||||
return request({
|
||||
url: api + '/tbBkRy',
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
// 布控人员审批
|
||||
export function judgePerson(data) {
|
||||
return request({
|
||||
url: api + '/tbBkRy/judge',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
//工作情况
|
||||
import request from "@/utils/request";
|
||||
///mosty-api
|
||||
const api = "/mosty-api";
|
||||
const api = "/bagl/mosty-api";
|
||||
// 在岗警力 | 街面力量
|
||||
export function getZgjlData(params = {}) {
|
||||
return request({
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
import request from "@/utils/otherRequest";
|
||||
|
||||
// 经纬度转换地址
|
||||
export function getLocation (params = {}){
|
||||
return request({
|
||||
url: 'http://80.75.112.19:8080/reverse.php',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 获取流地址
|
||||
export function getVideoUrl (params = {}){
|
||||
return request({
|
||||
url: 'http://80.149.27.55/api/haikang/cameras/getws',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 获取回放地址
|
||||
export function getReplayUrl (params = {}){
|
||||
return request({
|
||||
url: 'http://80.149.27.55/api/haikang/cameras/replay',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
//视频
|
||||
import request from "@/utils/request";
|
||||
///mosty-api
|
||||
const api = "/mosty-api";
|
||||
const api = "/bagl/mosty-api";
|
||||
// 获取周边视频 不分页
|
||||
export function getZbVideoList(data = {}) {
|
||||
return request({
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
//工作情况
|
||||
import request from "@/utils/request";
|
||||
///mosty-api
|
||||
const api = "/mosty-api";
|
||||
// 巡组数量
|
||||
export function getXfsltj(params = {}) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/wztj/tj/xfsltj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 人员数量
|
||||
export function getRysltj(params = {}) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/wztj/tj/rysltj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//设备数量
|
||||
export function getSblswz(params = {}) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/wztj/tj/sblswz',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
//作战指挥
|
||||
import request from "@/utils/request";
|
||||
///mosty-api
|
||||
const api = "/mosty-api";
|
||||
const api = "/bagl/mosty-api";
|
||||
// 获取参与警力数据统计
|
||||
export function getSelectOnCop(data = {}) {
|
||||
return request({
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-base";
|
||||
|
||||
/**
|
||||
* 消息列表
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getPageList = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/sysMessage/getPageList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 发送消息
|
||||
* @param {*} data
|
||||
* @returns
|
||||
*/
|
||||
export const sendMsg = (data) => {
|
||||
return request({
|
||||
url: api + "/sysMessage/sendMsg",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-base";
|
||||
/*
|
||||
* 登录
|
||||
* return promise 实例对象
|
||||
*/
|
||||
export const getAddress = (params) => {
|
||||
return request({
|
||||
url: api + "/other/getAddress",
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
};
|
||||
@ -1,5 +1,5 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const api = "/bagl/mosty-api/mosty-jmxf";
|
||||
|
||||
// 大屏预警统计
|
||||
export const getYjCount = (data) => {
|
||||
@ -119,7 +119,14 @@ export const zlZqtjxx = (data) => {
|
||||
//文件下载
|
||||
export function downFiles(id) {
|
||||
return request({
|
||||
url: `/mosty-api/mosty-base/minio/file/download/${id}`,
|
||||
url: `/bagl/mosty-base/minio/file/download/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
// 视频文件
|
||||
export function downVideoFiles(id) {
|
||||
return request({
|
||||
url: `/bagl/mosty-base/AppUserConfig/image/url/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
///mosty-api
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 群防群治
|
||||
/**
|
||||
* 添加群防群治
|
||||
* @param {*} data
|
||||
* @returns
|
||||
*/
|
||||
export function qfqzAdd(data = {}) {
|
||||
return request({
|
||||
url: api + '/jmxf/qfqz/add',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 修改群防群治
|
||||
* @param {*} data
|
||||
* @returns
|
||||
*/
|
||||
export function qfqzEdit(data = {}) {
|
||||
return request({
|
||||
url: api + '/jmxf/qfqz/edit',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取群防群治详情
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export function qfqzSelectPage(data = {}) {
|
||||
return request({
|
||||
url: api + '/jmxf/qfqz/selectPage',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 删除群防群治
|
||||
* @param {*} data
|
||||
* @returns
|
||||
*/
|
||||
export function qfqzDelete(id) {
|
||||
return request({
|
||||
url: api + `/jmxf/qfqz/delete/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
//新增路线规划
|
||||
/**
|
||||
* 新增路线规划
|
||||
*/
|
||||
export function tbQwXfAddBxx(data) {
|
||||
return request({
|
||||
url: api + `/tbQwXfbbGhlx/addBxx`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 删除路线规划
|
||||
*/
|
||||
export function tbQwXfAdeleteBxx(data) {
|
||||
return request({
|
||||
url: api + `/tbQwXfbbGhlx/deleteBxx`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 查询路线规划
|
||||
*/
|
||||
export function tbQwXfAselectById(params) {
|
||||
return request({
|
||||
url: api + `/tbQwXfbbGhlx/selecList`,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
//工作情况
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api";
|
||||
|
||||
export function getZgjlData(data = {}) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbQwBmjlbb/selectOnCop',
|
||||
method: 'GET',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,84 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api";
|
||||
|
||||
|
||||
// 柱状图数据
|
||||
|
||||
// 各区县巡防时长和里程
|
||||
export function getXfscAndLcData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/tbQwXfbb/getXfscAndLc?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 各区县盘查工作
|
||||
export function getGqxpData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/tbHcBpcry/getGqxpc?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 各区县重点巡防区域
|
||||
export function getZdxfqyData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/tbJcglXfqy/getZdxfqy?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 各区县预警情况
|
||||
export function getGqxyjqkData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf//yjxx/getGqxyjqk?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 折线图数据
|
||||
|
||||
// 警情与巡防工作对比分析
|
||||
export function getJqAndXfTjData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/tbJq/getJqAndXfTj?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 警情与盘查工作对比分析
|
||||
export function getJqAndPcTjData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/tbJq/getJqAndPcTj?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 警情与重点区域巡逻对比分析
|
||||
export function getJqandQyxfData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/tbJcglXfqy/getJqandQyxf?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 警情与预警指令执行对比分析
|
||||
export function getJqscAndZlTjfData(data) {
|
||||
return request({
|
||||
url: api + `/mosty-jmxf/yjxx/getJqscAndZlTj?kssj=${data.kssj}&jssj=${data.jssj}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
//街面警情统计
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询警情列表
|
||||
export function getJmjq(params) {
|
||||
return request({
|
||||
url: api + '/xftj/jmjq/jqlb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//警情类型统计
|
||||
export function getJqlxTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/jmjq/jqlxtj',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//今日警情处置分析
|
||||
export function getJrjqTj(params) {
|
||||
return request({
|
||||
url: api + '/tbJq/getjrjqczfx',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//今日警情数量走势
|
||||
export function getJrjqSlzs(params) {
|
||||
return request({
|
||||
url: api + '/tbJq/getJqBy24h',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//今日警情预警
|
||||
export function getJrjqYj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/jmjq/jrjqyj',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//警情趋势警情部门统计同比 环比
|
||||
export function tbJqJqBmTj(params) {
|
||||
return request({
|
||||
url: api + '/tbJq/jqBmTj',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,19 +0,0 @@
|
||||
//移动装备
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 移动装备统计
|
||||
export function getYdzbTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/ydzb/bmtj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 移动装备列表
|
||||
export function getYdzbList(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/ydzb/lbtj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,35 +0,0 @@
|
||||
//巡防力量
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 车辆统计
|
||||
export function getCarTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/xfll/clbmtj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 辅警统计
|
||||
export function getFjTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/xfll/fjbmtj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 民警统计
|
||||
export function getMjTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/xfll/mjbmtj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 柱状图统计
|
||||
export function getBarTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/xfll/zttjz',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
//感知源
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 设备列表
|
||||
export function getSblist(data) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/gzy/bmlbtj',
|
||||
method: 'post',
|
||||
params:data
|
||||
})
|
||||
}
|
||||
// 设备类型统计
|
||||
export function getSbLx(data) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/gzy/sblxtj',
|
||||
method: 'post',
|
||||
params:data
|
||||
})
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
//街面警务站
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 部门警务站列表
|
||||
export function getBmJwzlist(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/jwz/bmlbtj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 部门警务站统计
|
||||
export function getJwzTj(params) {
|
||||
return request({
|
||||
url: api + '/xftj/xfzytj/jwz/bmtjjwz',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
//添加绩效考核部门
|
||||
export const addKhbm = (data) => {
|
||||
return request({
|
||||
url: api + "/khbm/addKhbm",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
export const getPageList = (params) => {
|
||||
return request({
|
||||
url: api + "/khbm/getPageList",
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
};
|
||||
// 批量删除
|
||||
export function delKhbm(data) {
|
||||
return request({
|
||||
url: api + '/khbm/delKhbm ',
|
||||
method: "delete",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//修改报备数量
|
||||
export const editKhbm = (data) => {
|
||||
return request({
|
||||
url: api + "/khbm/editKhbm",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
//左边树形默认选中数据
|
||||
export const getAllKhbm = () => {
|
||||
return request({
|
||||
url: api + `/khbm/getAllKhbm`,
|
||||
method: "get",
|
||||
});
|
||||
};
|
||||
//绩效考核查询借款
|
||||
export const JXgetPageList = (data) => {
|
||||
return request({
|
||||
url: api + `/khtj/getPageList`,
|
||||
method: "get",
|
||||
params: data
|
||||
});
|
||||
};
|
||||
//弹窗统计
|
||||
export const getStatistics = (data) => {
|
||||
return request({
|
||||
url: api + `/khtj/getStatistics`,
|
||||
method: "get",
|
||||
params: data
|
||||
});
|
||||
};
|
||||
//指令中心--首页指令周期统计信息
|
||||
export const zlZqtjxx = (data) => {
|
||||
return request({
|
||||
url: api + `/tbZlxxtj/zlZqtjxx`,
|
||||
method: "get",
|
||||
params: data
|
||||
});
|
||||
};
|
||||
|
||||
//文件下载
|
||||
export function downFiles(id) {
|
||||
return request({
|
||||
url: `/mosty-api/mosty-base/minio/file/download/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
};
|
||||
|
||||
//导出
|
||||
export function exportJxkh(data) {
|
||||
return request({
|
||||
url: `/mosty-api/mosty-jmxf/khtj/export`,
|
||||
method: "get",
|
||||
params: data,
|
||||
responseType:'blob'
|
||||
})
|
||||
};
|
||||
@ -1,91 +0,0 @@
|
||||
//不巡防申请
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const api2 = "/mosty-base";
|
||||
//新增
|
||||
export function addRw(data) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/addRw",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
//查询任务列表
|
||||
export function getMySend(params) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/selectPage",
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
//根据任务ID修改任务状态
|
||||
export function byIdEditStatus(data) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/changeRwState",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
//查询任务列表
|
||||
export function getRwList(params) {
|
||||
return request({
|
||||
url: api + ' /tbRwTask/inner/selectMyPage',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//任务完成情况排名
|
||||
export function getTaskRanking(params) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/getTaskRanking",
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//部门任务完成情况排名
|
||||
export function getTaskByDept(params) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/getTaskByDept",
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
//任务数量统计
|
||||
export function getDataStatistics(params) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/getDataStatistics",
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//任务类型统计
|
||||
export function getRWLXDataStatistics(params) {
|
||||
return request({
|
||||
url: api + "/tbRwTask/inner/getRWLXDataStatistics",
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//根据部门deptid获取所属分县局、所属地市州
|
||||
export function getOrgByDeptId(deptid) {
|
||||
return request({
|
||||
url: api2 + `/deptFeign/getOrgByDeptId/${deptid}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
//通过任务id查询任务详情信息
|
||||
export function getTaskInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbRwTask/inner/getTaskInfo/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const apibase = "/mosty-api/mosty-jmxf";
|
||||
const apibase = "/bagl/mosty-api/mosty-jmxf";
|
||||
|
||||
|
||||
export const http = {
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
//不巡防申请
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getBxfsq(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfBxfsq',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addBxfsq(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfBxfsq',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteBxfsq(id) {
|
||||
return request({
|
||||
url: api + `/tbQwXfBxfsq/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getBxfsqInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwXfBxfsq/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateBxfsq(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfBxfsq',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 审批
|
||||
export function judgeBxfsq(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfBxfsq/judge',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
//勤务等级
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const api = "/bagl/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getqwdj(params) {
|
||||
return request({
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
//人员请休假
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getQwQxj(params) {
|
||||
return request({
|
||||
url: api + '/tbQwQxj',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addQwQxj(data) {
|
||||
return request({
|
||||
url: api + '/tbQwQxj',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteQwQxj(id) {
|
||||
return request({
|
||||
url: api + `/tbQwQxj/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getQwQxjInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwQxj/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateQwQxj(data) {
|
||||
return request({
|
||||
url: api + '/tbQwQxj',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
//警力报备
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getJlbb(params) {
|
||||
return request({
|
||||
url: api + '/tbQwBmjlbb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addJlbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwBmjlbb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteJlbb(id) {
|
||||
return request({
|
||||
url: api + `/tbQwBmjlbb/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getJlbbInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwBmjlbb/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateJlbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwBmjlbb',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
//警力报备统计
|
||||
export function getCountBmjlbb() {
|
||||
return request({
|
||||
url: api + '/tbQwBmjlbb/countBmjlbb',
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
@ -1,116 +0,0 @@
|
||||
//值班排班
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getQwZb(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 查询我的值班记录
|
||||
export function getQwZbByUser(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb/getMyZbpb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addQwZb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteQwZb(id) {
|
||||
return request({
|
||||
url: api + `/tbQwZb/bacth?id=${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getQwZbInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwZb/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateQwZb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZb',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
//判断当条数据是否存在
|
||||
export function judgeQwZb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZb/checkPb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//值班排班新增
|
||||
export function zbPbAdd(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//值班排班新增
|
||||
export function zbPbLook(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//值班排班 获取详情
|
||||
export function zbPbDetail(id) {
|
||||
return request({
|
||||
url: api + `/tbQwZbpb/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
//值班排班 修改
|
||||
export function zbPbUpdate(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb',
|
||||
method: 'PUT',
|
||||
data
|
||||
})
|
||||
}
|
||||
//值班排班 修改
|
||||
export function zbPbDelete(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb',
|
||||
method: 'DELETE',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//根据日期查询值班排班信息
|
||||
export function getZbbbByMonth(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb/getZbbbByMonth',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//根据月份导出值班排班表
|
||||
export function exportData(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZbpb/exportData',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
//勤务班次
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getQwbc(params) {
|
||||
return request({
|
||||
url: api + '/tbQwQwbc',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addQwbc(data) {
|
||||
return request({
|
||||
url: api + '/tbQwQwbc',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteQwbc(id) {
|
||||
return request({
|
||||
url: api + `/tbQwQwbc/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getQwbcInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwQwbc/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateQwbc(data) {
|
||||
return request({
|
||||
url: api + '/tbQwQwbc',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
//巡防报备
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getXfbb(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfbb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addXfbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfbb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteXfbb(id) {
|
||||
return request({
|
||||
url: api + `/tbQwXfbb/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getXfbbInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwXfbb/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateXfbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfbb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//报备
|
||||
export function xfbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfbb/startOrEndBb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询我今天的报备new
|
||||
* @param {*} id
|
||||
*/
|
||||
export function getMybbTodayNew() {
|
||||
return request({
|
||||
url: api + `/tbQwXfbb/getMybbTodayNew`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* APP获取我的排班信息
|
||||
* @param {*} id
|
||||
*/
|
||||
export function getMyXfpbToday() {
|
||||
return request({
|
||||
url: api + `/tbQwXfpb/getMyXfpbToday`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -1,82 +0,0 @@
|
||||
//巡防排班
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getXfpb(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 查询我的巡防排班
|
||||
export function getXfpbByUser(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb/getMyXfpb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//新增
|
||||
export function addXfpb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
//删除
|
||||
export function deleteXfpb(id) {
|
||||
return request({
|
||||
url: api + `/tbQwXfpb/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getXfpbInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwXfpb/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateXfpb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//根据日期查询巡防排班信息
|
||||
export function rlpbQuery(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb/rlpbQuery',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//查询本月巡防排班
|
||||
export function getThisMonthPbList(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb/getThisMonthPbList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
//获取前一天警情数量
|
||||
export function getJqNum(params) {
|
||||
return request({
|
||||
url: '/mosty-api/mosty-jmxf/tbJq/getJqCount',
|
||||
method: "GET",
|
||||
params
|
||||
})
|
||||
}
|
||||
export function getPbbbByMonth(data) {
|
||||
return request({
|
||||
url: api + "/tbQwXfpb/getPbbbByMonth",
|
||||
method: "GET",
|
||||
params: data
|
||||
});
|
||||
};
|
||||
@ -1,19 +0,0 @@
|
||||
//巡防排班
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 根据部门月份排班,报备情况
|
||||
export function getPbbbByMonthBm(params) {
|
||||
return request({
|
||||
url: api + '/tbQwXfpb/getPbbbByMonthBm',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 根据时间部门查询警力情况
|
||||
export function getJlByBm(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZbbb/getJlByBm',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
//值班报备
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
export function getZbbb(params) {
|
||||
return request({
|
||||
url: api + '/tbQwZbbb',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//新增
|
||||
export function addZbbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbbb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//新增 结束报备
|
||||
export function BbZbbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbbb/startOrEndBb',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//详情
|
||||
export function getZbbbInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbQwZbbb/${id}`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function updateZbbb(data) {
|
||||
return request({
|
||||
url: api + '/tbQwZbbb',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//删除
|
||||
export function deletezBbb(id) {
|
||||
return request({
|
||||
url: api + '/tbQwZbbb/batch?ids=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* APP获取我当前的值班报备信息
|
||||
*/
|
||||
export function getMyBbInfoToday() {
|
||||
return request({
|
||||
url: api + `/tbQwZbbb/getMyBbInfoToday`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* APP获取我的值班排班信息
|
||||
*/
|
||||
export function getMyZbpbToday() {
|
||||
return request({
|
||||
url: api + `/tbQwZbpb/getMyZbpbToday`,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api1 = "/mosty-api/mosty-jmxf";
|
||||
const api2 = "/mosty-api/mosty-jmxf";
|
||||
/**
|
||||
* 获取巡组列表
|
||||
* @param {*} params
|
||||
* jzMc
|
||||
* pageCurrent
|
||||
* pageSize
|
||||
*/
|
||||
export const getXfbbList = (params) => {
|
||||
return request({
|
||||
url: api1 + "/tbQwXfbb",
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
};
|
||||
/**
|
||||
* /tbZl/addZl
|
||||
* 添加指令
|
||||
*/
|
||||
export const addZl = (data) =>{
|
||||
return request({
|
||||
url:api2 + '/tbZl/addZl',
|
||||
method:"POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
export const sendZl = (data) =>{
|
||||
return request({
|
||||
url:api2 + '/tbZl/zlHandle',
|
||||
method:"POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -2,7 +2,7 @@ import request from "@/utils/request";
|
||||
// import { getCookie } from "@/utils/cookie";
|
||||
import { getItem } from "@/utils/storage";
|
||||
const api = "/solrSearcher";
|
||||
const api2 = "/mosty-api/mosty-gsxt";
|
||||
const api2 = "/bagl/mosty-api/mosty-gsxt";
|
||||
/**
|
||||
* 获取标准地址
|
||||
* @param {*} params
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
|
||||
// 新增安保风采数据
|
||||
export function newAbfcData(data) {
|
||||
return request({
|
||||
url: api + '/abfc',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 获取列表
|
||||
export function getListData(params) {
|
||||
return request({
|
||||
url: api + '/abfc',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//修改数据
|
||||
export function updateData(data) {
|
||||
return request({
|
||||
url: api + '/abfc',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//删除数据
|
||||
export function deleteData(id) {
|
||||
return request({
|
||||
url: api + '/abfc?ids=' + id,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-base";
|
||||
const api = "/bagl/mosty-base";
|
||||
/*
|
||||
* 登录
|
||||
* return promise 实例对象
|
||||
|
||||
@ -1,102 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-base";
|
||||
// 查询生成表数据
|
||||
export function listTable(params) {
|
||||
return request({
|
||||
url: api + '/gen/list',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 查询db数据库列表
|
||||
export function listDbTable(query) {
|
||||
return request({
|
||||
url: api + '/gen/db/list',
|
||||
method: 'GET',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询表详细信息
|
||||
export function getGenTable11(tableId) {
|
||||
return request({
|
||||
url: api + '/gen/' + tableId,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改代码生成信息
|
||||
export function updateGenTable(data) {
|
||||
return request({
|
||||
url: api + '/gen',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 导入表
|
||||
export function importTable(data) {
|
||||
return request({
|
||||
url: api + '/gen/importTable',
|
||||
method: 'POST',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 预览生成代码
|
||||
export function previewTable(tableId) {
|
||||
return request({
|
||||
url: api + '/gen/preview/' + tableId,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 删除表数据
|
||||
export function delTable(tableId) {
|
||||
return request({
|
||||
url: api + '/gen/' + tableId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 生成代码(自定义路径)
|
||||
export function genCode(tableName) {
|
||||
return request({
|
||||
url: api + '/gen/genCode/' + tableName,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 同步数据库
|
||||
export function synchDb(tableName) {
|
||||
return request({
|
||||
url: api + '/gen/synchDb/' + tableName,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取字典选择框列表
|
||||
export function getDictOptionselect() {
|
||||
return request({
|
||||
url: '/system/dict/type/optionselect',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询菜单列表
|
||||
export function listMenu(query) {
|
||||
return request({
|
||||
url: '/system/menu/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 根据经纬度获取位置信息 /other/getAddress
|
||||
export function getAddress(query) {
|
||||
return request({
|
||||
url: api + '/other/getAddress',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-base";
|
||||
const api = "/bagl/mosty-base";
|
||||
/*
|
||||
* 登录
|
||||
* return promise 实例对象
|
||||
|
||||
@ -1,83 +0,0 @@
|
||||
// 视频巡逻
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api";
|
||||
//分页查询
|
||||
export function getDataList(params) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfa/queryPage',
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
// 添加
|
||||
export function addFa(data) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfa',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 添加摄像头
|
||||
export function addSxtPz(data) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfaSxt ',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 修改摄像头
|
||||
export function editSxtPz(data) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfaSxt',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 修改
|
||||
export function editFa(data) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfa',
|
||||
method: "put",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 查询详情
|
||||
export function getInfo(id) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfa/' + id,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
// 批量删除
|
||||
export function deleteBatchs(data) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfa',
|
||||
method: "delete",
|
||||
data
|
||||
})
|
||||
}
|
||||
//查询巡逻方案详情(包含摄像头信息)
|
||||
export function getSpInfo(faid) {
|
||||
return request({
|
||||
url: api + '/mosty-jmxf/tbSpxlSpxlfaSxt?faid=' + faid,
|
||||
method: "get",
|
||||
})
|
||||
}
|
||||
|
||||
//查询摄像头列表
|
||||
export function getSxtList(data) {
|
||||
return request({
|
||||
url: api + '/mosty-yszx/tbYsSxt/getPageList',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//查询摄像头列表
|
||||
export function getSxtAll(data) {
|
||||
return request({
|
||||
url: api + '/mosty-yszx/tbYsSxt/getList',
|
||||
method: "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,10 +0,0 @@
|
||||
// 视频巡逻-摄像头设置
|
||||
import request from "@/utils/http";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
//查询巡逻方案详情(包含摄像头信息)
|
||||
export function getSpInfo(faid) {
|
||||
return request({
|
||||
url: api + '/tbSpxlSpxlfaSxt?faid=' + faid,
|
||||
method: "get",
|
||||
})
|
||||
}
|
||||
@ -1,10 +0,0 @@
|
||||
//警情趋势
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
export function getJqqs(params){
|
||||
return request({
|
||||
url:api + '/tbJq/getJqBy24h',
|
||||
method: "GET",
|
||||
params
|
||||
})
|
||||
}
|
||||
@ -1,18 +0,0 @@
|
||||
//预警信息
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getYjxxList(data) {
|
||||
return request({
|
||||
url: api + '/tbYjxx/getPageList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
//详情
|
||||
export function getInfo(id) {
|
||||
return request({
|
||||
url: api + `/tbYjxx/getInfo/${id}`,
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
//预警指令
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
// 分页查询
|
||||
export function getYjzlList(data) {
|
||||
return request({
|
||||
url: api + '/tbZl/selectInstructList',
|
||||
method: "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const api = "/bagl/mosty-api/mosty-jmxf";
|
||||
/**
|
||||
* 获取民警|辅警列表
|
||||
* @param {*} params
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
|
||||
/**
|
||||
* 条件查询人员盘查信息
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getRypcList = (data = {}) => {
|
||||
return request({
|
||||
url: api + "/tbHcBpcry/getRypcList",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 条件查询车辆盘查信息
|
||||
export const getClpcList = (data = {}) => {
|
||||
return request({
|
||||
url: api + "/tbHcBpccl/getClpcList",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
//人员核查档案
|
||||
export function getHjyjData(data){
|
||||
return request({
|
||||
url: "/mosty-api/mosty-base/other/getHjyjData",
|
||||
method: "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,116 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const api2 = "/mosty-api/mosty-jmxf";
|
||||
|
||||
/**
|
||||
* 车辆预警排名
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getCarYj = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/yjzx/clyjpm",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 各时段预警
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getGsdYj = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/tbYjxx/gsdyj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 各派出所预警
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getPoliceYj = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/yjzx/pcsyj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 感知源预警排名
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getGzyYj = (data = {}) => {
|
||||
return request({
|
||||
url: api + "/yjzx/gzyyjpm",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 人员预警排名
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getManRankYj = (data = {}) => {
|
||||
return request({
|
||||
url: api + "/yjzx/ryyjpm",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 预警列表
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getYjList = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/tbYjxx/getPageList",
|
||||
method: "POST",
|
||||
data:params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 预警统计
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getYjTj = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/yjzx/yjtj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 右侧预警统计
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export const getYcYjTj = (params = {}) => {
|
||||
return request({
|
||||
url: api + "/yjzx/ycyjtj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
// 获取redis中的巡组的巡防轨迹信息
|
||||
export const getXfgj = (params = {}) => {
|
||||
return request({
|
||||
url: api2 + "/gxga/xfbb/getXfgj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
};
|
||||
@ -1,5 +1,5 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const api = "/bagl/mosty-api/mosty-jmxf";
|
||||
|
||||
/**
|
||||
* 要数列表
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
|
||||
// 查询警情数据分页
|
||||
export function getJqPage(params) {
|
||||
return request({
|
||||
url: api + '/tbJq/getPageList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 查询警情数据不分页
|
||||
export function getJqNoPage(params) {
|
||||
return request({
|
||||
url: api + '/tbJq/getList',
|
||||
method: 'GET',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
@ -99,6 +99,7 @@
|
||||
overflow: auto;
|
||||
border: 1px solid #ccc;
|
||||
top: 4px;
|
||||
|
||||
right: 10px;
|
||||
left: 10px;
|
||||
background-color: #fff;
|
||||
@ -169,6 +170,10 @@
|
||||
justify-content: space-between;
|
||||
line-height: 48px;
|
||||
color: #000;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
&::v-deep .el-form--inline {
|
||||
@ -348,6 +353,7 @@
|
||||
margin-top: 14px;
|
||||
}
|
||||
}
|
||||
.makerTitlezb{
|
||||
|
||||
.makerTitlezb {
|
||||
color: orangered;
|
||||
}
|
||||
210
src/components/ChooseList/ChooseNJBAY/index.vue
Normal file
210
src/components/ChooseList/ChooseNJBAY/index.vue
Normal file
@ -0,0 +1,210 @@
|
||||
<template>
|
||||
<el-dialog :title="data.title" width="70%" :model-value="modelValue" append-to-body @close="closed" v-if="modelValue">
|
||||
<div>
|
||||
<el-form :model="listQuery" class="mosty-from-wrap" :inline="true">
|
||||
<el-form-item label="姓名">
|
||||
<el-input placeholder="请输入姓名" v-model="listQuery.xm" clearabl></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="success" @click="handleFilter">查询</el-button>
|
||||
<el-button type="info" @click="reset"> 重置 </el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="tabBox" :class="props.data.Single ? 'tabBoxRadio' : ''" style="margin-top: 0px">
|
||||
<el-table :loading="loading" @selection-change="handleSelectionChange" :row-key="keyid" height="450" ref="multipleUserRef" :data="tableData" border style="width: 100%">
|
||||
<el-table-column type="selection" width="55" :reserve-selection="true"/>
|
||||
<el-table-column prop="ssbakk" align="center" label="保安公司名称"></el-table-column>
|
||||
<el-table-column prop="njnf" align="center" label="年审年份"></el-table-column>
|
||||
<el-table-column prop="xm" align="center" label="姓名"></el-table-column>
|
||||
<el-table-column prop="sfzhm" align="center" label="身份证号码"></el-table-column>
|
||||
<el-table-column prop="dh" align="center" label="电话"/>
|
||||
<el-table-column prop="whcd" align="center" label="文化程度">
|
||||
<template #default="{ row }">
|
||||
<DictTag :value="row.whcd" :tag="false" :options="D_BZ_WHCD" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="zsbh" align="center" label="证书编号"/>
|
||||
<el-table-column prop="fwxymc" align="center" label="服务行业"/>
|
||||
<el-table-column prop="rzsj" align="center" label="入职时间"/>
|
||||
<el-table-column prop="sgxkhm" align="center" label="上岗证号码"/>
|
||||
<el-table-column prop="pxgsShzt" align="center" label="审核状态">
|
||||
<template #default="{ row }">
|
||||
<DictTag :value="row.pxgsShzt" :tag="false" :options="D_BA_SHZT" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="fenye" :style="{ top: tableHeight + 'px' }">
|
||||
<el-pagination
|
||||
class="pagination"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="listQuery.pageCurrent"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="listQuery.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="closed">取消</el-button>
|
||||
<el-button type="primary" @click="onComfirm">确认</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { qcckPost } from "@/api/qcckApi";
|
||||
import {getItem} from '@/utils/storage.js'
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { defineProps, watch, ref, getCurrentInstance, nextTick, reactive } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BA_SHZT,D_BZ_WHCD } = proxy.$dict('D_BA_SHZT','D_BZ_WHCD');
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
},
|
||||
data:{
|
||||
type: Object,
|
||||
default: {
|
||||
title:'选择列表',
|
||||
type:'wgy',//选择类型
|
||||
Single:false,//是否单选
|
||||
roleIds:[],//回显的数据
|
||||
}
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:modelValue", "choosedUsers",'close']);
|
||||
const userInfo = getItem('userInfo');
|
||||
const total = ref(0);
|
||||
const loading = ref(false);
|
||||
const listQuery = reactive({
|
||||
pageCurrent: 1,
|
||||
pageSize: 20
|
||||
});
|
||||
const tableData = ref([]);
|
||||
const multipleUserRef = ref(null);
|
||||
const multipleSelectionUser = ref([]);
|
||||
|
||||
watch(()=>props.modelValue, (val) => {
|
||||
if (val) {
|
||||
nextTick(() => {
|
||||
getListData();
|
||||
});
|
||||
}
|
||||
},{immediate: true});
|
||||
|
||||
const keyid = (row) => {
|
||||
return row.id;
|
||||
};
|
||||
|
||||
// 列表数据
|
||||
const getListData = () => {
|
||||
let params = {
|
||||
...listQuery,
|
||||
// pxgsShzt: "1",//培训公司已通过
|
||||
sptz: "1",//已送培
|
||||
sptzCompanyName:userInfo.pxgs,
|
||||
sptzCompanyId:userInfo.pxgsid,
|
||||
pxgsShzt:'1',//保安公司已通过
|
||||
|
||||
}
|
||||
loading.value = true;
|
||||
qcckPost(params,"/mosty-base/bans/njxx/page").then((res) => {
|
||||
loading.value = false;
|
||||
tableData.value = res?.records;
|
||||
total.value = Number(res.total);
|
||||
multipleUser();
|
||||
}).catch(()=>{
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
//列表回显
|
||||
function multipleUser() {
|
||||
let ids = props.data.roleIds ? props.data.roleIds :[];
|
||||
tableData.value.forEach((item) => {
|
||||
if (ids.some((id) => id == item.id)) {
|
||||
multipleUserRef.value.toggleRowSelection(item, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 页码改变触发
|
||||
*/
|
||||
const handleCurrentChange = (currentPage) => {
|
||||
listQuery.pageCurrent = currentPage;
|
||||
getListData();
|
||||
};
|
||||
|
||||
|
||||
// 筛选
|
||||
const handleFilter = () => {
|
||||
listQuery.pageCurrent = 1;
|
||||
getListData();
|
||||
};
|
||||
|
||||
|
||||
// 重置
|
||||
const reset = () => {
|
||||
listQuery.pageCurrent = 1
|
||||
listQuery.pageSize = 10
|
||||
getListData();
|
||||
};
|
||||
|
||||
// pageSize 改变触发
|
||||
const handleSizeChange = (currentSize) => {
|
||||
listQuery.pageSize = currentSize;
|
||||
getListData();
|
||||
};
|
||||
|
||||
// 为用户分配角色
|
||||
const onComfirm = () => {
|
||||
const userList = multipleSelectionUser.value;
|
||||
let list = [],listId = [];
|
||||
userList.forEach((val) => {
|
||||
if (listId.indexOf(val.id) == -1) {
|
||||
list.push(val);
|
||||
listId.push(val.id);
|
||||
}
|
||||
});
|
||||
emits("choosedUsers", list);
|
||||
emits("choosedUsersLeader", { userList: userList });
|
||||
closed();
|
||||
};
|
||||
|
||||
// 选择的数据
|
||||
const handleSelectionChange = (val) => {
|
||||
if (props.data.Single && val.length > 1) {
|
||||
let del_row = val.shift();
|
||||
multipleUserRef.value.toggleRowSelection(del_row, false);
|
||||
}
|
||||
multipleSelectionUser.value = val;
|
||||
};
|
||||
|
||||
// 关闭
|
||||
const closed = () => {
|
||||
emits("update:modelValue", false);
|
||||
emits("close");
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/assets/css/layout.scss";
|
||||
@import "@/assets/css/element-plus.scss";
|
||||
</style>
|
||||
<style>
|
||||
.tabBoxRadio .el-checkbox__inner {
|
||||
border-radius: 50% !important;
|
||||
}
|
||||
.tabBoxRadio .el-table__header-wrapper .el-checkbox {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@ -7,6 +7,8 @@
|
||||
<ChooseWGY v-if="['wgy'].includes(props.data.type)" :data="data" v-model="props.modelValue" :Single="Single" :roleIds="roleIds" @close="close" @choosedUsers="choosedList"></ChooseWGY>
|
||||
<!-- 保安 -->
|
||||
<ChooseBA v-if="['ba'].includes(props.data.type)" :data="data" v-model="props.modelValue" :Single="Single" :roleIds="roleIds" @close="close" @choosedUsers="choosedList"></ChooseBA>
|
||||
<!-- NJBAY -->
|
||||
<ChooseNJBAY v-if="['Bay'].includes(props.data.type)" :data="data" v-model="props.modelValue" :Single="Single" :roleIds="roleIds" @close="close" @choosedUsers="choosedList"></ChooseNJBAY>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -14,6 +16,7 @@ import ChooseMFJ from "./ChooseMFJ/index.vue";
|
||||
import ChooseQFQZ from "./ChooseQFQZ/index.vue";
|
||||
import ChooseWGY from "./ChooseWGY/index.vue";
|
||||
import ChooseBA from "./ChooseBA/index.vue";
|
||||
import ChooseNJBAY from "./ChooseNJBAY/index.vue";
|
||||
import { reactive, ref, onMounted } from "vue";
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
:key="item.value"
|
||||
:index="index"
|
||||
:class="item.elTagType"
|
||||
:style="{'color': props.color}"
|
||||
>{{ item.label }}</span>
|
||||
<el-tag
|
||||
v-else
|
||||
@ -33,6 +34,10 @@ const props = defineProps({
|
||||
type: Array,
|
||||
default: null
|
||||
},
|
||||
color: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
tag: false,
|
||||
value: [Number, String, Array]
|
||||
});
|
||||
|
||||
@ -534,10 +534,6 @@ export function MapUtil(map) {
|
||||
_that._self[flag].push(line)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 回显平面- 圆 - 多边形 - 矩形
|
||||
* @param {*} type 回显形状
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
<template>
|
||||
<div class="form-item-box" :style="{ width: width }">
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'date'" v-model="modelValue" type="date" value-format="YYYY-MM-DD" placeholder="请选择日期" style="width:100%" />
|
||||
<el-time-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'time'" v-model="modelValue" placeholder="选择时间" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetime'" v-model="modelValue" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择时间" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetimerange'" v-model="modelValue" type="datetimerange" :shortcuts="shortcuts" range-separator="To" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="选择开始时间" end-placeholder="选择结束时间" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'daterange'" v-model="modelValue" type="daterange" range-separator="To" value-format="YYYY-MM-DD" start-placeholder="选择开始日期" end-placeholder="选择开始日期" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'date'" v-model="localValue" type="date" value-format="YYYY-MM-DD" placeholder="请选择日期" style="width:100%" />
|
||||
<el-time-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'time'" v-model="localValue" placeholder="选择时间" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetime'" v-model="localValue" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择时间" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetimerange'" v-model="localValue" type="datetimerange" :shortcuts="shortcuts" range-separator="To" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="选择开始时间" end-placeholder="选择结束时间" style="width:100%" />
|
||||
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'daterange'" v-model="localValue" type="daterange" range-separator="To" value-format="YYYY-MM-DD" start-placeholder="选择开始日期" end-placeholder="选择开始日期" style="width:100%" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { COMPONENT_WIDTH } from "@/constant";
|
||||
import { defineProps, defineEmits } from "vue";
|
||||
import { defineProps, defineEmits, ref, watch } from "vue";
|
||||
const props = defineProps({
|
||||
//获取组件传值
|
||||
placeholder: {
|
||||
@ -33,6 +33,19 @@ const props = defineProps({
|
||||
|
||||
const emits = defineEmits(["update:modelValue"]);
|
||||
|
||||
// 创建本地 ref 来绑定值
|
||||
const localValue = ref(props.modelValue);
|
||||
|
||||
// 监听本地值变化,emit 事件
|
||||
watch(localValue, (newVal) => {
|
||||
emits("update:modelValue", newVal);
|
||||
});
|
||||
|
||||
// 监听 props 变化,更新本地值
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
localValue.value = newVal;
|
||||
});
|
||||
|
||||
const shortcuts = [
|
||||
{
|
||||
text: "今天",
|
||||
|
||||
@ -99,6 +99,8 @@ const handleChange = (e) => {
|
||||
let obj = depList.value.find((item) => {
|
||||
return item.orgCode == data;
|
||||
});
|
||||
console.log(obj,'obj');
|
||||
|
||||
emits("getDepValue", obj);
|
||||
}
|
||||
};
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="form-item-box" :style="{ width: width }">
|
||||
<el-input :placeholder="placeholder" v-bind="$attrs" v-model="modelValue" @input="onInput" ></el-input>
|
||||
<el-input :placeholder="placeholder" v-bind="$attrs" :model-value="modelValue" @input="onInput" ></el-input>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
<template>
|
||||
<div class="Select-wrap" :style="{ width: width }">
|
||||
<el-select :disabled="props.disabled" v-bind="$attrs" v-model="modelValue" @change="hanlderSelect" :popper-class="selectOption.length > 20 ? 'nation-select' : ''" :placeholder="placeholder">
|
||||
<el-select :disabled="props.disabled" v-bind="$attrs" :model-value="modelValue" @change="hanlderSelect" :popper-class="selectOption.length > 20 ? 'nation-select' : ''" :placeholder="placeholder">
|
||||
<el-option v-for="item in dictEnum" :key="item.value" :label="item.zdmc || item.label" :value="item.dm || item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
@ -18,6 +18,7 @@ import MarkdownEdit from "./MarkdownEdit/index.vue";
|
||||
import FileUpload from "./FileUpload/index.vue";
|
||||
import Date from "./Date/index.vue";
|
||||
import Empty from "./Empty/index.vue";
|
||||
import CheckBox from "@/components/checkBox/index.vue";
|
||||
export {
|
||||
AddressSelect,
|
||||
FrameWork,
|
||||
@ -38,5 +39,6 @@ export {
|
||||
MarkdownEdit,
|
||||
FileUpload,
|
||||
Date,
|
||||
Empty
|
||||
Empty,
|
||||
CheckBox
|
||||
};
|
||||
|
||||
@ -14,8 +14,8 @@
|
||||
style="width:100%" :min="item.min || 0" :max="item.max || 1000" />
|
||||
<!--选择 select-->
|
||||
<MOSTY.Select v-else-if="item.type == 'select'" @change="handleNum" filterable :multiple="item.multiple"
|
||||
v-model="listQuery[item.prop]" :dictEnum="item.options" width="100%" clearable
|
||||
:placeholder="`请选择${item.label}`" />
|
||||
v-model="listQuery[item.prop]" :collapse-tags="item.multiple" :dictEnum="item.options" width="100%"
|
||||
clearable :placeholder="`请选择${item.label}`" />
|
||||
<!-- 选择性别 -->
|
||||
<MOSTY.Sex v-else-if="item.type == 'Sex'" v-model:sex="listQuery[item.prop]" width="100%" clearable
|
||||
:placeholder="`请选择${item.label}`" />
|
||||
@ -24,16 +24,18 @@
|
||||
v-model="listQuery[item.prop]" clearable filterable />
|
||||
<!-- 部门department -->
|
||||
<MOSTY.Department style="width:100%" v-else-if="item.type === 'department'" clearable
|
||||
:placeholder="listQuery.ssbm ? listQuery.ssbm : `请选择${item.label}`" v-model="listQuery[item.prop]" />
|
||||
:placeholder="listQuery.ssbm ? listQuery.ssbm : `请选择${item.label}`"
|
||||
@getDepValue="getdep($event, item.depMc)" v-model="listQuery[item.prop]" />
|
||||
<!-- 时间选择 type: date/time/datetime/datetimerange/daterange-->
|
||||
<MOSTY.Date v-else-if="item.type == 'date'" :type="item.lx ? item.lx : 'date'" width="100%" clearable
|
||||
v-model="listQuery[item.prop]" />
|
||||
<!-- 上传 upload limit:'限制张数'-->
|
||||
<MOSTY.Upload v-else-if="item.type == 'upload'" :isAll="item.isAll" :key="item.prop" :showBtn="item.showBtn" :isImg="item.isImg" :limit="item.limit" width="100%"
|
||||
v-model="listQuery[item.prop]" />
|
||||
<MOSTY.Upload v-else-if="item.type == 'upload'" :isAll="item.isAll" :key="item.prop" :showBtn="item.showBtn"
|
||||
:isImg="item.isImg" :limit="item.limit" width="100%" v-model="listQuery[item.prop]" />
|
||||
<!--选择checkbox -->
|
||||
<!-- <div v-else-if="item.type == 'checkbox'" >{{item.options }}</div> -->
|
||||
<MOSTY.CheckBox v-else-if="item.type == 'checkbox'" width="100%" clearable v-model="listQuery[item.prop]"
|
||||
:checkList="item.options" :placeholder="`请选择${item.label}`" />
|
||||
:m="item.options" :placeholder="`请选择${item.label}`" />
|
||||
|
||||
<!-- 单选radio -->
|
||||
<el-radio-group v-else-if="item.type == 'radio'" v-model="listQuery[item.prop]">
|
||||
@ -69,8 +71,8 @@
|
||||
style="width:100%" :min="child.min || 0" :max="child.max || 1000" />
|
||||
<!--选择 select-->
|
||||
<MOSTY.Select v-else-if="child.type == 'select'" @change="handleNum" filterable :multiple="child.multiple"
|
||||
v-model="listQuery[child.prop]" :dictEnum="child.options" width="100%" clearable
|
||||
:placeholder="`请选择${child.label}`" />
|
||||
v-model="listQuery[child.prop]" :collapse-tags="child.multiple" :dictEnum="child.options" width="100%"
|
||||
clearable :placeholder="`请选择${child.label}`" />
|
||||
<!-- 部门department -->
|
||||
<MOSTY.Department style="width:100%" v-else-if="child.type === 'department'" clearable
|
||||
v-model="listQuery[child.prop]" />
|
||||
@ -81,8 +83,10 @@
|
||||
<MOSTY.Upload v-else-if="child.type == 'upload'" :isImg="child.isImg" :limit="child.limit" width="100%"
|
||||
v-model="listQuery[child.prop]" />
|
||||
<!--选择checkbox -->
|
||||
|
||||
|
||||
<MOSTY.CheckBox v-else-if="child.type == 'checkbox'" width="100%" clearable v-model="listQuery[child.prop]"
|
||||
:checkList="child.options" :placeholder="`请选择${child.label}`" />
|
||||
:data="child.options" :placeholder="`请选择${child.label}`" />
|
||||
<!-- 单选radio -->
|
||||
<el-radio-group v-else-if="child.type == 'radio'" v-model="listQuery[child.prop]">
|
||||
<el-radio v-for="obj in child.options" :key="obj.value" :label="obj.value">{{ obj.label }}</el-radio>
|
||||
@ -136,7 +140,15 @@ const submit = (resfun) => {
|
||||
resfun(listQuery.value);
|
||||
});
|
||||
};
|
||||
|
||||
const getdep = (e, val) => {
|
||||
if (val) {
|
||||
if (Array.isArray(e)) {
|
||||
listQuery.value[val] = e ? e.map(item => item.orgName) : '';
|
||||
} else {
|
||||
listQuery.value[val] = e ? e.orgName : '';
|
||||
}
|
||||
}
|
||||
}
|
||||
const reset = () => {
|
||||
listQuery.value = {};
|
||||
elform.value.resetFields();
|
||||
@ -148,7 +160,7 @@ const handleNum = (val) => {
|
||||
};
|
||||
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
listQuery.value = newVal; //赋值
|
||||
listQuery.value = newVal || {}; //赋值,确保 newVal 为 undefined 时设置为空对象
|
||||
}, { immediate: true, deep: true });
|
||||
|
||||
watch(() => listQuery.value, (newVal) => {
|
||||
|
||||
@ -83,6 +83,8 @@ const props = defineProps({
|
||||
// 可选的时候选择的数据
|
||||
const emit = defineEmits(["chooseData"]);
|
||||
const multipleTableRef = ref();
|
||||
console.log(props.tableConfiger);
|
||||
|
||||
const currentRow = ref();
|
||||
let getConfiger = reactive({
|
||||
showSelectType: null, // 显示多选还是单选还是没有选择 checkBox/radio/null
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
<template>
|
||||
<div class="checkBox">
|
||||
{{ data }}
|
||||
<el-checkbox class="checkall" v-if="showAll" v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAll">全部</el-checkbox>
|
||||
<el-checkbox-group v-model="hasChecked" @change="handleCheckedChange">
|
||||
<el-checkbox v-for="(item,idx) in checkedList" :key="idx" :label="item">{{item}}</el-checkbox>
|
||||
<el-checkbox v-for="(item,idx) in checkedList" :key="idx" :label="item">{{item.zdmc}}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
</template>
|
||||
@ -20,6 +21,10 @@ const props = defineProps({
|
||||
}, showAll: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
m: {
|
||||
type: Array,
|
||||
default:()=>[]
|
||||
}
|
||||
});
|
||||
const checkAll = ref(false);
|
||||
|
||||
224
src/components/steps.vue
Normal file
224
src/components/steps.vue
Normal file
@ -0,0 +1,224 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog class="steps-dialog" title="审核流程" v-model="dialogForm" width="420px">
|
||||
<div class="steps-body">
|
||||
<el-steps direction="vertical" :active="active" :space="90">
|
||||
<el-step title="保安公司审核">
|
||||
<template #description>
|
||||
<div class="audit-description">
|
||||
<div class="audit-time">{{ dataForm.bakkShsj || '未审核' }}<span class="audit-status"
|
||||
v-if="dataForm.bakkShsj"
|
||||
:class="{ 'status-pending': dataForm.bakkShzt == 0, 'status-pass': dataForm.bakkShzt == 1, 'status-reject': dataForm.bakkShzt == 2 }">{{
|
||||
dataForm.bakkShzt == 0 ? '待审核' : dataForm.bakkShzt == 1 ? '通过' : '驳回' }}</span></div>
|
||||
<div v-if="dataForm.bakkShzt == 2" class="reject-reason">
|
||||
<span class="reject-label">驳回原因:</span>
|
||||
<span>{{ dataForm.bhyy || '未审核' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="培训公司审核">
|
||||
<template #description>
|
||||
<div class="audit-description">
|
||||
<div class="audit-time">{{ dataForm.pxgsShsj || '未审核' }}
|
||||
<span class="audit-status" v-if="dataForm.pxgsShsj"
|
||||
:class="{ 'status-pending': dataForm.pxgsShzt == 0, 'status-pass': dataForm.pxgsShzt == 1, 'status-reject': dataForm.pxgsShzt == 2 }">{{
|
||||
dataForm.pxgsShzt == 0 ? '待审核' : dataForm.pxgsShzt == 1 ? '通过' : '驳回' }}</span>
|
||||
</div>
|
||||
<div v-if="dataForm.pxgsShzt == 2" class="reject-reason">
|
||||
<span class="reject-label">驳回原因:</span>
|
||||
<span>{{ dataForm.pxgsBhyy || '未审核' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="公安局审核" :description="dataForm.gonganShsj || '未审核'">
|
||||
<template #description>
|
||||
<div class="audit-description">
|
||||
<div class="audit-time">{{ dataForm.gonganShsj || '未审核' }}
|
||||
<span class="audit-status" v-if="dataForm.gonganShsj"
|
||||
:class="{ 'status-pending': dataForm.gonganShzt == 0, 'status-pass': dataForm.gonganShzt == 1, 'status-reject': dataForm.gonganShzt == 2 }">{{
|
||||
dataForm.gonganShzt == 0 ? '待审核' : dataForm.gonganShzt == 1 ? '通过' : '驳回' }}</span>
|
||||
</div>
|
||||
<div v-if="dataForm.gonganShzt == 2" class="reject-reason">
|
||||
<span class="reject-label">驳回原因:</span>
|
||||
<span>{{ dataForm.gonganBhyy || '未审核' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<!-- :description="dataForm.pxgsShsj || '未审核'" -->
|
||||
|
||||
<script setup>
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import { ref, defineExpose } from 'vue';
|
||||
const dialogForm = ref(false);
|
||||
const active = ref(0)
|
||||
const dataForm = ref({})
|
||||
const init = (row) => {
|
||||
let ids = [row.id]
|
||||
qcckPost(ids, "/mosty-base/bans/njxx/getAuditStatusList").then(res => {
|
||||
dialogForm.value = true;
|
||||
let obj = res ? res[0] : {};
|
||||
dataForm.value = obj;
|
||||
active.value = Number(obj.currentAuditStage) - 1;
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.steps-body {
|
||||
height: 300px;
|
||||
padding: 6px 10px 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.audit-description {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.audit-time {
|
||||
font-size: 16px;
|
||||
color: #9AA8B6;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.reject-reason {
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
margin-top: 4px;
|
||||
padding: 6px 10px;
|
||||
background-color: #fef2f2;
|
||||
border-left: 3px solid #f87171;
|
||||
border-radius: 0 4px 4px 0;
|
||||
color: #dc2626;
|
||||
}
|
||||
|
||||
.reject-label {
|
||||
font-weight: 600;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.audit-status {
|
||||
margin-left: 8px;
|
||||
padding: 2px 8px;
|
||||
border-radius: 10px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.status-pending {
|
||||
background-color: #f3f4f6;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
.status-pass {
|
||||
background-color: #d1fae5;
|
||||
color: #065f46;
|
||||
}
|
||||
|
||||
.status-reject {
|
||||
background-color: #fee2e2;
|
||||
color: #b91c1c;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__header) {
|
||||
text-align: center;
|
||||
padding: 20px 20px 10px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__title) {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__body) {
|
||||
padding: 0 20px 20px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__title) {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__description) {
|
||||
font-size: 16px;
|
||||
color: #9AA8B6;
|
||||
line-height: 20px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__line) {
|
||||
left: 8px;
|
||||
background-color: transparent;
|
||||
border-left: 1px dashed #dadada;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-vertical .el-step__head) {
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon) {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon),
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon.is-text) {
|
||||
background: #2e6bff;
|
||||
border: none;
|
||||
box-shadow: 0 0 0 5px rgba(46, 107, 255, 0.15);
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-wait .el-step__icon),
|
||||
:deep(.steps-dialog .el-step.is-finish .el-step__icon) {
|
||||
background: #fff;
|
||||
border: 1px solid #dadada;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon-inner) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::v-deep .is-finish .el-step__icon {
|
||||
background: #86b6f1;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__close {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
color: #fff;
|
||||
|
||||
svg {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__headerbtn {
|
||||
top: auto;
|
||||
bottom: -60px;
|
||||
border: 2px solid #fff;
|
||||
color: #fff;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
border-radius: 50%;
|
||||
}
|
||||
</style>
|
||||
@ -35,7 +35,7 @@ const deptName = ref('');
|
||||
|
||||
const router = useRouter();
|
||||
onMounted(() => {
|
||||
deptName.value = localStorage.getItem("deptId") ? JSON.parse(localStorage.getItem("deptId"))[0].deptName : ''
|
||||
deptName.value = localStorage.getItem("userInfo") ? JSON.parse(localStorage.getItem("userInfo")).pxgs || '' : ''
|
||||
})
|
||||
const active = ref("");
|
||||
onMounted(() => {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-sub-menu v-if="route.children.length > 0" :index="route.path">
|
||||
<el-sub-menu v-if="route.children?.length > 0" :index="route.path">
|
||||
<template #title>
|
||||
<MenuItem :title="route.meta.title" :icon="route.meta.icon"></MenuItem>
|
||||
</template>
|
||||
@ -15,6 +15,9 @@
|
||||
<script setup>
|
||||
import MenuItem from './MenuItem.vue'
|
||||
import { defineProps } from 'vue';
|
||||
// 导入自身组件以支持递归调用
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
const SideBarItem = defineAsyncComponent(() => import('./SideBarItem.vue'))
|
||||
|
||||
defineProps({
|
||||
route: {
|
||||
|
||||
@ -27,17 +27,25 @@ const store = useStore();
|
||||
const router = useRouter();
|
||||
const routes = computed(() => {
|
||||
const fRoutes = filterRoutes(router.getRoutes());
|
||||
console.log(fRoutes);
|
||||
return generateMenus(fRoutes);
|
||||
});
|
||||
if (!store.getters.token) {
|
||||
router.push("/login");
|
||||
}
|
||||
// 改进路由初始化逻辑,避免无限刷新
|
||||
|
||||
if (router.getRoutes().length <= 7 && store.state.permission.routeReady <= 1) {
|
||||
store.commit("user/setIsReady", {});
|
||||
// 使用一次性标记避免无限刷新
|
||||
if (!window.routerInitialized) {
|
||||
window.routerInitialized = true;
|
||||
setTimeout(() => {
|
||||
router.go(0);
|
||||
}, 200);
|
||||
}
|
||||
}
|
||||
|
||||
//默认激活项
|
||||
const route = useRoute();
|
||||
const activeMenu = computed(() => {
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
<el-scrollbar>
|
||||
<div class="meunAside noScollLine">
|
||||
<div style="height:100px"></div>
|
||||
<div style="height: calc(100% - 100px);"><SideBarMenu></SideBarMenu></div>
|
||||
<div style="height: calc(100% - 100px);">
|
||||
<SideBarMenu></SideBarMenu>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
|
||||
@ -1,55 +1,58 @@
|
||||
import router from './router'
|
||||
import Base64 from "base-64";
|
||||
import store from './store'
|
||||
import {
|
||||
setItem,
|
||||
getItem,
|
||||
removeAllItem
|
||||
} from "@/utils/storage";
|
||||
|
||||
// 白名单
|
||||
const whiteList = ['/login','/', '/oatuh_login', '/sso_redirect', '/editPassword', '/404', '/401']
|
||||
const whiteList = ['/login', '/oatuh_login', '/404', '/401', '/zeroTrust_login', '/focusExploration', '/clueVerification', '/deploymentApproval']
|
||||
/**
|
||||
* 路由前置守卫
|
||||
* to 去哪里
|
||||
* from 来自哪
|
||||
* next 往下走
|
||||
*/
|
||||
let onRun = true;
|
||||
router.beforeEach(async (to, from, next) => {
|
||||
// 存在 token ,进入主页
|
||||
// if (store.state.user.token) {
|
||||
// 快捷访问
|
||||
// console.log(store.getters.token);
|
||||
if (store.getters.token) {
|
||||
// console.log("路由1");
|
||||
|
||||
// 判断用户资料是否获取
|
||||
// 若不存在用户信息,则需要获取用户信息
|
||||
// 触发获取用户信息的 action,并获取用户当前权限
|
||||
await store.commit('permission/setRouteReady', true)
|
||||
store.commit('permission/setRouteReady', 1)
|
||||
// 添加完动态路由之后,需要在进行一次主动跳转
|
||||
const afterMenuList = await getItem('menusPermission');
|
||||
const afterMenuList = getItem('menusPermission');
|
||||
// 处理用户权限,筛选出需要添加的权限
|
||||
if (store.state.permission.routes == 0) {
|
||||
// console.log(store.state.permission.routes);
|
||||
|
||||
if (store.state.permission.routes.length === 0) {
|
||||
const filterRoutes = await store.dispatch('permission/filterRoutes', afterMenuList)
|
||||
filterRoutes.forEach(item => {
|
||||
router.addRoute(item)
|
||||
})
|
||||
// console.log("已添加动态路由");
|
||||
next({
|
||||
...to,
|
||||
replace: true
|
||||
})
|
||||
} else {
|
||||
// console.log('已存在路由');
|
||||
next()
|
||||
}
|
||||
// 利用 addRoute 循环添加
|
||||
} else {
|
||||
const isOatuh = getItem('isOatuh')
|
||||
// 没有token的情况下,可以进入白名单
|
||||
if (whiteList.indexOf(to.path) > -1) {
|
||||
// console.log("路由2");
|
||||
next()
|
||||
} else {
|
||||
if (isOatuh) {
|
||||
next('/oatuh_login')
|
||||
} else {
|
||||
// 路由不在白名单中,重定向到登录页面
|
||||
next('/login')
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
1270
src/router/index.js
1270
src/router/index.js
File diff suppressed because it is too large
Load Diff
@ -5,8 +5,18 @@ import {
|
||||
} from '@/router'
|
||||
|
||||
function filter(data, menus) {
|
||||
var newData = data.filter(x => menus ?.includes(x.name))
|
||||
newData.forEach(x => x.children && (x.children = filter(x.children, menus)))
|
||||
// 增加有效性检查,避免无限递归
|
||||
if (!Array.isArray(data) || !Array.isArray(menus)) {
|
||||
return []
|
||||
}
|
||||
var newData = data.filter(x => x.name && menus.includes(x.name))
|
||||
newData.forEach(x => {
|
||||
if (x.children && Array.isArray(x.children)) {
|
||||
x.children = filter(x.children, menus)
|
||||
}
|
||||
})
|
||||
console.log("=============================");
|
||||
|
||||
return newData
|
||||
}
|
||||
export default {
|
||||
@ -39,28 +49,27 @@ export default {
|
||||
* 根据权限筛选路由
|
||||
*/
|
||||
filterRoutes(context, menus) {
|
||||
try {
|
||||
let routes = []
|
||||
// 路由权限匹配
|
||||
// menus.forEach(key => {
|
||||
// // 权限名 与 路由的 name 匹配
|
||||
// routes.push(...privateRoutes.filter(item => item.name === key))
|
||||
// })
|
||||
|
||||
/**
|
||||
* 树结构数据条件过滤
|
||||
* js 指定删除数组(树结构数据)
|
||||
*/
|
||||
//测试比对
|
||||
if (menus && Array.isArray(menus)) {
|
||||
// 测试比对
|
||||
routes = filter(privateRoutes, menus)
|
||||
// 最后添加 不匹配路由进入 404
|
||||
routes.push({
|
||||
path: '/:catchAll(.*)',
|
||||
redirect: '/404'
|
||||
})
|
||||
}
|
||||
context.commit('setRoutes', routes);
|
||||
context.commit('setRouteReady', 1);
|
||||
// context.commit('setRouteReady', true);
|
||||
return routes
|
||||
} catch (error) {
|
||||
console.error('Error filtering routes:', error)
|
||||
// 出错时至少保留公共路由
|
||||
context.commit('setRoutes', []);
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import {login,getUserInfo,getKaptcha,refreshToken,loginOut,Fzlogin } from "@/api/sys";
|
||||
import { login, getUserInfo, getKaptcha, refreshToken, loginOut, Fzlogin } from "@/api/sys";
|
||||
import { unifiedLogin } from "@/api/user-manage";
|
||||
import Base64 from "base-64";
|
||||
import { setItem, getItem, removeAllItem } from "@/utils/storage";
|
||||
@ -62,6 +62,8 @@ export default {
|
||||
*登录请求动作
|
||||
*/
|
||||
login(ctx, userInfo) {
|
||||
|
||||
|
||||
const { userName, password, kaptcha } = userInfo;
|
||||
return new Promise((resolve, reject) => {
|
||||
login({ userName, password: Base64.encode(password), kaptcha }).then((data) => {
|
||||
@ -79,7 +81,7 @@ export default {
|
||||
setItem("idEntityCard", data.idEntityCard);
|
||||
this.commit("user/setUserInfo", {
|
||||
token: data.jwtToken,
|
||||
permission: { buttonPermission: ["removeTest", "viewTest"],menus: data.menuCodeSet },
|
||||
permission: { buttonPermission: ["removeTest", "viewTest"], menus: data.menuCodeSet },
|
||||
menuList: data.menuList,
|
||||
deptList: data.deptList
|
||||
});
|
||||
@ -102,7 +104,7 @@ export default {
|
||||
cookie
|
||||
})
|
||||
.then((data) => {
|
||||
console.log(data,'data');
|
||||
console.log(data, 'data');
|
||||
if (data.deptList.length === 1) {
|
||||
this.commit("user/setToken", data.jwtToken);
|
||||
this.commit("user/setDeptId", data.deptList);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import path from "path";
|
||||
import path from 'path'
|
||||
/*
|
||||
*获取所有的子集路由
|
||||
*/
|
||||
|
||||
@ -73,6 +73,13 @@ const searchConfiger = ref([
|
||||
placeholder: "请输入题目",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "题目类型",
|
||||
prop: "type",
|
||||
placeholder: "请选择题目类型",
|
||||
showType: "select",
|
||||
options: D_BAXX_KTLX
|
||||
},
|
||||
]);
|
||||
|
||||
const queryFrom = ref({});
|
||||
@ -132,11 +139,11 @@ const getList = () => {
|
||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||
qcckPost(data, "/mosty-base/baxx/tkgl/page").then((res) => {
|
||||
console.log(res);
|
||||
|
||||
let arr = res.records || []
|
||||
arr.forEach(item => {
|
||||
item.correctAnswer = item.correctAnswer.split(',')
|
||||
item.correctAnswer =item.correctAnswer&&Array.isArray(item.correctAnswer) ? item.correctAnswer.join(',') : item.correctAnswer
|
||||
});
|
||||
console.log(arr);
|
||||
pageData.tableData = arr;
|
||||
pageData.total = res.total;
|
||||
pageData.tableConfiger.loading = false;
|
||||
|
||||
@ -0,0 +1,336 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" width="50%" :show-close="false" center :fullscreen="fullscreen">
|
||||
<!-- 使用title插槽替代header插槽,Element Plus中通常使用title插槽自定义标题 -->
|
||||
<template #title>
|
||||
<div class="dialog-header-content">
|
||||
<div class="dialog-title">{{ videoTitle }}</div>
|
||||
<div class="dialog-header-actions">
|
||||
<el-icon class="header-icon" @click="zoomBox"><FullScreen /></el-icon>
|
||||
<el-icon class="header-icon" @click="handleClose"><Close /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div class="video-container">
|
||||
<!-- 视频播放区域 -->
|
||||
<div
|
||||
v-if="modelValue"
|
||||
ref="videoPlayerRef"
|
||||
class="video-player"
|
||||
:style="{ height: playerHeight }"
|
||||
>
|
||||
<video
|
||||
ref="videoRef"
|
||||
class="video-element"
|
||||
:src="url"
|
||||
controls
|
||||
autoplay
|
||||
muted
|
||||
playsinline
|
||||
preload="auto"
|
||||
@loadeddata="handleVideoLoaded"
|
||||
@error="handleVideoError"
|
||||
@stalled="handleVideoStalled"
|
||||
>
|
||||
</video>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, watch, onMounted, onBeforeUnmount, nextTick, computed } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { Loading } from '@element-plus/icons-vue';
|
||||
import { downVideoFiles } from '@/api/instructCenter'
|
||||
import { qcckPost , qcckGet} from "@/api/qcckApi.js";
|
||||
// https://lam.clcud.com:1443/bagl/mosty-base/AppUserConfig/image/url/f1c7dd25d0fe45079b49de5ec4637923
|
||||
// 定义组件属性
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 父组件传递的视频信息
|
||||
listQuery: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
// 视频标题
|
||||
videoTitle: {
|
||||
type: String,
|
||||
default: '测试'
|
||||
}
|
||||
});
|
||||
|
||||
// 定义组件事件
|
||||
const emit = defineEmits(['update:modelValue', 'close']);
|
||||
|
||||
// 响应式数据
|
||||
const videoPlayerRef = ref(null);
|
||||
const videoRef = ref(null);
|
||||
const player = ref(null);
|
||||
const loading = ref(false);
|
||||
const playing = ref(false);
|
||||
const errorMessage = ref('');
|
||||
const playerHeight = ref('60vh');
|
||||
const fullscreen=ref(false);
|
||||
const videoMuted = ref(true);
|
||||
const url=ref('')
|
||||
// 计算属性:获取安全的视频源URL
|
||||
const getVideoSrc = () => {
|
||||
// 确保listQuery.fjid是字符串类型
|
||||
const fjid = JSON.parse(props.listQuery.fjid)?.map(item => item.id).join(',') || '';
|
||||
downVideoFiles(fjid).then(res => {
|
||||
url.value=res
|
||||
});
|
||||
}
|
||||
// 监听对话框显示状态
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
if (newVal) {
|
||||
getVideoSrc()
|
||||
} else {
|
||||
// 对话框关闭时,销毁播放器
|
||||
destroyPlayer();
|
||||
}
|
||||
});
|
||||
|
||||
const zoomBox = () => {
|
||||
fullscreen.value = !fullscreen.value;
|
||||
playerHeight.value = fullscreen.value ? '89vh' : '60vh';
|
||||
};
|
||||
|
||||
|
||||
// 停止播放
|
||||
const stopPlay = () => {
|
||||
try {
|
||||
if (player.value) {
|
||||
// 实际项目中这里应该是播放器的停止方法
|
||||
// player.value.stop();
|
||||
playing.value = false;
|
||||
ElMessage.info('视频已停止');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('停止播放失败:', error);
|
||||
ElMessage.error('停止播放失败');
|
||||
}
|
||||
};
|
||||
|
||||
// 销毁播放器
|
||||
const destroyPlayer = () => {
|
||||
try {
|
||||
if (player.value) {
|
||||
// 实际项目中这里应该是播放器的销毁方法
|
||||
// player.value.destroy();
|
||||
player.value = null;
|
||||
playing.value = false;
|
||||
loading.value = false;
|
||||
errorMessage.value = '';
|
||||
console.log('播放器已销毁');
|
||||
}
|
||||
} catch (error) {
|
||||
// console.error('销毁播放器失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 关闭对话框
|
||||
const handleClose = () => {
|
||||
stopPlay();
|
||||
emit('update:modelValue', false);
|
||||
emit('close');
|
||||
};
|
||||
|
||||
// 视频加载完成后的处理
|
||||
const handleVideoLoaded = () => {
|
||||
console.log('视频数据加载完成');
|
||||
if (videoRef.value) {
|
||||
// 尝试播放视频
|
||||
videoRef.value.play().then(() => {
|
||||
console.log('视频播放成功');
|
||||
playing.value = true;
|
||||
}).catch(error => {
|
||||
console.error('视频加载后自动播放失败:', error);
|
||||
// 显示用户提示
|
||||
ElMessage.warning('视频需要点击播放按钮开始播放');
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 视频错误处理
|
||||
const handleVideoError = (event) => {
|
||||
console.error('视频加载错误:', event.target.error);
|
||||
errorMessage.value = `视频加载失败: ${getErrorMessage(event.target.error.code)}`;
|
||||
loading.value = false;
|
||||
};
|
||||
|
||||
// 视频卡顿处理
|
||||
const handleVideoStalled = () => {
|
||||
console.warn('视频加载卡顿,尝试重新加载');
|
||||
if (videoRef.value) {
|
||||
// 尝试重新加载视频
|
||||
videoRef.value.load();
|
||||
}
|
||||
};
|
||||
|
||||
// 获取错误消息
|
||||
const getErrorMessage = (errorCode) => {
|
||||
const errorMessages = {
|
||||
1: '用户中止了获取过程',
|
||||
2: '网络错误导致获取过程失败',
|
||||
3: '解码过程出错',
|
||||
4: '媒体格式不支持',
|
||||
5: '其他未知错误'
|
||||
};
|
||||
return errorMessages[errorCode] || '未知错误';
|
||||
};
|
||||
|
||||
// 切换静音状态
|
||||
const toggleMute = () => {
|
||||
if (videoRef.value) {
|
||||
videoRef.value.muted = !videoRef.value.muted;
|
||||
videoMuted.value = videoRef.value.muted;
|
||||
}
|
||||
};
|
||||
|
||||
// 组件卸载前清理
|
||||
onBeforeUnmount(() => {
|
||||
destroyPlayer();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/assets/css/layout.scss";
|
||||
|
||||
.el-dialog {
|
||||
.el-dialog__header {
|
||||
background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
|
||||
padding: 12px 24px;
|
||||
margin: 0;
|
||||
border-bottom: 2px solid #409eff;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 16px 24px 24px;
|
||||
background-color: #0a0a0a;
|
||||
color: white;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
// 头部内容样式
|
||||
.dialog-header-content {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// 标题样式
|
||||
.dialog-title {
|
||||
color: #0b0b0b;
|
||||
margin: 0;
|
||||
font-weight: 500;
|
||||
font-size: 18px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
// 头部操作按钮容器
|
||||
.dialog-header-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
// 头部图标样式
|
||||
.header-icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: #000000;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 4px;
|
||||
padding: 2px;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
color: #409eff;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
.video-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.video-player {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
background-color: #000;
|
||||
border-radius: 8px;
|
||||
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
// 视频元素样式
|
||||
.video-element {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
background-color: #000;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.loading-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
// 全屏状态下的样式增强
|
||||
:deep(.el-dialog--fullscreen) {
|
||||
.el-dialog__header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
margin-top: 60px; // 为固定头部留出空间
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-controls {
|
||||
margin-top: 15px;
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.error-message {
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
@ -24,6 +24,7 @@
|
||||
<el-link type="primary" link @click="addEdit('edit', row)">编辑</el-link>
|
||||
<el-link type="primary" link @click="addEdit('detail', row)">详情</el-link>
|
||||
<el-link type="danger" link @click="handleDelete([row.id])">删除</el-link>
|
||||
<el-link type="primary" @click="videoDisplays(row)">视频播放</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
@ -34,10 +35,13 @@
|
||||
<!-- 详情 -->
|
||||
<DetailForm ref="detailDiloag" @refresh="getList" />
|
||||
</div>
|
||||
|
||||
<VideoDisplay v-model="showVideoDisplay" :videoTitle="videoTitle" :listQuery="videoDisplayData"/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import VideoDisplay from "./components/videoDisplay.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
@ -45,6 +49,7 @@ import DetailForm from "./components/detailForm.vue";
|
||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const showVideoDisplay = ref(false)
|
||||
const detailDiloag = ref();
|
||||
const searchBox = ref(); //搜索框
|
||||
const baseUrl = 'data:image/jpeg;base64,'
|
||||
@ -71,7 +76,7 @@ const pageData = reactive({
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
},
|
||||
controlsWidth: 180,
|
||||
controlsWidth: 240,
|
||||
tableColumn: [
|
||||
{ label: "视频标题", prop: "spbt" },
|
||||
]
|
||||
@ -137,6 +142,14 @@ const tabHeightFn = () => {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
const videoDisplayData = ref();
|
||||
const videoTitle=ref('');
|
||||
// 视频播放
|
||||
const videoDisplays = (val) => {
|
||||
// videoTitle.value=val.spbt
|
||||
showVideoDisplay.value = true
|
||||
videoDisplayData.value = val
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
210
src/views/Training/securityNjgl/components/detailForm.vue
Normal file
210
src/views/Training/securityNjgl/components/detailForm.vue
Normal file
@ -0,0 +1,210 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogForm">
|
||||
<div class="head_box">
|
||||
<span>详情</span>
|
||||
<div><el-button size="small" @click="close">关闭</el-button></div>
|
||||
</div>
|
||||
<div class="cntinfo">
|
||||
<!-- 标签 -->
|
||||
<ul class="tag-box">
|
||||
<li class="tag_item" :class="detail.bakkShzt == 0 ? 'dsh_item' : detail.bakkShzt == 1 ? 'tgg_item' : 'jtb_item'">
|
||||
<!-- 0-待审核 1-通过 2-驳回 -->
|
||||
{{ detail.bakkShzt == 0 ? '待审核' : detail.bakkShzt == 1 ? '通过' : '驳回' }}
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 内容描述 -->
|
||||
<el-descriptions class="desc" :column="3" border label-width="200px">
|
||||
<el-descriptions-item label="保安公司名称">{{ detail.ssbakk }}</el-descriptions-item>
|
||||
<el-descriptions-item label="年审年份">{{ detail.njnf }}</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">{{ detail.xm }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="身份证号码">{{ detail.sfzhm }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">{{ detail.dh }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">
|
||||
<DictTag :value="detail.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">
|
||||
<DictTag :value="detail.mz" :tag="false" :options="props.dic.D_BZ_MZ" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="籍贯">{{ detail.jg }}</el-descriptions-item>
|
||||
<el-descriptions-item label="文化程度">
|
||||
<DictTag :value="detail.whcd" :tag="false" :options="props.dic.D_BZ_WHCD" />
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="证书编号">{{ detail.zsbh }}</el-descriptions-item>
|
||||
<el-descriptions-item label="上岗证号码">{{ detail.sgxkhm }}</el-descriptions-item>
|
||||
<el-descriptions-item label="服务行业">
|
||||
<DictTag :value="detail.fwxy" :tag="false" :options="props.dic.D_BAXX_SSHY" />
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="服务行业名称">{{ detail.fwxymc }}</el-descriptions-item>
|
||||
<el-descriptions-item label="入职时间">{{ detail.rzsj }}</el-descriptions-item>
|
||||
<el-descriptions-item label="政治面貌">
|
||||
<DictTag :value="detail.zzmm" :tag="false" :options="props.dic.D_BZ_ZZMM" />
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="无犯罪记录证明">
|
||||
<div class="img-grid one">
|
||||
<el-image
|
||||
:src="baseUrl + detail.wfbjlzm"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.wfbjlzm]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="体检报告">
|
||||
<div class="img-grid one">
|
||||
<el-image
|
||||
:src="baseUrl + detail.tjbg"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.tjbg]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="身份证正反面">
|
||||
<div class="img-grid two">
|
||||
<el-image
|
||||
:src="baseUrl + detail.sfzzm"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.sfzzm]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
<el-image
|
||||
:src="baseUrl + detail.sfzfm"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.sfzfm]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="审核时间">{{ detail.shsj }}</el-descriptions-item>
|
||||
<el-descriptions-item label="发证机关">{{ detail.fqjg }}</el-descriptions-item>
|
||||
<el-descriptions-item label="发证日期">{{ detail.fqsj }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="驳回原因" :span="3" v-if="detail.bakkShzt == 2">{{ detail.bhyy }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, defineEmits, getCurrentInstance,defineProps } from 'vue';
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
const emit = defineEmits(["refresh"]);
|
||||
const { proxy } = getCurrentInstance();
|
||||
const baseUrl = '/bagl/mosty-base/minio/image/download/'
|
||||
const props = defineProps({
|
||||
dic: {
|
||||
default: [[]], //二维数组
|
||||
type: Array
|
||||
}
|
||||
})
|
||||
|
||||
const dialogForm = ref(false);
|
||||
const listQuery = ref({});
|
||||
const detail = ref({})
|
||||
|
||||
// 初始化数据
|
||||
const init = (type, row,) => {
|
||||
dialogForm.value = true;
|
||||
qcckPost({},'/mosty-base/bans/njxx/getInfo/'+row.id).then(res => {
|
||||
let zj = res.sfzzfmj.split(',');
|
||||
res.sfzzm = [zj[0]];
|
||||
res.sfzfm = [zj[1]];
|
||||
detail.value = res || {};
|
||||
})
|
||||
};
|
||||
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
detail.value = {};
|
||||
};
|
||||
|
||||
defineExpose({ init })
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/assets/css/layout.scss";
|
||||
.mapBox {
|
||||
width: calc(100% - 24rem);
|
||||
height: 500px;
|
||||
overflow: hidden;
|
||||
margin: 0 12rem;
|
||||
}
|
||||
.cntinfo{
|
||||
position: relative;
|
||||
padding: 10px 20px;
|
||||
box-sizing: border-box;
|
||||
.tag-box{
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 50px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
z-index: 99999;
|
||||
.tag_item{
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 50%;
|
||||
line-height: 65px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.jtb_item{
|
||||
border: 5px solid #FA3758;
|
||||
color: #FA3758;
|
||||
background: rgba(250,55,88,0.2);
|
||||
}
|
||||
.tgg_item{
|
||||
color: #28EEBF;
|
||||
background: rgba(40,238,191,0.2);
|
||||
border: 5px solid #28EEBF;
|
||||
}
|
||||
.dsh_item{
|
||||
background: rgba(0,114,255,0.2);
|
||||
color: #0072FF;
|
||||
border: 5px solid #0072FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.desc {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.img-grid {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
min-height: 70px;
|
||||
}
|
||||
|
||||
.img-grid.one .img,
|
||||
.img-grid.one .img-placeholder {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.img-grid.two .img,
|
||||
.img-grid.two .img-placeholder {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.img-placeholder {
|
||||
background: #d9d9d9;
|
||||
border-radius: 2px;
|
||||
}
|
||||
::v-deep .el-descriptions__label.el-descriptions__cell.is-bordered-label{
|
||||
background: #F6FAFF;
|
||||
}
|
||||
</style>
|
||||
138
src/views/Training/securityNjgl/components/shForm.vue
Normal file
138
src/views/Training/securityNjgl/components/shForm.vue
Normal file
@ -0,0 +1,138 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog class="steps-dialog" title="审核" v-model="dialogForm" :close-on-click-modal="false" @close="dialogForm = false,formData = {}" width="420px">
|
||||
<el-form :model="formData" ref="formRef" :rules="rules" label-width="120px">
|
||||
<el-form-item label="是否通过" prop="auditStatus">
|
||||
<el-radio-group v-model="formData.auditStatus">
|
||||
<el-radio label="1">通过</el-radio>
|
||||
<el-radio label="0">不通过</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="驳回原因" prop="rejectReason" v-if="formData.auditStatus === '0'">
|
||||
<el-input v-model="formData.rejectReason" type="textarea" placeholder="请输入驳回原因" :autosize="{ minRows: 2, maxRows: 4 }" />
|
||||
</el-form-item>
|
||||
<div class="flex just-center">
|
||||
<el-button @click="dialogForm = false,formData = {}">取消</el-button>
|
||||
<el-button type="primary" :loading="loading" @click="submitForm">提交</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus";
|
||||
import { ref, defineExpose,defineEmits } from 'vue';
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
const emit = defineEmits(['refresh'])
|
||||
const dialogForm = ref(false);
|
||||
const loading = ref(false)
|
||||
const formData = ref({})
|
||||
const rules = ref({
|
||||
auditType: [{ required: true, message: '请选择审核类型', trigger: 'blur' }],
|
||||
auditStatus: [{ required: true, message: '请选择是否通过', trigger: 'blur' }],
|
||||
rejectReason: [{ required: true, message: '请输入驳回原因', trigger: 'blur' }],
|
||||
})
|
||||
const formRef = ref();
|
||||
const idsVal = ref([])
|
||||
const init = (ids) => {
|
||||
idsVal.value = ids;
|
||||
dialogForm.value = true;
|
||||
}
|
||||
|
||||
const submitForm = () =>{
|
||||
formRef.value.validate((valid) => {
|
||||
if (!valid) return;
|
||||
loading.value = true;
|
||||
// // 保安公司审核 - bakk 培训公司审核 -- pxgs 公安局审核 -- gongan
|
||||
let params = { ...formData.value,ids:idsVal.value,auditType:'bakk' }
|
||||
qcckPost(params,"/mosty-base/bans/njxx/batchAudit").then((res) => {
|
||||
loading.value = false;
|
||||
ElMessage.success("操作成功");
|
||||
dialogForm.value = false;
|
||||
formData.value={}
|
||||
emit('refresh')
|
||||
}).catch(()=>{
|
||||
loading.value = false;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.steps-body {
|
||||
height: 260px;
|
||||
padding: 6px 10px 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__header) {
|
||||
text-align: center;
|
||||
padding: 20px 20px 10px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__title) {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__body) {
|
||||
padding: 0 20px 20px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__title) {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__description) {
|
||||
font-size: 16px;
|
||||
color: #9AA8B6;
|
||||
line-height: 20px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__line) {
|
||||
left: 8px;
|
||||
background-color: transparent;
|
||||
border-left: 1px dashed #dadada;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-vertical .el-step__head) {
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon) {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon),
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon.is-text) {
|
||||
background: #2e6bff;
|
||||
border: none;
|
||||
box-shadow: 0 0 0 5px rgba(46, 107, 255, 0.15);
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-wait .el-step__icon),
|
||||
:deep(.steps-dialog .el-step.is-finish .el-step__icon) {
|
||||
background: #fff;
|
||||
border: 1px solid #dadada;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon-inner) {
|
||||
display: none;
|
||||
}
|
||||
::v-deep .is-finish .el-step__icon{
|
||||
background: #86b6f1;
|
||||
}
|
||||
</style>
|
||||
224
src/views/Training/securityNjgl/components/steps.vue
Normal file
224
src/views/Training/securityNjgl/components/steps.vue
Normal file
@ -0,0 +1,224 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog class="steps-dialog" title="审核流程" v-model="dialogForm" width="420px">
|
||||
<div class="steps-body">
|
||||
<el-steps direction="vertical" :active="active" :space="90">
|
||||
<el-step title="保安公司审核">
|
||||
<template #description>
|
||||
<div class="audit-description">
|
||||
<div class="audit-time">{{ dataForm.bakkShsj || '未审核' }}<span class="audit-status"
|
||||
v-if="dataForm.bakkShsj"
|
||||
:class="{ 'status-pending': dataForm.bakkShzt == 0, 'status-pass': dataForm.bakkShzt == 1, 'status-reject': dataForm.bakkShzt == 2 }">{{
|
||||
dataForm.bakkShzt == 0 ? '待审核' : dataForm.bakkShzt == 1 ? '通过' : '驳回' }}</span></div>
|
||||
<div v-if="dataForm.bakkShzt == 2" class="reject-reason">
|
||||
<span class="reject-label">驳回原因:</span>
|
||||
<span>{{ dataForm.bhyy || '未审核' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="培训公司审核">
|
||||
<template #description>
|
||||
<div class="audit-description">
|
||||
<div class="audit-time">{{ dataForm.pxgsShsj || '未审核' }}
|
||||
<span class="audit-status" v-if="dataForm.pxgsShsj"
|
||||
:class="{ 'status-pending': dataForm.pxgsShzt == 0, 'status-pass': dataForm.pxgsShzt == 1, 'status-reject': dataForm.pxgsShzt == 2 }">{{
|
||||
dataForm.pxgsShzt == 0 ? '待审核' : dataForm.pxgsShzt == 1 ? '通过' : '驳回' }}</span>
|
||||
</div>
|
||||
<div v-if="dataForm.pxgsShsj == 2" class="reject-reason">
|
||||
<span class="reject-label">驳回原因:</span>
|
||||
<span>{{ dataForm.pxgsBhyy || '未审核' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="公安局审核" :description="dataForm.gonganShsj || '未审核'">
|
||||
<template #description>
|
||||
<div class="audit-description">
|
||||
<div class="audit-time">{{ dataForm.gonganShsj || '未审核' }}
|
||||
<span class="audit-status" v-if="dataForm.gonganShsj"
|
||||
:class="{ 'status-pending': dataForm.gonganShzt == 0, 'status-pass': dataForm.gonganShzt == 1, 'status-reject': dataForm.gonganShzt == 2 }">{{
|
||||
dataForm.gonganShzt == 0 ? '待审核' : dataForm.gonganShzt == 1 ? '通过' : '驳回' }}</span>
|
||||
</div>
|
||||
<div v-if="dataForm.gonganShsj == 2" class="reject-reason">
|
||||
<span class="reject-label">驳回原因:</span>
|
||||
<span>{{ dataForm.gonganBhyy || '未审核' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<!-- :description="dataForm.pxgsShsj || '未审核'" -->
|
||||
|
||||
<script setup>
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import { ref, defineExpose } from 'vue';
|
||||
const dialogForm = ref(false);
|
||||
const active = ref(0)
|
||||
const dataForm = ref({})
|
||||
const init = (row) => {
|
||||
let ids = [row.id]
|
||||
qcckPost(ids, "/mosty-base/bans/njxx/getAuditStatusList").then(res => {
|
||||
dialogForm.value = true;
|
||||
let obj = res ? res[0] : {};
|
||||
dataForm.value = obj;
|
||||
active.value = Number(obj.currentAuditStage) - 1;
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.steps-body {
|
||||
height: 300px;
|
||||
padding: 6px 10px 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.audit-description {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.audit-time {
|
||||
font-size: 16px;
|
||||
color: #9AA8B6;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.reject-reason {
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
margin-top: 4px;
|
||||
padding: 6px 10px;
|
||||
background-color: #fef2f2;
|
||||
border-left: 3px solid #f87171;
|
||||
border-radius: 0 4px 4px 0;
|
||||
color: #dc2626;
|
||||
}
|
||||
|
||||
.reject-label {
|
||||
font-weight: 600;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.audit-status {
|
||||
margin-left: 8px;
|
||||
padding: 2px 8px;
|
||||
border-radius: 10px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.status-pending {
|
||||
background-color: #f3f4f6;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
.status-pass {
|
||||
background-color: #d1fae5;
|
||||
color: #065f46;
|
||||
}
|
||||
|
||||
.status-reject {
|
||||
background-color: #fee2e2;
|
||||
color: #b91c1c;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__header) {
|
||||
text-align: center;
|
||||
padding: 20px 20px 10px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__title) {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__body) {
|
||||
padding: 0 20px 20px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__title) {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__description) {
|
||||
font-size: 16px;
|
||||
color: #9AA8B6;
|
||||
line-height: 20px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__line) {
|
||||
left: 8px;
|
||||
background-color: transparent;
|
||||
border-left: 1px dashed #dadada;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-vertical .el-step__head) {
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon) {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon),
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon.is-text) {
|
||||
background: #2e6bff;
|
||||
border: none;
|
||||
box-shadow: 0 0 0 5px rgba(46, 107, 255, 0.15);
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-wait .el-step__icon),
|
||||
:deep(.steps-dialog .el-step.is-finish .el-step__icon) {
|
||||
background: #fff;
|
||||
border: 1px solid #dadada;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon-inner) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::v-deep .is-finish .el-step__icon {
|
||||
background: #86b6f1;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__close {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
color: #fff;
|
||||
|
||||
svg {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__headerbtn {
|
||||
top: auto;
|
||||
bottom: -60px;
|
||||
border: 2px solid #fff;
|
||||
color: #fff;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
border-radius: 50%;
|
||||
}
|
||||
</style>
|
||||
238
src/views/Training/securityNjgl/index.vue
Normal file
238
src/views/Training/securityNjgl/index.vue
Normal file
@ -0,0 +1,238 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="保安员年检管理" >
|
||||
<el-button type="primary" @click="onBatchAudit(selectedRows)">批量审核</el-button>
|
||||
<!-- <el-button type="primary" @click="handleItemSp(selectedRows)">批量送培</el-button> -->
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData">
|
||||
<template #whcd="{ row }">
|
||||
<DictTag :value="row.whcd" :tag="false" :options="D_BZ_WHCD" />
|
||||
</template>
|
||||
<template #fwxy="{ row }">
|
||||
<DictTag :value="row.fwxy" :tag="false" :options="D_BAXX_SSHY" />
|
||||
</template>
|
||||
<template #bakkShzt="{ row }">
|
||||
<DictTag :value="row.bakkShzt" :tag="false" :color="row.bakkShzt == 0 ? '#ff0000' : row.bakkShzt == 1 ? '#28EEBF' : '#FA3758'" :options="D_BA_SHZT" />
|
||||
</template>
|
||||
<template #sptz="{ row }">
|
||||
<DictTag :value="row.sptz" :tag="false" :options="D_BA_SPZT" />
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<!--currentAuditStage 当前审核阶段:1-保安公司审核阶段,2-培训公司审核阶段,3-公安局审核阶段,4-审核完成 -->
|
||||
<el-link type="primary" link @click="onBatchAudit([row.id])" v-if="row.bakkShzt == 0">立即审核</el-link>
|
||||
<el-link type="primary" link @click="addEdit('RefSteap', row)">审核流程</el-link>
|
||||
<!-- <el-link type="primary" link @click="handleItemSp([row.id])" v-if="row.sptz == 0 && row.bakkShzt == 1">送培</el-link> -->
|
||||
<el-link type="primary" link @click="addEdit('detail', row)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<!-- 详情 -->
|
||||
<DetailForm ref="detailDiloag" :dic="{D_BZ_ZZMM,D_BZ_XB,D_BZ_MZ,D_BA_SHZT,D_BAXX_SSHY,D_BA_SPZT,D_BZ_WHCD}"/>
|
||||
<!-- 审核流程 -->
|
||||
<Steps ref="RefSteap" ></Steps>
|
||||
<!-- 审核 -->
|
||||
<ShForm ref="shForm" @refresh="getList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { getItem } from "@/utils/storage";
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import DetailForm from "./components/detailForm.vue";
|
||||
// import Steps from "./components/steps.vue";
|
||||
import Steps from '@/components/steps.vue'
|
||||
import ShForm from "./components/shForm.vue";
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_ZZMM,D_BZ_XB,D_BZ_MZ,D_BA_SHZT,D_BAXX_SSHY,D_BA_SPZT,D_BZ_WHCD } = proxy.$dict('D_BZ_ZZMM','D_BZ_XB','D_BZ_MZ','D_BA_SHZT','D_BAXX_SSHY','D_BA_SPZT','D_BZ_WHCD');
|
||||
const userInfo = getItem('userInfo');
|
||||
const detailDiloag = ref();
|
||||
const RefSteap = ref();
|
||||
const shForm = ref();
|
||||
const searchBox = ref(); //搜索框
|
||||
const selectedRows = ref([]);
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "xm",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "身份证号码",
|
||||
prop: "sfzhm",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "电话",
|
||||
prop: "dh",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "审核状态",
|
||||
prop: "bakkShzt",
|
||||
showType: "select",
|
||||
placeholder: "不限",
|
||||
clearable: true,
|
||||
defaultVal: "",
|
||||
options: D_BA_SHZT
|
||||
},
|
||||
{
|
||||
label: "送培状态",
|
||||
prop: "sptz",
|
||||
showType: "select",
|
||||
placeholder: "不限",
|
||||
clearable: true,
|
||||
defaultVal: "",
|
||||
options: D_BA_SPZT
|
||||
}
|
||||
]);
|
||||
const queryFrom = ref({});
|
||||
const pageData = reactive({
|
||||
tableData: [],
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkBox",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageNum: 1
|
||||
},
|
||||
controlsWidth: 280,
|
||||
tableColumn: [
|
||||
{ label: "保安公司名称", prop: "ssbakk", showOverflowTooltip: true },
|
||||
{ label: "年审年份", prop: "njnf" },
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号码", prop: "sfzhm", showOverflowTooltip: true },
|
||||
{ label: "电话", prop: "dh" },
|
||||
{ label: "文化程度", prop: "whcd",showSolt: true },
|
||||
{ label: "证书编号", prop: "zsbh", showOverflowTooltip: true },
|
||||
{ label: "服务行业", prop: "fwxy", showSolt: true },
|
||||
{ label: "入职时间", prop: "rzsj" },
|
||||
{ label: "上岗证号码", prop: "sgxkhm", showOverflowTooltip: true },
|
||||
{ label: "审核状态", prop: "bakkShzt", showSolt: true },
|
||||
{ label: "审核时间", prop: "shsj" },
|
||||
{ label: "送培状态", prop: "sptz", showSolt: true }
|
||||
]
|
||||
});
|
||||
onMounted(() => {
|
||||
getList();
|
||||
tabHeightFn();
|
||||
});
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = { ...val };
|
||||
pageData.pageConfiger.pageNum = 1;
|
||||
getList();
|
||||
};
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageNum = val;
|
||||
getList();
|
||||
};
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
getList();
|
||||
};
|
||||
// 获取列表
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
|
||||
const promes = {
|
||||
...pageData.pageConfiger,
|
||||
...queryFrom.value,
|
||||
ssbakk:userInfo.pxgs,
|
||||
ssbakkId:userInfo.pxgsid,
|
||||
}
|
||||
|
||||
qcckPost(promes,'/mosty-base/bans/njxx/page').then(res => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch((err) => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
};
|
||||
|
||||
const chooseData = (rows) => {
|
||||
selectedRows.value = Array.isArray(rows) ? rows.map(v=>v.id) : [];
|
||||
};
|
||||
|
||||
const onBatchAudit = (valIds) => {
|
||||
let ids = [];
|
||||
valIds.forEach(id =>{
|
||||
let obj = pageData.tableData.find(it=>it.id == id);
|
||||
if(obj && obj.bakkShzt == 0) ids.push(id);
|
||||
});
|
||||
if (!ids.length) return ElMessage.warning("请选择未审核的数据!该数据再审核状态下不能操作!");
|
||||
shForm.value.init(ids);
|
||||
};
|
||||
|
||||
// 送培
|
||||
const handleItemSp = (valIds) =>{
|
||||
let ids = [];
|
||||
valIds.forEach(id =>{
|
||||
let obj = pageData.tableData.find(it=>it.id == id);
|
||||
if(obj && obj.sptz == 0 && obj.bakkShzt == 1) ids.push(id);
|
||||
});
|
||||
if (!ids.length) return ElMessage.warning("请选择未送培的数据!该数据已送培!");
|
||||
proxy.$modal.confirm("是否确认送培?").then(() => {
|
||||
let params = {
|
||||
ssbakk:userInfo.pxgs,
|
||||
ssbakkId:userInfo.pxgsid,
|
||||
ids:ids
|
||||
}
|
||||
qcckPost(params,'/mosty-base/bans/njxx/sendTraining').then(res=>{
|
||||
getList()
|
||||
ElMessage.success("送培成功");
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// 详情
|
||||
const addEdit = (type, row) => {
|
||||
nextTick(() => {
|
||||
if(type == 'RefSteap'){
|
||||
RefSteap.value.init(row);
|
||||
}else{
|
||||
detailDiloag.value.init(type, row);
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
109
src/views/Training/securityNjsp/components/addSp.vue
Normal file
109
src/views/Training/securityNjsp/components/addSp.vue
Normal file
@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog v-model="visible" title="批量送培" width="80%" @close="close">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
@chooseData="chooseData"
|
||||
>
|
||||
</MyTable>
|
||||
<div class="flex just-center mt10">
|
||||
<el-button type="primary" @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="changePxgs">确定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<TrainingCompany ref="trainingCompany" @onBatchAudit="onBatchAudit"/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus";
|
||||
import { getItem } from '@/utils/storage.js'
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import TrainingCompany from "./trainingCompany.vue";
|
||||
import { ref , reactive , defineExpose , getCurrentInstance, defineEmits} from 'vue'
|
||||
const userInfo = getItem('userInfo');
|
||||
const emit = defineEmits(['refresh'])
|
||||
const { proxy } = getCurrentInstance();
|
||||
const visible = ref(false);
|
||||
const pageData = reactive({
|
||||
tableData: [],
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkBox",
|
||||
loading: false,
|
||||
haveControls: false
|
||||
},
|
||||
tableHeight: 550,
|
||||
tableColumn: [
|
||||
{ label: "保安公司名称", prop: "ssbakk",showOverflowTooltip: true },
|
||||
{ label: "年审年份", prop: "njnf"},
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号码", prop: "sfzhm",showOverflowTooltip: true },
|
||||
{ label: "电话", prop: "dh" },
|
||||
{ label: "文化程度", prop: "whcd" },
|
||||
{ label: "证书编号", prop: "zsbh", showOverflowTooltip: true },
|
||||
{ label: "服务行业", prop: "fwxymc" },
|
||||
{ label: "入职时间", prop: "rzsj" },
|
||||
{ label: "上岗证号码", prop: "sgxkhm", showOverflowTooltip: true },
|
||||
]
|
||||
});
|
||||
const ids = ref([])
|
||||
const chooseData = (rows) => {
|
||||
ids.value = Array.isArray(rows) ? rows.map(item => item.id) : [];
|
||||
};
|
||||
|
||||
const init = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
pageData.keyCount++;
|
||||
visible.value = true;
|
||||
let promes = {
|
||||
pageNum:1,
|
||||
pageSize:9999,
|
||||
ssbakk:userInfo.pxgs,
|
||||
ssbakkId:userInfo.pxgsid,
|
||||
sptz:0
|
||||
}
|
||||
qcckPost(promes,'/mosty-base/bans/njxx/listForSendTraining').then((res) => {
|
||||
pageData.tableData = res.records || []
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch((err) => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
// 送培
|
||||
const trainingCompany=ref()
|
||||
const onBatchAudit = (val) => {
|
||||
if (ids.value.length === 0) return ElMessage.warning("请选择要送培的人员");
|
||||
proxy.$modal.confirm("是否确认送培?").then(() => {
|
||||
let params = { ids: ids.value, ...val }
|
||||
qcckPost(params,'/mosty-base/bans/njxx/sendTraining').then(res=>{
|
||||
ElMessage.success("送培成功");
|
||||
emit('refresh');
|
||||
close();
|
||||
})
|
||||
});
|
||||
}
|
||||
const changePxgs = () => {
|
||||
trainingCompany.value.init()
|
||||
}
|
||||
|
||||
|
||||
const close = () => {
|
||||
visible.value = false;
|
||||
ids.value = [];
|
||||
pageData.tableData = []
|
||||
}
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
209
src/views/Training/securityNjsp/components/detailForm.vue
Normal file
209
src/views/Training/securityNjsp/components/detailForm.vue
Normal file
@ -0,0 +1,209 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogForm">
|
||||
<div class="head_box">
|
||||
<span>详情</span>
|
||||
<div><el-button size="small" @click="close">关闭</el-button></div>
|
||||
</div>
|
||||
<div class="cntinfo">
|
||||
<!-- 标签 -->
|
||||
<!-- <ul class="tag-box">
|
||||
<li class="tag_item" :class="detail.pxgsShzt == 0 ? 'dsh_item' : detail.pxgsShzt == 1 ? 'tgg_item' : 'jtb_item'"> -->
|
||||
<!-- 0-待审核 1-通过 2-驳回 -->
|
||||
<!-- {{ detail.pxgsShzt == 0 ? '待审核' : detail.pxgsShzt == 1 ? '通过' : '驳回' }}
|
||||
</li>
|
||||
</ul> -->
|
||||
<!-- 内容描述 -->
|
||||
<el-descriptions class="desc" :column="3" border label-width="200px">
|
||||
<el-descriptions-item label="保安公司名称">{{ detail.ssbakk }}</el-descriptions-item>
|
||||
<el-descriptions-item label="年审年份">{{ detail.njnf }}</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">{{ detail.xm }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="身份证号码">{{ detail.sfzhm }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">{{ detail.dh }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">
|
||||
<DictTag :value="detail.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">
|
||||
<DictTag :value="detail.mz" :tag="false" :options="props.dic.D_BZ_MZ" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="籍贯">{{ detail.jg }}</el-descriptions-item>
|
||||
<el-descriptions-item label="文化程度">
|
||||
<DictTag :value="detail.whcd" :tag="false" :options="props.dic.D_BZ_WHCD" />
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="证书编号">{{ detail.zsbh }}</el-descriptions-item>
|
||||
<el-descriptions-item label="上岗证号码">{{ detail.sgxkhm }}</el-descriptions-item>
|
||||
<el-descriptions-item label="服务行业">
|
||||
<DictTag :value="detail.fwxy" :tag="false" :options="props.dic.D_BAXX_SSHY" />
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="服务行业名称">{{ detail.fwxymc }}</el-descriptions-item>
|
||||
<el-descriptions-item label="入职时间">{{ detail.rzsj }}</el-descriptions-item>
|
||||
<el-descriptions-item label="政治面貌">
|
||||
<DictTag :value="detail.zzmm" :tag="false" :options="props.dic.D_BZ_ZZMM" />
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="无犯罪记录证明">
|
||||
<div class="img-grid one">
|
||||
<el-image
|
||||
:src="baseUrl + detail.wfbjlzm"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.wfbjlzm]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="体检报告">
|
||||
<div class="img-grid one">
|
||||
<el-image
|
||||
:src="baseUrl + detail.tjbg"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.tjbg]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="身份证正反面">
|
||||
<div class="img-grid two">
|
||||
<el-image
|
||||
:src="baseUrl + detail.sfzzm"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.sfzzm]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
<el-image
|
||||
:src="baseUrl + detail.sfzfm"
|
||||
fit="cover"
|
||||
:preview-src-list='[baseUrl + detail.sfzfm]'
|
||||
preview-teleported
|
||||
class="img"
|
||||
/>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="审核时间">{{ detail.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="发证机关">{{ detail.issuingAuthority }}</el-descriptions-item>
|
||||
<el-descriptions-item label="发证日期">{{ detail.issueDate }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="驳回原因" :span="3">{{ detail.rejectReason }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, defineEmits } from 'vue';
|
||||
const emit = defineEmits(["refresh"]);
|
||||
const baseUrl = '/bagl/mosty-base/minio/image/download/'
|
||||
const props = defineProps({
|
||||
dic: {
|
||||
default: [[]], //二维数组
|
||||
type: Array
|
||||
}
|
||||
})
|
||||
const dialogForm = ref(false);
|
||||
const listQuery = ref({});
|
||||
const detail = ref({})
|
||||
|
||||
// 初始化数据
|
||||
const init = (type, row,) => {
|
||||
dialogForm.value = true;
|
||||
let obj = JSON.parse(JSON.stringify(row));
|
||||
let zj = obj.sfzzfmj.split(',');
|
||||
obj.sfzzm = [zj[0]];
|
||||
obj.sfzfm = [zj[1]];
|
||||
setTimeout(() => {
|
||||
detail.value = obj;
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
listQuery.value = {};
|
||||
};;
|
||||
|
||||
|
||||
defineExpose({ init })
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/assets/css/layout.scss";
|
||||
|
||||
.mapBox {
|
||||
width: calc(100% - 24rem);
|
||||
height: 500px;
|
||||
overflow: hidden;
|
||||
margin: 0 12rem;
|
||||
}
|
||||
.cntinfo{
|
||||
position: relative;
|
||||
padding: 10px 20px;
|
||||
box-sizing: border-box;
|
||||
.tag-box{
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 50px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
.tag_item{
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 50%;
|
||||
line-height: 65px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.jtb_item{
|
||||
border: 5px solid #FA3758;
|
||||
color: #FA3758;
|
||||
background: rgba(250,55,88,0.2);
|
||||
}
|
||||
.tgg_item{
|
||||
color: #28EEBF;
|
||||
background: rgba(40,238,191,0.2);
|
||||
border: 5px solid #28EEBF;
|
||||
}
|
||||
.dsh_item{
|
||||
background: rgba(0,114,255,0.2);
|
||||
color: #0072FF;
|
||||
border: 5px solid #0072FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.desc {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.img-grid {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
min-height: 70px;
|
||||
}
|
||||
|
||||
.img-grid.one .img,
|
||||
.img-grid.one .img-placeholder {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.img-grid.two .img,
|
||||
.img-grid.two .img-placeholder {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.img-placeholder {
|
||||
background: #d9d9d9;
|
||||
border-radius: 2px;
|
||||
}
|
||||
::v-deep .el-descriptions__label.el-descriptions__cell.is-bordered-label{
|
||||
background: #F6FAFF;
|
||||
}
|
||||
</style>
|
||||
108
src/views/Training/securityNjsp/components/steps.vue
Normal file
108
src/views/Training/securityNjsp/components/steps.vue
Normal file
@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog class="steps-dialog" title="审核流程" v-model="dialogForm" width="420px">
|
||||
<div class="steps-body">
|
||||
<el-steps direction="vertical" :active="active" :space="90">
|
||||
<el-step title="保安公司审核" :description="dataForm.bakkShsj || '未审核'" />
|
||||
<el-step title="培训公司审核" :description="dataForm.pxgsShsj || '未审核'" />
|
||||
<el-step title="公安局审核" :description="dataForm.gonganShsj || '未审核'" />
|
||||
</el-steps>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import { ref, defineExpose } from 'vue';
|
||||
const dialogForm = ref(false);
|
||||
const active = ref(1)
|
||||
const dataForm = ref({})
|
||||
const init = (row) => {
|
||||
let ids = [row.id]
|
||||
qcckPost(ids,"/mosty-base/bans/njxx/getAuditStatusList").then(res=>{
|
||||
dialogForm.value = true;
|
||||
let obj = res ? res[0] : {};
|
||||
dataForm.value = obj;
|
||||
active.value = Number(obj.currentAuditStage) - 1;
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.steps-body {
|
||||
height: 260px;
|
||||
padding: 6px 10px 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__header) {
|
||||
text-align: center;
|
||||
padding: 20px 20px 10px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__title) {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-dialog__body) {
|
||||
padding: 0 20px 20px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__title) {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__description) {
|
||||
font-size: 16px;
|
||||
color: #9AA8B6;
|
||||
line-height: 20px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__line) {
|
||||
left: 8px;
|
||||
background-color: transparent;
|
||||
border-left: 1px dashed #dadada;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-vertical .el-step__head) {
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon) {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon),
|
||||
:deep(.steps-dialog .el-step__head.is-process .el-step__icon.is-text) {
|
||||
background: #2e6bff;
|
||||
border: none;
|
||||
box-shadow: 0 0 0 5px rgba(46, 107, 255, 0.15);
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step.is-wait .el-step__icon),
|
||||
:deep(.steps-dialog .el-step.is-finish .el-step__icon) {
|
||||
background: #fff;
|
||||
border: 1px solid #dadada;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
:deep(.steps-dialog .el-step__icon-inner) {
|
||||
display: none;
|
||||
}
|
||||
::v-deep .is-finish .el-step__icon{
|
||||
background: #86b6f1;
|
||||
}
|
||||
</style>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user