From 076644e4f6779c7b0f81b54621a81dbcb49c8325 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 14:02:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=85=A8=E8=AF=81=E4=B9=A6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- env/.env.dev | 4 +- src/components/uploadComponentNew/index.vue | 10 +- src/http/api/security-certificate/index.ts | 22 + src/layout/header.vue | 2 +- src/router/index.ts | 11 + src/views/user/index.vue | 1 + .../user/lessor/quality-manage/index.vue | 107 ++++- .../lessor/security-certificate/index.vue | 453 ++++++++++++++++++ 8 files changed, 582 insertions(+), 28 deletions(-) create mode 100644 src/http/api/security-certificate/index.ts create mode 100644 src/views/user/lessor/security-certificate/index.vue diff --git a/env/.env.dev b/env/.env.dev index 8455276..98cb05f 100644 --- a/env/.env.dev +++ b/env/.env.dev @@ -8,9 +8,9 @@ VITE_API_URL = '/proxyApi' # VITE_proxyTarget = 'http://10.40.92.74:8080' #盛旭 # VITE_proxyTarget = 'http://192.168.2.246:28080' # 马帅 -# VITE_proxyTarget = 'http://192.168.2.127:28080' # 梁超 +VITE_proxyTarget = 'http://192.168.2.127:28080' # 梁超 # VITE_proxyTarget = 'http://36.33.26.201:17788/proxyApi' # 测试服务 -VITE_proxyTarget = 'http://192.168.0.244:28580' # 测试服务 +# VITE_proxyTarget = 'http://192.168.0.244:28580' # 测试服务 # VITE_proxyTarget = 'http://192.168.2.129:18080' # 马帅j # VITE_proxyTarget = 'http://10.40.92.185:9206' # 赵福海 ( 设备类型) diff --git a/src/components/uploadComponentNew/index.vue b/src/components/uploadComponentNew/index.vue index 3c500b7..680be23 100644 --- a/src/components/uploadComponentNew/index.vue +++ b/src/components/uploadComponentNew/index.vue @@ -61,12 +61,17 @@ const props = defineProps({ width: { //上传的地址 type: String, - default: '72px', + default: '100%', }, height: { //上传的地址 type: String, - default: '72px', + default: '100%', + }, + justifyContent: { + //上传的地址 + type: String, + default: 'center', }, autoUpload: { //是否开启自动上传 @@ -274,6 +279,7 @@ const changeFileFn = (ev: any) => { :deep(.el-upload) { width: v-bind('props.width') !important; height: v-bind('props.height') !important; + justify-content: v-bind('props.justifyContent'); } :deep(.el-upload-list__item) { width: v-bind('props.width') !important; diff --git a/src/http/api/security-certificate/index.ts b/src/http/api/security-certificate/index.ts new file mode 100644 index 0000000..9aac2d9 --- /dev/null +++ b/src/http/api/security-certificate/index.ts @@ -0,0 +1,22 @@ +import { get, post } from '../../index' + +// 获取关联装备 +export const getAssociationListApi = (data: any = {}) => { + return get('/material-mall/dev/associationList', data) +} +// 新增安全证书 +export const addSafeBookApi = (data: any = {}) => { + return post('/material-mall/safeBook/addSafeBook', data) +} +// 全证书列表 +export const getSafeBookByMaIdListApi = (data: any = {}) => { + return get('/material-mall/safeBook/getSafeBookByMaId', data) +} +// 安全证书编辑 +export const editSafeBookApi = (data: any = {}) => { + return post('/material-mall/safeBook/editSafeBook', data) +} +// 安全证书列表删除 +export const delSafeBookByIdApi = (data: any = {}) => { + return post('/material-mall/safeBook/delSafeBook', data) +} \ No newline at end of file diff --git a/src/layout/header.vue b/src/layout/header.vue index ebba41c..f785754 100644 --- a/src/layout/header.vue +++ b/src/layout/header.vue @@ -186,7 +186,7 @@ const onJumpUser = () => { const isAdmin = roles.some((e: any) => e.roleKey == 'admin') if (isAdmin) { // window.location.href = `http://192.168.137.101:80/?token=${store.token}` - window.open(`http://192.168.137.101:80/?token=${store.token}`) + window.open(`http://192.168.0.244:17766/glweb/?token=${store.token}`) } else { router.push({ name: 'my-user' }) } diff --git a/src/router/index.ts b/src/router/index.ts index 4ef24c8..20731f0 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -268,6 +268,17 @@ const routes: Array = [ isLogin: true }, }, + { + path: '/security-certificate', + name: 'security-certificate', + component: () => import('views/user/lessor/security-certificate/index.vue'), + meta: { + title: '安全证书管理', + keepAlive: true, + AuthFlag: false, + isLogin: true + }, + }, { path: '/sourcingNeed', name: 'sourcingNeed', diff --git a/src/views/user/index.vue b/src/views/user/index.vue index 7f215dc..a29604c 100644 --- a/src/views/user/index.vue +++ b/src/views/user/index.vue @@ -69,6 +69,7 @@ const allList = [ { title: '退租管理', name: 'rent-termination', permission: ['1'] }, { title: '结算管理', name: 'settlement-manage', permission: ['1'] }, { title: '质检管理', name: 'quality-manage', permission: ['1'] }, + { title: '安全证书管理', name: 'security-certificate', permission: ['1'] }, { title: '需求管理', name: 'sourcingNeed', permission: ['2'] }, { title: '订单管理', name: 'orderManagement', permission: ['2'] }, ] diff --git a/src/views/user/lessor/quality-manage/index.vue b/src/views/user/lessor/quality-manage/index.vue index cf91f6d..fd9d7c0 100644 --- a/src/views/user/lessor/quality-manage/index.vue +++ b/src/views/user/lessor/quality-manage/index.vue @@ -6,6 +6,7 @@ size="default" label-width="0" ref="searchFormRef" + :rules="searchFormRules" :model="searchParams" > @@ -15,16 +16,32 @@ clearable style="width: 100%" placeholder="请输入装备编码" - v-model="searchParams.deviceCode" + v-model.trim="searchParams.deviceCode" /> - - - + + + - + - + + + + + + @@ -45,17 +62,15 @@ style="width: 100%" range-separator="-" value-format="YYYY-MM-DD" - start-placeholder="更新开始日期" - end-placeholder="更新结束日期" + start-placeholder="更新日期" + end-placeholder="更新日期" /> - 查询 + 查询 重置 - + @@ -178,7 +193,7 @@ @@ -290,8 +305,8 @@ style="width: 100%" range-separator="-" value-format="YYYY-MM-DD" - start-placeholder="质检开始日期" - end-placeholder="质检结束日期" + start-placeholder="质检日期" + end-placeholder="质检日期" /> @@ -303,8 +318,8 @@ style="width: 100%" range-separator="-" value-format="YYYY-MM-DD" - start-placeholder="上传开始日期" - end-placeholder="上传结束日期" + start-placeholder="上传日期" + end-placeholder="上传日期" /> @@ -410,6 +425,8 @@ const searchParams = reactive({ qcEndTime: '', createStartTime: '', createEndTime: '', + minNum: '', + maxNum: '', pageSize: 10, pageNum: 1, }) @@ -433,6 +450,23 @@ const addOrEditForm = ref({ fileInfoTempList: [], }) +const checkMinNum = (rule: any, value: any, callback: any) => { + const maxNum = parseInt(searchParams.maxNum) + + if (value > maxNum && maxNum > 0) { + return callback(new Error('查询开始次数不能大于查询结束次数')) + } + callback() +} +const checkMaxNum = (rule: any, value: any, callback: any) => { + const minNum = parseInt(searchParams.minNum) + + if (value < minNum && minNum > 0) { + return callback(new Error('查询结束次数不能小于查询开始次数')) + } + callback() +} + const addOrEditFormRules = reactive({ maId: [{ required: true, message: '请选择关联装备', trigger: 'change' }], qcName: [{ required: true, message: '请输入质检名称', trigger: 'blur' }], @@ -440,6 +474,24 @@ const addOrEditFormRules = reactive({ qcTime: [{ required: true, message: '请选择质检日期', trigger: 'change' }], fileInfoList: [{ required: true, message: '请上传质检附件', trigger: 'blur' }], }) +const searchFormRules = reactive({ + minNum: [ + { + pattern: /^[1-9][0-9]*$/, + message: '请输入大于0的正整数', + trigger: 'blur', + }, + { validator: checkMinNum, trigger: 'blur' }, + ], + maxNum: [ + { + pattern: /^[1-9][0-9]*$/, + message: '请输入大于0的正整数', + trigger: 'blur', + }, + { validator: checkMaxNum, trigger: 'blur' }, + ], +}) const disabledDate = (date: any) => { const today = new Date() @@ -462,6 +514,14 @@ const getLeaseListData = async () => { total.value = res.total } +const onSearch = () => { + searchFormRef.value.validate((valid: any) => { + if (valid) { + getLeaseListData() + } + }) +} + // 获取关联装备 const getAssociationListData = async () => { const res: any = await getAssociationListApi() @@ -495,7 +555,7 @@ const onResetInDialog = () => { } // 删除 const onDelete = async (id: any, maId: any) => { - const res: any = await qualityDeleteByIdApi({ id, maId }) + const res: any = await qualityDeleteByIdApi({ maId }) if (res.code === 200) { ElMessage({ type: 'success', @@ -533,15 +593,16 @@ const onViewQualityRecord = (row: any) => { } const getLeaseListDataInDialog = async () => { if (qcTime_1.value.length > 0) { - searchParamsInDialog.qcStartTime = qcTime.value[0] - searchParamsInDialog.qcEndTime = qcTime.value[1] + searchParamsInDialog.qcStartTime = qcTime_1.value[0] + searchParamsInDialog.qcEndTime = qcTime_1.value[1] } if (createTime_1.value.length > 0) { - searchParamsInDialog.createStartTime = createTime.value[0] - searchParamsInDialog.createEndTime = createTime.value[1] + searchParamsInDialog.createStartTime = createTime_1.value[0] + searchParamsInDialog.createEndTime = createTime_1.value[1] } const { data: res }: any = await getQualityDetailsApi(searchParamsInDialog) qualityDetailsList.value = res.rows + totalInDialog.value = res.total } // 自定义事件 diff --git a/src/views/user/lessor/security-certificate/index.vue b/src/views/user/lessor/security-certificate/index.vue new file mode 100644 index 0000000..e81a9d0 --- /dev/null +++ b/src/views/user/lessor/security-certificate/index.vue @@ -0,0 +1,453 @@ + + + + +