Merge branch 'master' of http://61.139.16.27:26684/maojiacai/ba_web
This commit is contained in:
@ -123,3 +123,10 @@ export function downFiles(id) {
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
// 视频文件
|
||||
export function downVideoFiles(id) {
|
||||
return request({
|
||||
url: `/bagl/mosty-base/AppUserConfig/image/url/${id}`,
|
||||
method: "get"
|
||||
})
|
||||
}
|
||||
|
||||
@ -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: "今天",
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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,55 +1,55 @@
|
||||
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', 1)
|
||||
store.commit('permission/setRouteReady', 1)
|
||||
// 添加完动态路由之后,需要在进行一次主动跳转
|
||||
const afterMenuList = await getItem('menusPermission');
|
||||
const afterMenuList = getItem('menusPermission');
|
||||
// 处理用户权限,筛选出需要添加的权限
|
||||
// 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')
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@ -340,6 +340,11 @@ export const publicRoutes = [
|
||||
name: "login",
|
||||
component: () => import("@/views/login/index")
|
||||
},
|
||||
{
|
||||
path: "/404",
|
||||
name: "404",
|
||||
component: () => import("@/views/error/404")
|
||||
},
|
||||
// {
|
||||
// path: "/homeMy",
|
||||
// name: "homeMy",
|
||||
|
||||
@ -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) {
|
||||
let routes = []
|
||||
// 路由权限匹配
|
||||
// menus.forEach(key => {
|
||||
// // 权限名 与 路由的 name 匹配
|
||||
// routes.push(...privateRoutes.filter(item => item.name === key))
|
||||
// })
|
||||
|
||||
/**
|
||||
* 树结构数据条件过滤
|
||||
* js 指定删除数组(树结构数据)
|
||||
*/
|
||||
//测试比对
|
||||
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
|
||||
try {
|
||||
let routes = []
|
||||
// 路由权限匹配
|
||||
if (menus && Array.isArray(menus)) {
|
||||
// 测试比对
|
||||
routes = filter(privateRoutes, menus)
|
||||
// 最后添加 不匹配路由进入 404
|
||||
routes.push({
|
||||
path: '/:catchAll(.*)',
|
||||
redirect: '/404'
|
||||
})
|
||||
}
|
||||
context.commit('setRoutes', routes);
|
||||
context.commit('setRouteReady', 1);
|
||||
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,32 +62,34 @@ export default {
|
||||
*登录请求动作
|
||||
*/
|
||||
login(ctx, userInfo) {
|
||||
const { userName, password, kaptcha } = userInfo;
|
||||
|
||||
|
||||
const { userName, password, kaptcha } = userInfo;
|
||||
return new Promise((resolve, reject) => {
|
||||
login({ userName, password: Base64.encode(password), kaptcha }).then((data) => {
|
||||
if (data.deptList.length === 1) {
|
||||
this.commit("user/setToken", data.jwtToken);
|
||||
this.commit("user/setDeptId", data.deptList);
|
||||
this.commit("user/setUserName", data.userName);
|
||||
setItem('isOatuh', 0)
|
||||
setItem("USERNAME", data.userName);
|
||||
setItem("SFRH", data.sfrh);
|
||||
setItem("USERID", data.userId);
|
||||
setItem("PermissionsInfo", data.permissionsInfo);
|
||||
this.commit("user/setMenuList", data.menuList);
|
||||
setItem("menusPermission", data.menuCodeSet);
|
||||
setItem("idEntityCard", data.idEntityCard);
|
||||
this.commit("user/setUserInfo", {
|
||||
token: data.jwtToken,
|
||||
permission: { buttonPermission: ["removeTest", "viewTest"],menus: data.menuCodeSet },
|
||||
menuList: data.menuList,
|
||||
deptList: data.deptList
|
||||
});
|
||||
}
|
||||
// 保存登录时间
|
||||
setTimeStamp();
|
||||
resolve(data);
|
||||
})
|
||||
login({ userName, password: Base64.encode(password), kaptcha }).then((data) => {
|
||||
if (data.deptList.length === 1) {
|
||||
this.commit("user/setToken", data.jwtToken);
|
||||
this.commit("user/setDeptId", data.deptList);
|
||||
this.commit("user/setUserName", data.userName);
|
||||
setItem('isOatuh', 0)
|
||||
setItem("USERNAME", data.userName);
|
||||
setItem("SFRH", data.sfrh);
|
||||
setItem("USERID", data.userId);
|
||||
setItem("PermissionsInfo", data.permissionsInfo);
|
||||
this.commit("user/setMenuList", data.menuList);
|
||||
setItem("menusPermission", data.menuCodeSet);
|
||||
setItem("idEntityCard", data.idEntityCard);
|
||||
this.commit("user/setUserInfo", {
|
||||
token: data.jwtToken,
|
||||
permission: { buttonPermission: ["removeTest", "viewTest"], menus: data.menuCodeSet },
|
||||
menuList: data.menuList,
|
||||
deptList: data.deptList
|
||||
});
|
||||
}
|
||||
// 保存登录时间
|
||||
setTimeStamp();
|
||||
resolve(data);
|
||||
})
|
||||
.catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
@ -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);
|
||||
|
||||
@ -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('视频加载失败,请检查网络或视频链接');
|
||||
};
|
||||
|
||||
// 视频卡顿处理
|
||||
|
||||
@ -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
91
src/views/error/404.vue
Normal 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>
|
||||
@ -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(() => {
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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()
|
||||
}
|
||||
|
||||
@ -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)
|
||||
// 初始化数据
|
||||
|
||||
Reference in New Issue
Block a user