This commit is contained in:
2026-01-14 18:15:16 +08:00
52 changed files with 620 additions and 481 deletions

View File

@ -43,7 +43,9 @@
import { ref, reactive, watch, onMounted, onBeforeUnmount, nextTick, computed } from "vue";
import { ElMessage } from "element-plus";
import { Loading } from '@element-plus/icons-vue';
import {downFiles} from '@/api/instructCenter'
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: {
@ -80,8 +82,8 @@ const url=ref('')
const getVideoSrc = () => {
// 确保listQuery.fjid是字符串类型
const fjid = JSON.parse(props.listQuery.fjid)?.map(item => item.id).join(',') || '';
downFiles(fjid).then(res => {
url.value=res.url
downVideoFiles(fjid).then(res => {
url.value=res
});
}
// 监听对话框显示状态
@ -128,7 +130,7 @@ const destroyPlayer = () => {
console.log('播放器已销毁');
}
} catch (error) {
console.error('销毁播放器失败:', error);
// console.error('销毁播放器失败:', error);
}
};
@ -160,7 +162,6 @@ const handleVideoError = (event) => {
console.error('视频加载错误:', event.target.error);
errorMessage.value = `视频加载失败: ${getErrorMessage(event.target.error.code)}`;
loading.value = false;
ElMessage.error('视频加载失败,请检查网络或视频链接');
};
// 视频卡顿处理

View File

@ -157,12 +157,12 @@ const changeSize = (val) => {
// 获取列表
const getList = () => {
pageData.tableConfiger.loading = true;
const promes = {
...pageData.pageConfiger,
...queryFrom.value,
ssbakk:userInfo.pxgs,
ssbakkId:userInfo.pxgsid
ssbakkId:userInfo.pxgsid
}
qcckPost(promes,'/mosty-base/bans/njxx/page').then(res => {
pageData.tableData = res.records || [];

91
src/views/error/404.vue Normal file
View File

@ -0,0 +1,91 @@
<template>
<div class="security-404">
<div class="container">
<div class="error-code">404</div>
<div class="error-message">页面不存在</div>
<div class="error-description">抱歉您访问的页面不存在或已被移除</div>
<div class="error-image">
<img src="?prompt=security%20guard%20standing%20in%20front%20of%20a%20closed%20door%2C%20professional%20uniform%2C%20serious%20expression%2C%20realistic%20style&image_size=square" alt="404" />
</div>
<div class="error-actions">
<el-button type="primary" @click="goHome">返回首页</el-button>
<el-button @click="goBack">返回上一页</el-button>
</div>
</div>
</div>
</template>
<script setup>
import { useRouter } from 'vue-router'
const router = useRouter()
const goHome = () => {
router.push('/')
}
const goBack = () => {
router.back()
}
</script>
<style lang="scss" scoped>
.security-404 {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: #f5f7fa;
.container {
text-align: center;
padding: 40px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
max-width: 500px;
width: 100%;
.error-code {
font-size: 80px;
font-weight: bold;
color: #409eff;
margin-bottom: 20px;
}
.error-message {
font-size: 24px;
font-weight: 500;
color: #303133;
margin-bottom: 10px;
}
.error-description {
font-size: 14px;
color: #909399;
margin-bottom: 30px;
}
.error-image {
margin-bottom: 30px;
img {
width: 200px;
height: 200px;
object-fit: cover;
border-radius: 4px;
}
}
.error-actions {
display: flex;
justify-content: center;
gap: 12px;
.el-button {
min-width: 100px;
}
}
}
}
</style>

View File

@ -73,7 +73,7 @@ const hour = ref("00"); //时
const day = ref(0);
const timersfm = ref(null);
const username = localStorage.getItem("USERNAME");
const deptName = ref(JSON.parse(localStorage.getItem("deptId"))?.[0].deptName);
const deptName = ref(JSON.parse(localStorage.getItem("userInfo")).pxgs||"");
const router = useRouter();
onMounted(() => {

View File

@ -86,7 +86,7 @@ const minute = ref("00"); //分
const second = ref("00"); //秒
const hour = ref("00"); //时
const day = ref(0);
const deptName = ref(JSON.parse(localStorage.getItem("deptId"))?.[0].deptName);
const deptName = ref(JSON.parse(localStorage.getItem("userInfo")).pxgs||"");
const modularShow = ref(false);
const timersfm = ref(null);
const qwlevel = ref(null)

View File

@ -124,7 +124,10 @@ const handleLogin = () => {
loginFromRef.value.validate((valid) => {
if (!valid) return false;
loading.value = true;
store.dispatch("user/login", loginForm.value).then((res) => {
console.log("xxxxxxxx");
loading.value = false;
if (res.deptList.length === 1) {
getSfzhByGsid(res.idEntityCard)

View File

@ -25,7 +25,7 @@
<script setup>
import ChooseCompany from './chooseCompany.vue'
import { ref, reactive, getCurrentInstance, watch,onMounted } from 'vue'
import { ref, reactive, getCurrentInstance, watch, onMounted } from 'vue'
import { qcckPost } from "@/api/qcckApi.js";
import FormMessage from '@/components/aboutTable/FormMessage.vue'
import { getItem } from '@/utils/storage'
@ -49,16 +49,23 @@ const companyList = ref([])
const myCompany = () => {
const cjrsfzh = getItem("userInfo")
const params = { cjrsfzh: cjrsfzh.sfzh }
qcckPost(params, "/mosty-base/baxx/baba/list").then(res => {
companyList.value = res.map(item => {
qcckPost({
pageCurrent: 1,
pageSize: 1000
}, "/mosty-base/baxx/dwgl/page").then(res => {
companyList.value = res.records.map(item => {
return {
zdmc: item.dwmc,
dm: item.csdm
zdmc: item.dwmc || item.csmc,
dm: item.csdm || item.id
}
}) || [];
console.log(companyList.value);
});
}
onMounted(() => {
getPxgsidList()
myCompany()
})
const dicDefault = {
@ -82,52 +89,46 @@ const dicDefault = {
}
const pxgsidList = ref([])
const dialogVisible = ref(false)
const formList = reactive([
const formList = ref()
watch(() => companyList.value, (newVal, oldVal) => {
if (newVal) {
formList.value = [
[
// { label: "单位名称", prop: "code", type: "select", options: companyList.value },
{ label: "所属公司", prop: "pxgs", type: "slot" },
{ label: "姓名", prop: "xm", type: "input" },
{ label: "证件号码", prop: "sfzh", type: "input" },
[
{ label: "单位名称", prop: "code", type: "select", options: companyList.value },
{ label: "姓名", prop: "xm", type: "input" },
{ label: "证件号码", prop: "sfzh", type: "input" },
{ label: "联系电话", prop: "lxdh", type: "input" },
],
[
{ label: "居住地址", prop: "jzdz", type: "input" },
{ label: "职业类别", prop: "zydm", type: "select", options: dicDefault.B_BZ_ZYLB },
{ label: "入职时间", prop: "rzsj", type: "date" },
], [
{ label: "所属行业", prop: "sshy", type: "select", options: D_BAXX_SSHY },
{ label: "岗位", prop: "gw", type: "select", options: D_BAXX_GWLX },
{ label: "单位类型", prop: "dwlx", type: "select", options: D_BAXX_DWLX },
], [
{ label: "资格证类型", prop: "zgzlx", type: "select", options: dicDefault.B_BZ_BAZGZ },
{ label: "资格证编号", prop: "zgzbh", type: "input" },
{ label: "资格证起始日期", prop: "zgzKssj", type: "date" },
],
[
{ label: "联系电话", prop: "lxdh", type: "input" },
{ label: "居住地址", prop: "jzdz", type: "input" },
], [{ label: "资格证截止日期", prop: "zgzJssj", type: "date" },
{ label: "外派单位", prop: "wpdw", type: "input" },
{ label: "培训公司", prop: "pxgs", type: "select", options: pxgsidList.value }],
[
{ label: "从业人员照片", prop: "tp", type: "upload" },
]
// [
// { label: "离职时间", prop: "lzsj", type: "slot" },
// { label: "文化程度", prop: "whcd", type: "select", options: D_BZ_WHCD },
// { label: "资格证类型", prop: "zgzlx", type: "input" },
// { label: "资格证起始日期", prop: "zgzKssj", type: "date" },
// { label: "资格证截至日期", prop: "zgzJssj", type: "date" },
// { label: "岗位", prop: "gw", type: "select", options: D_BAXX_GWLX },
// ],
// [
// { label: "培训公司", prop: "pxgs", type: "slot" },
// ],
// [
// { label: "外派单位", prop: "wpdw", type: "input" },
// ],
// { label: "从业人员照片", prop: "tp", type: "upload", limit: 2 },
// { label: "保安证件", prop: "bazzp", type: "upload", limit: 1 },
])
{ label: "职业类别", prop: "zydm", type: "select", options: dicDefault.B_BZ_ZYLB },
], [
{ label: "入职时间", prop: "rzsj", type: "date" },
{ label: "所属行业", prop: "sshy", type: "select", options: D_BAXX_SSHY },
{ label: "服务行业名称", prop: "hymc", type: "input" },
], [
{ label: "岗位", prop: "gw", type: "select", options: D_BAXX_GWLX },
{ label: "单位类型", prop: "dwlx", type: "select", options: D_BAXX_DWLX },
{ label: "资格证类型", prop: "zgzlx", type: "select", options: dicDefault.B_BZ_BAZGZ },
{ label: "资格证编号", prop: "zgzbh", type: "input" },
], [
{ label: "资格证起始日期", prop: "zgzKssj", type: "date" },
{ label: "资格证截止日期", prop: "zgzJssj", type: "date" },
{ label: "外派单位", prop: "wpdw", type: "input" },
],
[
{ label: "从业人员照片", prop: "tp", type: "upload" },
]
]
}
})
const rules = {
xm: [{ required: true, message: "请输入姓名", trigger: "change" }],
...rule.phoneRule({ validator: true, message: "请输入联系电话", require: true }, "lxdh"), // 是否必填 是否进行校验`
@ -136,7 +137,6 @@ const rules = {
rzsj: [{ required: true, message: "请选择入职时间", trigger: "change" }],
zgzbh: [{ required: true, message: "请输入资格证编号", trigger: "change" }],
gw: [{ required: true, message: "请输入岗位", trigger: "change" }],
wpdw: [{ required: true, message: "请输入外派单位", trigger: "change" }],
zgzlx: [{ required: true, message: "请输入资格证类型", trigger: "change" }],
zgzKssj: [{ required: true, message: "请选择资格证起始日期", trigger: "change" }],
zgzJssj: [{ required: true, message: "请选择资格证截至日期", trigger: "blur" }],
@ -145,12 +145,13 @@ const rules = {
}
const getPxgsidList = () => {
const params = { dwlx: formData.value.dwlx, state: '1' }
qcckPost(params, "/mosty-base/baxx/baba/list").then(res => {
pxgsidList.value = res.map(item => {
const userInfo = getItem("userInfo")
const params = { keyword: userInfo.sfzh, pageCurrent: 1, pageSize: 1000 }
qcckPost(params, "/mosty-base/baxx/dwgl/page").then(res => {
pxgsidList.value = res.records.map(item => {
return {
dm: item.id,
zdmc: item.yyzddjmc
zdmc: item.csmc
}
}) || [];
});
@ -159,11 +160,11 @@ const getPxgsidList = () => {
const formData = ref({})
watch(() => formData.value.dwlx, (newVal, oldVal) => {
if (newVal !== oldVal) {
getPxgsidList()
}
}, { deep: true })
// watch(() => formData.value.dwlx, (newVal, oldVal) => {
// if (newVal !== oldVal) {
// getPxgsidList()
// }
// }, { deep: true })
const selectPxgs = () => {
RefConmay.value.open()
}

View File

@ -42,59 +42,59 @@ const dialogForm = ref(false);
const FormRef = ref(null);
const listQuery = ref({});
const formList = ref()
const rules = ref({
csmc: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
dwmc: [{ required: true, message: "请输入营业执照登记名称", trigger: "blur" }],
xydm: [{ required: true, message: "请输入信用代码", trigger: "blur" }],
// csdm: [{ required: true, message: "请输入场所代码", trigger: "blur" }],
// gds: [{ required: true, message: "请输入股东数", trigger: "blur" }],
zczj: [{ required: true, message: "请输入注册资金(万元)", trigger: "blur" }],
type: [{ required: true, message: "请选择单位类型", trigger: "blur" }],
csLxdh: [{ required: true, message: "请输入场所电话", trigger: "blur" }],
jyzk: [{ required: true, message: "请选择经营状况", trigger: "blur" }],
jyfw: [{ required: true, message: "请选择经营范围", trigger: "blur" }],
dyrs: [{ required: true, message: "请输入党员人数", trigger: "blur" }],
// gxdwdm: [{ required: true, message: "请选择管辖区县", trigger: "blur" }],
gsxz: [{ required: true, message: "请选择公司性质", trigger: "blur" }],
kyrq: [{ required: true, message: "请选择开业日期", trigger: "blur" }],
zcdz: [{ required: true, message: "请输入场所注册地址", trigger: "blur" }],
jydz: [{ required: true, message: "请输入场所经营地址", trigger: "blur" }],
mqcsyw: [{ required: true, message: "请输入目前从事业务", trigger: "blur" }],
// qzqk: [{ required: true, message: "请输入枪支情况", trigger: "blur" }],
// sfyyzz: [{ required: true, message: "请选择是否有武装押运资质", trigger: "blur" }],
// sfpxzz: [{ required: true, message: "请选择是否有培训资质", trigger: "blur" }],
// sfdzz: [{ required: true, message: "请选择是否成立党组织", trigger: "blur" }],
// zfzrr: [{ required: true, message: "请选择是否为负责人", trigger: "blur" }],
fdrXm: [{ required: true, message: "请输入法人姓名", trigger: "blur" }],
fdrSfzh: [{ required: true, message: "请输入法人账号", trigger: "blur" }],
fdrLxdh: [{ required: true, message: "请输入法人手机号", trigger: "blur" }],
fdrJzdz: [{ required: true, message: "请输入法人地址", trigger: "blur" }],
frSfzZm: [{ required: true, message: "请上传法人身份证正面", trigger: "blur" }],
frSfzFm: [{ required: true, message: "请上传法人身份证反面", trigger: "blur" }],
fzrXm: [{ required: true, message: "请输入负责人姓名", trigger: "blur" }],
fzrSfzh: [{ required: true, message: "请输入负责人身份证号", trigger: "blur" }],
fzrLxdh: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
nl: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
xb: [{ required: true, message: "请输入负责人性别", trigger: "blur" }],
baszsbh: [{ required: true, message: "请输入保安证编号", trigger: "blur" }],
fzrJzdz: [{ required: true, message: "请输入负责人地址", trigger: "blur" }],
fzrSfzZm: [{ required: true, message: "请上传负责人身份证正面", trigger: "blur" }],
fzrSfzFm: [{ required: true, message: "请上传负责人身份证反面", trigger: "blur" }],
// sfba: [{ required: true, message: "请选择是否有保安负责人", trigger: "blur" }],
// bags: [{ required: true, message: "请输入保安公司", trigger: "blur" }],
// bafzr: [{ required: true, message: "请输入保安公司负责人姓名", trigger: "blur" }],
// bars: [{ required: true, message: "请输入保安人数", trigger: "blur" }],
// bafzrsfz: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
// balxdh: [{ required: true, message: "请输入保安负责人联系电话", trigger: "blur" }],
// bajzdz: [{ required: true, message: "请输入保安负责人居住地址", trigger: "blur" }],
// csmj: [{ required: true, message: "请输入场所面积(㎡)", trigger: "blur" }],
yyzzzp: [{ required: true, message: "请上传营业执照", trigger: "blur" }],
cszp: [{ required: true, message: "请上传场所照片", trigger: "blur" }],
// badwbabh: [{ required: true, message: "请输入保安单位备案编号", trigger: "blur" }],
// dwbajgmc: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// dwjyxkhm: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// dwjyxfzjg: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
})
// const rules = ref({
// csmc: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
// dwmc: [{ required: true, message: "请输入营业执照登记名称", trigger: "blur" }],
// xydm: [{ required: true, message: "请输入信用代码", trigger: "blur" }],
// // csdm: [{ required: true, message: "请输入场所代码", trigger: "blur" }],
// // gds: [{ required: true, message: "请输入股东数", trigger: "blur" }],
// zczj: [{ required: true, message: "请输入注册资金(万元)", trigger: "blur" }],
// type: [{ required: true, message: "请选择单位类型", trigger: "blur" }],
// csLxdh: [{ required: true, message: "请输入场所电话", trigger: "blur" }],
// jyzk: [{ required: true, message: "请选择经营状况", trigger: "blur" }],
// jyfw: [{ required: true, message: "请选择经营范围", trigger: "blur" }],
// dyrs: [{ required: true, message: "请输入党员人数", trigger: "blur" }],
// // gxdwdm: [{ required: true, message: "请选择管辖区县", trigger: "blur" }],
// gsxz: [{ required: true, message: "请选择公司性质", trigger: "blur" }],
// kyrq: [{ required: true, message: "请选择开业日期", trigger: "blur" }],
// zcdz: [{ required: true, message: "请输入场所注册地址", trigger: "blur" }],
// jydz: [{ required: true, message: "请输入场所经营地址", trigger: "blur" }],
// mqcsyw: [{ required: true, message: "请输入目前从事业务", trigger: "blur" }],
// // qzqk: [{ required: true, message: "请输入枪支情况", trigger: "blur" }],
// // sfyyzz: [{ required: true, message: "请选择是否有武装押运资质", trigger: "blur" }],
// // sfpxzz: [{ required: true, message: "请选择是否有培训资质", trigger: "blur" }],
// // sfdzz: [{ required: true, message: "请选择是否成立党组织", trigger: "blur" }],
// // zfzrr: [{ required: true, message: "请选择是否为负责人", trigger: "blur" }],
// fdrXm: [{ required: true, message: "请输入法人姓名", trigger: "blur" }],
// fdrSfzh: [{ required: true, message: "请输入法人账号", trigger: "blur" }],
// fdrLxdh: [{ required: true, message: "请输入法人手机号", trigger: "blur" }],
// fdrJzdz: [{ required: true, message: "请输入法人地址", trigger: "blur" }],
// frSfzZm: [{ required: true, message: "请上传法人身份证正面", trigger: "blur" }],
// frSfzFm: [{ required: true, message: "请上传法人身份证反面", trigger: "blur" }],
// fzrXm: [{ required: true, message: "请输入负责人姓名", trigger: "blur" }],
// fzrSfzh: [{ required: true, message: "请输入负责人身份证号", trigger: "blur" }],
// fzrLxdh: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
// nl: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
// xb: [{ required: true, message: "请输入负责人性别", trigger: "blur" }],
// baszsbh: [{ required: true, message: "请输入保安证编号", trigger: "blur" }],
// fzrJzdz: [{ required: true, message: "请输入负责人地址", trigger: "blur" }],
// fzrSfzZm: [{ required: true, message: "请上传负责人身份证正面", trigger: "blur" }],
// fzrSfzFm: [{ required: true, message: "请上传负责人身份证反面", trigger: "blur" }],
// // sfba: [{ required: true, message: "请选择是否有保安负责人", trigger: "blur" }],
// // bags: [{ required: true, message: "请输入保安公司", trigger: "blur" }],
// // bafzr: [{ required: true, message: "请输入保安公司负责人姓名", trigger: "blur" }],
// // bars: [{ required: true, message: "请输入保安人数", trigger: "blur" }],
// // bafzrsfz: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
// // balxdh: [{ required: true, message: "请输入保安负责人联系电话", trigger: "blur" }],
// // bajzdz: [{ required: true, message: "请输入保安负责人居住地址", trigger: "blur" }],
// // csmj: [{ required: true, message: "请输入场所面积(㎡)", trigger: "blur" }],
// yyzzzp: [{ required: true, message: "请上传营业执照", trigger: "blur" }],
// cszp: [{ required: true, message: "请上传场所照片", trigger: "blur" }],
// // badwbabh: [{ required: true, message: "请输入保安单位备案编号", trigger: "blur" }],
// // dwbajgmc: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// // dwjyxkhm: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// // dwjyxfzjg: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// })
const title = ref("新增")
const disabled = ref(false)
// 初始化数据